@danielito1996/compose-svelted 0.2.2 → 0.2.5

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 (150) hide show
  1. package/dist/components/AppRoot.svelte +15 -0
  2. package/dist/components/AppRoot.svelte.d.ts +30 -0
  3. package/dist/components/ContentScale.d.ts +10 -0
  4. package/dist/components/ContentScale.js +9 -0
  5. package/dist/components/Icon.svelte +47 -0
  6. package/dist/components/Icon.svelte.d.ts +24 -0
  7. package/dist/components/Image.svelte +31 -0
  8. package/dist/components/Image.svelte.d.ts +25 -0
  9. package/dist/components/Spacer.svelte +11 -0
  10. package/dist/components/Spacer.svelte.d.ts +24 -0
  11. package/dist/components/Surface.svelte +19 -0
  12. package/dist/components/Surface.svelte.d.ts +32 -0
  13. package/dist/components/Text.svelte +23 -0
  14. package/dist/components/Text.svelte.d.ts +34 -0
  15. package/dist/components/TonalButton.svelte +34 -0
  16. package/dist/components/TonalButton.svelte.d.ts +36 -0
  17. package/dist/components/buttons/Button.svelte +34 -0
  18. package/dist/components/buttons/Button.svelte.d.ts +36 -0
  19. package/dist/components/buttons/ButtonWithIcon.svelte +0 -0
  20. package/dist/components/buttons/ButtonWithIcon.svelte.d.ts +26 -0
  21. package/dist/components/buttons/CheckButton.svelte +77 -0
  22. package/dist/components/buttons/CheckButton.svelte.d.ts +35 -0
  23. package/dist/components/buttons/IconButton.svelte +0 -0
  24. package/dist/components/buttons/IconButton.svelte.d.ts +26 -0
  25. package/dist/components/buttons/OutlinedButton.svelte +0 -0
  26. package/dist/components/buttons/OutlinedButton.svelte.d.ts +26 -0
  27. package/dist/components/buttons/OutlinedButtonWithIcon.svelte +0 -0
  28. package/dist/components/buttons/OutlinedButtonWithIcon.svelte.d.ts +26 -0
  29. package/dist/components/buttons/OutlinedIconButton.svelte +0 -0
  30. package/dist/components/buttons/OutlinedIconButton.svelte.d.ts +26 -0
  31. package/dist/components/buttons/TextButton.svelte +0 -0
  32. package/dist/components/buttons/TextButton.svelte.d.ts +26 -0
  33. package/dist/components/cards/Card.svelte +26 -0
  34. package/dist/components/cards/Card.svelte.d.ts +33 -0
  35. package/dist/components/cards/OutlinedCard.svelte +0 -0
  36. package/dist/components/cards/OutlinedCard.svelte.d.ts +26 -0
  37. package/dist/components/custom/CodeBlock.svelte +41 -0
  38. package/dist/components/custom/CodeBlock.svelte.d.ts +32 -0
  39. package/dist/components/layouts/Alignment.d.ts +20 -0
  40. package/dist/components/layouts/Alignment.js +20 -0
  41. package/dist/components/layouts/Arrangement.d.ts +23 -0
  42. package/dist/components/layouts/Arrangement.js +46 -0
  43. package/dist/components/layouts/Box.svelte +25 -0
  44. package/dist/components/layouts/Box.svelte.d.ts +32 -0
  45. package/dist/components/layouts/Column.svelte +23 -0
  46. package/dist/components/layouts/Column.svelte.d.ts +34 -0
  47. package/dist/components/layouts/LazyColumn.svelte +107 -0
  48. package/dist/components/layouts/LazyColumn.svelte.d.ts +39 -0
  49. package/dist/components/layouts/LazyRow.svelte +71 -0
  50. package/dist/components/layouts/LazyRow.svelte.d.ts +42 -0
  51. package/dist/components/layouts/Row.svelte +23 -0
  52. package/dist/components/layouts/Row.svelte.d.ts +34 -0
  53. package/dist/components/layouts/Scaffold.svelte +73 -0
  54. package/dist/components/layouts/Scaffold.svelte.d.ts +38 -0
  55. package/dist/components/menus/DropdownMenu.svelte +0 -0
  56. package/dist/components/menus/DropdownMenu.svelte.d.ts +26 -0
  57. package/dist/components/menus/DropdownMenuItem.svelte +0 -0
  58. package/dist/components/menus/DropdownMenuItem.svelte.d.ts +26 -0
  59. package/dist/components/motion/AnimatedContent.svelte +34 -0
  60. package/dist/components/motion/AnimatedContent.svelte.d.ts +31 -0
  61. package/dist/components/motion/AnimatedVisibility.svelte +59 -0
  62. package/dist/components/motion/AnimatedVisibility.svelte.d.ts +32 -0
  63. package/dist/components/textFields/BaseTextField.svelte +188 -0
  64. package/dist/components/textFields/BaseTextField.svelte.d.ts +41 -0
  65. package/dist/components/textFields/OutlinedTextField.svelte +64 -0
  66. package/dist/components/textFields/OutlinedTextField.svelte.d.ts +46 -0
  67. package/dist/components/textFields/TextField.svelte +49 -0
  68. package/dist/components/textFields/TextField.svelte.d.ts +46 -0
  69. package/dist/components/textFields/TextFieldColors.d.ts +12 -0
  70. package/dist/components/textFields/TextFieldColors.js +1 -0
  71. package/dist/components/textFields/TextFieldDefaults.d.ts +11 -0
  72. package/dist/components/textFields/TextFieldDefaults.js +42 -0
  73. package/dist/core/elevation/elevation.d.ts +1 -0
  74. package/dist/core/elevation/elevation.js +6 -0
  75. package/dist/core/helpers/painterResource.d.ts +12 -0
  76. package/dist/core/helpers/painterResource.js +22 -0
  77. package/dist/core/modifier/Modifier.d.ts +195 -0
  78. package/dist/core/modifier/Modifier.js +237 -0
  79. package/dist/core/modifier/ModifierImpl.d.ts +38 -0
  80. package/dist/core/modifier/ModifierImpl.js +214 -0
  81. package/dist/core/motion/AnimationSpec.d.ts +6 -0
  82. package/dist/core/motion/AnimationSpec.js +1 -0
  83. package/dist/core/motion/ContentTransition.d.ts +5 -0
  84. package/dist/core/motion/ContentTransition.js +1 -0
  85. package/dist/core/motion/applyAnimation.d.ts +0 -0
  86. package/dist/core/motion/applyAnimation.js +0 -0
  87. package/dist/core/motion/contentTransitions.d.ts +4 -0
  88. package/dist/core/motion/contentTransitions.js +22 -0
  89. package/dist/core/motion/transitions.d.ts +7 -0
  90. package/dist/core/motion/transitions.js +70 -0
  91. package/dist/core/navigation/NavBackStackEntry.d.ts +4 -0
  92. package/dist/core/navigation/NavBackStackEntry.js +1 -0
  93. package/dist/core/navigation/NavController.d.ts +9 -0
  94. package/dist/core/navigation/NavController.js +31 -0
  95. package/dist/core/navigation/NavHost.svelte +45 -0
  96. package/dist/core/navigation/NavHost.svelte.d.ts +31 -0
  97. package/dist/core/navigation/NavStore.d.ts +7 -0
  98. package/dist/core/navigation/NavStore.js +24 -0
  99. package/dist/core/navigation/Route.d.ts +3 -0
  100. package/dist/core/navigation/Route.js +1 -0
  101. package/dist/core/navigation/composable.d.ts +5 -0
  102. package/dist/core/navigation/composable.js +6 -0
  103. package/dist/core/navigation/rememberNavController.d.ts +2 -0
  104. package/dist/core/navigation/rememberNavController.js +4 -0
  105. package/dist/core/shapes/RoundedCornerShape.d.ts +13 -0
  106. package/dist/core/shapes/RoundedCornerShape.js +27 -0
  107. package/dist/core/shapes/Shape.d.ts +3 -0
  108. package/dist/core/shapes/Shape.js +1 -0
  109. package/dist/core/theme/ColorScheme.d.ts +17 -0
  110. package/dist/core/theme/ColorScheme.js +15 -0
  111. package/dist/core/theme/ComposeTheme.svelte +22 -0
  112. package/dist/core/theme/ComposeTheme.svelte.d.ts +32 -0
  113. package/dist/core/theme/Density.d.ts +5 -0
  114. package/dist/core/theme/Density.js +4 -0
  115. package/dist/core/theme/TextStyle.d.ts +19 -0
  116. package/dist/core/theme/TextStyle.js +17 -0
  117. package/dist/core/theme/colors.d.ts +15 -0
  118. package/dist/core/theme/colors.js +1 -0
  119. package/dist/core/theme/cssVars.d.ts +2 -0
  120. package/dist/core/theme/cssVars.js +29 -0
  121. package/dist/core/theme/defaults/darkColors.d.ts +2 -0
  122. package/dist/core/theme/defaults/darkColors.js +15 -0
  123. package/dist/core/theme/defaults/defaultTheme.d.ts +3 -0
  124. package/dist/core/theme/defaults/defaultTheme.js +40 -0
  125. package/dist/core/theme/defaults/lightColors.d.ts +2 -0
  126. package/dist/core/theme/defaults/lightColors.js +15 -0
  127. package/dist/core/theme/defaults/typography.d.ts +2 -0
  128. package/dist/core/theme/defaults/typography.js +120 -0
  129. package/dist/core/theme/elevation.d.ts +7 -0
  130. package/dist/core/theme/elevation.js +1 -0
  131. package/dist/core/theme/getCurrentColor.d.ts +1 -0
  132. package/dist/core/theme/getCurrentColor.js +9 -0
  133. package/dist/core/theme/resolve.d.ts +5 -0
  134. package/dist/core/theme/resolve.js +17 -0
  135. package/dist/core/theme/shapes.d.ts +7 -0
  136. package/dist/core/theme/shapes.js +1 -0
  137. package/dist/core/theme/spacing.d.ts +7 -0
  138. package/dist/core/theme/spacing.js +1 -0
  139. package/dist/core/theme/store.d.ts +7 -0
  140. package/dist/core/theme/store.js +15 -0
  141. package/dist/core/theme/systemTheme.d.ts +2 -0
  142. package/dist/core/theme/systemTheme.js +14 -0
  143. package/dist/core/theme/theme.d.ts +13 -0
  144. package/dist/core/theme/theme.js +1 -0
  145. package/dist/core/theme/typography.d.ts +24 -0
  146. package/dist/core/theme/typography.js +1 -0
  147. package/dist/index.d.ts +22 -45
  148. package/package.json +46 -12
  149. package/dist/index.js +0 -1164
  150. package/dist/vite.svg +0 -1
@@ -0,0 +1,71 @@
1
+ <script lang="ts">
2
+ import { Modifier } from "../../core/modifier/Modifier";
3
+ import { Alignment } from "./Alignment";
4
+ import { Arrangement } from "./Arrangement";
5
+ import type { ArrangementValue } from "./Arrangement";
6
+ import type { VerticalAlignment } from "./Alignment";
7
+
8
+ export let items: any[] = [];
9
+ export let modifier: Modifier = Modifier.empty();
10
+
11
+ export let verticalAlignment: VerticalAlignment = Alignment.Top;
12
+ export let horizontalArrangement: ArrangementValue = Arrangement.Start;
13
+
14
+ export let scrollEnabled: boolean = true;
15
+ export let hideScrollbar: boolean = false;
16
+ export let horizontalSpacing: number | null = null;
17
+
18
+ function resolveGap(): string {
19
+ if (horizontalSpacing !== null) {
20
+ return `${horizontalSpacing}px`;
21
+ }
22
+
23
+ return horizontalArrangement.type === "spaced"
24
+ ? `${horizontalArrangement.gap}px`
25
+ : "0px";
26
+ }
27
+
28
+ function resolveOverflowX(): string {
29
+ return scrollEnabled ? "auto" : "hidden";
30
+ }
31
+
32
+ function resolveScrollbarStyle(): string {
33
+ if (!hideScrollbar) return "";
34
+
35
+ return `
36
+ scrollbar-width: none;
37
+ -ms-overflow-style: none;
38
+ `;
39
+ }
40
+ </script>
41
+
42
+ <div
43
+ class={hideScrollbar ? "lazy-row--hide-scrollbar" : ""}
44
+ style={`
45
+ display: flex;
46
+ flex-direction: row;
47
+
48
+ align-items: ${verticalAlignment};
49
+ justify-content: ${horizontalArrangement.justifyContent};
50
+ gap: ${resolveGap()};
51
+
52
+ overflow-x: ${resolveOverflowX()};
53
+ overflow-y: visible;
54
+
55
+ height: fit-content;
56
+ min-height: fit-content;
57
+
58
+ ${resolveScrollbarStyle()}
59
+ ${modifier.toStyle()}
60
+ `}
61
+ >
62
+ {#each items as item}
63
+ <slot {item} />
64
+ {/each}
65
+ </div>
66
+
67
+ <style>
68
+ .lazy-row--hide-scrollbar::-webkit-scrollbar {
69
+ display: none;
70
+ }
71
+ </style>
@@ -0,0 +1,42 @@
1
+ import { Modifier } from "../../core/modifier/Modifier";
2
+ import type { ArrangementValue } from "./Arrangement";
3
+ import type { VerticalAlignment } from "./Alignment";
4
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: Props & {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
18
+ default: any;
19
+ } ? Props extends Record<string, never> ? any : {
20
+ children?: any;
21
+ } : {});
22
+ declare const LazyRow: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
23
+ items?: any[];
24
+ modifier?: Modifier;
25
+ verticalAlignment?: VerticalAlignment;
26
+ horizontalArrangement?: ArrangementValue;
27
+ scrollEnabled?: boolean;
28
+ hideScrollbar?: boolean;
29
+ horizontalSpacing?: number | null;
30
+ }, {
31
+ default: {
32
+ item: any;
33
+ };
34
+ }>, {
35
+ [evt: string]: CustomEvent<any>;
36
+ }, {
37
+ default: {
38
+ item: any;
39
+ };
40
+ }, {}, string>;
41
+ type LazyRow = InstanceType<typeof LazyRow>;
42
+ export default LazyRow;
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { Modifier } from "../../core/modifier/Modifier";
3
+ import { Alignment } from "./Alignment";
4
+ import { Arrangement } from "./Arrangement";
5
+ import type { ArrangementValue } from "./Arrangement";
6
+ import type { VerticalAlignment } from "./Alignment";
7
+
8
+ export let modifier: Modifier = Modifier.empty();
9
+ export let verticalAlignment: VerticalAlignment = Alignment.Top;
10
+ export let horizontalArrangement: ArrangementValue = Arrangement.Start;
11
+ </script>
12
+
13
+ <div
14
+ class="flex flex-row"
15
+ style={`
16
+ align-items: ${verticalAlignment};
17
+ justify-content: ${horizontalArrangement.justifyContent};
18
+ ${horizontalArrangement.type === "spaced" ? `gap:${horizontalArrangement.gap}px;` : ""}
19
+ ${modifier.toStyle()}
20
+ `}
21
+ >
22
+ <slot />
23
+ </div>
@@ -0,0 +1,34 @@
1
+ import { Modifier } from "../../core/modifier/Modifier";
2
+ import type { ArrangementValue } from "./Arrangement";
3
+ import type { VerticalAlignment } from "./Alignment";
4
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
5
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
+ $$bindings?: Bindings;
7
+ } & Exports;
8
+ (internal: unknown, props: Props & {
9
+ $$events?: Events;
10
+ $$slots?: Slots;
11
+ }): Exports & {
12
+ $set?: any;
13
+ $on?: any;
14
+ };
15
+ z_$$bindings?: Bindings;
16
+ }
17
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
18
+ default: any;
19
+ } ? Props extends Record<string, never> ? any : {
20
+ children?: any;
21
+ } : {});
22
+ declare const Row: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
23
+ modifier?: Modifier;
24
+ verticalAlignment?: VerticalAlignment;
25
+ horizontalArrangement?: ArrangementValue;
26
+ }, {
27
+ default: {};
28
+ }>, {
29
+ [evt: string]: CustomEvent<any>;
30
+ }, {
31
+ default: {};
32
+ }, {}, string>;
33
+ type Row = InstanceType<typeof Row>;
34
+ export default Row;
@@ -0,0 +1,73 @@
1
+ <script lang="ts">
2
+ import { Modifier } from "../../core/modifier/Modifier";
3
+
4
+ export let modifier: Modifier = Modifier.empty();
5
+
6
+ // Padding interno aplicado al content (como Scaffold paddingValues)
7
+ export let contentPadding: number = 16;
8
+
9
+ // Control del FAB
10
+ export let fabAlignment:
11
+ | "bottom-end"
12
+ | "bottom-center"
13
+ | "bottom-start" = "bottom-end";
14
+ </script>
15
+
16
+ <div
17
+ style={`
18
+ display: flex;
19
+ flex-direction: column;
20
+ height: 100%;
21
+ width: 100%;
22
+ position: relative;
23
+ ${modifier.toStyle()}
24
+ `}
25
+ >
26
+ <!-- Top Bar -->
27
+ <div>
28
+ <slot name="topBar" />
29
+ </div>
30
+
31
+ <!-- Content -->
32
+ <div
33
+ style={`
34
+ flex: 1;
35
+ position: relative;
36
+ padding: ${contentPadding}px;
37
+ overflow: auto;
38
+ `}
39
+ >
40
+ <slot />
41
+ </div>
42
+
43
+ <!-- Bottom Bar -->
44
+ <div>
45
+ <slot name="bottomBar" />
46
+ </div>
47
+
48
+ <!-- Floating Action Button -->
49
+ <div
50
+ style={`
51
+ position: absolute;
52
+ pointer-events: none;
53
+ inset: 0;
54
+ `}
55
+ >
56
+ <div
57
+ style={`
58
+ position: absolute;
59
+ pointer-events: auto;
60
+
61
+ ${
62
+ fabAlignment === "bottom-end"
63
+ ? "right: 16px; bottom: 16px;"
64
+ : fabAlignment === "bottom-center"
65
+ ? "left: 50%; transform: translateX(-50%); bottom: 16px;"
66
+ : "left: 16px; bottom: 16px;"
67
+ }
68
+ `}
69
+ >
70
+ <slot name="floatingActionButton" />
71
+ </div>
72
+ </div>
73
+ </div>
@@ -0,0 +1,38 @@
1
+ import { Modifier } from "../../core/modifier/Modifier";
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
+ default: any;
17
+ } ? Props extends Record<string, never> ? any : {
18
+ children?: any;
19
+ } : {});
20
+ declare const Scaffold: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
+ modifier?: Modifier;
22
+ contentPadding?: number;
23
+ fabAlignment?: "bottom-end" | "bottom-center" | "bottom-start";
24
+ }, {
25
+ topBar: {};
26
+ default: {};
27
+ bottomBar: {};
28
+ floatingActionButton: {};
29
+ }>, {
30
+ [evt: string]: CustomEvent<any>;
31
+ }, {
32
+ topBar: {};
33
+ default: {};
34
+ bottomBar: {};
35
+ floatingActionButton: {};
36
+ }, {}, string>;
37
+ type Scaffold = InstanceType<typeof Scaffold>;
38
+ export default Scaffold;
File without changes
@@ -0,0 +1,26 @@
1
+ export default DropdownMenu;
2
+ type DropdownMenu = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string;
8
+ };
9
+ declare const DropdownMenu: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
File without changes
@@ -0,0 +1,26 @@
1
+ export default DropdownMenuItem;
2
+ type DropdownMenuItem = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string;
8
+ };
9
+ declare const DropdownMenuItem: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -0,0 +1,34 @@
1
+ <script lang="ts">
2
+ import type { ContentTransition } from "../../core/motion/ContentTransition";
3
+ import { fade } from "../../core/motion/contentTransitions";
4
+
5
+ export let targetState: any;
6
+ export let transition: ContentTransition = fade();
7
+
8
+ let currentKey = targetState;
9
+ let exiting = false;
10
+
11
+ let timeoutId: ReturnType<typeof setTimeout> | null = null;
12
+
13
+ $: if (targetState !== currentKey) {
14
+ exiting = true;
15
+
16
+ if (timeoutId) clearTimeout(timeoutId);
17
+
18
+ timeoutId = setTimeout(() => {
19
+ currentKey = targetState;
20
+ exiting = false;
21
+ timeoutId = null;
22
+ }, transition.duration);
23
+ }
24
+ </script>
25
+
26
+ <div class="relative w-full h-full overflow-hidden">
27
+ <div
28
+ class={`w-full h-full transition-all ${
29
+ exiting ? transition.exit : transition.enter
30
+ }`}
31
+ >
32
+ <slot />
33
+ </div>
34
+ </div>
@@ -0,0 +1,31 @@
1
+ import type { ContentTransition } from "../../core/motion/ContentTransition";
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
+ default: any;
17
+ } ? Props extends Record<string, never> ? any : {
18
+ children?: any;
19
+ } : {});
20
+ declare const AnimatedContent: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
+ targetState: any;
22
+ transition?: ContentTransition;
23
+ }, {
24
+ default: {};
25
+ }>, {
26
+ [evt: string]: CustomEvent<any>;
27
+ }, {
28
+ default: {};
29
+ }, {}, string>;
30
+ type AnimatedContent = InstanceType<typeof AnimatedContent>;
31
+ export default AnimatedContent;
@@ -0,0 +1,59 @@
1
+ <script lang="ts">
2
+ import type { AnimationSpec } from "../../core/motion/AnimationSpec";
3
+ import { fadeIn, fadeOut } from "../../core/motion/transitions";
4
+
5
+ export let visible: boolean;
6
+
7
+ export let enter: AnimationSpec = fadeIn();
8
+ export let exit: AnimationSpec = fadeOut();
9
+
10
+ let shouldRender = visible;
11
+ let classes = "";
12
+
13
+ function applyEnter() {
14
+ classes = `
15
+ ${enter.base}
16
+ ${enter.from}
17
+ `;
18
+
19
+ requestAnimationFrame(() => {
20
+ classes = `
21
+ ${enter.base}
22
+ ${enter.to}
23
+ `;
24
+ });
25
+ }
26
+
27
+ function applyExit() {
28
+ classes = `
29
+ ${exit.base}
30
+ ${exit.from}
31
+ `;
32
+
33
+ requestAnimationFrame(() => {
34
+ classes = `
35
+ ${exit.base}
36
+ ${exit.to}
37
+ `;
38
+ });
39
+
40
+ setTimeout(() => {
41
+ shouldRender = false;
42
+ }, exit.duration);
43
+ }
44
+
45
+ $: {
46
+ if (visible) {
47
+ shouldRender = true;
48
+ applyEnter();
49
+ } else if (shouldRender) {
50
+ applyExit();
51
+ }
52
+ }
53
+ </script>
54
+
55
+ {#if shouldRender}
56
+ <div class={classes}>
57
+ <slot />
58
+ </div>
59
+ {/if}
@@ -0,0 +1,32 @@
1
+ import type { AnimationSpec } from "../../core/motion/AnimationSpec";
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
+ default: any;
17
+ } ? Props extends Record<string, never> ? any : {
18
+ children?: any;
19
+ } : {});
20
+ declare const AnimatedVisibility: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
+ visible: boolean;
22
+ enter?: AnimationSpec;
23
+ exit?: AnimationSpec;
24
+ }, {
25
+ default: {};
26
+ }>, {
27
+ [evt: string]: CustomEvent<any>;
28
+ }, {
29
+ default: {};
30
+ }, {}, string>;
31
+ type AnimatedVisibility = InstanceType<typeof AnimatedVisibility>;
32
+ export default AnimatedVisibility;