@proofkit/cli 2.0.0-beta.21 → 2.0.0-beta.23

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 (114) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/add-DrcID6d6.js +57 -0
  3. package/dist/add-DrcID6d6.js.map +1 -0
  4. package/dist/addPackageDependency-BGZl7xc5.js +4 -0
  5. package/dist/addPackageDependency-BGZl7xc5.js.map +1 -0
  6. package/dist/consts-BZnOMxpW.js +10 -0
  7. package/dist/consts-BZnOMxpW.js.map +1 -0
  8. package/dist/deploy-D25sPO7K.js +34 -0
  9. package/dist/deploy-D25sPO7K.js.map +1 -0
  10. package/dist/fmdapi-BO4QL0F8.js +2 -0
  11. package/dist/fmdapi-BO4QL0F8.js.map +1 -0
  12. package/dist/fmdapi-DyRYZWzI.js +3 -0
  13. package/dist/fmdapi-DyRYZWzI.js.map +1 -0
  14. package/dist/getUserPkgManager-Cph_6l1P.js +2 -0
  15. package/dist/getUserPkgManager-Cph_6l1P.js.map +1 -0
  16. package/dist/globalOptions-CkqEi9uC.js +2 -0
  17. package/dist/globalOptions-CkqEi9uC.js.map +1 -0
  18. package/dist/index-DALPpGd1.d.ts +366 -0
  19. package/dist/index-DALPpGd1.d.ts.map +1 -0
  20. package/dist/index.js +10 -157
  21. package/dist/index.js.map +1 -1
  22. package/dist/logger-DCEXcH26.js +2 -0
  23. package/dist/logger-DCEXcH26.js.map +1 -0
  24. package/dist/parseSettings-DJ2m9sgJ.js +2 -0
  25. package/dist/parseSettings-DJ2m9sgJ.js.map +1 -0
  26. package/dist/proofkit-webviewer-73IB1OBU.js +2 -0
  27. package/dist/proofkit-webviewer-73IB1OBU.js.map +1 -0
  28. package/dist/remove-BOCU6In3.js +2 -0
  29. package/dist/remove-BOCU6In3.js.map +1 -0
  30. package/dist/state-BVEcvFT3.js +41 -0
  31. package/dist/state-BVEcvFT3.js.map +1 -0
  32. package/dist/typegen-DyXaif5O.js +2 -0
  33. package/dist/typegen-DyXaif5O.js.map +1 -0
  34. package/dist/update-FX71y5b3.js +7 -0
  35. package/dist/update-FX71y5b3.js.map +1 -0
  36. package/dist/utils-DymV7zmv.js +3 -0
  37. package/dist/utils-DymV7zmv.js.map +1 -0
  38. package/package.json +18 -8
  39. package/template/fm-addon/ProofKitWV/de.xml +517 -20
  40. package/template/fm-addon/ProofKitWV/en.xml +517 -20
  41. package/template/fm-addon/ProofKitWV/es.xml +517 -20
  42. package/template/fm-addon/ProofKitWV/fr.xml +517 -20
  43. package/template/fm-addon/ProofKitWV/icon.png +0 -0
  44. package/template/fm-addon/ProofKitWV/icon@2x.png +0 -0
  45. package/template/fm-addon/ProofKitWV/info.json +9 -6
  46. package/template/fm-addon/ProofKitWV/info_de.json +12 -5
  47. package/template/fm-addon/ProofKitWV/info_en.json +16 -5
  48. package/template/fm-addon/ProofKitWV/info_es.json +12 -5
  49. package/template/fm-addon/ProofKitWV/info_fr.json +12 -5
  50. package/template/fm-addon/ProofKitWV/info_it.json +12 -5
  51. package/template/fm-addon/ProofKitWV/info_ja.json +12 -5
  52. package/template/fm-addon/ProofKitWV/info_ko.json +12 -5
  53. package/template/fm-addon/ProofKitWV/info_nl.json +12 -5
  54. package/template/fm-addon/ProofKitWV/info_pt.json +12 -5
  55. package/template/fm-addon/ProofKitWV/info_sv.json +12 -5
  56. package/template/fm-addon/ProofKitWV/info_zh.json +12 -5
  57. package/template/fm-addon/ProofKitWV/it.xml +517 -20
  58. package/template/fm-addon/ProofKitWV/ja.xml +517 -20
  59. package/template/fm-addon/ProofKitWV/ko.xml +517 -20
  60. package/template/fm-addon/ProofKitWV/nl.xml +517 -20
  61. package/template/fm-addon/ProofKitWV/preview.png +0 -0
  62. package/template/fm-addon/ProofKitWV/pt.xml +517 -20
  63. package/template/fm-addon/ProofKitWV/records_de.xml +0 -0
  64. package/template/fm-addon/ProofKitWV/records_en.xml +0 -0
  65. package/template/fm-addon/ProofKitWV/records_es.xml +0 -0
  66. package/template/fm-addon/ProofKitWV/records_fr.xml +0 -0
  67. package/template/fm-addon/ProofKitWV/records_it.xml +0 -0
  68. package/template/fm-addon/ProofKitWV/records_ja.xml +0 -0
  69. package/template/fm-addon/ProofKitWV/records_ko.xml +0 -0
  70. package/template/fm-addon/ProofKitWV/records_nl.xml +0 -0
  71. package/template/fm-addon/ProofKitWV/records_pt.xml +0 -0
  72. package/template/fm-addon/ProofKitWV/records_sv.xml +0 -0
  73. package/template/fm-addon/ProofKitWV/records_zh.xml +0 -0
  74. package/template/fm-addon/ProofKitWV/sv.xml +517 -20
  75. package/template/fm-addon/ProofKitWV/template.xml +0 -0
  76. package/template/fm-addon/ProofKitWV/zh.xml +517 -20
  77. package/template/nextjs-mantine/AGENTS.md +1 -0
  78. package/template/nextjs-mantine/package.json +2 -3
  79. package/template/nextjs-shadcn/AGENTS.md +1 -0
  80. package/template/nextjs-shadcn/package.json +3 -4
  81. package/template/vite-wv/.claude/launch.json +18 -0
  82. package/template/vite-wv/AGENTS.md +1 -0
  83. package/template/vite-wv/_gitignore +1 -0
  84. package/template/vite-wv/components.json +6 -6
  85. package/template/vite-wv/index.html +2 -2
  86. package/template/vite-wv/package.json +20 -37
  87. package/template/vite-wv/proofkit-typegen.config.jsonc +18 -0
  88. package/template/vite-wv/proofkit.json +4 -1
  89. package/template/vite-wv/scripts/filemaker.js +96 -0
  90. package/template/vite-wv/scripts/launch-fm.js +19 -0
  91. package/template/vite-wv/scripts/upload.js +17 -14
  92. package/template/vite-wv/src/App.tsx +84 -0
  93. package/template/vite-wv/src/index.css +96 -0
  94. package/template/vite-wv/src/lib/utils.ts +6 -0
  95. package/template/vite-wv/src/main.tsx +14 -35
  96. package/template/vite-wv/src/router.tsx +57 -0
  97. package/template/vite-wv/src/routes/query-demo.tsx +37 -0
  98. package/template/vite-wv/tsconfig.json +3 -1
  99. package/template/vite-wv/vite.config.ts +5 -5
  100. package/dist/index-JtcdNmdz.d.ts +0 -1
  101. package/template/vite-wv/pnpm-lock.yaml +0 -2294
  102. package/template/vite-wv/postcss.config.cjs +0 -15
  103. package/template/vite-wv/scripts/launch-fm.sh +0 -3
  104. package/template/vite-wv/src/components/AppLogo.tsx +0 -5
  105. package/template/vite-wv/src/components/full-screen-loader.tsx +0 -9
  106. package/template/vite-wv/src/config/env.ts +0 -16
  107. package/template/vite-wv/src/config/theme/globals.css +0 -125
  108. package/template/vite-wv/src/config/theme/mantine-theme.ts +0 -22
  109. package/template/vite-wv/src/routeTree.gen.ts +0 -111
  110. package/template/vite-wv/src/routes/__root.tsx +0 -21
  111. package/template/vite-wv/src/routes/index.tsx +0 -51
  112. package/template/vite-wv/src/routes/secondary.tsx +0 -26
  113. package/template/vite-wv/src/utils/notification-helpers.ts +0 -32
  114. package/template/vite-wv/src/utils/styles.ts +0 -6
@@ -1,15 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- "@tailwindcss/postcss": {},
4
- "postcss-preset-mantine": {},
5
- "postcss-simple-vars": {
6
- variables: {
7
- "mantine-breakpoint-xs": "36em",
8
- "mantine-breakpoint-sm": "48em",
9
- "mantine-breakpoint-md": "62em",
10
- "mantine-breakpoint-lg": "75em",
11
- "mantine-breakpoint-xl": "88em",
12
- },
13
- },
14
- },
15
- };
@@ -1,3 +0,0 @@
1
- source .env
2
- SERVER_HOST=$(echo $FM_SERVER | sed 's|https://||' | sed 's|/.*||')
3
- open "fmp://$SERVER_HOST/$FM_DATABASE?script=Launch Web Viewer for Dev"
@@ -1,5 +0,0 @@
1
- import { IconInfinity } from "@tabler/icons-react";
2
-
3
- export default function AppLogo() {
4
- return <IconInfinity size={32} />;
5
- }
@@ -1,9 +0,0 @@
1
- import { Center, Loader } from "@mantine/core";
2
-
3
- export default function FullScreenLoader() {
4
- return (
5
- <Center h="100vh">
6
- <Loader />
7
- </Center>
8
- );
9
- }
@@ -1,16 +0,0 @@
1
- import { createEnv } from "@t3-oss/env-core";
2
- import { z } from "zod/v4";
3
- import { type OttoAPIKey } from "@proofkit/fmdapi";
4
-
5
- export const env = createEnv({
6
- server: {
7
- NODE_ENV: z
8
- .enum(["development", "test", "production"])
9
- .default("development"),
10
- },
11
-
12
- clientPrefix: "VITE_",
13
- client: {},
14
- runtimeEnv: process.env,
15
- emptyStringAsUndefined: true,
16
- });
@@ -1,125 +0,0 @@
1
- /* Add global styles here */
2
-
3
- @import "tailwindcss" prefix(tw);
4
- @import "tw-animate-css";
5
-
6
- @custom-variant dark (&:is(.dark *));
7
-
8
- :root {
9
- --background: oklch(1 0 0);
10
- --foreground: oklch(0.145 0 0);
11
- --card: oklch(1 0 0);
12
- --card-foreground: oklch(0.145 0 0);
13
- --popover: oklch(1 0 0);
14
- --popover-foreground: oklch(0.145 0 0);
15
- --primary: oklch(0.205 0 0);
16
- --primary-foreground: oklch(0.985 0 0);
17
- --secondary: oklch(0.97 0 0);
18
- --secondary-foreground: oklch(0.205 0 0);
19
- --muted: oklch(0.97 0 0);
20
- --muted-foreground: oklch(0.556 0 0);
21
- --accent: oklch(0.97 0 0);
22
- --accent-foreground: oklch(0.205 0 0);
23
- --destructive: oklch(0.577 0.245 27.325);
24
- --destructive-foreground: oklch(0.577 0.245 27.325);
25
- --border: oklch(0.922 0 0);
26
- --input: oklch(0.922 0 0);
27
- --ring: oklch(0.708 0 0);
28
- --chart-1: oklch(0.646 0.222 41.116);
29
- --chart-2: oklch(0.6 0.118 184.704);
30
- --chart-3: oklch(0.398 0.07 227.392);
31
- --chart-4: oklch(0.828 0.189 84.429);
32
- --chart-5: oklch(0.769 0.188 70.08);
33
- --radius: 0.625rem;
34
- --sidebar: oklch(0.985 0 0);
35
- --sidebar-foreground: oklch(0.145 0 0);
36
- --sidebar-primary: oklch(0.205 0 0);
37
- --sidebar-primary-foreground: oklch(0.985 0 0);
38
- --sidebar-accent: oklch(0.97 0 0);
39
- --sidebar-accent-foreground: oklch(0.205 0 0);
40
- --sidebar-border: oklch(0.922 0 0);
41
- --sidebar-ring: oklch(0.708 0 0);
42
- }
43
-
44
- .dark {
45
- --background: oklch(0.145 0 0);
46
- --foreground: oklch(0.985 0 0);
47
- --card: oklch(0.145 0 0);
48
- --card-foreground: oklch(0.985 0 0);
49
- --popover: oklch(0.145 0 0);
50
- --popover-foreground: oklch(0.985 0 0);
51
- --primary: oklch(0.985 0 0);
52
- --primary-foreground: oklch(0.205 0 0);
53
- --secondary: oklch(0.269 0 0);
54
- --secondary-foreground: oklch(0.985 0 0);
55
- --muted: oklch(0.269 0 0);
56
- --muted-foreground: oklch(0.708 0 0);
57
- --accent: oklch(0.269 0 0);
58
- --accent-foreground: oklch(0.985 0 0);
59
- --destructive: oklch(0.396 0.141 25.723);
60
- --destructive-foreground: oklch(0.637 0.237 25.331);
61
- --border: oklch(0.269 0 0);
62
- --input: oklch(0.269 0 0);
63
- --ring: oklch(0.439 0 0);
64
- --chart-1: oklch(0.488 0.243 264.376);
65
- --chart-2: oklch(0.696 0.17 162.48);
66
- --chart-3: oklch(0.769 0.188 70.08);
67
- --chart-4: oklch(0.627 0.265 303.9);
68
- --chart-5: oklch(0.645 0.246 16.439);
69
- --sidebar: oklch(0.205 0 0);
70
- --sidebar-foreground: oklch(0.985 0 0);
71
- --sidebar-primary: oklch(0.488 0.243 264.376);
72
- --sidebar-primary-foreground: oklch(0.985 0 0);
73
- --sidebar-accent: oklch(0.269 0 0);
74
- --sidebar-accent-foreground: oklch(0.985 0 0);
75
- --sidebar-border: oklch(0.269 0 0);
76
- --sidebar-ring: oklch(0.439 0 0);
77
- }
78
-
79
- @theme inline {
80
- --color-background: var(--background);
81
- --color-foreground: var(--foreground);
82
- --color-card: var(--card);
83
- --color-card-foreground: var(--card-foreground);
84
- --color-popover: var(--popover);
85
- --color-popover-foreground: var(--popover-foreground);
86
- --color-primary: var(--primary);
87
- --color-primary-foreground: var(--primary-foreground);
88
- --color-secondary: var(--secondary);
89
- --color-secondary-foreground: var(--secondary-foreground);
90
- --color-muted: var(--muted);
91
- --color-muted-foreground: var(--muted-foreground);
92
- --color-accent: var(--accent);
93
- --color-accent-foreground: var(--accent-foreground);
94
- --color-destructive: var(--destructive);
95
- --color-destructive-foreground: var(--destructive-foreground);
96
- --color-border: var(--border);
97
- --color-input: var(--input);
98
- --color-ring: var(--ring);
99
- --color-chart-1: var(--chart-1);
100
- --color-chart-2: var(--chart-2);
101
- --color-chart-3: var(--chart-3);
102
- --color-chart-4: var(--chart-4);
103
- --color-chart-5: var(--chart-5);
104
- --radius-sm: calc(var(--radius) - 4px);
105
- --radius-md: calc(var(--radius) - 2px);
106
- --radius-lg: var(--radius);
107
- --radius-xl: calc(var(--radius) + 4px);
108
- --color-sidebar: var(--sidebar);
109
- --color-sidebar-foreground: var(--sidebar-foreground);
110
- --color-sidebar-primary: var(--sidebar-primary);
111
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
112
- --color-sidebar-accent: var(--sidebar-accent);
113
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
114
- --color-sidebar-border: var(--sidebar-border);
115
- --color-sidebar-ring: var(--sidebar-ring);
116
- }
117
-
118
- @layer base {
119
- * {
120
- @apply tw:border-border tw:outline-ring/50;
121
- }
122
- body {
123
- @apply tw:bg-background tw:text-foreground;
124
- }
125
- }
@@ -1,22 +0,0 @@
1
- import { createTheme, type MantineColorsTuple } from "@mantine/core";
2
-
3
- // generate your own set of colors here: https://mantine.dev/colors-generator
4
- const brandColor: MantineColorsTuple = [
5
- "#ffebff",
6
- "#f5d5fb",
7
- "#e6a8f3",
8
- "#d779eb",
9
- "#cb51e4",
10
- "#c337e0",
11
- "#c029df",
12
- "#a91cc6",
13
- "#9715b1",
14
- "#84099c",
15
- ];
16
-
17
- export const theme = createTheme({
18
- primaryColor: "brand",
19
- colors: {
20
- brand: brandColor,
21
- },
22
- });
@@ -1,111 +0,0 @@
1
-
2
-
3
- // @ts-nocheck
4
-
5
- // noinspection JSUnusedGlobalSymbols
6
-
7
- // This file was automatically generated by TanStack Router.
8
- // You should NOT make any changes in this file as it will be overwritten.
9
- // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
-
11
- // Import Routes
12
-
13
- import { Route as rootRoute } from "./routes/__root";
14
- import { Route as SecondaryImport } from "./routes/secondary";
15
- import { Route as IndexImport } from "./routes/index";
16
-
17
- // Create/Update Routes
18
-
19
- const SecondaryRoute = SecondaryImport.update({
20
- id: "/secondary",
21
- path: "/secondary",
22
- getParentRoute: () => rootRoute,
23
- } as any);
24
-
25
- const IndexRoute = IndexImport.update({
26
- id: "/",
27
- path: "/",
28
- getParentRoute: () => rootRoute,
29
- } as any);
30
-
31
- // Populate the FileRoutesByPath interface
32
-
33
- declare module "@tanstack/react-router" {
34
- interface FileRoutesByPath {
35
- "/": {
36
- id: "/";
37
- path: "/";
38
- fullPath: "/";
39
- preLoaderRoute: typeof IndexImport;
40
- parentRoute: typeof rootRoute;
41
- };
42
- "/secondary": {
43
- id: "/secondary";
44
- path: "/secondary";
45
- fullPath: "/secondary";
46
- preLoaderRoute: typeof SecondaryImport;
47
- parentRoute: typeof rootRoute;
48
- };
49
- }
50
- }
51
-
52
- // Create and export the route tree
53
-
54
- export interface FileRoutesByFullPath {
55
- "/": typeof IndexRoute;
56
- "/secondary": typeof SecondaryRoute;
57
- }
58
-
59
- export interface FileRoutesByTo {
60
- "/": typeof IndexRoute;
61
- "/secondary": typeof SecondaryRoute;
62
- }
63
-
64
- export interface FileRoutesById {
65
- __root__: typeof rootRoute;
66
- "/": typeof IndexRoute;
67
- "/secondary": typeof SecondaryRoute;
68
- }
69
-
70
- export interface FileRouteTypes {
71
- fileRoutesByFullPath: FileRoutesByFullPath;
72
- fullPaths: "/" | "/secondary";
73
- fileRoutesByTo: FileRoutesByTo;
74
- to: "/" | "/secondary";
75
- id: "__root__" | "/" | "/secondary";
76
- fileRoutesById: FileRoutesById;
77
- }
78
-
79
- export interface RootRouteChildren {
80
- IndexRoute: typeof IndexRoute;
81
- SecondaryRoute: typeof SecondaryRoute;
82
- }
83
-
84
- const rootRouteChildren: RootRouteChildren = {
85
- IndexRoute: IndexRoute,
86
- SecondaryRoute: SecondaryRoute,
87
- };
88
-
89
- export const routeTree = rootRoute
90
- ._addFileChildren(rootRouteChildren)
91
- ._addFileTypes<FileRouteTypes>();
92
-
93
- /* ROUTE_MANIFEST_START
94
- {
95
- "routes": {
96
- "__root__": {
97
- "filePath": "__root.tsx",
98
- "children": [
99
- "/",
100
- "/secondary"
101
- ]
102
- },
103
- "/": {
104
- "filePath": "index.tsx"
105
- },
106
- "/secondary": {
107
- "filePath": "secondary.tsx"
108
- }
109
- }
110
- }
111
- ROUTE_MANIFEST_END */
@@ -1,21 +0,0 @@
1
- import { Outlet, createRootRoute } from "@tanstack/react-router";
2
- import { TanStackRouterDevtools } from "@tanstack/react-router-devtools";
3
-
4
- export const Route = createRootRoute({
5
- component: RootComponent,
6
- });
7
-
8
- /**
9
- * This component wraps all other routes
10
- */
11
- function RootComponent() {
12
- return (
13
- <>
14
- <Outlet />
15
-
16
- {process.env.NODE_ENV === "development" && (
17
- <TanStackRouterDevtools position="bottom-right" />
18
- )}
19
- </>
20
- );
21
- }
@@ -1,51 +0,0 @@
1
- import { Anchor, Box, Code, Container, Image, px, Stack, Text, Title } from "@mantine/core";
2
- import { IconExternalLink } from "@tabler/icons-react";
3
- import { createFileRoute, Link } from "@tanstack/react-router";
4
-
5
- export const Route = createFileRoute("/")({
6
- component: HomeComponent,
7
- });
8
-
9
- function HomeComponent() {
10
- return (
11
- <Container mt="5rem">
12
- <Stack gap="xl" ta="center">
13
- <Image
14
- alt="ProofKit"
15
- mah={px("16rem")}
16
- src="https://raw.githubusercontent.com/proofgeist/proofkit/dde6366c529104658dfba67a8fc2910a8644fc64/docs/src/assets/proofkit.png"
17
- style={{
18
- marginRight: "auto",
19
- marginLeft: "auto",
20
- }}
21
- w={"auto"}
22
- />
23
- <Title order={1}>Welcome!</Title>
24
-
25
- <Text style={{ textWrap: "balance" }}>
26
- This is the base template page. To add more pages, components, or other features, run the ProofKit CLI from
27
- within your project.
28
- </Text>
29
- <Code block>pnpm proofkit</Code>
30
-
31
- <Text style={{ textWrap: "balance" }}>
32
- To change this page, open <Code>src/routes/index.tsx</Code>
33
- </Text>
34
- <Box>
35
- <Anchor
36
- href="https://proofkit.dev"
37
- rel="proofkit-app"
38
- style={{ display: "inline-flex", alignItems: "center", gap: 4 }}
39
- target="_blank"
40
- >
41
- ProofKit Docs <IconExternalLink size={px("1rem")} />
42
- </Anchor>
43
- </Box>
44
-
45
- <Text c="dimmed" size="sm">
46
- Need to build multiple webviewer widgets? <Link to="/secondary">Check out the secondary page</Link>
47
- </Text>
48
- </Stack>
49
- </Container>
50
- );
51
- }
@@ -1,26 +0,0 @@
1
- import { Code, Container, Stack, Text, Title } from "@mantine/core";
2
- import { createFileRoute, Link } from "@tanstack/react-router";
3
-
4
- export const Route = createFileRoute("/secondary")({
5
- component: RouteComponent,
6
- });
7
-
8
- function RouteComponent() {
9
- return (
10
- <Container mt="5rem">
11
- <Stack gap="xl" ta="center">
12
- <Title order={1}>Secondary Page</Title>
13
- <Text>
14
- Use hidden pages like this to embed multiple webviewer widgets into a single HTML bundle for your FileMaker
15
- solution.
16
- </Text>
17
- <Text>
18
- See how to navigate via a FileMaker script in the <Code>EXAMPLE: Navigation</Code> script
19
- </Text>
20
- <Text c="dimmed" size="sm">
21
- <Link to="/">Go back to the home page</Link>
22
- </Text>
23
- </Stack>
24
- </Container>
25
- );
26
- }
@@ -1,32 +0,0 @@
1
- import {
2
- showNotification,
3
- type NotificationData,
4
- } from "@mantine/notifications";
5
-
6
- export function showErrorNotification(): void;
7
- export function showErrorNotification(props: NotificationData): void;
8
- export function showErrorNotification(message: string): void;
9
- export function showErrorNotification(args?: string | NotificationData): void {
10
- const message =
11
- typeof args === "string" ? args : "An unexpected error occurred.";
12
- const defaultProps = typeof args === "string" ? {} : (args ?? {});
13
-
14
- showNotification({ color: "red", title: "Error", message, ...defaultProps });
15
- }
16
-
17
- export function showSuccessNotification(): void;
18
- export function showSuccessNotification(props: NotificationData): void;
19
- export function showSuccessNotification(message: string): void;
20
- export function showSuccessNotification(
21
- args?: string | NotificationData,
22
- ): void {
23
- const message = typeof args === "string" ? args : "Success!";
24
- const defaultProps = typeof args === "string" ? {} : (args ?? {});
25
-
26
- showNotification({
27
- color: "green",
28
- title: "Success",
29
- message,
30
- ...defaultProps,
31
- });
32
- }
@@ -1,6 +0,0 @@
1
- import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
-
4
- export function cn(...inputs: any[]) {
5
- return twMerge(clsx(inputs));
6
- }