@kirill.konshin/utils 0.0.12 → 0.0.14

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.
@@ -1,12 +1,12 @@
1
1
  vite v6.0.11 building SSR bundle for production...
2
2
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/bootstrap
3
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
3
4
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
4
5
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron-builder
5
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
6
6
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
7
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
8
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
7
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
8
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
10
10
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
11
11
  transforming...
12
12
  ✓ 50 modules transformed.
@@ -22,24 +22,24 @@ rendering chunks...
22
22
  dist/next/index.js 0.34 kB │ map: 0.10 kB
23
23
  dist/core/errors.js 0.35 kB │ map: 0.86 kB
24
24
  dist/tailwind/fullpage.js 0.35 kB │ map: 0.61 kB
25
- dist/next/useIsInner.js 0.36 kB │ map: 0.62 kB
25
+ dist/next/useIsInner.js 0.37 kB │ map: 0.62 kB
26
26
  dist/next/measure.js 0.38 kB │ map: 0.55 kB
27
27
  dist/mui/formLabelLegend.js 0.38 kB │ map: 0.67 kB
28
28
  dist/bootstrap/adaptiveContainer.js 0.40 kB │ map: 0.66 kB
29
29
  dist/bootstrap/globalLoading.js 0.43 kB │ map: 0.82 kB
30
- dist/next/noSSR.js 0.44 kB │ map: 0.89 kB
30
+ dist/next/noSSR.js 0.45 kB │ map: 0.89 kB
31
31
  dist/react-native/useAppState.js 0.47 kB │ map: 0.84 kB
32
32
  dist/react/index.js 0.48 kB │ map: 0.09 kB
33
33
  dist/mui/genericControl.js 0.50 kB │ map: 1.02 kB
34
34
  dist/bootstrap/loading.js 0.54 kB │ map: 1.01 kB
35
35
  dist/core/index.js 0.56 kB │ map: 0.09 kB
36
- dist/react/useFetch.js 0.56 kB │ map: 1.70 kB
36
+ dist/react/useFetch.js 0.57 kB │ map: 1.70 kB
37
37
  dist/mui/formControlFieldset.js 0.64 kB │ map: 1.23 kB
38
- dist/next/appLink.js 0.75 kB │ map: 1.58 kB
39
38
  dist/core/mutex.js 0.76 kB │ map: 1.19 kB
40
- dist/bootstrap/error.js 0.78 kB │ map: 1.66 kB
39
+ dist/next/appLink.js 0.77 kB │ map: 1.58 kB
41
40
  dist/bootstrap/field.js 0.79 kB │ map: 1.56 kB
42
- dist/tailwind/responsiveHelper.js 0.82 kB │ map: 1.14 kB
41
+ dist/bootstrap/error.js 0.79 kB │ map: 1.66 kB
42
+ dist/tailwind/responsiveHelper.js 0.84 kB │ map: 1.14 kB
43
43
  dist/react-native/share.js 0.85 kB │ map: 1.75 kB
44
44
  dist/react/apiCall.js 0.85 kB │ map: 1.47 kB
45
45
  dist/bootstrap/useWrappedForm.js 0.90 kB │ map: 2.22 kB
@@ -47,12 +47,12 @@ rendering chunks...
47
47
  dist/electron-builder/images.js 1.02 kB │ map: 1.95 kB
48
48
  dist/react-native/update.js 1.03 kB │ map: 1.97 kB
49
49
  dist/react/useFetcher.js 1.20 kB │ map: 2.47 kB
50
- dist/bootstrap/toaster.js 1.23 kB │ map: 2.08 kB
50
+ dist/bootstrap/toaster.js 1.25 kB │ map: 2.08 kB
51
51
  dist/core/measure.js 1.43 kB │ map: 2.88 kB
52
52
  dist/electron/updater.js 1.44 kB │ map: 2.61 kB
53
53
  dist/bootstrap/footer.js 1.53 kB │ map: 2.57 kB
54
- dist/react/form/client.js 1.56 kB │ map: 3.36 kB
55
- dist/bootstrap/responsiveHelper.js 1.77 kB │ map: 2.87 kB
54
+ dist/react/form/client.js 1.58 kB │ map: 3.36 kB
55
+ dist/bootstrap/responsiveHelper.js 1.78 kB │ map: 2.87 kB
56
56
  dist/bootstrap/useModal.js 2.09 kB │ map: 4.75 kB
57
57
  dist/react/form/form.js 2.57 kB │ map: 5.74 kB
58
58
  dist/bootstrap/controls.js 2.74 kB │ map: 5.81 kB
@@ -61,7 +61,7 @@ rendering chunks...
61
61
  dist/bootstrap/screen.js 3.37 kB │ map: 7.04 kB
62
62
  dist/electron/createWindow.js 5.39 kB │ map: 10.88 kB
63
63
  dist/core/worker.js 7.45 kB │ map: 15.67 kB
64
- [vite:dts] Declaration files built in 5215ms.
64
+ [vite:dts] Declaration files built in 5278ms.
65
65
 
66
- ✓ built in 5.49s
66
+ ✓ built in 5.59s
67
67
  Updated package.json with exports
@@ -1,10 +1,10 @@
1
1
  [?25lcreate succeeded: /home/runner/work/utils/utils/packages/utils/src/bootstrap
2
2
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
3
3
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
4
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
5
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
6
4
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron-builder
5
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
7
6
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
7
+ create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
8
8
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
9
  create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
10
10
 
@@ -20,12 +20,12 @@ create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
20
20
  stdout | src/core/cache.test.ts > TransformerMap > key transform
21
21
  CLEAR cache test
22
22
 
23
- ✓ src/core/cache.test.ts (4 tests) 10ms
23
+ ✓ src/core/cache.test.ts (4 tests) 15ms
24
24
 
25
25
   Test Files  1 passed (1)
26
26
   Tests  4 passed (4)
27
-  Start at  06:02:58
28
-  Duration  873ms (transform 50ms, setup 0ms, collect 45ms, tests 10ms, environment 0ms, prepare 76ms)
27
+  Start at  06:19:05
28
+  Duration  914ms (transform 47ms, setup 0ms, collect 49ms, tests 15ms, environment 0ms, prepare 69ms)
29
29
 
30
30
   % Coverage report from v8
31
31
  -------------------|---------|----------|---------|---------|-------------------
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @kirill.konshin/utils
2
2
 
3
+ ## 0.0.14
4
+
5
+ ### Patch Changes
6
+
7
+ - Preserve directives for Vite
8
+
9
+ ## 0.0.13
10
+
11
+ ### Patch Changes
12
+
13
+ - Exports
14
+
3
15
  ## 0.0.12
4
16
 
5
17
  ### Patch Changes
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs, jsx } from "react/jsx-runtime";
2
3
  import { Alert, Button } from "react-bootstrap";
3
4
  function ErrorAlert({
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sources":["../../src/bootstrap/error.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { Alert, AlertProps, Button, ButtonProps } from 'react-bootstrap';\n\n//TODO Create MUI-specific?\nexport function ErrorAlert({\n onRetry,\n children,\n buttonProps,\n ...props\n}: {\n children?: Error | string | any;\n onRetry?: () => any;\n buttonProps?: ButtonProps;\n}) {\n if (!children) return null;\n\n return (\n <Alert variant=\"danger\" {...props}>\n <div>{children.message || children.toString()}</div>\n {onRetry && (\n <div>\n <Button\n variant=\"link\"\n className=\"alert-link\"\n {...buttonProps}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onRetry();\n }}\n >\n Retry\n </Button>\n </div>\n )}\n </Alert>\n );\n}\n"],"names":[],"mappings":";;AAMO,SAAS,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAIG;AACK,MAAA,CAAC,SAAiB,QAAA;AAEtB,SACK,qBAAA,OAAA,EAAM,SAAQ,UAAU,GAAG,OACxB,UAAA;AAAA,IAAA,oBAAC,OAAK,EAAA,UAAA,SAAS,WAAW,SAAS,YAAW;AAAA,IAC7C,+BACI,OACG,EAAA,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,SAAQ;AAAA,QACR,WAAU;AAAA,QACT,GAAG;AAAA,QACJ,SAAS,CAAC,MAAM;AACZ,YAAE,eAAe;AACjB,YAAE,gBAAgB;AACV,kBAAA;AAAA,QACZ;AAAA,QACH,UAAA;AAAA,MAAA;AAAA,IAAA,EAGL,CAAA;AAAA,EAAA,GAER;AAER;"}
1
+ {"version":3,"file":"error.js","sources":["../../src/bootstrap/error.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport { Alert, AlertProps, Button, ButtonProps } from 'react-bootstrap';\n\n//TODO Create MUI-specific?\nexport function ErrorAlert({\n onRetry,\n children,\n buttonProps,\n ...props\n}: {\n children?: Error | string | any;\n onRetry?: () => any;\n buttonProps?: ButtonProps;\n}) {\n if (!children) return null;\n\n return (\n <Alert variant=\"danger\" {...props}>\n <div>{children.message || children.toString()}</div>\n {onRetry && (\n <div>\n <Button\n variant=\"link\"\n className=\"alert-link\"\n {...buttonProps}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onRetry();\n }}\n >\n Retry\n </Button>\n </div>\n )}\n </Alert>\n );\n}\n"],"names":[],"mappings":";;;AAMO,SAAS,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAIG;AACK,MAAA,CAAC,SAAiB,QAAA;AAEtB,SACK,qBAAA,OAAA,EAAM,SAAQ,UAAU,GAAG,OACxB,UAAA;AAAA,IAAA,oBAAC,OAAK,EAAA,UAAA,SAAS,WAAW,SAAS,YAAW;AAAA,IAC7C,+BACI,OACG,EAAA,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,SAAQ;AAAA,QACR,WAAU;AAAA,QACT,GAAG;AAAA,QACJ,SAAS,CAAC,MAAM;AACZ,YAAE,eAAe;AACjB,YAAE,gBAAgB;AACV,kBAAA;AAAA,QACZ;AAAA,QACH,UAAA;AAAA,MAAA;AAAA,IAAA,EAGL,CAAA;AAAA,EAAA,GAER;AAER;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs, jsx } from "react/jsx-runtime";
2
3
  import React from "react";
3
4
  function useBreakpoint() {
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveHelper.js","sources":["../../src/bootstrap/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport function useBreakpoint() {\n const [breakpoint, setBreakpoint] = React.useState('xs');\n\n React.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 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 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":[],"mappings":";;AAIO,SAAS,gBAAgB;AAC5B,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,IAAI;AAEvD,QAAM,UAAU,MAAM;AAClB,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;AACV,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;AAEO,SAAS,qBAAqB;AACjC,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
+ {"version":3,"file":"responsiveHelper.js","sources":["../../src/bootstrap/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport function useBreakpoint() {\n const [breakpoint, setBreakpoint] = React.useState('xs');\n\n React.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 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 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":[],"mappings":";;;AAIO,SAAS,gBAAgB;AAC5B,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,IAAI;AAEvD,QAAM,UAAU,MAAM;AAClB,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;AACV,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;AAEO,SAAS,qBAAqB;AACjC,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,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs, jsx } from "react/jsx-runtime";
2
3
  import { useState } from "react";
3
4
  import { Toast } from "react-bootstrap";
@@ -1 +1 @@
1
- {"version":3,"file":"toaster.js","sources":["../../src/bootstrap/toaster.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { Toast, ToastProps } from 'react-bootstrap';\n// import { useToaster } from '../redux/toasterSlice';\n\nexport function Toaster({\n toast,\n}: { toast: string | { message: string; title?: string; variant?: 'dark' | 'success' | 'danger' } } & ToastProps) {\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":[],"mappings":";;;AAMO,SAAS,QAAQ;AAAA,EACpB;AACJ,GAAkH;AAE9G,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,MAAM,OAAO,UAAU,WAAW,QAAQ,+BAAO;AACzC,SAAO,UAAU,WAAW,iBAAiB,+BAAO;AAClE,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
+ {"version":3,"file":"toaster.js","sources":["../../src/bootstrap/toaster.tsx"],"sourcesContent":["'use client';\n\nimport React, { useState } from 'react';\nimport { Toast, ToastProps } from 'react-bootstrap';\n// import { useToaster } from '../redux/toasterSlice';\n\nexport function Toaster({\n toast,\n}: { toast: string | { message: string; title?: string; variant?: 'dark' | 'success' | 'danger' } } & ToastProps) {\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":[],"mappings":";;;;AAMO,SAAS,QAAQ;AAAA,EACpB;AACJ,GAAkH;AAE9G,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,MAAM,OAAO,UAAU,WAAW,QAAQ,+BAAO;AACzC,SAAO,UAAU,WAAW,iBAAiB,+BAAO;AAClE,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,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { usePathname } from "next/navigation";
3
4
  import Link from "next/link";
@@ -1 +1 @@
1
- {"version":3,"file":"appLink.js","sources":["../../src/next/appLink.tsx"],"sourcesContent":["'use client';\n\nimport React, { ComponentProps, FC } from 'react';\nimport { usePathname } from 'next/navigation';\nimport Link, { LinkProps } from 'next/link';\nimport clsx from 'clsx';\n\n//TODO Test this\nexport const AppLink: FC<\n {\n children: any;\n exact?: boolean;\n activeClassName?: any;\n } & LinkProps &\n ComponentProps<typeof Link>\n> = function AppLink({\n href,\n children,\n className = '',\n activeClassName = '',\n prefetch = false, // set explicit default\n exact = false,\n ...props\n}) {\n const pathname = usePathname();\n const hrefPath = typeof href === 'string' ? href : href.pathname || '/';\n\n return (\n <Link\n {...props}\n href={href}\n className={clsx(className, {\n [activeClassName]: (!exact && pathname.startsWith(hrefPath)) || (exact && pathname === hrefPath),\n })}\n prefetch={prefetch}\n >\n {children}\n </Link>\n );\n};\n"],"names":["AppLink"],"mappings":";;;;AAQa,MAAA,UAOT,SAASA,SAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,WAAW;AAAA;AAAA,EACX,QAAQ;AAAA,EACR,GAAG;AACP,GAAG;AACC,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,OAAO,SAAS,WAAW,OAAO,KAAK,YAAY;AAGhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAW,KAAK,WAAW;AAAA,QACvB,CAAC,eAAe,GAAI,CAAC,SAAS,SAAS,WAAW,QAAQ,KAAO,SAAS,aAAa;AAAA,MAAA,CAC1F;AAAA,MACD;AAAA,MAEC;AAAA,IAAA;AAAA,EACL;AAER;"}
1
+ {"version":3,"file":"appLink.js","sources":["../../src/next/appLink.tsx"],"sourcesContent":["'use client';\n\nimport React, { ComponentProps, FC } from 'react';\nimport { usePathname } from 'next/navigation';\nimport Link, { LinkProps } from 'next/link';\nimport clsx from 'clsx';\n\n//TODO Test this\nexport const AppLink: FC<\n {\n children: any;\n exact?: boolean;\n activeClassName?: any;\n } & LinkProps &\n ComponentProps<typeof Link>\n> = function AppLink({\n href,\n children,\n className = '',\n activeClassName = '',\n prefetch = false, // set explicit default\n exact = false,\n ...props\n}) {\n const pathname = usePathname();\n const hrefPath = typeof href === 'string' ? href : href.pathname || '/';\n\n return (\n <Link\n {...props}\n href={href}\n className={clsx(className, {\n [activeClassName]: (!exact && pathname.startsWith(hrefPath)) || (exact && pathname === hrefPath),\n })}\n prefetch={prefetch}\n >\n {children}\n </Link>\n );\n};\n"],"names":["AppLink"],"mappings":";;;;;AAQa,MAAA,UAOT,SAASA,SAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,WAAW;AAAA;AAAA,EACX,QAAQ;AAAA,EACR,GAAG;AACP,GAAG;AACC,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,OAAO,SAAS,WAAW,OAAO,KAAK,YAAY;AAGhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA,WAAW,KAAK,WAAW;AAAA,QACvB,CAAC,eAAe,GAAI,CAAC,SAAS,SAAS,WAAW,QAAQ,KAAO,SAAS,aAAa;AAAA,MAAA,CAC1F;AAAA,MACD;AAAA,MAEC;AAAA,IAAA;AAAA,EACL;AAER;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { useState, useLayoutEffect } from "react";
3
4
  const DefaultOnSSR = () => /* @__PURE__ */ jsx("span", {});
@@ -1 +1 @@
1
- {"version":3,"file":"noSSR.js","sources":["../../src/next/noSSR.tsx"],"sourcesContent":["'use client';\n\nimport React, { useLayoutEffect, useState } from 'react';\n\nconst DefaultOnSSR = () => <span />;\n\n// @see https://github.com/kadirahq/react-no-ssr/blob/master/src/index.js\n// @see https://nextjs.org/docs/messages/react-hydration-error#solution-1-using-useeffect-to-run-on-the-client-only\nexport function NoSSR({ children, onSSR = <DefaultOnSSR /> }) {\n const [canRender, setCanRender] = useState(false);\n\n useLayoutEffect(() => {\n setCanRender(true);\n }, []);\n\n return canRender ? children : onSSR;\n}\n"],"names":[],"mappings":";;AAIA,MAAM,eAAe,MAAM,oBAAC,QAAK,EAAA;AAI1B,SAAS,MAAM,EAAE,UAAU,QAAS,oBAAA,cAAA,CAAa,CAAA,KAAM;AAC1D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,kBAAgB,MAAM;AAClB,iBAAa,IAAI;AAAA,EACrB,GAAG,EAAE;AAEL,SAAO,YAAY,WAAW;AAClC;"}
1
+ {"version":3,"file":"noSSR.js","sources":["../../src/next/noSSR.tsx"],"sourcesContent":["'use client';\n\nimport React, { useLayoutEffect, useState } from 'react';\n\nconst DefaultOnSSR = () => <span />;\n\n// @see https://github.com/kadirahq/react-no-ssr/blob/master/src/index.js\n// @see https://nextjs.org/docs/messages/react-hydration-error#solution-1-using-useeffect-to-run-on-the-client-only\nexport function NoSSR({ children, onSSR = <DefaultOnSSR /> }) {\n const [canRender, setCanRender] = useState(false);\n\n useLayoutEffect(() => {\n setCanRender(true);\n }, []);\n\n return canRender ? children : onSSR;\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,eAAe,MAAM,oBAAC,QAAK,EAAA;AAI1B,SAAS,MAAM,EAAE,UAAU,QAAS,oBAAA,cAAA,CAAa,CAAA,KAAM;AAC1D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,kBAAgB,MAAM;AAClB,iBAAa,IAAI;AAAA,EACrB,GAAG,EAAE;AAEL,SAAO,YAAY,WAAW;AAClC;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useSelectedLayoutSegments } from "next/navigation";
2
3
  const useIsInner = () => {
3
4
  const pathname = useSelectedLayoutSegments();
@@ -1 +1 @@
1
- {"version":3,"file":"useIsInner.js","sources":["../../src/next/useIsInner.ts"],"sourcesContent":["'use client';\n\nimport { useSelectedLayoutSegments } from 'next/navigation';\n\nexport const useIsInner = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length > 0;\n};\n\nexport const useIsIndex = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length === 0;\n};\n"],"names":[],"mappings":";AAIO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,SAAS;AAC7B;AAEO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,WAAW;AAC/B;"}
1
+ {"version":3,"file":"useIsInner.js","sources":["../../src/next/useIsInner.ts"],"sourcesContent":["'use client';\n\nimport { useSelectedLayoutSegments } from 'next/navigation';\n\nexport const useIsInner = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length > 0;\n};\n\nexport const useIsIndex = (): boolean => {\n const pathname = useSelectedLayoutSegments();\n return pathname.length === 0;\n};\n"],"names":[],"mappings":";;AAIO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,SAAS;AAC7B;AAEO,MAAM,aAAa,MAAe;AACrC,QAAM,WAAW,0BAA0B;AAC3C,SAAO,SAAS,WAAW;AAC/B;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useActionState, useTransition, useState, useCallback } from "react";
2
3
  import { create } from "./form.js";
3
4
  const FORM_DEBUG = process.env.NEXT_PUBLIC_FORM_DEBUG === "true";
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../../../src/react/form/client.tsx"],"sourcesContent":["'use client';\n\nimport { useActionState, useCallback, useState, useTransition } from 'react';\nimport { create, MaybeTypeOf, Validation } from './form';\nimport { z } from 'zod';\n\nconst FORM_DEBUG = process.env.NEXT_PUBLIC_FORM_DEBUG === 'true';\n\nexport function createClient<S extends z.ZodObject<any>>(schema: S) {\n const { validate } = create(schema);\n\n function useValidationCallback(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n ): (formData: FormData) => Promise<Validation<S>> {\n return useCallback(\n async (formData: FormData) => {\n const clientRes = validate(formData);\n console.log('Client validation', FORM_DEBUG ? 'ignored' : 'active', clientRes);\n if (!clientRes.success && !FORM_DEBUG) return clientRes;\n\n const serverRes = await actionFn(formData);\n console.log('Server validation', serverRes);\n return serverRes;\n },\n [actionFn],\n );\n }\n\n function useValidation(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ) {\n const cb = useValidationCallback(actionFn);\n\n return useActionState<Validation<S>, FormData>(async (_, data) => cb(data), {\n success: false,\n data: initialData,\n });\n }\n\n function useValidationTransition(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ): [Validation<S>, (formData: FormData) => Promise<Validation<S>>, boolean] {\n const [isPending, startTransition] = useTransition();\n const [state, setState] = useState<Validation<S>>({ success: false, data: initialData });\n const cb = useValidationCallback(actionFn);\n\n const wrappedCb = useCallback(\n (formData: FormData) => {\n const promise = cb(formData);\n startTransition(() => promise.then(setState));\n return promise;\n },\n [cb, startTransition],\n );\n\n return [state, wrappedCb, isPending];\n }\n\n return { useValidation, useValidationTransition };\n}\n"],"names":[],"mappings":";;AAMA,MAAM,aAAa,QAAQ,IAAI,2BAA2B;AAEnD,SAAS,aAAyC,QAAW;AAChE,QAAM,EAAE,SAAA,IAAa,OAAO,MAAM;AAElC,WAAS,sBACL,UAC8C;AACvC,WAAA;AAAA,MACH,OAAO,aAAuB;AACpB,cAAA,YAAY,SAAS,QAAQ;AACnC,gBAAQ,IAAI,qBAAqB,aAAa,YAAY,UAAU,SAAS;AAC7E,YAAI,CAAC,UAAU,WAAW,CAAC,WAAmB,QAAA;AAExC,cAAA,YAAY,MAAM,SAAS,QAAQ;AACjC,gBAAA,IAAI,qBAAqB,SAAS;AACnC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,QAAQ;AAAA,IACb;AAAA,EAAA;AAGJ,WAAS,cACL,UACA,cAA8B,IAChC;AACQ,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,WAAO,eAAwC,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG;AAAA,MACxE,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACT;AAAA,EAAA;AAGL,WAAS,wBACL,UACA,cAA8B,IAC0C;AACxE,UAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AAC7C,UAAA,CAAC,OAAO,QAAQ,IAAI,SAAwB,EAAE,SAAS,OAAO,MAAM,aAAa;AACjF,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,UAAM,YAAY;AAAA,MACd,CAAC,aAAuB;AACd,cAAA,UAAU,GAAG,QAAQ;AAC3B,wBAAgB,MAAM,QAAQ,KAAK,QAAQ,CAAC;AACrC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,IAAI,eAAe;AAAA,IACxB;AAEO,WAAA,CAAC,OAAO,WAAW,SAAS;AAAA,EAAA;AAGhC,SAAA,EAAE,eAAe,wBAAwB;AACpD;"}
1
+ {"version":3,"file":"client.js","sources":["../../../src/react/form/client.tsx"],"sourcesContent":["'use client';\n\nimport { useActionState, useCallback, useState, useTransition } from 'react';\nimport { create, MaybeTypeOf, Validation } from './form';\nimport { z } from 'zod';\n\nconst FORM_DEBUG = process.env.NEXT_PUBLIC_FORM_DEBUG === 'true';\n\nexport function createClient<S extends z.ZodObject<any>>(schema: S) {\n const { validate } = create(schema);\n\n function useValidationCallback(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n ): (formData: FormData) => Promise<Validation<S>> {\n return useCallback(\n async (formData: FormData) => {\n const clientRes = validate(formData);\n console.log('Client validation', FORM_DEBUG ? 'ignored' : 'active', clientRes);\n if (!clientRes.success && !FORM_DEBUG) return clientRes;\n\n const serverRes = await actionFn(formData);\n console.log('Server validation', serverRes);\n return serverRes;\n },\n [actionFn],\n );\n }\n\n function useValidation(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ) {\n const cb = useValidationCallback(actionFn);\n\n return useActionState<Validation<S>, FormData>(async (_, data) => cb(data), {\n success: false,\n data: initialData,\n });\n }\n\n function useValidationTransition(\n actionFn: (data: FormData) => Promise<Validation<S>>,\n initialData: MaybeTypeOf<S> = {} as MaybeTypeOf<S>,\n ): [Validation<S>, (formData: FormData) => Promise<Validation<S>>, boolean] {\n const [isPending, startTransition] = useTransition();\n const [state, setState] = useState<Validation<S>>({ success: false, data: initialData });\n const cb = useValidationCallback(actionFn);\n\n const wrappedCb = useCallback(\n (formData: FormData) => {\n const promise = cb(formData);\n startTransition(() => promise.then(setState));\n return promise;\n },\n [cb, startTransition],\n );\n\n return [state, wrappedCb, isPending];\n }\n\n return { useValidation, useValidationTransition };\n}\n"],"names":[],"mappings":";;;AAMA,MAAM,aAAa,QAAQ,IAAI,2BAA2B;AAEnD,SAAS,aAAyC,QAAW;AAChE,QAAM,EAAE,SAAA,IAAa,OAAO,MAAM;AAElC,WAAS,sBACL,UAC8C;AACvC,WAAA;AAAA,MACH,OAAO,aAAuB;AACpB,cAAA,YAAY,SAAS,QAAQ;AACnC,gBAAQ,IAAI,qBAAqB,aAAa,YAAY,UAAU,SAAS;AAC7E,YAAI,CAAC,UAAU,WAAW,CAAC,WAAmB,QAAA;AAExC,cAAA,YAAY,MAAM,SAAS,QAAQ;AACjC,gBAAA,IAAI,qBAAqB,SAAS;AACnC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,QAAQ;AAAA,IACb;AAAA,EAAA;AAGJ,WAAS,cACL,UACA,cAA8B,IAChC;AACQ,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,WAAO,eAAwC,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG;AAAA,MACxE,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACT;AAAA,EAAA;AAGL,WAAS,wBACL,UACA,cAA8B,IAC0C;AACxE,UAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AAC7C,UAAA,CAAC,OAAO,QAAQ,IAAI,SAAwB,EAAE,SAAS,OAAO,MAAM,aAAa;AACjF,UAAA,KAAK,sBAAsB,QAAQ;AAEzC,UAAM,YAAY;AAAA,MACd,CAAC,aAAuB;AACd,cAAA,UAAU,GAAG,QAAQ;AAC3B,wBAAgB,MAAM,QAAQ,KAAK,QAAQ,CAAC;AACrC,eAAA;AAAA,MACX;AAAA,MACA,CAAC,IAAI,eAAe;AAAA,IACxB;AAEO,WAAA,CAAC,OAAO,WAAW,SAAS;AAAA,EAAA;AAGhC,SAAA,EAAE,eAAe,wBAAwB;AACpD;"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import { useTransition, useState, useCallback } from "react";
2
3
  function useFetch(fn, defaultValue = null) {
3
4
  const [isPending, startTransition] = useTransition();
@@ -1 +1 @@
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
+ {"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,3 +1,4 @@
1
+ "use client";
1
2
  import { jsxs, jsx } from "react/jsx-runtime";
2
3
  function ResponsiveHelperTW() {
3
4
  return /* @__PURE__ */ jsxs("span", { className: "fixed bottom-0 right-2 z-30 leading-none text-xs", children: [
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveHelper.js","sources":["../../src/tailwind/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport 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":[],"mappings":";AAIO,SAAS,qBAAqB;AAE7B,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
+ {"version":3,"file":"responsiveHelper.js","sources":["../../src/tailwind/responsiveHelper.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nexport 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":[],"mappings":";;AAIO,SAAS,qBAAqB;AAE7B,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;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kirill.konshin/utils",
3
3
  "description": "Utilities",
4
- "version": "0.0.12",
4
+ "version": "0.0.14",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "----- BUILD -----": "",
@@ -10,7 +10,7 @@
10
10
  "build:index": "cti create ./src/*",
11
11
  "build:check-types": "attw --pack .",
12
12
  "start": "yarn build --watch",
13
- "wait": "wait-on ./dist/core/index.mjs",
13
+ "wait": "wait-on ./dist/core/index.js",
14
14
  "----- TEST -----": "",
15
15
  "test": "vitest run --coverage",
16
16
  "test:watch": "vitest watch --coverage",
@@ -57,6 +57,7 @@
57
57
  "next": "^15.1.6",
58
58
  "react-bootstrap": "^2.10.8",
59
59
  "react-native": "^0.77.0",
60
+ "rollup-preserve-directives": "^1.1.3",
60
61
  "sass-embedded": "^1.83.4",
61
62
  "storybook": "^8.5.2",
62
63
  "tailwindcss": "^4.0.1",
@@ -116,66 +117,66 @@
116
117
  "exports": {
117
118
  "./tailwind": {
118
119
  "import": {
119
- "import": "./dist/tailwind/index.mjs",
120
+ "import": "./dist/tailwind/index.js",
120
121
  "types": "./dist/tailwind/index.d.ts"
121
122
  }
122
123
  },
123
124
  "./react-native": {
124
125
  "import": {
125
- "import": "./dist/react-native/index.mjs",
126
+ "import": "./dist/react-native/index.js",
126
127
  "types": "./dist/react-native/index.d.ts"
127
128
  }
128
129
  },
129
130
  "./react": {
130
131
  "import": {
131
- "import": "./dist/react/index.mjs",
132
+ "import": "./dist/react/index.js",
132
133
  "types": "./dist/react/index.d.ts"
133
134
  }
134
135
  },
135
136
  "./next": {
136
137
  "import": {
137
- "import": "./dist/next/index.mjs",
138
+ "import": "./dist/next/index.js",
138
139
  "types": "./dist/next/index.d.ts"
139
140
  }
140
141
  },
141
142
  "./mui": {
142
143
  "import": {
143
- "import": "./dist/mui/index.mjs",
144
+ "import": "./dist/mui/index.js",
144
145
  "types": "./dist/mui/index.d.ts"
145
146
  }
146
147
  },
147
148
  "./electron-builder": {
148
149
  "import": {
149
- "import": "./dist/electron-builder/index.mjs",
150
+ "import": "./dist/electron-builder/index.js",
150
151
  "types": "./dist/electron-builder/index.d.ts"
151
152
  }
152
153
  },
153
154
  "./electron": {
154
155
  "import": {
155
- "import": "./dist/electron/index.mjs",
156
+ "import": "./dist/electron/index.js",
156
157
  "types": "./dist/electron/index.d.ts"
157
158
  }
158
159
  },
159
160
  "./core": {
160
161
  "import": {
161
- "import": "./dist/core/index.mjs",
162
+ "import": "./dist/core/index.js",
162
163
  "types": "./dist/core/index.d.ts"
163
164
  }
164
165
  },
165
166
  "./bootstrap": {
166
167
  "import": {
167
- "import": "./dist/bootstrap/index.mjs",
168
+ "import": "./dist/bootstrap/index.js",
168
169
  "types": "./dist/bootstrap/index.d.ts"
169
170
  }
170
171
  },
171
172
  ".": {
172
173
  "import": {
173
- "import": "./dist/core/index.mjs",
174
+ "import": "./dist/core/index.js",
174
175
  "types": "./dist/core/index.d.ts"
175
176
  }
176
177
  }
177
178
  },
178
- "main": "./dist/core/index.mjs",
179
- "module": "./dist/core/index.mjs",
179
+ "main": "./dist/core/index.js",
180
+ "module": "./dist/core/index.js",
180
181
  "types": "./dist/core/index.d.ts"
181
182
  }
package/vite.config.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { defineConfig } from 'vitest/config';
1
+ import { defineConfig, type Plugin } from 'vitest/config';
2
2
  import react from '@vitejs/plugin-react';
3
3
  import dts from 'vite-plugin-dts';
4
+ import preserveDirectives from 'rollup-preserve-directives';
4
5
  import { fixExports, formats, entry, external, distDir, generateIndex } from './vite.exports';
5
6
 
6
7
  // https://rbardini.com/how-to-build-ts-library-with-vite/
@@ -33,6 +34,7 @@ export default defineConfig({
33
34
  resolve: { extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'] }, // https://vite.dev/guide/performance#reduce-resolve-operations
34
35
  plugins: [
35
36
  react(),
37
+ preserveDirectives() as Plugin, // https://github.com/vitejs/vite/discussions/15721#discussioncomment-10572828
36
38
  dts(), //TODO Check https://github.com/alloc/vite-dts
37
39
  {
38
40
  name: 'Generate Index & Exports',
package/vite.exports.ts CHANGED
@@ -16,8 +16,8 @@ export const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
16
16
  export const rootPkg = JSON.parse(fs.readFileSync(path.resolve('../../package.json'), 'utf-8'));
17
17
 
18
18
  export const formats = {
19
- // cjs: ['require', 'js', 'd.ts'],
20
- esm: ['import', 'mjs', 'd.ts'],
19
+ // cjs: ['require', 'cjs', 'd.ts'],
20
+ esm: ['import', 'js', 'd.ts'],
21
21
  };
22
22
 
23
23
  export const entryGlob = 'src/*/index.ts';