@qwik.dev/core 2.0.0-beta.4 → 2.0.0-beta.41

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 (151) hide show
  1. package/dist/backpatch/index.d.ts +2 -0
  2. package/dist/backpatch/index.mjs +5 -0
  3. package/dist/backpatch/package.json +8 -0
  4. package/dist/backpatch-executor.debug.js +59 -0
  5. package/dist/backpatch-executor.js +1 -0
  6. package/dist/build/package.json +1 -1
  7. package/dist/cli.mjs +12974 -0
  8. package/dist/core-internal.d.ts +1579 -818
  9. package/dist/core.min.mjs +9 -1
  10. package/dist/core.mjs +14777 -9194
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/core.prod.mjs +10480 -5372
  13. package/dist/insights/index.qwik.mjs +82 -71
  14. package/dist/insights/vite/index.mjs +79 -81
  15. package/dist/loader/index.mjs +2 -2
  16. package/dist/loader/package.json +1 -1
  17. package/dist/optimizer.d.ts +78 -295
  18. package/dist/optimizer.mjs +2948 -4088
  19. package/dist/out-of-order-executor.debug.js +140 -0
  20. package/dist/out-of-order-executor.js +1 -0
  21. package/dist/preloader.mjs +172 -192
  22. package/dist/qwikloader.debug.js +403 -244
  23. package/dist/qwikloader.js +1 -1
  24. package/dist/server-modules.d.ts +1 -0
  25. package/dist/server.d.ts +54 -249
  26. package/dist/server.mjs +2332 -1407
  27. package/dist/server.prod.mjs +3844 -0
  28. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/{vite.config.mts → vite.config.ts} +3 -3
  29. package/dist/starters/adapters/aws-lambda/package.json +3 -2
  30. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +2 -6
  31. package/dist/starters/adapters/azure-swa/adapters/azure-swa/{vite.config.mts → vite.config.ts} +3 -3
  32. package/dist/starters/adapters/azure-swa/package.json +3 -2
  33. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +2 -3
  34. package/dist/starters/adapters/bun/adapters/bun/{vite.config.mts → vite.config.ts} +4 -4
  35. package/dist/starters/adapters/bun/package.json +3 -2
  36. package/dist/starters/adapters/bun/src/entry.bun.ts +37 -10
  37. package/dist/starters/adapters/cloud-run/adapters/cloud-run/{vite.config.mts → vite.config.ts} +3 -3
  38. package/dist/starters/adapters/cloud-run/package.json +3 -2
  39. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +23 -7
  40. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/{vite.config.mts → vite.config.ts} +3 -3
  41. package/dist/starters/adapters/cloudflare-pages/package.json +3 -2
  42. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +2 -3
  43. package/dist/starters/adapters/cloudflare-workers/README.md +52 -0
  44. package/dist/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts +15 -0
  45. package/dist/starters/adapters/cloudflare-workers/gitignore +3 -0
  46. package/dist/starters/adapters/cloudflare-workers/package.json +31 -0
  47. package/dist/starters/adapters/cloudflare-workers/public/.assetsignore +4 -0
  48. package/dist/starters/adapters/cloudflare-workers/public/_headers +11 -0
  49. package/dist/starters/adapters/cloudflare-workers/public/_redirects +1 -0
  50. package/dist/starters/adapters/cloudflare-workers/src/entry.cloudflare-pages.tsx +22 -0
  51. package/dist/starters/adapters/cloudflare-workers/worker-configuration.d.ts +5 -0
  52. package/dist/starters/adapters/cloudflare-workers/wrangler.jsonc +41 -0
  53. package/dist/starters/adapters/deno/adapters/deno/{vite.config.mts → vite.config.ts} +3 -3
  54. package/dist/starters/adapters/deno/package.json +3 -2
  55. package/dist/starters/adapters/deno/src/entry.deno.ts +43 -10
  56. package/dist/starters/adapters/express/adapters/express/{vite.config.mts → vite.config.ts} +3 -3
  57. package/dist/starters/adapters/express/package.json +4 -3
  58. package/dist/starters/adapters/express/src/entry.express.tsx +22 -7
  59. package/dist/starters/adapters/fastify/adapters/fastify/{vite.config.mts → vite.config.ts} +3 -3
  60. package/dist/starters/adapters/fastify/package.json +5 -4
  61. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +21 -1
  62. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +11 -4
  63. package/dist/starters/adapters/firebase/adapters/firebase/{vite.config.mts → vite.config.ts} +3 -3
  64. package/dist/starters/adapters/firebase/package.json +3 -2
  65. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +2 -3
  66. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/{vite.config.mts → vite.config.ts} +3 -3
  67. package/dist/starters/adapters/netlify-edge/package.json +5 -4
  68. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +2 -3
  69. package/dist/starters/adapters/node-server/adapters/node-server/{vite.config.mts → vite.config.ts} +3 -3
  70. package/dist/starters/adapters/node-server/package.json +3 -2
  71. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +22 -6
  72. package/dist/starters/adapters/{static/adapters/static/vite.config.mts → ssg/adapters/ssg/vite.config.ts} +4 -4
  73. package/dist/starters/adapters/ssg/package.json +20 -0
  74. package/dist/starters/adapters/vercel-edge/README.md +2 -2
  75. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/{vite.config.mts → vite.config.ts} +3 -3
  76. package/dist/starters/adapters/vercel-edge/package.json +3 -2
  77. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +2 -3
  78. package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
  79. package/dist/starters/features/auth/package.json +1 -1
  80. package/dist/starters/features/compiled-i18n/package.json +37 -0
  81. package/dist/starters/features/compiled-i18n/src/components/locale-selector/locale-selector.tsx +30 -0
  82. package/dist/starters/features/compiled-i18n/src/entry.ssr.tsx +31 -0
  83. package/dist/starters/features/compiled-i18n/src/routes/plugin@compiled-i18n.ts +28 -0
  84. package/dist/starters/features/csr/index.html +27 -0
  85. package/dist/starters/features/csr/package.json +29 -0
  86. package/dist/starters/features/csr/src/root.tsx +15 -0
  87. package/dist/starters/features/csr/vite.config.ts +13 -0
  88. package/dist/starters/features/cypress/src/actions/example.action.ts +5 -0
  89. package/dist/starters/features/cypress/src/components/example/example.cy.tsx +50 -8
  90. package/dist/starters/features/cypress/src/components/example/example.tsx +13 -3
  91. package/dist/starters/features/cypress/src/loaders/example.loader.ts +5 -0
  92. package/dist/starters/features/drizzle/package.json +1 -1
  93. package/dist/starters/features/pandacss/package.json +1 -1
  94. package/dist/starters/features/postcss/postcss.config.js +1 -1
  95. package/dist/starters/features/storybook/.storybook/tsconfig.json +0 -1
  96. package/dist/starters/features/styled-vanilla-extract/package.json +2 -1
  97. package/dist/starters/features/tailwind/package.json +2 -2
  98. package/dist/starters/features/tailwind/prettier.config.js +10 -0
  99. package/dist/starters/features/tailwind-v3/package.json +1 -1
  100. package/dist/starters/features/tailwind-v3/prettier.config.js +10 -0
  101. package/dist/starters/features/vitest/package.json +1 -1
  102. package/dist/testing/index.d.ts +1000 -7
  103. package/dist/testing/index.mjs +16487 -11656
  104. package/dist/testing/package.json +1 -1
  105. package/dist/worker/index.d.mts +21 -0
  106. package/dist/worker/index.mjs +251 -0
  107. package/dist/worker/package.json +9 -0
  108. package/dist/worker/worker.js +13 -0
  109. package/dist/worker/worker.node.js +15 -0
  110. package/dist/worker/worker.shared.js +63 -0
  111. package/handlers.mjs +21 -1
  112. package/package.json +40 -56
  113. package/public.d.ts +12 -2
  114. package/{qwik-cli.cjs → qwik-cli.mjs} +1 -1
  115. package/server.d.ts +2 -0
  116. package/worker.d.ts +2 -0
  117. package/bindings/qwik.darwin-arm64.node +0 -0
  118. package/bindings/qwik.darwin-x64.node +0 -0
  119. package/bindings/qwik.linux-x64-gnu.node +0 -0
  120. package/bindings/qwik.wasm.cjs +0 -471
  121. package/bindings/qwik.wasm.mjs +0 -464
  122. package/bindings/qwik.win32-x64-msvc.node +0 -0
  123. package/bindings/qwik_wasm_bg.wasm +0 -0
  124. package/dist/build/index.cjs +0 -35
  125. package/dist/build/index.cjs.map +0 -7
  126. package/dist/build/index.dev.cjs +0 -37
  127. package/dist/build/index.dev.cjs.map +0 -7
  128. package/dist/build/index.prod.cjs +0 -37
  129. package/dist/build/index.prod.cjs.map +0 -7
  130. package/dist/cli.cjs +0 -5545
  131. package/dist/core.cjs +0 -11870
  132. package/dist/core.cjs.map +0 -1
  133. package/dist/core.prod.cjs +0 -5723
  134. package/dist/insights/index.qwik.cjs +0 -1
  135. package/dist/insights/vite/index.cjs +0 -1
  136. package/dist/loader/index.cjs +0 -4
  137. package/dist/optimizer.cjs +0 -4020
  138. package/dist/preloader.cjs +0 -269
  139. package/dist/server.cjs +0 -3040
  140. package/dist/starters/adapters/static/package.json +0 -19
  141. package/dist/starters/features/localize/package.json +0 -37
  142. package/dist/starters/features/localize/src/entry.ssr.tsx +0 -30
  143. package/dist/starters/features/localize/src/locales/message.en.json +0 -8
  144. package/dist/starters/features/localize/src/locales/message.it.json +0 -8
  145. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +0 -94
  146. package/dist/starters/features/localize/src/routes/[locale]/index.tsx +0 -52
  147. package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +0 -12
  148. package/dist/starters/features/playwright/playwright-report/index.html +0 -22026
  149. package/dist/starters/features/tailwind/.prettierrc.js +0 -3
  150. package/dist/testing/index.cjs +0 -33388
  151. /package/dist/starters/adapters/{static → ssg}/README.md +0 -0
@@ -0,0 +1,37 @@
1
+ {
2
+ "description": "Add compiled-i18n to your Qwik app",
3
+ "__qwik__": {
4
+ "displayName": "Integration: compiled-i18n (compile time translations)",
5
+ "priority": -10,
6
+ "viteConfig": {
7
+ "imports": [
8
+ {
9
+ "namedImports": [
10
+ "i18nPlugin"
11
+ ],
12
+ "importPath": "compiled-i18n/vite"
13
+ }
14
+ ],
15
+ "vitePlugins": [
16
+ "i18nPlugin({ locales: ['en'] })"
17
+ ]
18
+ },
19
+ "docs": [
20
+ "https://qwik.dev/docs/integrations/i18n/#localize",
21
+ "https://github.com/wmertens/compiled-i18n/blob/main/Readme.md"
22
+ ],
23
+ "nextSteps": {
24
+ "title": "Next Steps",
25
+ "lines": [
26
+ " - Change the `locales` array in the vite config to add more languages",
27
+ " - Use the `src/components/locale-selector/locale-selector.tsx` component to switch languages",
28
+ "",
29
+ " Check out the compiled-i18n docs:",
30
+ " - https://github.com/wmertens/compiled-i18n/blob/main/Readme.md"
31
+ ]
32
+ }
33
+ },
34
+ "devDependencies": {
35
+ "compiled-i18n": "latest"
36
+ }
37
+ }
@@ -0,0 +1,30 @@
1
+ import { component$, getLocale } from "@qwik.dev/core";
2
+ import { _, locales } from "compiled-i18n";
3
+
4
+ export const LocaleSelector = component$(() => {
5
+ const currentLocale = getLocale();
6
+ return (
7
+ <>
8
+ {locales.map((locale) => {
9
+ const isCurrent = locale === currentLocale;
10
+ return (
11
+ // Note, you must use `<a>` and not `<Link>` so the page reloads
12
+ <a
13
+ key={locale}
14
+ // When using route-based locale selection, build the URL here
15
+ href={`?locale=${locale}`}
16
+ aria-disabled={isCurrent}
17
+ class={
18
+ "btn btn-ghost btn-sm" +
19
+ (isCurrent
20
+ ? " bg-neutralContent text-neutral pointer-events-none"
21
+ : " bg-base-100 text-base-content")
22
+ }
23
+ >
24
+ {locale}
25
+ </a>
26
+ );
27
+ })}
28
+ </>
29
+ );
30
+ });
@@ -0,0 +1,31 @@
1
+ /**
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * SSR renderer function, used by Qwik Router.
5
+ *
6
+ * Note that this is the only place the Qwik renderer is called.
7
+ * On the client, containers resume and do not call render.
8
+ */
9
+ import { createRenderer } from "@qwik.dev/router";
10
+ import { extractBase, setSsrLocaleGetter } from "compiled-i18n/qwik";
11
+ import Root from "./root";
12
+
13
+ setSsrLocaleGetter();
14
+
15
+ export default createRenderer((opts) => {
16
+ return {
17
+ jsx: <Root />,
18
+ options: {
19
+ ...opts,
20
+
21
+ // determine the base URL for the client code
22
+ base: extractBase,
23
+
24
+ // Use container attributes to set attributes on the html tag.
25
+ containerAttributes: {
26
+ lang: opts.serverData?.locale ?? "en-us",
27
+ ...opts.containerAttributes,
28
+ },
29
+ },
30
+ };
31
+ });
@@ -0,0 +1,28 @@
1
+ // ... other imports
2
+ import { guessLocale } from "compiled-i18n";
3
+ import type { RequestHandler } from "@qwik.dev/router";
4
+
5
+ /**
6
+ * Handle incoming requests to determine and set the appropriate locale.
7
+ * This function checks for a 'locale' query parameter, then a `locale` cookie,
8
+ * and finally falls back to the 'Accept-Language' header.
9
+ */
10
+ export const onRequest: RequestHandler = async ({
11
+ query,
12
+ cookie,
13
+ headers,
14
+ locale,
15
+ }) => {
16
+ // Allow overriding locale with query param `locale`
17
+ if (query.has("locale")) {
18
+ const newLocale = guessLocale(query.get("locale"));
19
+ cookie.delete("locale");
20
+ cookie.set("locale", newLocale, {});
21
+ locale(newLocale);
22
+ } else {
23
+ // Choose locale based on cookie or accept-language header
24
+ const maybeLocale =
25
+ cookie.get("locale")?.value || headers.get("accept-language");
26
+ locale(guessLocale(maybeLocale));
27
+ }
28
+ };
@@ -0,0 +1,27 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Qwik browser-only starter</title>
7
+
8
+ <script async type="module" src="@qwik.dev/core/qwikloader.js">
9
+ // ^ This is the QwikLoader, it's required for Qwik to work
10
+ </script>
11
+ </head>
12
+ <body>
13
+ <div id="root"></div>
14
+
15
+ <script type="module">
16
+ import { render, jsx } from "@qwik.dev/core";
17
+ import Root from "./src/root";
18
+
19
+ /** This renders your application */
20
+ render(document.querySelector("#root"), jsx(Root));
21
+
22
+ if (isDev) {
23
+ import("/@id/@qwik-hmr-bridge");
24
+ }
25
+ </script>
26
+ </body>
27
+ </html>
@@ -0,0 +1,29 @@
1
+ {
2
+ "description": "Use Qwik in browser-only mode",
3
+ "__qwik__": {
4
+ "displayName": "Integration: Qwik in browser-only mode",
5
+ "priority": -10,
6
+ "viteConfig": {},
7
+ "docs": [
8
+ "https://qwik.dev/docs/integrations/client-only/"
9
+ ],
10
+ "nextSteps": {
11
+ "title": "Next Steps",
12
+ "lines": [
13
+ " - run `pnpm dev` to start the development server",
14
+ " - run `pnpm preview` to view a production build",
15
+ " - run `pnpm build` to build the application"
16
+ ]
17
+ }
18
+ },
19
+ "dependencies": {
20
+ "@qwik.dev/core": "workspace:*"
21
+ },
22
+ "devDependencies": {
23
+ "vite": "8.2.1"
24
+ },
25
+ "scripts": {
26
+ "dev": "vite",
27
+ "build": "vite build"
28
+ }
29
+ }
@@ -0,0 +1,15 @@
1
+ import { component$ } from "@qwik.dev/core";
2
+
3
+ import "./global.css";
4
+
5
+ export default component$(() => {
6
+ /**
7
+ * The starting point of the application.
8
+ */
9
+
10
+ return (
11
+ <div>
12
+ <h1>Hello World</h1>
13
+ </div>
14
+ );
15
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This is the base config for vite.
3
+ * When building, the adapter config is used which loads this file and extends it.
4
+ */
5
+ import { qwikVite } from "@qwik.dev/core/optimizer";
6
+ import { defineConfig, type UserConfig } from "vite";
7
+ import tsconfigPaths from "vite-tsconfig-paths";
8
+
9
+ export default defineConfig((): UserConfig => {
10
+ return {
11
+ plugins: [qwikVite({ csr: true }), tsconfigPaths({ root: "." })],
12
+ };
13
+ });
@@ -0,0 +1,5 @@
1
+ import { routeAction$ } from "@qwik.dev/router";
2
+
3
+ export const useExampleAction = routeAction$(() => {
4
+ return "This is example action data.";
5
+ });
@@ -1,18 +1,60 @@
1
+ import { $, component$ } from "@qwik.dev/core";
2
+ import { QwikRouterMockProvider } from "@qwik.dev/router";
3
+
1
4
  import { ExampleTest } from "./example";
5
+ import { useExampleLoader } from "../../loaders/example.loader";
6
+ import { useExampleAction } from "../../actions/example.action";
7
+
8
+ const Template = component$((props: { flag: boolean }) => {
9
+ const loadersMock = [
10
+ {
11
+ loader: useExampleLoader,
12
+ data: "Loader Data",
13
+ },
14
+ ];
15
+
16
+ const actionStub = $(() => cy.stub().as("actionStub"))();
17
+ const actionsMock = [
18
+ {
19
+ action: useExampleAction,
20
+ handler: $(async () => {
21
+ await actionStub.then((_) => _());
22
+ return { status: 200, result: "Action Data" };
23
+ }),
24
+ },
25
+ ];
26
+
27
+ return (
28
+ <QwikRouterMockProvider loaders={loadersMock} actions={actionsMock}>
29
+ <ExampleTest flag={props.flag} />
30
+ </QwikRouterMockProvider>
31
+ );
32
+ });
2
33
 
3
34
  it("should render ⭐", () => {
4
- cy.mount(<ExampleTest flag={true} />);
5
- cy.get("div.icon").should("contain.text", "⭐");
35
+ cy.mount(<Template flag={true} />);
36
+ cy.get("#icon").should("contain.text", "⭐");
6
37
  });
7
38
 
8
39
  it("should render 💣", () => {
9
- cy.mount(<ExampleTest flag={false} />);
10
- cy.get("div.icon").should("contain.text", "💣");
40
+ cy.mount(<Template flag={false} />);
41
+ cy.get("#icon").should("contain.text", "💣");
11
42
  });
12
43
 
13
44
  it("should count clicks", () => {
14
- cy.mount(<ExampleTest flag={true} />);
15
- cy.get("span").should("contain.text", "Count:0");
16
- cy.get("button").click();
17
- cy.get("span").should("contain.text", "Count:1");
45
+ cy.mount(<Template flag={true} />);
46
+ cy.get("#count").should("contain.text", "Count:0");
47
+ cy.get("#btn-counter").click();
48
+ cy.get("#count").should("contain.text", "Count:1");
49
+ });
50
+
51
+ it("should render loader data", () => {
52
+ cy.mount(<Template flag={true} />);
53
+ cy.get("#loader-data").should("contain.text", "Loader Data");
54
+ });
55
+
56
+ it("should call action on button click", () => {
57
+ cy.mount(<Template flag={true} />);
58
+ cy.get("#btn-action").click();
59
+ cy.get("@actionStub").should("have.been.called");
18
60
  });
@@ -1,17 +1,27 @@
1
1
  import { component$, useStore } from "@qwik.dev/core";
2
2
 
3
+ import { useExampleLoader } from "../../loaders/example.loader";
4
+ import { useExampleAction } from "../../actions/example.action";
5
+
3
6
  export const ExampleTest = component$((props: { flag: boolean }) => {
4
7
  const state = useStore({
5
8
  counter: 0,
6
9
  });
7
10
 
11
+ const loaderState = useExampleLoader();
12
+ const action = useExampleAction();
13
+
8
14
  return (
9
15
  <>
10
- <span>Count:{state.counter}</span>
11
- <div class="icon">Flag: {props.flag ? "⭐" : "💣"}</div>
12
- <button class="btn-counter" onClick$={() => state.counter++}>
16
+ <span id="count">Count:{state.counter}</span>
17
+ <div id="icon">Flag: {props.flag ? "⭐" : "💣"}</div>
18
+ <button id="btn-counter" onClick$={() => state.counter++}>
13
19
  Increment counter
14
20
  </button>
21
+ <span id="loader-data">{loaderState.value}</span>
22
+ <button id="btn-action" onClick$={() => action.submit()}>
23
+ Call action
24
+ </button>
15
25
  </>
16
26
  );
17
27
  });
@@ -0,0 +1,5 @@
1
+ import { routeLoader$ } from "@qwik.dev/router";
2
+
3
+ export const useExampleLoader = routeLoader$(() => {
4
+ return "This is example loader data.";
5
+ });
@@ -30,7 +30,7 @@
30
30
  "@types/better-sqlite3": "^7.6.12",
31
31
  "drizzle-kit": "^0.30.3",
32
32
  "better-sqlite3": "^11.8.1",
33
- "drizzle-orm": "^0.39.0"
33
+ "drizzle-orm": "^0.45.2"
34
34
  },
35
35
  "scripts": {
36
36
  "drizzle:generate": "drizzle-kit generate",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@builder.io/vite-plugin-macro": "~0.0.7",
26
- "@pandacss/dev": "^0.51.1"
26
+ "@pandacss/dev": "^0.54.0"
27
27
  },
28
28
  "scripts": {
29
29
  "prebuild.pandacss": "panda codegen --silent"
@@ -1,4 +1,4 @@
1
- module.exports = {
1
+ export default {
2
2
  plugins: {
3
3
  autoprefixer: {},
4
4
  "postcss-preset-env": {
@@ -4,7 +4,6 @@
4
4
  "experimentalDecorators": true,
5
5
  "emitDecoratorMetadata": true
6
6
  },
7
-
8
7
  "exclude": [
9
8
  "../**/*.spec.ts",
10
9
  "../**/*.test.ts",
@@ -26,5 +26,6 @@
26
26
  "@vanilla-extract/css": "^1.12.0",
27
27
  "styled-vanilla-extract": "^0.5.4",
28
28
  "@vanilla-extract/vite-plugin": "^5.0.1"
29
- }
29
+ },
30
+ "type": "module"
30
31
  }
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "devDependencies": {
23
23
  "prettier-plugin-tailwindcss": "^0.6.11",
24
- "tailwindcss": "^4.0.0",
25
- "@tailwindcss/vite": "^4.0.0"
24
+ "tailwindcss": "^4.1.4",
25
+ "@tailwindcss/vite": "^4.1.4"
26
26
  },
27
27
  "type": "module"
28
28
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @see https://prettier.io/docs/configuration
3
+ * @type {import("prettier").Config}
4
+ */
5
+
6
+ const config = {
7
+ plugins: ["prettier-plugin-tailwindcss"],
8
+ };
9
+
10
+ export default config;
@@ -15,7 +15,7 @@
15
15
  "devDependencies": {
16
16
  "autoprefixer": "^10.4.19",
17
17
  "postcss": "^8.4.39",
18
- "prettier-plugin-tailwindcss": "^0.5.4",
18
+ "prettier-plugin-tailwindcss": "^0.6.11",
19
19
  "tailwindcss": "^3.4.17"
20
20
  }
21
21
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @see https://prettier.io/docs/configuration
3
+ * @type {import("prettier").Config}
4
+ */
5
+
6
+ const config = {
7
+ plugins: ["prettier-plugin-tailwindcss"],
8
+ };
9
+
10
+ export default config;
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@vitest/ui": "^0.34.6",
14
- "vitest": "^0.34.6"
14
+ "vitest": "^4.1.10"
15
15
  },
16
16
  "scripts": {
17
17
  "test.unit": "vitest components",