rune-lab 0.0.18 → 0.0.20

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 (89) hide show
  1. package/README.md +28 -6
  2. package/dist/actions/portal.d.ts +7 -0
  3. package/dist/actions/portal.js +31 -0
  4. package/dist/components/Icon.svelte +45 -0
  5. package/dist/components/Icon.svelte.d.ts +8 -0
  6. package/dist/components/RuneProvider.svelte +78 -0
  7. package/dist/components/RuneProvider.svelte.d.ts +9 -0
  8. package/dist/composables/useRuneLab.d.ts +17 -0
  9. package/dist/composables/useRuneLab.js +19 -0
  10. package/dist/config.d.ts +4 -91
  11. package/dist/config.js +6 -38
  12. package/dist/context.d.ts +11 -0
  13. package/dist/context.js +12 -0
  14. package/dist/devtools/API_Monitor.svelte +5 -5
  15. package/dist/devtools/Toaster.svelte +93 -48
  16. package/dist/devtools/createConfigStore.svelte.d.ts +11 -1
  17. package/dist/devtools/createConfigStore.svelte.js +13 -11
  18. package/dist/features/command-palette/CommandPalette.svelte +57 -52
  19. package/dist/features/config/components/AppSettingSelector.svelte +91 -10
  20. package/dist/features/config/components/AppSettingSelector.svelte.d.ts +2 -0
  21. package/dist/features/config/components/CurrencySelector.svelte +27 -9
  22. package/dist/features/config/components/CurrencySelector.svelte.d.ts +3 -1
  23. package/dist/features/config/components/LanguageSelector.svelte +21 -6
  24. package/dist/features/config/components/LanguageSelector.svelte.d.ts +3 -1
  25. package/dist/features/config/components/ThemeSelector.svelte +23 -8
  26. package/dist/features/config/components/ThemeSelector.svelte.d.ts +3 -1
  27. package/dist/features/detail-panels/DashboardPanel.svelte +171 -0
  28. package/dist/features/detail-panels/DashboardPanel.svelte.d.ts +3 -0
  29. package/dist/features/detail-panels/ShortcutsPanel.svelte +233 -0
  30. package/dist/features/detail-panels/ShortcutsPanel.svelte.d.ts +3 -0
  31. package/dist/features/detail-panels/ShowcasePanel.svelte +116 -0
  32. package/dist/features/detail-panels/ShowcasePanel.svelte.d.ts +3 -0
  33. package/dist/features/detail-panels/showcase-components.d.ts +6 -0
  34. package/dist/features/detail-panels/showcase-components.js +65 -0
  35. package/dist/features/shortcuts/ShortcutPalette.svelte +243 -0
  36. package/dist/features/shortcuts/ShortcutPalette.svelte.d.ts +6 -0
  37. package/dist/index.d.ts +12 -12
  38. package/dist/index.js +16 -14
  39. package/dist/layout/ContentArea.svelte +19 -0
  40. package/dist/layout/ContentArea.svelte.d.ts +8 -0
  41. package/dist/layout/DetailPanel.svelte +12 -0
  42. package/dist/layout/DetailPanel.svelte.d.ts +7 -0
  43. package/dist/layout/NavigationPanel.svelte +90 -0
  44. package/dist/layout/NavigationPanel.svelte.d.ts +10 -0
  45. package/dist/layout/WorkspaceLayout.svelte +150 -0
  46. package/dist/layout/WorkspaceLayout.svelte.d.ts +11 -0
  47. package/dist/layout/WorkspaceStrip.svelte +75 -0
  48. package/dist/layout/WorkspaceStrip.svelte.d.ts +9 -0
  49. package/dist/layout/index.d.ts +7 -0
  50. package/dist/layout/index.js +7 -0
  51. package/dist/paraglide/runtime.d.ts +43 -2
  52. package/dist/paraglide/runtime.js +143 -23
  53. package/dist/paraglide/server.js +37 -14
  54. package/dist/persistence/drivers.d.ts +10 -0
  55. package/dist/persistence/drivers.js +71 -0
  56. package/dist/persistence/types.d.ts +17 -0
  57. package/dist/persistence/types.js +2 -0
  58. package/dist/showcase/AppStateInspector.svelte +33 -21
  59. package/dist/showcase/Showcase.svelte +8 -9
  60. package/dist/showcase/Showcase.svelte.d.ts +17 -2
  61. package/dist/showcase/StoreDetailCard.svelte +0 -3
  62. package/dist/{features/config/stores → state}/api.svelte.d.ts +3 -3
  63. package/dist/{features/config/stores → state}/api.svelte.js +9 -2
  64. package/dist/{features/config/stores → state}/app.svelte.d.ts +3 -3
  65. package/dist/{features/config/stores → state}/app.svelte.js +14 -4
  66. package/dist/state/commands.svelte.d.ts +46 -0
  67. package/dist/state/commands.svelte.js +136 -0
  68. package/dist/{features/config/stores → state}/currency.svelte.d.ts +4 -1
  69. package/dist/state/currency.svelte.js +29 -0
  70. package/dist/state/index.d.ts +9 -0
  71. package/dist/state/index.js +12 -0
  72. package/dist/{features/config/stores → state}/language.svelte.d.ts +4 -1
  73. package/dist/state/language.svelte.js +48 -0
  74. package/dist/state/layout.svelte.d.ts +51 -0
  75. package/dist/state/layout.svelte.js +112 -0
  76. package/dist/state/shortcuts.svelte.d.ts +121 -0
  77. package/dist/state/shortcuts.svelte.js +231 -0
  78. package/dist/state/theme.svelte.d.ts +14 -0
  79. package/dist/{features/config/stores → state}/theme.svelte.js +16 -8
  80. package/dist/{features/config/stores → state}/toast.svelte.d.ts +3 -3
  81. package/dist/{features/config/stores → state}/toast.svelte.js +9 -2
  82. package/package.json +22 -13
  83. package/dist/features/command-palette/commands.svelte.d.ts +0 -29
  84. package/dist/features/command-palette/commands.svelte.js +0 -134
  85. package/dist/features/config/stores/currency.svelte.js +0 -21
  86. package/dist/features/config/stores/index.d.ts +0 -1
  87. package/dist/features/config/stores/index.js +0 -7
  88. package/dist/features/config/stores/language.svelte.js +0 -29
  89. package/dist/features/config/stores/theme.svelte.d.ts +0 -11
package/README.md CHANGED
@@ -60,16 +60,18 @@ bun install rune-lab
60
60
 
61
61
  ## Project Configuration
62
62
 
63
- ### Deno / SSR projects
63
+ After installing, two configuration steps are required to ensure components are
64
+ compiled and styled correctly in your consuming project.
64
65
 
65
- Because Deno's Vite SSR module runner externalizes `node_modules` by default,
66
- `.svelte` files from this package would be loaded as raw ES modules, bypassing
67
- the Svelte compiler. To prevent this, you need to tell Vite to process
68
- `rune-lab` through its plugin pipeline.
66
+ ### Step 1 Vite: process `rune-lab` through the Svelte compiler
69
67
 
70
- Add the following to your consuming project's `vite.config.ts`:
68
+ Vite's SSR module runner externalizes `node_modules` by default, which means
69
+ `.svelte` files from this package would be loaded as raw ES modules, bypassing
70
+ the Svelte compiler entirely. Add the following to your `vite.config.ts` to
71
+ force Vite to process `rune-lab` through its plugin pipeline:
71
72
 
72
73
  ```ts
74
+ // vite.config.ts
73
75
  export default defineConfig({
74
76
  plugins: [sveltekit()],
75
77
  ssr: {
@@ -81,6 +83,26 @@ export default defineConfig({
81
83
  This ensures the Svelte plugin transforms the components correctly during SSR,
82
84
  just as it would for your own source files.
83
85
 
86
+ ### Step 2 — Tailwind CSS: scan `rune-lab` for utility classes
87
+
88
+ Tailwind only generates CSS for the classes it can find by scanning your source
89
+ files. Because `rune-lab` lives in `node_modules`, its DaisyUI classes are not
90
+ scanned by default and the components will appear unstyled.
91
+
92
+ Add a `@source` directive to your project's main CSS file to tell Tailwind to
93
+ also scan the `rune-lab` dist output:
94
+
95
+ ```css
96
+ /* app.css / layout.css / global.css — wherever you import Tailwind */
97
+ @import "tailwindcss";
98
+ @source "../node_modules/rune-lab/dist"; /* 👈 add this */
99
+ ```
100
+
101
+ > **Note:** Adjust the relative path to `node_modules` if your CSS file lives at
102
+ > a different depth in your project tree. With both steps in place, all DaisyUI
103
+ > component classes used by `rune-lab` will be included in your build and theme
104
+ > switching will work across library components and your own code alike.
105
+
84
106
  ## License
85
107
 
86
108
  MIT License - See [LICENSE](LICENSE) for details.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Svelte action to teleport a DOM element to a different target (e.g. body)
3
+ */
4
+ export declare function portal(node: HTMLElement, target?: string | HTMLElement): {
5
+ update: (newTarget: string | HTMLElement) => void;
6
+ destroy(): void;
7
+ };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Svelte action to teleport a DOM element to a different target (e.g. body)
3
+ */
4
+ export function portal(node, target = "body") {
5
+ let targetNode;
6
+ let isTeleported = false;
7
+ function update(newTarget) {
8
+ if (typeof newTarget === "string") {
9
+ targetNode = document.querySelector(newTarget);
10
+ if (!targetNode && import.meta.env?.DEV) {
11
+ console.warn(`portal target selector "${newTarget}" not found in document.`);
12
+ }
13
+ }
14
+ else {
15
+ targetNode = newTarget;
16
+ }
17
+ if (targetNode) {
18
+ targetNode.appendChild(node);
19
+ isTeleported = true;
20
+ }
21
+ }
22
+ update(target);
23
+ return {
24
+ update,
25
+ destroy() {
26
+ if (isTeleported && node.parentNode) {
27
+ node.parentNode.removeChild(node);
28
+ }
29
+ },
30
+ };
31
+ }
@@ -0,0 +1,45 @@
1
+ <script lang="ts">
2
+ /**
3
+ * Simple Icon component for Rune Lab
4
+ * Centralizes SVG paths to reduce boilerplate
5
+ */
6
+ let { name, size = "w-5 h-5", class: className = "" } = $props<{
7
+ name: "search" | "chevron-down" | "info" | "shortcut" | "close" | "external";
8
+ size?: string;
9
+ class?: string;
10
+ }>();
11
+
12
+ const paths: Record<string, string> = {
13
+ search: '<circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path>',
14
+ "chevron-down": '<path d="m6 9 6 6 6-6" />',
15
+ info: '<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',
16
+ shortcut: '<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',
17
+ close: '<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',
18
+ external: '<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/>',
19
+ unknown: '<circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/>'
20
+ };
21
+
22
+ const path = $derived.by(() => {
23
+ if (!paths[name]) {
24
+ if (import.meta.env?.DEV) {
25
+ console.warn(`[Icon] Unknown icon name: "${name}"`);
26
+ }
27
+ return paths.unknown;
28
+ }
29
+ return paths[name];
30
+ });
31
+ </script>
32
+
33
+ <svg
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ viewBox="0 0 24 24"
36
+ fill="none"
37
+ stroke="currentColor"
38
+ stroke-width="2"
39
+ stroke-linecap="round"
40
+ stroke-linejoin="round"
41
+ class="{size} {className}"
42
+ >
43
+ <!-- eslint-disable-next-line svelte/no-at-html-tags -->
44
+ {@html path}
45
+ </svg>
@@ -0,0 +1,8 @@
1
+ type $$ComponentProps = {
2
+ name: "search" | "chevron-down" | "info" | "shortcut" | "close" | "external";
3
+ size?: string;
4
+ class?: string;
5
+ };
6
+ declare const Icon: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type Icon = ReturnType<typeof Icon>;
8
+ export default Icon;
@@ -0,0 +1,78 @@
1
+ <script lang="ts">
2
+ import { setContext, type Snippet } from "svelte";
3
+ import {
4
+ createAppStore,
5
+ createLayoutStore,
6
+ createCommandStore,
7
+ createApiStore,
8
+ createToastStore,
9
+ createThemeStore,
10
+ createLanguageStore,
11
+ createCurrencyStore,
12
+ createShortcutStore,
13
+ } from "../state/index";
14
+ import { Toaster, CommandPalette, ShortcutPalette } from "../index";
15
+
16
+ import type { PersistenceDriver } from "../persistence/types";
17
+ import { RUNE_LAB_CONTEXT } from "../context";
18
+
19
+ let { children, persistence } = $props<{
20
+ children: Snippet;
21
+ persistence?: PersistenceDriver;
22
+ }>();
23
+
24
+ // 1. Initialize Base Configuration Stores
25
+ const appStore = createAppStore();
26
+ const apiStore = createApiStore();
27
+ const toastStore = createToastStore();
28
+ // We use a closure approach (`() => persistence`) as supported by the updated config definitions,
29
+ // to strictly respect Svelte 5 state capturing validations without disabling them globally.
30
+ const themeStore = createThemeStore(() => persistence);
31
+ const languageStore = createLanguageStore(() => persistence);
32
+ const currencyStore = createCurrencyStore(() => persistence);
33
+ const shortcutStore = createShortcutStore();
34
+
35
+ // 2. Initialize Complex Stores (Dependency Injection)
36
+ const layoutStore = createLayoutStore(() => persistence);
37
+ const commandStore = createCommandStore({
38
+ appStore,
39
+ apiStore,
40
+ toastStore,
41
+ themeStore,
42
+ languageStore,
43
+ currencyStore,
44
+ });
45
+
46
+ // 3. Provide Contexts
47
+ setContext(RUNE_LAB_CONTEXT.app, appStore);
48
+ setContext(RUNE_LAB_CONTEXT.api, apiStore);
49
+ setContext(RUNE_LAB_CONTEXT.toast, toastStore);
50
+ setContext(RUNE_LAB_CONTEXT.theme, themeStore);
51
+ setContext(RUNE_LAB_CONTEXT.language, languageStore);
52
+ setContext(RUNE_LAB_CONTEXT.currency, currencyStore);
53
+ setContext(RUNE_LAB_CONTEXT.shortcut, shortcutStore);
54
+ setContext(RUNE_LAB_CONTEXT.layout, layoutStore);
55
+ setContext(RUNE_LAB_CONTEXT.commands, commandStore);
56
+
57
+ // Meta tags derived from app store state
58
+ const metaTags = $derived([
59
+ { name: "description", content: appStore.description },
60
+ { name: "author", content: appStore.author },
61
+ ]);
62
+ </script>
63
+
64
+ <svelte:head>
65
+ <title>{appStore.name}</title>
66
+ <link rel="icon" href={"/img/rune.png"} />
67
+ {#each metaTags as meta}
68
+ <meta name={meta.name} content={meta.content} />
69
+ {/each}
70
+ </svelte:head>
71
+
72
+ <!-- Global Overlays -->
73
+ <Toaster />
74
+ <CommandPalette />
75
+ <ShortcutPalette />
76
+
77
+ <!-- Render Children -->
78
+ {@render children()}
@@ -0,0 +1,9 @@
1
+ import { type Snippet } from "svelte";
2
+ import type { PersistenceDriver } from "../persistence/types";
3
+ type $$ComponentProps = {
4
+ children: Snippet;
5
+ persistence?: PersistenceDriver;
6
+ };
7
+ declare const RuneProvider: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type RuneProvider = ReturnType<typeof RuneProvider>;
9
+ export default RuneProvider;
@@ -0,0 +1,17 @@
1
+ import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore } from "../state/index";
2
+ export interface RuneLabContext {
3
+ app: ReturnType<typeof getAppStore>;
4
+ api: ReturnType<typeof getApiStore>;
5
+ toast: ReturnType<typeof getToastStore>;
6
+ theme: ReturnType<typeof getThemeStore>;
7
+ language: ReturnType<typeof getLanguageStore>;
8
+ currency: ReturnType<typeof getCurrencyStore>;
9
+ shortcut: ReturnType<typeof getShortcutStore>;
10
+ layout: ReturnType<typeof getLayoutStore>;
11
+ commands: ReturnType<typeof getCommandStore>;
12
+ }
13
+ /**
14
+ * Retrieves all Rune Lab stores from the Svelte context tree.
15
+ * Must be called during component initialization (in the `<script>` block).
16
+ */
17
+ export declare function useRuneLab(): RuneLabContext;
@@ -0,0 +1,19 @@
1
+ // src/lib/composables/useRuneLab.ts
2
+ import { getApiStore, getAppStore, getCommandStore, getCurrencyStore, getLanguageStore, getLayoutStore, getShortcutStore, getThemeStore, getToastStore, } from "../state/index";
3
+ /**
4
+ * Retrieves all Rune Lab stores from the Svelte context tree.
5
+ * Must be called during component initialization (in the `<script>` block).
6
+ */
7
+ export function useRuneLab() {
8
+ return {
9
+ app: getAppStore(),
10
+ api: getApiStore(),
11
+ toast: getToastStore(),
12
+ theme: getThemeStore(),
13
+ language: getLanguageStore(),
14
+ currency: getCurrencyStore(),
15
+ shortcut: getShortcutStore(),
16
+ layout: getLayoutStore(),
17
+ commands: getCommandStore(),
18
+ };
19
+ }
package/dist/config.d.ts CHANGED
@@ -1,91 +1,4 @@
1
- import { appStore } from "./features/config/stores/app.svelte";
2
- import { apiStore } from "./features/config/stores/api.svelte";
3
- import { toastStore } from "./features/config/stores/toast.svelte";
4
- import { commandStore } from "./features/command-palette/commands.svelte";
5
- import { themeStore } from "./features/config/stores/theme.svelte";
6
- import { languageStore } from "./features/config/stores/language.svelte";
7
- import { currencyStore } from "./features/config/stores/currency.svelte";
8
- /**
9
- * `appConfig` — single entry-point to configure and control the entire app.
10
- *
11
- * @example
12
- * ```ts
13
- * import { appConfig } from 'rune-lab/config';
14
- *
15
- * appConfig.app.init({ name: 'My App', version: '1.0.0' });
16
- * appConfig.api.init('https://api.example.com', 'v1');
17
- * appConfig.toast.success('Ready!');
18
- * ```
19
- */
20
- export declare const appConfig: {
21
- /** Application metadata (name, version, description…) */
22
- readonly app: {
23
- name: string;
24
- version: string;
25
- description: string;
26
- author: string;
27
- repository: string;
28
- license: string;
29
- homepage: string;
30
- "__#private@#initialized": boolean;
31
- init(data: Partial<import(".").AppData>): void;
32
- get info(): import(".").AppData;
33
- };
34
- /** API connection state and base URL */
35
- readonly api: {
36
- url: string;
37
- version: string;
38
- connectionState: import("./features/config/stores/api.svelte").ConnectionState;
39
- isConnected: boolean;
40
- isLoading: boolean;
41
- get URL(): string;
42
- get VERSION(): string;
43
- get IS_CONNECTED(): boolean;
44
- get IS_LOADING(): boolean;
45
- reconnect(): Promise<void>;
46
- init(url: string, version?: string): void;
47
- };
48
- /** Active theme + available themes */
49
- readonly theme: {
50
- current: string;
51
- available: import(".").Theme[];
52
- set(id: string): void;
53
- get(id: string): import(".").Theme | undefined;
54
- getProp<K extends keyof import(".").Theme>(prop: K, id?: string | undefined): import(".").Theme[K] | undefined;
55
- };
56
- /** Active language / locale */
57
- readonly language: {
58
- current: string | undefined;
59
- available: import(".").Language[];
60
- set(id: string | undefined): void;
61
- get(id: string | undefined): import(".").Language | undefined;
62
- getProp<K extends keyof import(".").Language>(prop: K, id?: string | undefined): import(".").Language[K] | undefined;
63
- };
64
- /** Active currency */
65
- readonly currency: {
66
- current: string | number;
67
- available: import(".").Currency[];
68
- set(id: string | number): void;
69
- get(id: string | number): import(".").Currency | undefined;
70
- getProp<K extends keyof import(".").Currency>(prop: K, id?: string | number | undefined): import(".").Currency[K] | undefined;
71
- };
72
- /** Toast notification queue */
73
- readonly toast: {
74
- toasts: import("./features/config/stores/toast.svelte").Toast[];
75
- send(message: string, type?: import("./features/config/stores/toast.svelte").ToastType, duration?: number): void;
76
- dismiss(id: string): void;
77
- success(msg: string): void;
78
- error(msg: string): void;
79
- warn(msg: string): void;
80
- info(msg: string): void;
81
- };
82
- /** Command palette registry */
83
- readonly commands: {
84
- commands: import(".").Command[];
85
- register(command: import(".").Command): void;
86
- unregister(id: string): void;
87
- search(query: string, parentId?: string): import(".").Command[];
88
- "__#private@#findById"(id: string, list: import(".").Command[]): import(".").Command | undefined;
89
- };
90
- };
91
- export { apiStore, appStore, commandStore, currencyStore, languageStore, themeStore, toastStore, };
1
+ export { AppStore, createAppStore, getAppStore } from "./state/app.svelte";
2
+ export { createLayoutStore, getLayoutStore, LayoutStore, } from "./state/layout.svelte";
3
+ export { type Command, CommandStore, createCommandStore, getCommandStore, } from "./state/commands.svelte";
4
+ export { createApiStore, createCurrencyStore, createLanguageStore, createShortcutStore, createThemeStore, createToastStore, getApiStore, getCurrencyStore, getLanguageStore, getShortcutStore, getThemeStore, getToastStore, } from "./state/index";
package/dist/config.js CHANGED
@@ -1,40 +1,8 @@
1
1
  // src/lib/config.ts
2
2
  // Unified facade over all app-level stores.
3
- // Import this instead of wiring each store individually.
4
- import { appStore } from "./features/config/stores/app.svelte";
5
- import { apiStore } from "./features/config/stores/api.svelte";
6
- import { toastStore } from "./features/config/stores/toast.svelte";
7
- import { commandStore } from "./features/command-palette/commands.svelte";
8
- import { themeStore } from "./features/config/stores/theme.svelte";
9
- import { languageStore } from "./features/config/stores/language.svelte";
10
- import { currencyStore } from "./features/config/stores/currency.svelte";
11
- /**
12
- * `appConfig` — single entry-point to configure and control the entire app.
13
- *
14
- * @example
15
- * ```ts
16
- * import { appConfig } from 'rune-lab/config';
17
- *
18
- * appConfig.app.init({ name: 'My App', version: '1.0.0' });
19
- * appConfig.api.init('https://api.example.com', 'v1');
20
- * appConfig.toast.success('Ready!');
21
- * ```
22
- */
23
- export const appConfig = {
24
- /** Application metadata (name, version, description…) */
25
- app: appStore,
26
- /** API connection state and base URL */
27
- api: apiStore,
28
- /** Active theme + available themes */
29
- theme: themeStore,
30
- /** Active language / locale */
31
- language: languageStore,
32
- /** Active currency */
33
- currency: currencyStore,
34
- /** Toast notification queue */
35
- toast: toastStore,
36
- /** Command palette registry */
37
- commands: commandStore,
38
- };
39
- // Re-export individual stores for consumers who want fine-grained imports
40
- export { apiStore, appStore, commandStore, currencyStore, languageStore, themeStore, toastStore, };
3
+ // Updated for SSR safety: Re-exports factories for context-aware stores.
4
+ export { AppStore, createAppStore, getAppStore } from "./state/app.svelte";
5
+ export { createLayoutStore, getLayoutStore, LayoutStore, } from "./state/layout.svelte";
6
+ export { CommandStore, createCommandStore, getCommandStore, } from "./state/commands.svelte";
7
+ // These stores are factories now
8
+ export { createApiStore, createCurrencyStore, createLanguageStore, createShortcutStore, createThemeStore, createToastStore, getApiStore, getCurrencyStore, getLanguageStore, getShortcutStore, getThemeStore, getToastStore, } from "./state/index";
@@ -0,0 +1,11 @@
1
+ export declare const RUNE_LAB_CONTEXT: {
2
+ readonly app: symbol;
3
+ readonly api: symbol;
4
+ readonly toast: symbol;
5
+ readonly theme: symbol;
6
+ readonly language: symbol;
7
+ readonly currency: symbol;
8
+ readonly shortcut: symbol;
9
+ readonly layout: symbol;
10
+ readonly commands: symbol;
11
+ };
@@ -0,0 +1,12 @@
1
+ // src/lib/context.ts
2
+ export const RUNE_LAB_CONTEXT = {
3
+ app: Symbol("rl:app"),
4
+ api: Symbol("rl:api"),
5
+ toast: Symbol("rl:toast"),
6
+ theme: Symbol("rl:theme"),
7
+ language: Symbol("rl:language"),
8
+ currency: Symbol("rl:currency"),
9
+ shortcut: Symbol("rl:shortcut"),
10
+ layout: Symbol("rl:layout"),
11
+ commands: Symbol("rl:commands"),
12
+ };
@@ -1,6 +1,9 @@
1
1
  <script lang="ts">
2
- import { apiStore } from "../features/config/stores/api.svelte";
3
- import { toastStore } from "../features/config/stores/toast.svelte";
2
+ import { getApiStore } from "../state/api.svelte";
3
+ import { getToastStore } from "../state/toast.svelte";
4
+
5
+ const apiStore = getApiStore();
6
+ const toastStore = getToastStore();
4
7
 
5
8
  let copied = $state(false);
6
9
  let isVisible = $state(true);
@@ -157,6 +160,3 @@
157
160
  </button>
158
161
  </div>
159
162
  </div>
160
-
161
- <style>/*! 🌼 daisyUI 5.5.17 - MIT License */ @layer utilities{.status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}@media (width>=640px){.sm\:status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.sm\:status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.sm\:status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.sm\:status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.sm\:status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.sm\:status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.sm\:status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.sm\:status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.sm\:status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.sm\:status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.sm\:status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.sm\:status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.sm\:status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.sm\:status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}}@media (width>=768px){.md\:status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.md\:status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.md\:status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.md\:status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.md\:status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.md\:status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.md\:status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.md\:status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.md\:status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.md\:status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.md\:status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.md\:status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.md\:status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.md\:status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}}@media (width>=1024px){.lg\:status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.lg\:status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.lg\:status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.lg\:status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.lg\:status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.lg\:status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.lg\:status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.lg\:status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.lg\:status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.lg\:status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.lg\:status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.lg\:status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.lg\:status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.lg\:status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}}@media (width>=1280px){.xl\:status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.xl\:status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.xl\:status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.xl\:status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.xl\:status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.xl\:status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.xl\:status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.xl\:status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.xl\:status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.xl\:status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.xl\:status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.xl\:status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.xl\:status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.xl\:status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}}@media (width>=1536px){.\32 xl\:status{@layer daisyui.l1.l2.l3{&{aspect-ratio:1;border-radius:var(--radius-selector);background-color:color-mix(in oklab,var(--color-base-content)20%,transparent);vertical-align:middle;width:.5rem;height:.5rem;color:color-mix(in oklab,var(--color-black)30%,transparent);background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle at 35% 30%,oklch(1 0 0/calc(var(--depth)*.5)),#0000);box-shadow:0 2px 3px -1px color-mix(in oklab,currentColor calc(var(--depth)*100%),#0000);display:inline-block}}}.\32 xl\:status-primary{@layer daisyui.l1.l2{&{background-color:var(--color-primary);color:var(--color-primary)}}}.\32 xl\:status-secondary{@layer daisyui.l1.l2{&{background-color:var(--color-secondary);color:var(--color-secondary)}}}.\32 xl\:status-accent{@layer daisyui.l1.l2{&{background-color:var(--color-accent);color:var(--color-accent)}}}.\32 xl\:status-neutral{@layer daisyui.l1.l2{&{background-color:var(--color-neutral);color:var(--color-neutral)}}}.\32 xl\:status-info{@layer daisyui.l1.l2{&{background-color:var(--color-info);color:var(--color-info)}}}.\32 xl\:status-success{@layer daisyui.l1.l2{&{background-color:var(--color-success);color:var(--color-success)}}}.\32 xl\:status-warning{@layer daisyui.l1.l2{&{background-color:var(--color-warning);color:var(--color-warning)}}}.\32 xl\:status-error{@layer daisyui.l1.l2{&{background-color:var(--color-error);color:var(--color-error)}}}.\32 xl\:status-xs{@layer daisyui.l1.l2{&{width:.125rem;height:.125rem}}}.\32 xl\:status-sm{@layer daisyui.l1.l2{&{width:.25rem;height:.25rem}}}.\32 xl\:status-md{@layer daisyui.l1.l2{&{width:.5rem;height:.5rem}}}.\32 xl\:status-lg{@layer daisyui.l1.l2{&{width:.75rem;height:.75rem}}}.\32 xl\:status-xl{@layer daisyui.l1.l2{&{width:1rem;height:1rem}}}}} /*! 🌼 daisyUI 5.5.17 - MIT License */ @layer utilities{.badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}@media (width>=640px){.sm\:badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.sm\:badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.sm\:badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.sm\:badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.sm\:badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.sm\:badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.sm\:badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.sm\:badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.sm\:badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.sm\:badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.sm\:badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.sm\:badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.sm\:badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.sm\:badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.sm\:badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.sm\:badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.sm\:badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.sm\:badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=768px){.md\:badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.md\:badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.md\:badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.md\:badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.md\:badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.md\:badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.md\:badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.md\:badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.md\:badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.md\:badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.md\:badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.md\:badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.md\:badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.md\:badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.md\:badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.md\:badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.md\:badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.md\:badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1024px){.lg\:badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.lg\:badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.lg\:badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.lg\:badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.lg\:badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.lg\:badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.lg\:badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.lg\:badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.lg\:badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.lg\:badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.lg\:badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.lg\:badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.lg\:badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.lg\:badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.lg\:badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.lg\:badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.lg\:badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.lg\:badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1280px){.xl\:badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.xl\:badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.xl\:badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.xl\:badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.xl\:badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.xl\:badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.xl\:badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.xl\:badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.xl\:badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.xl\:badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.xl\:badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.xl\:badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.xl\:badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.xl\:badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.xl\:badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.xl\:badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.xl\:badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.xl\:badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}@media (width>=1536px){.\32 xl\:badge{@layer daisyui.l1.l2.l3{&{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border)solid var(--badge-color,var(--color-base-200));background-size:auto,calc(var(--noise)*100%);background-image:none,var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem)*6);width:fit-content;height:var(--size);padding-inline:calc(var(--size)/2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}}.\32 xl\:badge-outline{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}}}.\32 xl\:badge-dash{@layer daisyui.l1.l2{&{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}}}.\32 xl\:badge-soft{@layer daisyui.l1.l2{&{color:var(--badge-color,var(--color-base-content));background-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))8%,var(--color-base-100));border-color:color-mix(in oklab,var(--badge-color,var(--color-base-content))10%,var(--color-base-100));background-image:none}}}.\32 xl\:badge-primary{@layer daisyui.l1.l2{&{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}}.\32 xl\:badge-secondary{@layer daisyui.l1.l2{&{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}}}.\32 xl\:badge-accent{@layer daisyui.l1.l2{&{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}}}.\32 xl\:badge-neutral{@layer daisyui.l1.l2{&{--badge-color:var(--color-neutral);--badge-fg:var(--color-neutral-content)}}}.\32 xl\:badge-info{@layer daisyui.l1.l2{&{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}}}.\32 xl\:badge-success{@layer daisyui.l1.l2{&{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}}}.\32 xl\:badge-warning{@layer daisyui.l1.l2{&{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}}}.\32 xl\:badge-error{@layer daisyui.l1.l2{&{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}}}.\32 xl\:badge-ghost{@layer daisyui.l1.l2{&{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}}}.\32 xl\:badge-xs{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*4);font-size:.625rem}}}.\32 xl\:badge-sm{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*5);font-size:.75rem}}}.\32 xl\:badge-md{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*6);font-size:.875rem}}}.\32 xl\:badge-lg{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*7);font-size:1rem}}}.\32 xl\:badge-xl{@layer daisyui.l1.l2{&{--size:calc(var(--size-selector,.25rem)*8);font-size:1.125rem}}}}} /*! 🌼 daisyUI 5.5.17 - MIT License */ @layer utilities{:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.btn-disabled,.btn:disabled,.btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.btn-outline,.btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.btn-dash{border-style:dashed}.btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.btn-block{@layer daisyui.l1.l2{&{width:100%}}}@media (width>=640px){:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.sm\:prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.sm\:btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.sm\:btn-disabled,.sm\:btn:disabled,.sm\:btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.sm\:btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.sm\:btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.sm\:btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.sm\:btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.sm\:btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.sm\:btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.sm\:btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.sm\:btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.sm\:btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.sm\:btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.sm\:btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.sm\:btn-outline,.sm\:btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.sm\:btn-dash{border-style:dashed}.sm\:btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.sm\:btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.sm\:btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.sm\:btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.sm\:btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.sm\:btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.sm\:btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.sm\:btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.sm\:btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.sm\:btn-block{@layer daisyui.l1.l2{&{width:100%}}}}@media (width>=768px){:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.md\:prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.md\:btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.md\:btn-disabled,.md\:btn:disabled,.md\:btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.md\:btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.md\:btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.md\:btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.md\:btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.md\:btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.md\:btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.md\:btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.md\:btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.md\:btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.md\:btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.md\:btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.md\:btn-outline,.md\:btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.md\:btn-dash{border-style:dashed}.md\:btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.md\:btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.md\:btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.md\:btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.md\:btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.md\:btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.md\:btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.md\:btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.md\:btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.md\:btn-block{@layer daisyui.l1.l2{&{width:100%}}}}@media (width>=1024px){:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.lg\:prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.lg\:btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.lg\:btn-disabled,.lg\:btn:disabled,.lg\:btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.lg\:btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.lg\:btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.lg\:btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.lg\:btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.lg\:btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.lg\:btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.lg\:btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.lg\:btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.lg\:btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.lg\:btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.lg\:btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.lg\:btn-outline,.lg\:btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.lg\:btn-dash{border-style:dashed}.lg\:btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.lg\:btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.lg\:btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.lg\:btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.lg\:btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.lg\:btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.lg\:btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.lg\:btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.lg\:btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.lg\:btn-block{@layer daisyui.l1.l2{&{width:100%}}}}@media (width>=1280px){:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.xl\:prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.xl\:btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.xl\:btn-disabled,.xl\:btn:disabled,.xl\:btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.xl\:btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.xl\:btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.xl\:btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.xl\:btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.xl\:btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.xl\:btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.xl\:btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.xl\:btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.xl\:btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.xl\:btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.xl\:btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.xl\:btn-outline,.xl\:btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.xl\:btn-dash{border-style:dashed}.xl\:btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.xl\:btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.xl\:btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.xl\:btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.xl\:btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.xl\:btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.xl\:btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.xl\:btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.xl\:btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.xl\:btn-block{@layer daisyui.l1.l2{&{width:100%}}}}@media (width>=1536px){:where(.btn){@layer daisyui.l1.l2.l3{&{width:unset}}}.\32 xl\:prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.\32 xl\:btn{@layer daisyui.l1.l2.l3{&{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:color-mix(in oklab,var(--btn-bg),#000 calc(var(--depth)*5%));--btn-shadow:0 3px 2px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000),0 4px 3px -2px color-mix(in oklab,var(--btn-bg)calc(var(--depth)*30%),#0000);--btn-noise:var(--fx-noise);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@media (hover:hover){&:hover{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%)}}&:focus-visible,&:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}&:active:not(.btn-active){--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 5%);--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);translate:0 .5px}&:is(input[type=checkbox],input[type=radio]){appearance:none;&[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}}&:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}}}.\32 xl\:btn-disabled,.\32 xl\:btn:disabled,.\32 xl\:btn[disabled]{@layer daisyui.l1.l2{&{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}&:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent);box-shadow:none}}}.\32 xl\:btn-active{@layer daisyui.l1.l2{&{--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-200)),#000 7%);--btn-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0);isolation:isolate}}}.\32 xl\:btn-primary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}}}.\32 xl\:btn-secondary{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}}.\32 xl\:btn-accent{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}}}.\32 xl\:btn-neutral{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}}}.\32 xl\:btn-info{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}}}.\32 xl\:btn-success{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}}.\32 xl\:btn-warning{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}}.\32 xl\:btn-error{@layer daisyui.l1.l2.l3{&{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}}}.\32 xl\:btn-ghost{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none;&:not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}}}.\32 xl\:btn-link{@layer daisyui.l1{&{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}&:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}&:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}}}.\32 xl\:btn-outline,.\32 xl\:btn-dash{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}}.\32 xl\:btn-dash{border-style:dashed}.\32 xl\:btn-soft{@layer daisyui.l1{&:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}@media (hover:none){&:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:color-mix(in oklab,var(--btn-color,var(--color-base-content))8%,var(--color-base-100));--btn-border:color-mix(in oklab,var(--btn-color,var(--color-base-content))10%,var(--color-base-100));--btn-noise:none}}}}.\32 xl\:btn-xs{@layer daisyui.l1.l2{&{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem)*6)}}}.\32 xl\:btn-sm{@layer daisyui.l1.l2{&{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}}}.\32 xl\:btn-md{@layer daisyui.l1.l2{&{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem)*10)}}}.\32 xl\:btn-lg{@layer daisyui.l1.l2{&{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}}}.\32 xl\:btn-xl{@layer daisyui.l1.l2{&{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem)*14)}}}.\32 xl\:btn-square{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);padding-inline:0}}}.\32 xl\:btn-circle{@layer daisyui.l1.l2{&{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}}}.\32 xl\:btn-wide{@layer daisyui.l1.l2{&{width:100%;max-width:16rem}}}.\32 xl\:btn-block{@layer daisyui.l1.l2{&{width:100%}}}}}
162
- </style>