@studiocubics/next 0.0.1 → 0.0.2

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.
@@ -0,0 +1,6 @@
1
+ export declare function NextErrorPage({ error, reset, }: {
2
+ error: Error & {
3
+ digest?: string;
4
+ };
5
+ reset: () => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { GlassCard, Button } from '@studiocubics/components';
3
+ import styles from './NextErrorPage.module.css.js';
4
+
5
+ function NextErrorPage({ error, reset, }) {
6
+ return (jsxs("div", { className: styles.root, children: [jsx("h1", { children: "Oops!" }), jsx("p", { className: styles.message, children: error.message || "Something went wrong!" }), jsx("p", { className: styles.tip, children: "Try refreshing the page from your browser, or contact an admin if the retry button below doesnt work!" }), jsx(GlassCard, { style: { "--glass-tint": "var(--color-error)" }, children: jsx(Button, { color: "error", onClick: () => reset(), children: "Retry" }) })] }));
7
+ }
8
+
9
+ export { NextErrorPage };
10
+ //# sourceMappingURL=NextErrorPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextErrorPage.js","sources":["../../src/NextErrorPage/NextErrorPage.tsx"],"sourcesContent":["import { Button, GlassCard } from \"@studiocubics/components\";\nimport styles from \"./NextErrorPage.module.css\";\nimport type { CSSProperties } from \"react\";\n\nexport function NextErrorPage({\n error,\n reset,\n}: {\n error: Error & { digest?: string };\n reset: () => void;\n}) {\n return (\n <div className={styles.root}>\n <h1>Oops!</h1>\n <p className={styles.message}>\n {error.message || \"Something went wrong!\"}\n </p>\n <p className={styles.tip}>\n Try refreshing the page from your browser, or contact an admin if the\n retry button below doesnt work!\n </p>\n <GlassCard\n style={{ \"--glass-tint\": \"var(--color-error)\" } as CSSProperties}\n >\n <Button color=\"error\" onClick={() => reset()}>\n Retry\n </Button>\n </GlassCard>\n </div>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;SAIgB,aAAa,CAAC,EAC5B,KAAK,EACL,KAAK,GAIN,EAAA;AACC,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBC,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,EACdA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EACzB,KAAK,CAAC,OAAO,IAAI,uBAAuB,EAAA,CACvC,EACJA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,MAAM,CAAC,GAAG,EAAA,QAAA,EAAA,uGAAA,EAAA,CAGpB,EACJA,GAAA,CAAC,SAAS,EAAA,EACR,KAAK,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAmB,EAAA,QAAA,EAEhEA,GAAA,CAAC,MAAM,EAAA,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,MAAM,KAAK,EAAE,EAAA,QAAA,EAAA,OAAA,EAAA,CAEnC,EAAA,CACC,CAAA,EAAA,CACR;AAEV;;;;"}
@@ -0,0 +1,4 @@
1
+ var styles = {"root":"NextErrorPage-module_root__sQ4Rl","message":"NextErrorPage-module_message__Z8x-N","tip":"NextErrorPage-module_tip__ev8E7"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=NextErrorPage.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextErrorPage.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ export declare function NextLoadingPage(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Spinner } from '@studiocubics/components';
3
+
4
+ function NextLoadingPage() {
5
+ return (jsx("div", { style: {
6
+ width: "100%",
7
+ height: "100%",
8
+ display: "flex",
9
+ justifyContent: "center",
10
+ alignItems: "center",
11
+ }, children: jsx(Spinner, { width: 48, height: 48 }) }));
12
+ }
13
+
14
+ export { NextLoadingPage };
15
+ //# sourceMappingURL=NextLoadingPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextLoadingPage.js","sources":["../src/NextLoadingPage.tsx"],"sourcesContent":["import { Spinner } from \"@studiocubics/components\";\nexport function NextLoadingPage() {\n return (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <Spinner width={48} height={48} />\n </div>\n );\n}\n"],"names":["_jsx"],"mappings":";;;SACgB,eAAe,GAAA;IAC7B,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE,QAAQ;AACrB,SAAA,EAAA,QAAA,EAEDA,GAAA,CAAC,OAAO,EAAA,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAI,EAAA,CAC9B;AAEV;;;;"}
@@ -0,0 +1,7 @@
1
+ export type PaginationParams = {
2
+ page: number;
3
+ total: number;
4
+ limit: number;
5
+ paramKey?: string;
6
+ };
7
+ export declare function NextSSRPagination({ page, total, limit, paramKey, }: PaginationParams): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Pagination } from '@studiocubics/components';
4
+ import { useRouter, useSearchParams } from 'next/navigation';
5
+
6
+ function NextSSRPagination({ page, total, limit, paramKey = "page", }) {
7
+ const router = useRouter();
8
+ const params = useSearchParams();
9
+ const pageCount = Math.ceil(total / limit);
10
+ const handleChange = (value) => {
11
+ const sp = new URLSearchParams(params.toString());
12
+ sp.set(paramKey, String(value));
13
+ router.push(`?${sp.toString()}`);
14
+ };
15
+ if (pageCount == 1)
16
+ return;
17
+ return jsx(Pagination, { count: pageCount, page: page, onChange: handleChange });
18
+ }
19
+
20
+ export { NextSSRPagination };
21
+ //# sourceMappingURL=NextSSRPagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextSSRPagination.js","sources":["../src/NextSSRPagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { Pagination } from \"@studiocubics/components\";\nimport { useRouter, useSearchParams } from \"next/navigation\";\n\nexport type PaginationParams = {\n page: number;\n total: number;\n limit: number;\n paramKey?: string;\n};\nexport function NextSSRPagination({\n page,\n total,\n limit,\n paramKey = \"page\",\n}: PaginationParams) {\n const router = useRouter();\n const params = useSearchParams();\n\n const pageCount = Math.ceil(total / limit);\n\n const handleChange = (value: number) => {\n const sp = new URLSearchParams(params.toString());\n sp.set(paramKey, String(value));\n router.push(`?${sp.toString()}`);\n };\n if (pageCount == 1) return;\n return <Pagination count={pageCount} page={page} onChange={handleChange} />;\n}\n"],"names":["_jsx"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function NextSSRThemeToggle(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import { useTheme } from 'next-themes';
5
+ import { Tooltip, Button } from '@studiocubics/components';
6
+
7
+ const Moon = (props) => {
8
+ return (jsx("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", children: jsx("path", { d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" }) }));
9
+ };
10
+ const Sun = (props) => {
11
+ return (jsxs("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", children: [jsx("circle", { cx: "12", cy: "12", r: "4" }), jsx("path", { d: "M12 2v2" }), jsx("path", { d: "M12 20v2" }), jsx("path", { d: "m4.93 4.93 1.41 1.41" }), jsx("path", { d: "m17.66 17.66 1.41 1.41" }), jsx("path", { d: "M2 12h2" }), jsx("path", { d: "M20 12h2" }), jsx("path", { d: "m6.34 17.66-1.41 1.41" }), jsx("path", { d: "m19.07 4.93-1.41 1.41" })] }));
12
+ };
13
+ const SunMoon = (props) => {
14
+ return (jsxs("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", children: [jsx("path", { d: "M12 2v2" }), jsx("path", { d: "M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715" }), jsx("path", { d: "M16 12a4 4 0 0 0-4-4" }), jsx("path", { d: "m19 5-1.256 1.256" }), jsx("path", { d: "M20 12h2" })] }));
15
+ };
16
+ function NextSSRThemeToggle() {
17
+ const [mounted, setMounted] = useState(false);
18
+ const { theme, setTheme } = useTheme();
19
+ useEffect(() => {
20
+ setMounted(true);
21
+ }, []);
22
+ return (jsx(Tooltip, { renderArrow: true, title: theme == "light" ? "Licht" : theme == "dark" ? "Donker" : "Systeem", children: jsx(Button, { square: true, onClick: () => setTheme(theme == "system" ? "dark" : theme == "dark" ? "light" : "system"), children: mounted ? (theme == "dark" ? (jsx(Sun, {})) : theme == "light" ? (jsx(Moon, {})) : (jsx(SunMoon, {}))) : (jsx(Moon, { opacity: 0.5 })) }) }));
23
+ }
24
+
25
+ export { NextSSRThemeToggle };
26
+ //# sourceMappingURL=NextSSRThemeToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NextSSRThemeToggle.js","sources":["../src/NextSSRThemeToggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState, type ComponentProps } from \"react\";\nimport { useTheme } from \"next-themes\";\nimport { Tooltip, Button } from \"@studiocubics/components\";\n\nconst Moon = (props: ComponentProps<\"svg\">) => {\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\" />\n </svg>\n );\n};\nconst Sun = (props: ComponentProps<\"svg\">) => {\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2\" />\n <path d=\"M12 20v2\" />\n <path d=\"m4.93 4.93 1.41 1.41\" />\n <path d=\"m17.66 17.66 1.41 1.41\" />\n <path d=\"M2 12h2\" />\n <path d=\"M20 12h2\" />\n <path d=\"m6.34 17.66-1.41 1.41\" />\n <path d=\"m19.07 4.93-1.41 1.41\" />\n </svg>\n );\n};\nconst SunMoon = (props: ComponentProps<\"svg\">) => {\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M12 2v2\" />\n <path d=\"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715\" />\n <path d=\"M16 12a4 4 0 0 0-4-4\" />\n <path d=\"m19 5-1.256 1.256\" />\n <path d=\"M20 12h2\" />\n </svg>\n );\n};\n\nexport function NextSSRThemeToggle() {\n const [mounted, setMounted] = useState(false);\n const { theme, setTheme } = useTheme();\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return (\n <Tooltip\n renderArrow\n title={\n theme == \"light\" ? \"Licht\" : theme == \"dark\" ? \"Donker\" : \"Systeem\"\n }\n >\n <Button\n square\n onClick={() =>\n setTheme(\n theme == \"system\" ? \"dark\" : theme == \"dark\" ? \"light\" : \"system\",\n )\n }\n >\n {mounted ? (\n theme == \"dark\" ? (\n <Sun />\n ) : theme == \"light\" ? (\n <Moon />\n ) : (\n <SunMoon />\n )\n ) : (\n <Moon opacity={0.5} />\n )}\n </Button>\n </Tooltip>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .root {
1
+ .NextErrorPage-module_root__sQ4Rl {
2
2
  width: 100%;
3
3
  height: 100%;
4
4
  display: flex;
@@ -13,18 +13,18 @@
13
13
  color: var(--color-background);
14
14
  }
15
15
  }
16
- .message {
16
+ .NextErrorPage-module_message__Z8x-N {
17
17
  max-width: 100%;
18
18
  font-weight: bold;
19
19
  text-align: center;
20
20
  }
21
- .tip {
21
+ .NextErrorPage-module_tip__ev8E7 {
22
22
  max-width: 100%;
23
23
  font-size: var(--fs-body2);
24
24
  color: var(--color-on-background-faint);
25
25
  }
26
26
  @media (min-width: 600px) {
27
- .root {
27
+ .NextErrorPage-module_root__sQ4Rl {
28
28
  & > h1 {
29
29
  font-size: 10vw;
30
30
  }
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { NextErrorPage } from './NextErrorPage/NextErrorPage.js';
2
+ export { NextLoadingPage } from './NextLoadingPage.js';
3
+ export { NextSSRPagination } from './NextSSRPagination.js';
4
+ export { NextSSRThemeToggle } from './NextSSRThemeToggle.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "access": "public"
6
6
  },
7
7
  "private": false,
8
- "version": "0.0.1",
8
+ "version": "0.0.2",
9
9
  "keywords": [
10
10
  "@studiocubics",
11
11
  "cubics",
@@ -31,15 +31,15 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "next-themes": "^0.4.6",
34
- "@studiocubics/ui": "^0.0.1"
34
+ "@studiocubics/components": "^0.0.2"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@eslint/js": "^9.39.1",
38
38
  "@rollup/plugin-terser": "^0.4.4",
39
39
  "@rollup/plugin-typescript": "^12.3.0",
40
40
  "@types/node": "^24.10.1",
41
- "@types/react": "^19.2.5",
42
- "@types/react-dom": "^19.2.3",
41
+ "@types/react": "^19",
42
+ "@types/react-dom": "^19",
43
43
  "eslint": "^9.39.1",
44
44
  "eslint-plugin-react-hooks": "^7.0.1",
45
45
  "globals": "^16.5.0",
@@ -56,10 +56,10 @@
56
56
  "typescript": "^5.9.3"
57
57
  },
58
58
  "peerDependencies": {
59
- "babel-plugin-react-compiler": ">= 1.0.0",
60
- "next": ">= 16.0.0",
61
- "react": ">= 19.0.0",
62
- "react-dom": ">= 19.0.0",
59
+ "babel-plugin-react-compiler": ">= 1",
60
+ "next": ">= 16",
61
+ "react": ">= 19",
62
+ "react-dom": ">= 19",
63
63
  "typescript": ">= 5"
64
64
  },
65
65
  "scripts": {
package/rollup.config.js CHANGED
@@ -28,7 +28,7 @@ export default defineConfig({
28
28
  "react/jsx-runtime",
29
29
  "react",
30
30
  "react-dom",
31
- "@studiocubics/ui",
31
+ "@studiocubics/components",
32
32
  "next",
33
33
  "next-themes",
34
34
  "@monaco-editor/react",
@@ -1,7 +0,0 @@
1
-
2
- > @studiocubics/next@0.0.1 build /home/runner/work/StudioCubics/StudioCubics/packages/next
3
- > rollup -c
4
-
5
- 
6
- src/index.ts → dist...
7
- created dist in 3.1s
package/CHANGELOG.md DELETED
@@ -1,9 +0,0 @@
1
- # @studiocubics/next
2
-
3
- ## 0.0.1
4
-
5
- ### Patch Changes
6
-
7
- - First publish inshallah!
8
- - Updated dependencies
9
- - @studiocubics/ui@0.0.1
package/eslint.config.js DELETED
@@ -1,21 +0,0 @@
1
- import js from "@eslint/js";
2
- import globals from "globals";
3
- import reactHooks from "eslint-plugin-react-hooks";
4
- import tseslint from "typescript-eslint";
5
- import { defineConfig, globalIgnores } from "eslint/config";
6
-
7
- export default defineConfig([
8
- globalIgnores(["dist"]),
9
- {
10
- files: ["**/*.{ts,tsx}"],
11
- extends: [
12
- js.configs.recommended,
13
- tseslint.configs.recommended,
14
- reactHooks.configs.flat.recommended,
15
- ],
16
- languageOptions: {
17
- ecmaVersion: 2020,
18
- globals: globals.browser,
19
- },
20
- },
21
- ]);
@@ -1,31 +0,0 @@
1
- import { Button, GlassCard } from "@studiocubics/ui";
2
- import styles from "./NextErrorPage.module.css";
3
- import type { CSSProperties } from "react";
4
-
5
- export function NextErrorPage({
6
- error,
7
- reset,
8
- }: {
9
- error: Error & { digest?: string };
10
- reset: () => void;
11
- }) {
12
- return (
13
- <div className={styles.root}>
14
- <h1>Oops!</h1>
15
- <p className={styles.message}>
16
- {error.message || "Something went wrong!"}
17
- </p>
18
- <p className={styles.tip}>
19
- Try refreshing the page from your browser, or contact an admin if the
20
- retry button below doesnt work!
21
- </p>
22
- <GlassCard
23
- style={{ "--glass-tint": "var(--color-error)" } as CSSProperties}
24
- >
25
- <Button color="error" onClick={() => reset()}>
26
- Retry
27
- </Button>
28
- </GlassCard>
29
- </div>
30
- );
31
- }
@@ -1,16 +0,0 @@
1
- import { Spinner } from "@studiocubics/ui";
2
- export function NextLoadingPage() {
3
- return (
4
- <div
5
- style={{
6
- width: "100%",
7
- height: "100%",
8
- display: "flex",
9
- justifyContent: "center",
10
- alignItems: "center",
11
- }}
12
- >
13
- <Spinner width={48} height={48} />
14
- </div>
15
- );
16
- }
@@ -1,30 +0,0 @@
1
- "use client";
2
-
3
- import { Pagination } from "@studiocubics/ui";
4
- import { useRouter, useSearchParams } from "next/navigation";
5
-
6
- export type PaginationParams = {
7
- page: number;
8
- total: number;
9
- limit: number;
10
- paramKey?: string;
11
- };
12
- export function NextSSRPagination({
13
- page,
14
- total,
15
- limit,
16
- paramKey = "page",
17
- }: PaginationParams) {
18
- const router = useRouter();
19
- const params = useSearchParams();
20
-
21
- const pageCount = Math.ceil(total / limit);
22
-
23
- const handleChange = (value: number) => {
24
- const sp = new URLSearchParams(params.toString());
25
- sp.set(paramKey, String(value));
26
- router.push(`?${sp.toString()}`);
27
- };
28
- if (pageCount == 1) return;
29
- return <Pagination count={pageCount} page={page} onChange={handleChange} />;
30
- }
@@ -1,105 +0,0 @@
1
- "use client";
2
-
3
- import { useEffect, useState, type ComponentProps } from "react";
4
- import { useTheme } from "next-themes";
5
- import { Tooltip, Button } from "@studiocubics/ui";
6
-
7
- const Moon = (props: ComponentProps<"svg">) => {
8
- return (
9
- <svg
10
- {...props}
11
- xmlns="http://www.w3.org/2000/svg"
12
- viewBox="0 0 24 24"
13
- fill="none"
14
- stroke="currentColor"
15
- stroke-width="2"
16
- stroke-linecap="round"
17
- stroke-linejoin="round"
18
- >
19
- <path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401" />
20
- </svg>
21
- );
22
- };
23
- const Sun = (props: ComponentProps<"svg">) => {
24
- return (
25
- <svg
26
- {...props}
27
- xmlns="http://www.w3.org/2000/svg"
28
- viewBox="0 0 24 24"
29
- fill="none"
30
- stroke="currentColor"
31
- stroke-width="2"
32
- stroke-linecap="round"
33
- stroke-linejoin="round"
34
- >
35
- <circle cx="12" cy="12" r="4" />
36
- <path d="M12 2v2" />
37
- <path d="M12 20v2" />
38
- <path d="m4.93 4.93 1.41 1.41" />
39
- <path d="m17.66 17.66 1.41 1.41" />
40
- <path d="M2 12h2" />
41
- <path d="M20 12h2" />
42
- <path d="m6.34 17.66-1.41 1.41" />
43
- <path d="m19.07 4.93-1.41 1.41" />
44
- </svg>
45
- );
46
- };
47
- const SunMoon = (props: ComponentProps<"svg">) => {
48
- return (
49
- <svg
50
- {...props}
51
- xmlns="http://www.w3.org/2000/svg"
52
- viewBox="0 0 24 24"
53
- fill="none"
54
- stroke="currentColor"
55
- stroke-width="2"
56
- stroke-linecap="round"
57
- stroke-linejoin="round"
58
- >
59
- <path d="M12 2v2" />
60
- <path d="M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715" />
61
- <path d="M16 12a4 4 0 0 0-4-4" />
62
- <path d="m19 5-1.256 1.256" />
63
- <path d="M20 12h2" />
64
- </svg>
65
- );
66
- };
67
-
68
- export function NextSSRThemeToggle() {
69
- const [mounted, setMounted] = useState(false);
70
- const { theme, setTheme } = useTheme();
71
-
72
- useEffect(() => {
73
- setMounted(true);
74
- }, []);
75
-
76
- return (
77
- <Tooltip
78
- renderArrow
79
- title={
80
- theme == "light" ? "Licht" : theme == "dark" ? "Donker" : "Systeem"
81
- }
82
- >
83
- <Button
84
- square
85
- onClick={() =>
86
- setTheme(
87
- theme == "system" ? "dark" : theme == "dark" ? "light" : "system",
88
- )
89
- }
90
- >
91
- {mounted ? (
92
- theme == "dark" ? (
93
- <Sun />
94
- ) : theme == "light" ? (
95
- <Moon />
96
- ) : (
97
- <SunMoon />
98
- )
99
- ) : (
100
- <Moon opacity={0.5} />
101
- )}
102
- </Button>
103
- </Tooltip>
104
- );
105
- }
@@ -1,4 +0,0 @@
1
- declare module "*.module.css" {
2
- const classes: { [key: string]: string };
3
- export default classes;
4
- }
package/tsconfig.json DELETED
@@ -1,32 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
- "target": "ES2022",
5
- "useDefineForClassFields": true,
6
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
- "module": "ESNext",
8
- "resolveJsonModule": true,
9
- "allowJs": true,
10
- "skipLibCheck": true,
11
-
12
- /* Bundler mode */
13
- "moduleResolution": "bundler",
14
- "verbatimModuleSyntax": true,
15
- "moduleDetection": "force",
16
- "noEmit": true,
17
- "jsx": "react-jsx",
18
- // Output
19
- "declaration": true,
20
- "outDir": "./dist",
21
- "rootDir": "./src",
22
-
23
- /* Linting */
24
- "strict": true,
25
- "noUnusedLocals": true,
26
- "noUnusedParameters": true,
27
- "erasableSyntaxOnly": true,
28
- "noFallthroughCasesInSwitch": true,
29
- "noUncheckedSideEffectImports": true
30
- },
31
- "include": ["./src"]
32
- }
File without changes