@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,45 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Nav, Navbar } from "react-bootstrap";
3
- import { useBreakpoint } from "./responsiveHelper.js";
4
- import { AdaptiveContainer } from "./adaptiveContainer.js";
5
- const FooterNavItem = function FooterNavItem2({
6
- href,
7
- icon,
8
- active = false,
9
- children = ""
10
- }) {
11
- const isFilepath = icon.includes(".");
12
- let iconElement;
13
- if (isFilepath) {
14
- iconElement = /* @__PURE__ */ jsx("img", { src: icon, alt: "icon", className: "me-lg-2" });
15
- } else {
16
- iconElement = /* @__PURE__ */ jsx("span", { className: `lead me-lg-2 ${icon}` });
17
- }
18
- const link = /* @__PURE__ */ jsxs(
19
- Nav.Link,
20
- {
21
- href,
22
- className: `px-0 px-lg-3 d-flex align-items-center flex-column flex-lg-row ${active ? "text-primary" : ""}`,
23
- children: [
24
- iconElement,
25
- children
26
- ]
27
- }
28
- );
29
- return /* @__PURE__ */ jsx(Nav.Item, { style: { flex: 1 }, children: link });
30
- };
31
- const Footer = function Footer2({ children }) {
32
- const { isDesktop } = useBreakpoint();
33
- return (
34
- // border-bottom
35
- /* @__PURE__ */ jsx("div", { className: isDesktop ? "" : "border-top", children: /* @__PURE__ */ jsx(Navbar, { className: isDesktop ? "" : "py-0", children: /* @__PURE__ */ jsxs(AdaptiveContainer, { children: [
36
- isDesktop && /* @__PURE__ */ jsx(Navbar.Brand, { href: "/", children: "Le Brand" }),
37
- /* @__PURE__ */ jsx(Nav, { className: isDesktop ? "me-auto" : "justify-content-center flex-nowrap w-100", children })
38
- ] }) }) })
39
- );
40
- };
41
- export {
42
- Footer,
43
- FooterNavItem
44
- };
45
- //# sourceMappingURL=footer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"footer.js","sources":["../../src/bootstrap/footer.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport { Nav, Navbar } from 'react-bootstrap';\nimport { useBreakpoint } from './responsiveHelper';\nimport { AdaptiveContainer } from './adaptiveContainer';\n\nexport type FooterNavItemProps = {\n href: any;\n icon: any;\n active?: boolean | undefined;\n children?: string | undefined;\n};\n\nexport const FooterNavItem: FC<FooterNavItemProps> = function FooterNavItem({\n href,\n icon,\n active = false,\n children = '',\n}) {\n // const pathname = usePathname();\n\n const isFilepath = icon.includes('.');\n let iconElement;\n\n if (isFilepath) {\n iconElement = <img src={icon} alt=\"icon\" className=\"me-lg-2\" />;\n } else {\n iconElement = <span className={`lead me-lg-2 ${icon}`} />;\n }\n\n // const active = isActivePath(href, pathname);\n\n const link = (\n <Nav.Link\n // as={Link}\n href={href}\n // active={active} // has no effect when not pills or tabs\n className={`px-0 px-lg-3 d-flex align-items-center flex-column flex-lg-row ${active ? 'text-primary' : ''}`}\n >\n {iconElement}\n {children}\n </Nav.Link>\n );\n\n return <Nav.Item style={{ flex: 1 }}>{link}</Nav.Item>;\n};\n\nexport const Footer: FC<any> = function Footer({ children }) {\n const { isDesktop } = useBreakpoint();\n\n return (\n // border-bottom\n <div className={isDesktop ? '' : 'border-top'}>\n <Navbar className={isDesktop ? '' : 'py-0'}>\n <AdaptiveContainer>\n {isDesktop && <Navbar.Brand href=\"/\">Le Brand</Navbar.Brand>}\n <Nav className={isDesktop ? 'me-auto' : 'justify-content-center flex-nowrap w-100'}>{children}</Nav>\n </AdaptiveContainer>\n </Navbar>\n </div>\n );\n};\n"],"names":["FooterNavItem","Footer"],"mappings":";;;;AAYa,MAAA,gBAAwC,SAASA,eAAc;AAAA,EACxE;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,WAAW;AACf,GAAG;AAGO,QAAA,aAAa,KAAK,SAAS,GAAG;AAChC,MAAA;AAEJ,MAAI,YAAY;AACZ,sCAAe,OAAI,EAAA,KAAK,MAAM,KAAI,QAAO,WAAU,WAAU;AAAA,EAAA,OAC1D;AACH,kBAAe,oBAAA,QAAA,EAAK,WAAW,gBAAgB,IAAI,IAAI;AAAA,EAAA;AAK3D,QAAM,OACF;AAAA,IAAC,IAAI;AAAA,IAAJ;AAAA,MAEG;AAAA,MAEA,WAAW,kEAAkE,SAAS,iBAAiB,EAAE;AAAA,MAExG,UAAA;AAAA,QAAA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,EACL;AAGG,SAAA,oBAAC,IAAI,MAAJ,EAAS,OAAO,EAAE,MAAM,EAAE,GAAI,UAAK,MAAA;AAC/C;AAEO,MAAM,SAAkB,SAASC,QAAO,EAAE,YAAY;AACnD,QAAA,EAAE,UAAU,IAAI,cAAc;AAEpC;AAAA;AAAA,IAEK,oBAAA,OAAA,EAAI,WAAW,YAAY,KAAK,cAC7B,UAAC,oBAAA,QAAA,EAAO,WAAW,YAAY,KAAK,QAChC,+BAAC,mBACI,EAAA,UAAA;AAAA,MAAA,iCAAc,OAAO,OAAP,EAAa,MAAK,KAAI,UAAQ,YAAA;AAAA,0BAC5C,KAAI,EAAA,WAAW,YAAY,YAAY,4CAA6C,SAAS,CAAA;AAAA,IAAA,EAClG,CAAA,EACJ,CAAA,EACJ,CAAA;AAAA;AAER;"}
@@ -1,6 +0,0 @@
1
- import { FC } from 'react';
2
- export type GlobalLoadingProps = {
3
- loading: boolean;
4
- };
5
- export declare const GlobalLoading: FC<GlobalLoadingProps>;
6
- //# sourceMappingURL=globalLoading.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalLoading.d.ts","sourceRoot":"","sources":["../../src/bootstrap/globalLoading.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAYhD,CAAC"}
@@ -1,10 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Loading } from "./loading.js";
3
- const GlobalLoading = function GlobalLoading2({ loading }) {
4
- if (!loading) return null;
5
- return /* @__PURE__ */ jsx("div", { className: "bg-white position-absolute top-0 start-0 w-100 h-100 z-3 d-flex align-items-center justify-content-center", children: /* @__PURE__ */ jsx(Loading, {}) });
6
- };
7
- export {
8
- GlobalLoading
9
- };
10
- //# sourceMappingURL=globalLoading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalLoading.js","sources":["../../src/bootstrap/globalLoading.tsx"],"sourcesContent":["import React, { FC } from 'react';\n// import { useLoading, useLoadingTimeout } from '../redux/loadingSlice';\nimport { Loading } from './loading';\n\nexport type GlobalLoadingProps = { loading: boolean };\n\nexport const GlobalLoading: FC<GlobalLoadingProps> = function GlobalLoading({ loading }) {\n // const { loading } = useLoading();\n\n // useLoadingTimeout(15000); // escape latch if something is stuck\n\n if (!loading) return null;\n\n return (\n <div className=\"bg-white position-absolute top-0 start-0 w-100 h-100 z-3 d-flex align-items-center justify-content-center\">\n <Loading />\n </div>\n );\n};\n"],"names":["GlobalLoading"],"mappings":";;AAMO,MAAM,gBAAwC,SAASA,eAAc,EAAE,WAAW;AAKjF,MAAA,CAAC,QAAgB,QAAA;AAErB,6BACK,OAAI,EAAA,WAAU,6GACX,UAAA,oBAAC,UAAQ,CAAA,GACb;AAER;"}
@@ -1,7 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { GlobalLoading } from './globalLoading';
3
- declare const meta: Meta<typeof GlobalLoading>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const Default: Story;
7
- //# sourceMappingURL=globalLoading.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"globalLoading.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/globalLoading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAUpC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,10 +0,0 @@
1
- import { SpinnerProps } from 'react-bootstrap';
2
- import { FC } from 'react';
3
- export type LoadingProps = {
4
- children?: any;
5
- show?: boolean;
6
- className?: string;
7
- size?: SpinnerProps['size'];
8
- };
9
- export declare const Loading: FC<LoadingProps>;
10
- //# sourceMappingURL=loading.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../src/bootstrap/loading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAS,MAAM,iBAAiB,CAAC;AAC/D,OAAc,EAAE,EAAE,EAAQ,MAAM,OAAO,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAanC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Stack, Spinner } from "react-bootstrap";
3
- import { memo } from "react";
4
- const Loading = memo(function Loading2({
5
- children = "Loading...",
6
- show = true,
7
- className = "",
8
- size
9
- }) {
10
- if (!show) return null;
11
- return /* @__PURE__ */ jsxs(Stack, { direction: "horizontal", gap: 3, className: `align-self-auto ${className}`, children: [
12
- /* @__PURE__ */ jsx(Spinner, { animation: "border", role: "status", size }),
13
- /* @__PURE__ */ jsx("span", { children })
14
- ] });
15
- });
16
- export {
17
- Loading
18
- };
19
- //# sourceMappingURL=loading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading.js","sources":["../../src/bootstrap/loading.tsx"],"sourcesContent":["import { Spinner, SpinnerProps, Stack } from 'react-bootstrap';\nimport React, { FC, memo } from 'react';\n\nexport type LoadingProps = {\n children?: any;\n show?: boolean;\n className?: string;\n size?: SpinnerProps['size'];\n};\n\nexport const Loading: FC<LoadingProps> = memo(function Loading({\n children = 'Loading...' as any,\n show = true,\n className = '',\n size,\n}) {\n if (!show) return null;\n return (\n <Stack direction=\"horizontal\" gap={3} className={`align-self-auto ${className}`}>\n <Spinner animation=\"border\" role=\"status\" size={size as any} />\n <span>{children}</span>\n </Stack>\n );\n});\n"],"names":["Loading"],"mappings":";;;AAUa,MAAA,UAA4B,KAAK,SAASA,SAAQ;AAAA,EAC3D,WAAW;AAAA,EACX,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AACJ,GAAG;AACK,MAAA,CAAC,KAAa,QAAA;AAEd,SAAA,qBAAC,SAAM,WAAU,cAAa,KAAK,GAAG,WAAW,mBAAmB,SAAS,IACzE,UAAA;AAAA,IAAA,oBAAC,SAAQ,EAAA,WAAU,UAAS,MAAK,UAAS,MAAmB;AAAA,IAC7D,oBAAC,UAAM,SAAS,CAAA;AAAA,EAAA,GACpB;AAER,CAAC;"}
@@ -1,9 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { Loading } from './loading';
3
- declare const meta: Meta<typeof Loading>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const Default: Story;
7
- export declare const Children: Story;
8
- export declare const Size: Story;
9
- //# sourceMappingURL=loading.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/loading.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAY9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { FC } from 'react';
2
- export declare function useBreakpoint(): {
3
- breakpoint: string;
4
- isMobile: boolean;
5
- isDesktop: boolean;
6
- };
7
- export declare const ResponsiveHelperBS: FC;
8
- //# sourceMappingURL=responsiveHelper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responsiveHelper.d.ts","sourceRoot":"","sources":["../../src/bootstrap/responsiveHelper.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAEvD,wBAAgB,aAAa,IAAI;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB,CAiCA;AAED,eAAO,MAAM,kBAAkB,EAAE,EAWhC,CAAC"}
@@ -1,46 +0,0 @@
1
- "use client";
2
- import { jsxs, jsx } from "react/jsx-runtime";
3
- import { useState, useEffect } from "react";
4
- function useBreakpoint() {
5
- const [breakpoint, setBreakpoint] = useState("xs");
6
- useEffect(() => {
7
- const updateBreakpoint = () => {
8
- const width = window.innerWidth;
9
- if (width < 576) {
10
- setBreakpoint("xs");
11
- } else if (width < 768) {
12
- setBreakpoint("sm");
13
- } else if (width < 992) {
14
- setBreakpoint("md");
15
- } else if (width < 1200) {
16
- setBreakpoint("lg");
17
- } else if (width < 1400) {
18
- setBreakpoint("xl");
19
- } else {
20
- setBreakpoint("xxl");
21
- }
22
- };
23
- updateBreakpoint();
24
- window.addEventListener("resize", updateBreakpoint);
25
- return () => {
26
- window.removeEventListener("resize", updateBreakpoint);
27
- };
28
- }, []);
29
- const isMobile = ["xs", "sm", "md"].includes(breakpoint);
30
- return { breakpoint, isMobile, isDesktop: !isMobile };
31
- }
32
- const ResponsiveHelperBS = function ResponsiveHelperBS2() {
33
- return /* @__PURE__ */ jsxs("span", { className: "small position-fixed bottom-0 z-3", style: { fontSize: "9px", right: 1, lineHeight: 1 }, children: [
34
- /* @__PURE__ */ jsx("small", { className: "d-block d-sm-none", children: "XS" }),
35
- /* @__PURE__ */ jsx("small", { className: "d-none d-sm-block d-md-none", children: "SM" }),
36
- /* @__PURE__ */ jsx("small", { className: "d-none d-md-block d-lg-none", children: "MD" }),
37
- /* @__PURE__ */ jsx("small", { className: "d-none d-lg-block d-xl-none", children: "LG" }),
38
- /* @__PURE__ */ jsx("small", { className: "d-none d-xl-block d-xxl-none", children: "XL" }),
39
- /* @__PURE__ */ jsx("small", { className: "d-none d-xxl-block", children: "XXL" })
40
- ] });
41
- };
42
- export {
43
- ResponsiveHelperBS,
44
- useBreakpoint
45
- };
46
- //# sourceMappingURL=responsiveHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"responsiveHelper.js","sources":["../../src/bootstrap/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useEffect, useState } from 'react';\n\nexport function useBreakpoint(): {\n breakpoint: string;\n isMobile: boolean;\n isDesktop: boolean;\n} {\n const [breakpoint, setBreakpoint] = useState('xs');\n\n useEffect(() => {\n const updateBreakpoint = () => {\n const width = window.innerWidth;\n if (width < 576) {\n setBreakpoint('xs');\n } else if (width < 768) {\n setBreakpoint('sm');\n } else if (width < 992) {\n setBreakpoint('md');\n } else if (width < 1200) {\n setBreakpoint('lg');\n } else if (width < 1400) {\n setBreakpoint('xl');\n } else {\n setBreakpoint('xxl');\n }\n };\n\n updateBreakpoint();\n\n window.addEventListener('resize', updateBreakpoint);\n\n return () => {\n window.removeEventListener('resize', updateBreakpoint);\n };\n }, []);\n\n const isMobile = ['xs', 'sm', 'md'].includes(breakpoint);\n\n return { breakpoint, isMobile, isDesktop: !isMobile };\n}\n\nexport const ResponsiveHelperBS: FC = function ResponsiveHelperBS() {\n return (\n <span className=\"small position-fixed bottom-0 z-3\" style={{ fontSize: '9px', right: 1, lineHeight: 1 }}>\n <small className=\"d-block d-sm-none\">XS</small>\n <small className=\"d-none d-sm-block d-md-none\">SM</small>\n <small className=\"d-none d-md-block d-lg-none\">MD</small>\n <small className=\"d-none d-lg-block d-xl-none\">LG</small>\n <small className=\"d-none d-xl-block d-xxl-none\">XL</small>\n <small className=\"d-none d-xxl-block\">XXL</small>\n </span>\n );\n};\n"],"names":["ResponsiveHelperBS"],"mappings":";;;AAIO,SAAS,gBAId;AACE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,IAAI;AAEjD,YAAU,MAAM;AACZ,UAAM,mBAAmB,MAAM;AAC3B,YAAM,QAAQ,OAAO;AACrB,UAAI,QAAQ,KAAK;AACb,sBAAc,IAAI;AAAA,MAAA,WACX,QAAQ,KAAK;AACpB,sBAAc,IAAI;AAAA,MAAA,WACX,QAAQ,KAAK;AACpB,sBAAc,IAAI;AAAA,MAAA,WACX,QAAQ,MAAM;AACrB,sBAAc,IAAI;AAAA,MAAA,WACX,QAAQ,MAAM;AACrB,sBAAc,IAAI;AAAA,MAAA,OACf;AACH,sBAAc,KAAK;AAAA,MAAA;AAAA,IAE3B;AAEiB,qBAAA;AAEV,WAAA,iBAAiB,UAAU,gBAAgB;AAElD,WAAO,MAAM;AACF,aAAA,oBAAoB,UAAU,gBAAgB;AAAA,IACzD;AAAA,EACJ,GAAG,EAAE;AAEL,QAAM,WAAW,CAAC,MAAM,MAAM,IAAI,EAAE,SAAS,UAAU;AAEvD,SAAO,EAAE,YAAY,UAAU,WAAW,CAAC,SAAS;AACxD;AAEa,MAAA,qBAAyB,SAASA,sBAAqB;AAChE,SACK,qBAAA,QAAA,EAAK,WAAU,qCAAoC,OAAO,EAAE,UAAU,OAAO,OAAO,GAAG,YAAY,EAAA,GAChG,UAAA;AAAA,IAAC,oBAAA,SAAA,EAAM,WAAU,qBAAoB,UAAE,MAAA;AAAA,IACtC,oBAAA,SAAA,EAAM,WAAU,+BAA8B,UAAE,MAAA;AAAA,IAChD,oBAAA,SAAA,EAAM,WAAU,+BAA8B,UAAE,MAAA;AAAA,IAChD,oBAAA,SAAA,EAAM,WAAU,+BAA8B,UAAE,MAAA;AAAA,IAChD,oBAAA,SAAA,EAAM,WAAU,gCAA+B,UAAE,MAAA;AAAA,IACjD,oBAAA,SAAA,EAAM,WAAU,sBAAqB,UAAG,MAAA,CAAA;AAAA,EAAA,GAC7C;AAER;"}
@@ -1,22 +0,0 @@
1
- import { FC } from 'react';
2
- export type ScreenProps = {
3
- backBtn?: any;
4
- backCb?: any;
5
- backIcon?: any;
6
- forwardBtn?: any;
7
- forwardIcon?: any;
8
- forwardCb?: any;
9
- children: any;
10
- contentClassName?: string;
11
- noContentPadding?: boolean;
12
- header?: any;
13
- footer?: any;
14
- menu?: any;
15
- title?: any;
16
- centerContent?: boolean;
17
- noHeader?: boolean;
18
- noFooter?: boolean;
19
- noMenu?: boolean;
20
- };
21
- export declare const Screen: FC<ScreenProps>;
22
- //# sourceMappingURL=screen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/bootstrap/screen.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAQ,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAEpB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAsHjC,CAAC"}
@@ -1,80 +0,0 @@
1
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { memo } from "react";
3
- import { Navbar, Nav, Stack, Button } from "react-bootstrap";
4
- import { useBreakpoint } from "./responsiveHelper.js";
5
- import { AdaptiveContainer } from "./adaptiveContainer.js";
6
- const Screen = memo(function Screen2({
7
- backBtn,
8
- backCb,
9
- backIcon,
10
- forwardBtn,
11
- forwardIcon,
12
- forwardCb,
13
- footer,
14
- menu,
15
- header,
16
- children,
17
- noContentPadding = false,
18
- contentClassName = "",
19
- title = "",
20
- centerContent = false,
21
- noHeader = false,
22
- noFooter = false,
23
- noMenu = false
24
- // noFolders = false,
25
- }) {
26
- backBtn = backBtn || (backCb ? (
27
- // backCb === true ? () => router.back() : backCb
28
- /* @__PURE__ */ jsx(Button, { onClick: backCb, variant: "nav", children: /* @__PURE__ */ jsxs(Fragment, { children: [
29
- /* @__PURE__ */ jsx("span", { className: backIcon || "bi-chevron-left icon-thick" }),
30
- /* @__PURE__ */ jsx("span", { className: "d-none d-lg-inline ms-2", children: "Back" })
31
- ] }) })
32
- ) : null);
33
- forwardBtn = forwardBtn || (forwardCb ? /* @__PURE__ */ jsx(Button, { onClick: forwardCb, children: forwardIcon ? /* @__PURE__ */ jsx("span", { className: forwardIcon }) : "Next" }) : null);
34
- const { isMobile, isDesktop } = useBreakpoint();
35
- return /* @__PURE__ */ jsxs("div", { className: `d-flex flex-column flex-grow-1 flex-lg-grow-0 ${isMobile ? "vh-100" : ""}`, "data-id": "screen", children: [
36
- !noHeader && /* @__PURE__ */ jsxs("header", { className: isDesktop ? "" : "shadow-sm border-bottom", "data-id": "header", children: [
37
- isDesktop && !noMenu && menu,
38
- title && // (isDesktop ? 'border-bottom' : '')
39
- /* @__PURE__ */ jsx(Navbar, { expand: true, className: "main-nav", children: /* @__PURE__ */ jsxs(AdaptiveContainer, { className: "gap-2", children: [
40
- backBtn && /* @__PURE__ */ jsx(Nav, { className: "hstack gap-3", children: backBtn }),
41
- /* @__PURE__ */ jsx(Navbar.Brand, { className: "me-auto", children: title }),
42
- forwardBtn && /* @__PURE__ */ jsx(Nav, { className: "hstack gap-3", children: forwardBtn })
43
- ] }) }),
44
- header
45
- ] }),
46
- /* @__PURE__ */ jsxs(
47
- AdaptiveContainer,
48
- {
49
- as: "main",
50
- className: [
51
- isMobile ? "overflow-y-auto overflow-x-hidden" : "gap-3",
52
- `flex-grow-1 d-flex flex-column`,
53
- centerContent ? "align-items-center justify-content-center" : "justify-content-start",
54
- contentClassName,
55
- noContentPadding ? "p-0" : "py-3"
56
- ].filter(Boolean).join(" "),
57
- "data-id": "content",
58
- children: [
59
- children,
60
- isDesktop && !noFooter && /* @__PURE__ */ jsxs(Fragment, { children: [
61
- footer,
62
- (forwardBtn || backBtn) && // Navbar screws up the popper
63
- /* @__PURE__ */ jsxs(Stack, { gap: 3, direction: "horizontal", children: [
64
- backBtn && /* @__PURE__ */ jsx(Nav, { className: "hstack gap-3", children: backBtn }),
65
- forwardBtn && /* @__PURE__ */ jsx(Nav, { className: "hstack gap-3 flex-grow-1", children: forwardBtn })
66
- ] })
67
- ] })
68
- ]
69
- }
70
- ),
71
- !noMenu && !noFooter && /* @__PURE__ */ jsxs("footer", { className: "shadow-lg border-top d-block d-lg-none", "data-id": "footer", children: [
72
- !noFooter && footer,
73
- !noMenu && menu
74
- ] })
75
- ] });
76
- });
77
- export {
78
- Screen
79
- };
80
- //# sourceMappingURL=screen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen.js","sources":["../../src/bootstrap/screen.tsx"],"sourcesContent":["import React, { FC, memo } from 'react';\nimport { Button, Navbar, Nav, Stack } from 'react-bootstrap';\nimport { useBreakpoint } from './responsiveHelper';\nimport { AdaptiveContainer } from './adaptiveContainer';\n\nexport type ScreenProps = {\n backBtn?: any;\n backCb?: any;\n backIcon?: any;\n forwardBtn?: any;\n forwardIcon?: any;\n forwardCb?: any;\n children: any;\n contentClassName?: string;\n noContentPadding?: boolean;\n header?: any; // resides on top panel in mobile, does not scroll, before content on desktop\n footer?: any; // resides on bottom menu panel in mobile, does not scroll, or after content on desktop\n menu?: any;\n title?: any;\n centerContent?: boolean;\n noHeader?: boolean;\n noFooter?: boolean;\n noMenu?: boolean;\n // noFolders?: boolean;\n};\n\n//TODO Footer -> menu\nexport const Screen: FC<ScreenProps> = memo(function Screen({\n backBtn,\n backCb,\n backIcon,\n forwardBtn,\n forwardIcon,\n forwardCb,\n footer,\n menu,\n header,\n children,\n noContentPadding = false,\n contentClassName = '',\n title = '',\n centerContent = false,\n noHeader = false,\n noFooter = false,\n noMenu = false,\n // noFolders = false,\n}) {\n // const router = useRouter();\n\n backBtn =\n backBtn ||\n (backCb ? (\n // backCb === true ? () => router.back() : backCb\n <Button onClick={backCb} variant=\"nav\">\n {\n <>\n <span className={backIcon || 'bi-chevron-left icon-thick'} />\n <span className=\"d-none d-lg-inline ms-2\">Back</span>\n </>\n }\n </Button>\n ) : null);\n\n forwardBtn =\n forwardBtn ||\n (forwardCb ? (\n <Button onClick={forwardCb}>{forwardIcon ? <span className={forwardIcon}></span> : 'Next'}</Button>\n ) : null);\n\n const { isMobile, isDesktop } = useBreakpoint();\n\n // useLoadingTimeout(1000); // less jerky UI\n\n return (\n <div className={`d-flex flex-column flex-grow-1 flex-lg-grow-0 ${isMobile ? 'vh-100' : ''}`} data-id=\"screen\">\n {/* HEADER */}\n\n {/* FIXME postition fixed does not assign z-index automatically https://getbootstrap.com/docs/4.0/layout/overview/#z-index*/}\n {!noHeader && (\n <header className={isDesktop ? '' : 'shadow-sm border-bottom'} data-id=\"header\">\n {/* {!noFolders && <FolderBar />} */}\n\n {/* {isDesktop && !noFooter && <Footer />} */}\n {isDesktop && !noMenu && menu}\n\n {title && (\n // (isDesktop ? 'border-bottom' : '')\n <Navbar expand className=\"main-nav\">\n <AdaptiveContainer className=\"gap-2\">\n {backBtn && <Nav className=\"hstack gap-3\">{backBtn}</Nav>}\n <Navbar.Brand className=\"me-auto\">{title}</Navbar.Brand>\n {forwardBtn && <Nav className=\"hstack gap-3\">{forwardBtn}</Nav>}\n </AdaptiveContainer>\n </Navbar>\n )}\n\n {header}\n </header>\n )}\n\n {/* CONTENT */}\n\n <AdaptiveContainer\n as=\"main\"\n className={[\n isMobile ? 'overflow-y-auto overflow-x-hidden' : 'gap-3',\n `flex-grow-1 d-flex flex-column`,\n centerContent ? 'align-items-center justify-content-center' : 'justify-content-start',\n contentClassName,\n noContentPadding ? 'p-0' : 'py-3',\n ]\n .filter(Boolean)\n .join(' ')}\n data-id=\"content\"\n >\n {children}\n\n {/* Repeat screen buttons at the bottom on desktop */}\n {isDesktop && !noFooter && (\n <>\n {footer}\n\n {/* TODO Possibly introduce a prop desktopFooterBeforeButtons */}\n {(forwardBtn || backBtn) && (\n // Navbar screws up the popper\n <Stack gap={3} direction=\"horizontal\">\n {/* No container since already in container */}\n {backBtn && <Nav className=\"hstack gap-3\">{backBtn}</Nav>}\n {forwardBtn && <Nav className=\"hstack gap-3 flex-grow-1\">{forwardBtn}</Nav>}\n </Stack>\n )}\n </>\n )}\n </AdaptiveContainer>\n\n {/* FOOTER */}\n\n {!noMenu && !noFooter && (\n <footer className=\"shadow-lg border-top d-block d-lg-none\" data-id=\"footer\">\n {!noFooter && footer}\n {!noMenu && menu}\n </footer>\n )}\n </div>\n );\n});\n"],"names":["Screen"],"mappings":";;;;;AA2Ba,MAAA,SAA0B,KAAK,SAASA,QAAO;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,WAAW;AAAA,EACX,SAAS;AAAA;AAEb,GAAG;AAGC,YACI,YACC;AAAA;AAAA,wBAEI,QAAO,EAAA,SAAS,QAAQ,SAAQ,OAEzB,UACI,qBAAA,UAAA,EAAA,UAAA;AAAA,MAAC,oBAAA,QAAA,EAAK,WAAW,YAAY,6BAA8B,CAAA;AAAA,MAC1D,oBAAA,QAAA,EAAK,WAAU,2BAA0B,UAAI,OAAA,CAAA;AAAA,IAAA,EAAA,CAClD,EAER,CAAA;AAAA,MACA;AAER,eACI,eACC,YACI,oBAAA,QAAA,EAAO,SAAS,WAAY,UAAc,cAAA,oBAAC,QAAK,EAAA,WAAW,YAAa,CAAA,IAAU,QAAO,IAC1F;AAER,QAAM,EAAE,UAAU,UAAU,IAAI,cAAc;AAK1C,SAAA,qBAAC,SAAI,WAAW,iDAAiD,WAAW,WAAW,EAAE,IAAI,WAAQ,UAIhG,UAAA;AAAA,IAAC,CAAA,iCACG,UAAO,EAAA,WAAW,YAAY,KAAK,2BAA2B,WAAQ,UAIlE,UAAA;AAAA,MAAA,aAAa,CAAC,UAAU;AAAA,MAExB;AAAA,MAEG,oBAAC,UAAO,QAAM,MAAC,WAAU,YACrB,UAAA,qBAAC,mBAAkB,EAAA,WAAU,SACxB,UAAA;AAAA,QAAA,WAAY,oBAAA,KAAA,EAAI,WAAU,gBAAgB,UAAQ,SAAA;AAAA,4BAClD,OAAO,OAAP,EAAa,WAAU,WAAW,UAAM,OAAA;AAAA,QACxC,cAAc,oBAAC,KAAI,EAAA,WAAU,gBAAgB,UAAW,WAAA,CAAA;AAAA,MAAA,EAAA,CAC7D,EACJ,CAAA;AAAA,MAGH;AAAA,IAAA,GACL;AAAA,IAKJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,IAAG;AAAA,QACH,WAAW;AAAA,UACP,WAAW,sCAAsC;AAAA,UACjD;AAAA,UACA,gBAAgB,8CAA8C;AAAA,UAC9D;AAAA,UACA,mBAAmB,QAAQ;AAAA,QAE1B,EAAA,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QACb,WAAQ;AAAA,QAEP,UAAA;AAAA,UAAA;AAAA,UAGA,aAAa,CAAC,YAEN,qBAAA,UAAA,EAAA,UAAA;AAAA,YAAA;AAAA,aAGC,cAAc;AAAA,YAEX,qBAAA,OAAA,EAAM,KAAK,GAAG,WAAU,cAEpB,UAAA;AAAA,cAAA,WAAY,oBAAA,KAAA,EAAI,WAAU,gBAAgB,UAAQ,SAAA;AAAA,cAClD,cAAc,oBAAC,KAAI,EAAA,WAAU,4BAA4B,UAAW,WAAA,CAAA;AAAA,YAAA,EACzE,CAAA;AAAA,UAAA,EAER,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAER;AAAA,IAIC,CAAC,UAAU,CAAC,iCACR,UAAO,EAAA,WAAU,0CAAyC,WAAQ,UAC9D,UAAA;AAAA,MAAA,CAAC,YAAY;AAAA,MACb,CAAC,UAAU;AAAA,IAAA,EAChB,CAAA;AAAA,EAAA,GAER;AAER,CAAC;"}
@@ -1,14 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { Screen } from './screen';
3
- declare const meta: Meta<typeof Screen>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const Default: Story;
7
- export declare const LongContent: Story;
8
- export declare const Loader: Story;
9
- export declare const Centered: Story;
10
- export declare const ForwardCb: Story;
11
- export declare const ForwardIcon: Story;
12
- export declare const ForwardBtn: Story;
13
- export declare const HeaderForm: Story;
14
- //# sourceMappingURL=screen.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"screen.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/screen.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA2ClC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CA8B7B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAcpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAgBxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAaxB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { FC } from 'react';
2
- import { ToastProps } from 'react-bootstrap';
3
- export type ToasterProps = {
4
- toast: string | {
5
- message: string;
6
- title?: string;
7
- variant?: 'dark' | 'success' | 'danger';
8
- };
9
- } & ToastProps;
10
- export declare const Toaster: FC<ToasterProps>;
11
- //# sourceMappingURL=toaster.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../src/bootstrap/toaster.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAY,EAAE,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAS,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;KAAE,CAAC;CAChG,GAAG,UAAU,CAAC;AAEf,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CA6BpC,CAAC"}
@@ -1,34 +0,0 @@
1
- "use client";
2
- import { jsxs, jsx } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import { Toast } from "react-bootstrap";
5
- const Toaster = function Toaster2({ toast }) {
6
- const [dismissed, setDismissed] = useState(false);
7
- const msg = typeof toast === "string" ? toast : toast == null ? void 0 : toast.message;
8
- const variant = typeof toast === "string" ? "" : toast == null ? void 0 : toast.variant;
9
- return /* @__PURE__ */ jsxs(
10
- Toast,
11
- {
12
- onClose: () => setDismissed(true),
13
- show: !dismissed,
14
- delay: 1e4,
15
- autohide: true,
16
- bg: variant == null ? void 0 : variant.toLowerCase(),
17
- className: "position-fixed top-50 right-50 min-w-200px z-3",
18
- children: [
19
- /* @__PURE__ */ jsx(Toast.Header, { children: /* @__PURE__ */ jsx("strong", { className: "me-auto", children: "Notification" }) }),
20
- /* @__PURE__ */ jsx(
21
- Toast.Body,
22
- {
23
- className: ["dark", "success", "danger"].includes(variant == null ? void 0 : variant.toLowerCase()) ? "text-white" : "",
24
- children: msg
25
- }
26
- )
27
- ]
28
- }
29
- );
30
- };
31
- export {
32
- Toaster
33
- };
34
- //# sourceMappingURL=toaster.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster.js","sources":["../../src/bootstrap/toaster.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState, FC } from 'react';\nimport { Toast, ToastProps } from 'react-bootstrap';\n// import { useToaster } from '../redux/toasterSlice';\n\nexport type ToasterProps = {\n toast: string | { message: string; title?: string; variant?: 'dark' | 'success' | 'danger' };\n} & ToastProps;\n\nexport const Toaster: FC<ToasterProps> = function Toaster({ toast }) {\n //const { toast, setToast } = useToaster();\n const [dismissed, setDismissed] = useState(false);\n\n const msg = typeof toast === 'string' ? toast : toast?.message;\n // const title = typeof toast === 'string' ? 'Notification' : toast?.title;\n const variant = typeof toast === 'string' ? '' : toast?.variant;\n\n return (\n <Toast\n onClose={() => setDismissed(true)}\n show={!dismissed}\n delay={10000}\n autohide\n bg={variant?.toLowerCase()}\n className=\"position-fixed top-50 right-50 min-w-200px z-3\"\n >\n <Toast.Header>\n <strong className=\"me-auto\">Notification</strong>\n </Toast.Header>\n <Toast.Body\n className={\n ['dark', 'success', 'danger'].includes((variant as string)?.toLowerCase()) ? 'text-white' : ''\n }\n >\n {msg}\n </Toast.Body>\n </Toast>\n );\n};\n"],"names":["Toaster"],"mappings":";;;;AAUO,MAAM,UAA4B,SAASA,SAAQ,EAAE,SAAS;AAEjE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,MAAM,OAAO,UAAU,WAAW,QAAQ,+BAAO;AAEvD,QAAM,UAAU,OAAO,UAAU,WAAW,KAAK,+BAAO;AAGpD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,SAAS,MAAM,aAAa,IAAI;AAAA,MAChC,MAAM,CAAC;AAAA,MACP,OAAO;AAAA,MACP,UAAQ;AAAA,MACR,IAAI,mCAAS;AAAA,MACb,WAAU;AAAA,MAEV,UAAA;AAAA,QAAC,oBAAA,MAAM,QAAN,EACG,UAAA,oBAAC,YAAO,WAAU,WAAU,0BAAY,EAC5C,CAAA;AAAA,QACA;AAAA,UAAC,MAAM;AAAA,UAAN;AAAA,YACG,WACI,CAAC,QAAQ,WAAW,QAAQ,EAAE,SAAU,mCAAoB,aAAa,IAAI,eAAe;AAAA,YAG/F,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACL;AAAA,IAAA;AAAA,EACJ;AAER;"}
@@ -1,8 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react';
2
- import { Toaster } from './toaster';
3
- declare const meta: Meta<typeof Toaster>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const Default: Story;
7
- export declare const Object: Story;
8
- //# sourceMappingURL=toaster.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toaster.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/toaster.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAS9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC"}
@@ -1,23 +0,0 @@
1
- import { FC } from 'react';
2
- import { ModalProps, OffcanvasProps } from 'react-bootstrap';
3
- export type UseModalArgs = {
4
- onClose?: any;
5
- showOnMount?: boolean;
6
- };
7
- export type UseModalProps = {
8
- children?: any;
9
- show?: boolean;
10
- onSubmit?: (e: any) => void;
11
- submitButton?: string | any;
12
- cancelButton?: string | any;
13
- offcanvas?: boolean;
14
- title?: string | any;
15
- containerProps?: ModalProps | OffcanvasProps;
16
- };
17
- export declare function useModal({ onClose, showOnMount }?: UseModalArgs): {
18
- show: boolean | undefined;
19
- close: () => void;
20
- open: () => void;
21
- ModalDialog: FC<ModalProps>;
22
- };
23
- //# sourceMappingURL=useModal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useModal.d.ts","sourceRoot":"","sources":["../../src/bootstrap/useModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuC,EAAE,EAAQ,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAiB,UAAU,EAAa,cAAc,EAAS,MAAM,iBAAiB,CAAC;AAE9F,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;CAChD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,GAAE,YAAiB,GAAG;IACnE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;CAC/B,CAuEA"}
@@ -1,50 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useState, useCallback, useMemo, memo } from "react";
3
- import { Offcanvas, Modal, Stack, Button } from "react-bootstrap";
4
- function useModal({ onClose, showOnMount } = {}) {
5
- const [show, setShow] = useState(showOnMount);
6
- const close = useCallback(() => {
7
- setShow(false);
8
- onClose == null ? void 0 : onClose();
9
- }, [onClose]);
10
- const open = useCallback(() => setShow(true), []);
11
- const defaultOnSubmit = useCallback(
12
- (e) => {
13
- e.preventDefault();
14
- close();
15
- },
16
- [close]
17
- );
18
- const ModalDialog = useMemo(
19
- () => memo(function ModalDialog2({
20
- children,
21
- show: show2,
22
- onSubmit = defaultOnSubmit,
23
- submitButton = "Done",
24
- cancelButton = "Cancel",
25
- offcanvas = false,
26
- title = null,
27
- containerProps = {}
28
- }) {
29
- const Container = offcanvas ? Offcanvas : Modal;
30
- const containerDefaultProps = offcanvas ? { style: { maxWidth: "85%" } } : {};
31
- const Body = offcanvas ? Offcanvas.Body : Modal.Body;
32
- const Header = offcanvas ? Offcanvas.Header : Modal.Header;
33
- const Title = offcanvas ? Offcanvas.Title : Modal.Title;
34
- return /* @__PURE__ */ jsx(Container, { ...{ ...containerDefaultProps, ...containerProps }, show: show2, onHide: close, children: /* @__PURE__ */ jsxs("form", { onSubmit, children: [
35
- title && /* @__PURE__ */ jsx(Header, { closeButton: true, children: /* @__PURE__ */ jsx(Title, { children: title }) }),
36
- /* @__PURE__ */ jsx(Body, { as: Stack, gap: 3, children: show2 && children }),
37
- !offcanvas && (submitButton || cancelButton) && /* @__PURE__ */ jsxs(Modal.Footer, { children: [
38
- cancelButton && /* @__PURE__ */ jsx(Button, { variant: "outline-secondary", onClick: close, children: cancelButton }),
39
- submitButton && /* @__PURE__ */ jsx(Button, { variant: "secondary", type: "submit", children: submitButton })
40
- ] })
41
- ] }) });
42
- }),
43
- [close, defaultOnSubmit]
44
- );
45
- return { show, close, open, ModalDialog };
46
- }
47
- export {
48
- useModal
49
- };
50
- //# sourceMappingURL=useModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useModal.js","sources":["../../src/bootstrap/useModal.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState, JSX, FC, memo } from 'react';\nimport { Button, Modal, ModalProps, Offcanvas, OffcanvasProps, Stack } from 'react-bootstrap';\n\nexport type UseModalArgs = { onClose?: any; showOnMount?: boolean };\n\nexport type UseModalProps = {\n children?: any;\n show?: boolean;\n onSubmit?: (e: any) => void;\n submitButton?: string | any;\n cancelButton?: string | any;\n offcanvas?: boolean;\n title?: string | any;\n containerProps?: ModalProps | OffcanvasProps;\n};\n\nexport function useModal({ onClose, showOnMount }: UseModalArgs = {}): {\n show: boolean | undefined;\n close: () => void;\n open: () => void;\n ModalDialog: FC<ModalProps>;\n} {\n const [show, setShow] = useState(showOnMount);\n\n const close = useCallback((): void => {\n setShow(false);\n onClose?.();\n }, [onClose]);\n\n const open = useCallback((): void => setShow(true), []);\n\n const defaultOnSubmit = useCallback(\n (e: any) => {\n e.preventDefault();\n close();\n },\n [close],\n );\n\n const ModalDialog = useMemo(\n () =>\n memo(function ModalDialog({\n children,\n show,\n onSubmit = defaultOnSubmit,\n submitButton = 'Done',\n cancelButton = 'Cancel',\n offcanvas = false,\n title = null as any,\n containerProps = {},\n }: ModalProps) {\n const Container = offcanvas ? Offcanvas : Modal;\n const containerDefaultProps = offcanvas ? { style: { maxWidth: '85%' } } : {};\n const Body = offcanvas ? Offcanvas.Body : Modal.Body;\n const Header = offcanvas ? Offcanvas.Header : Modal.Header;\n const Title = offcanvas ? Offcanvas.Title : Modal.Title;\n\n return (\n <Container {...{ ...containerDefaultProps, ...containerProps }} show={show} onHide={close}>\n <form onSubmit={onSubmit}>\n {title && (\n <Header closeButton>\n <Title>{title}</Title>\n </Header>\n )}\n\n <Body as={Stack} gap={3}>\n {show && children}\n </Body>\n\n {!offcanvas && (submitButton || cancelButton) && (\n <Modal.Footer>\n {cancelButton && (\n <Button variant=\"outline-secondary\" onClick={close}>\n {cancelButton}\n </Button>\n )}\n {submitButton && (\n <Button variant=\"secondary\" type=\"submit\">\n {submitButton}\n </Button>\n )}\n </Modal.Footer>\n )}\n </form>\n </Container>\n );\n }),\n [close, defaultOnSubmit],\n );\n\n return { show, close, open, ModalDialog };\n}\n"],"names":["ModalDialog","show"],"mappings":";;;AAgBO,SAAS,SAAS,EAAE,SAAS,YAAY,IAAkB,CAAA,GAKhE;AACE,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,WAAW;AAEtC,QAAA,QAAQ,YAAY,MAAY;AAClC,YAAQ,KAAK;AACH;AAAA,EAAA,GACX,CAAC,OAAO,CAAC;AAEZ,QAAM,OAAO,YAAY,MAAY,QAAQ,IAAI,GAAG,CAAA,CAAE;AAEtD,QAAM,kBAAkB;AAAA,IACpB,CAAC,MAAW;AACR,QAAE,eAAe;AACX,YAAA;AAAA,IACV;AAAA,IACA,CAAC,KAAK;AAAA,EACV;AAEA,QAAM,cAAc;AAAA,IAChB,MACI,KAAK,SAASA,aAAY;AAAA,MACtB;AAAA,MACA,MAAAC;AAAAA,MACA,WAAW;AAAA,MACX,eAAe;AAAA,MACf,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,iBAAiB,CAAA;AAAA,IAAC,GACP;AACL,YAAA,YAAY,YAAY,YAAY;AACpC,YAAA,wBAAwB,YAAY,EAAE,OAAO,EAAE,UAAU,MAAQ,EAAA,IAAI,CAAC;AAC5E,YAAM,OAAO,YAAY,UAAU,OAAO,MAAM;AAChD,YAAM,SAAS,YAAY,UAAU,SAAS,MAAM;AACpD,YAAM,QAAQ,YAAY,UAAU,QAAQ,MAAM;AAElD,aACK,oBAAA,WAAA,EAAW,GAAG,EAAE,GAAG,uBAAuB,GAAG,kBAAkB,MAAMA,OAAM,QAAQ,OAChF,UAAA,qBAAC,UAAK,UACD,UAAA;AAAA,QAAA,6BACI,QAAO,EAAA,aAAW,MACf,UAAC,oBAAA,OAAA,EAAO,iBAAM,EAClB,CAAA;AAAA,QAGJ,oBAAC,QAAK,IAAI,OAAO,KAAK,GACjB,UAAAA,SAAQ,UACb;AAAA,QAEC,CAAC,cAAc,gBAAgB,iBAC3B,qBAAA,MAAM,QAAN,EACI,UAAA;AAAA,UAAA,oCACI,QAAO,EAAA,SAAQ,qBAAoB,SAAS,OACxC,UACL,cAAA;AAAA,UAEH,gBACI,oBAAA,QAAA,EAAO,SAAQ,aAAY,MAAK,UAC5B,UACL,aAAA,CAAA;AAAA,QAAA,EAER,CAAA;AAAA,MAAA,EAAA,CAER,EACJ,CAAA;AAAA,IAAA,CAEP;AAAA,IACL,CAAC,OAAO,eAAe;AAAA,EAC3B;AAEA,SAAO,EAAE,MAAM,OAAO,MAAM,YAAY;AAC5C;"}
@@ -1,9 +0,0 @@
1
- import { FC } from 'react';
2
- import { Meta, StoryObj } from '@storybook/react';
3
- import { UseModalProps } from './useModal';
4
- declare const meta: Meta<FC<UseModalProps>>;
5
- export default meta;
6
- type Story = StoryObj<typeof meta>;
7
- export declare const Default: Story;
8
- export declare const Offcanvas: Story;
9
- //# sourceMappingURL=useModal.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useModal.stories.d.ts","sourceRoot":"","sources":["../../src/bootstrap/useModal.stories.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAIrD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CA8BjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC"}
@@ -1,14 +0,0 @@
1
- import { useForm, FormState } from 'react-hook-form';
2
- export declare const isFormLoading: (formState: FormState<any>) => boolean;
3
- export declare const useWrappedForm: typeof useForm;
4
- /**
5
- * Issue #3: Submit event still propagates to parent when using portal
6
- * https://reactjs.org/docs/portals.html#event-bubbling-through-portals
7
- * Event bubbling goes through React DOM instead of HTML DOM
8
- * Portals don't have an effect on this one, we need to stop event propagation
9
- * This should be our default form handling method
10
- * https://codesandbox.io/s/react-hook-form-nested-portal-6x3fvy?file=/src/App.tsx:1905-2261
11
- * https://github.com/react-hook-form/react-hook-form/issues/1005#issuecomment-988380981
12
- */
13
- export declare const stopPropagation: (callback: any) => (e: Event) => void;
14
- //# sourceMappingURL=useWrappedForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWrappedForm.d.ts","sourceRoot":"","sources":["../../src/bootstrap/useWrappedForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGrD,eAAO,MAAM,aAAa,cAAe,SAAS,CAAC,GAAG,CAAC,KAAG,OAAwD,CAAC;AAEnH,eAAO,MAAM,cAAc,EAAE,OAAO,OAmBnC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,aACb,GAAG,SACV,KAAK,KAAG,IAIX,CAAC"}
@@ -1,32 +0,0 @@
1
- import { useForm } from "react-hook-form";
2
- import { useCallback } from "react";
3
- const isFormLoading = (formState) => formState.isLoading || formState.isSubmitting;
4
- const useWrappedForm = (options) => {
5
- const form = useForm(options);
6
- const handleSubmit = useCallback(
7
- (onSubmit, onError) => {
8
- const wrappedSubmit = async (data) => {
9
- try {
10
- await onSubmit(data);
11
- } catch (e) {
12
- form.setError("root", { type: "server", message: e.message });
13
- console.error("Error submitting form", e);
14
- }
15
- };
16
- return form.handleSubmit(wrappedSubmit, onError);
17
- },
18
- [form]
19
- );
20
- return { ...form, handleSubmit };
21
- };
22
- const stopPropagation = (callback) => (e) => {
23
- e.stopPropagation();
24
- e.preventDefault();
25
- callback(e);
26
- };
27
- export {
28
- isFormLoading,
29
- stopPropagation,
30
- useWrappedForm
31
- };
32
- //# sourceMappingURL=useWrappedForm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWrappedForm.js","sources":["../../src/bootstrap/useWrappedForm.ts"],"sourcesContent":["import { useForm, FormState } from 'react-hook-form';\nimport { useCallback } from 'react';\n\nexport const isFormLoading = (formState: FormState<any>): boolean => formState.isLoading || formState.isSubmitting;\n\nexport const useWrappedForm: typeof useForm = (options) => {\n const form = useForm(options);\n\n const handleSubmit: typeof form.handleSubmit = useCallback(\n (onSubmit, onError) => {\n const wrappedSubmit: typeof onSubmit = async (data) => {\n try {\n await onSubmit(data);\n } catch (e) {\n form.setError('root', { type: 'server', message: (e as Error).message });\n console.error('Error submitting form', e);\n }\n };\n return form.handleSubmit(wrappedSubmit, onError);\n },\n [form],\n );\n\n return { ...form, handleSubmit };\n};\n\n/**\n * Issue #3: Submit event still propagates to parent when using portal\n * https://reactjs.org/docs/portals.html#event-bubbling-through-portals\n * Event bubbling goes through React DOM instead of HTML DOM\n * Portals don't have an effect on this one, we need to stop event propagation\n * This should be our default form handling method\n * https://codesandbox.io/s/react-hook-form-nested-portal-6x3fvy?file=/src/App.tsx:1905-2261\n * https://github.com/react-hook-form/react-hook-form/issues/1005#issuecomment-988380981\n */\nexport const stopPropagation =\n (callback: any) =>\n (e: Event): void => {\n e.stopPropagation();\n e.preventDefault();\n callback(e);\n };\n"],"names":[],"mappings":";;AAGO,MAAM,gBAAgB,CAAC,cAAuC,UAAU,aAAa,UAAU;AAEzF,MAAA,iBAAiC,CAAC,YAAY;AACjD,QAAA,OAAO,QAAQ,OAAO;AAE5B,QAAM,eAAyC;AAAA,IAC3C,CAAC,UAAU,YAAY;AACb,YAAA,gBAAiC,OAAO,SAAS;AAC/C,YAAA;AACA,gBAAM,SAAS,IAAI;AAAA,iBACd,GAAG;AACH,eAAA,SAAS,QAAQ,EAAE,MAAM,UAAU,SAAU,EAAY,SAAS;AAC/D,kBAAA,MAAM,yBAAyB,CAAC;AAAA,QAAA;AAAA,MAEhD;AACO,aAAA,KAAK,aAAa,eAAe,OAAO;AAAA,IACnD;AAAA,IACA,CAAC,IAAI;AAAA,EACT;AAEO,SAAA,EAAE,GAAG,MAAM,aAAa;AACnC;AAWO,MAAM,kBACT,CAAC,aACD,CAAC,MAAmB;AAChB,IAAE,gBAAgB;AAClB,IAAE,eAAe;AACjB,WAAS,CAAC;AACd;"}