@tanglemedia/svelte-starter-auth-shadcn 0.0.3 → 0.1.0

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 (160) hide show
  1. package/dist/app.css +174 -0
  2. package/dist/app.html +0 -1
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/lib/components/types.d.ts +13 -0
  6. package/dist/lib/components/types.js +1 -0
  7. package/dist/lib/components/ui/auth-layout/auth-layout-content-top.svelte +15 -0
  8. package/dist/lib/components/ui/auth-layout/auth-layout-content-top.svelte.d.ts +8 -0
  9. package/dist/lib/components/ui/auth-layout/auth-layout-content.svelte +15 -0
  10. package/dist/lib/components/ui/auth-layout/auth-layout-content.svelte.d.ts +8 -0
  11. package/dist/lib/components/ui/auth-layout/auth-layout-feature-info.svelte +45 -0
  12. package/dist/lib/components/ui/auth-layout/auth-layout-feature-info.svelte.d.ts +12 -0
  13. package/dist/lib/components/ui/auth-layout/auth-layout-feature.svelte +24 -0
  14. package/dist/lib/components/ui/auth-layout/auth-layout-feature.svelte.d.ts +8 -0
  15. package/dist/lib/components/ui/auth-layout/auth-layout-logo.svelte +99 -0
  16. package/dist/lib/components/ui/auth-layout/auth-layout-logo.svelte.d.ts +63 -0
  17. package/dist/lib/components/ui/auth-layout/auth-layout-main.svelte +17 -0
  18. package/dist/lib/components/ui/auth-layout/auth-layout-main.svelte.d.ts +8 -0
  19. package/dist/lib/components/ui/auth-layout/auth-layout.svelte +22 -88
  20. package/dist/lib/components/ui/auth-layout/auth-layout.svelte.d.ts +4 -12
  21. package/dist/lib/components/ui/auth-layout/index.d.ts +8 -2
  22. package/dist/lib/components/ui/auth-layout/index.js +10 -2
  23. package/dist/lib/components/ui/forgot-password/forgot-password-container.svelte +27 -0
  24. package/dist/lib/components/ui/forgot-password/forgot-password-container.svelte.d.ts +8 -0
  25. package/dist/lib/components/ui/forgot-password/forgot-password-form.svelte +70 -77
  26. package/dist/lib/components/ui/forgot-password/forgot-password-form.svelte.d.ts +12 -7
  27. package/dist/lib/components/ui/forgot-password/forgot-password-header.svelte +34 -0
  28. package/dist/lib/components/ui/forgot-password/forgot-password-header.svelte.d.ts +13 -0
  29. package/dist/lib/components/ui/forgot-password/forgot-password-login.svelte +19 -0
  30. package/dist/lib/components/ui/forgot-password/forgot-password-login.svelte.d.ts +9 -0
  31. package/dist/lib/components/ui/forgot-password/forgot-password-provider.svelte +13 -0
  32. package/dist/lib/components/ui/forgot-password/forgot-password-provider.svelte.d.ts +25 -0
  33. package/dist/lib/components/ui/forgot-password/forgot-password-submit.svelte +17 -0
  34. package/dist/lib/components/ui/forgot-password/forgot-password-submit.svelte.d.ts +7 -0
  35. package/dist/lib/components/ui/forgot-password/forgot-password-user-input.svelte +21 -0
  36. package/dist/lib/components/ui/forgot-password/forgot-password-user-input.svelte.d.ts +26 -0
  37. package/dist/lib/components/ui/forgot-password/forgot-password.schema.d.ts +5 -0
  38. package/dist/lib/components/ui/forgot-password/forgot-password.schema.js +4 -0
  39. package/dist/lib/components/ui/forgot-password/index.d.ts +9 -2
  40. package/dist/lib/components/ui/forgot-password/index.js +9 -2
  41. package/dist/lib/components/ui/index.d.ts +5 -5
  42. package/dist/lib/components/ui/index.js +6 -5
  43. package/dist/lib/components/ui/login-form/index.d.ts +11 -2
  44. package/dist/lib/components/ui/login-form/index.js +13 -2
  45. package/dist/lib/components/ui/login-form/login-container.svelte +27 -0
  46. package/dist/lib/components/ui/login-form/login-container.svelte.d.ts +8 -0
  47. package/dist/lib/components/ui/login-form/login-context.d.ts +2 -0
  48. package/dist/lib/components/ui/login-form/login-context.js +13 -0
  49. package/dist/lib/components/ui/login-form/login-forgot-password.svelte +19 -0
  50. package/dist/lib/components/ui/login-form/login-forgot-password.svelte.d.ts +9 -0
  51. package/dist/lib/components/ui/login-form/login-form.svelte +68 -107
  52. package/dist/lib/components/ui/login-form/login-form.svelte.d.ts +10 -7
  53. package/dist/lib/components/ui/login-form/login-header.svelte +34 -0
  54. package/dist/lib/components/ui/login-form/login-header.svelte.d.ts +13 -0
  55. package/dist/lib/components/ui/login-form/login-password-input.svelte +21 -0
  56. package/dist/lib/components/ui/login-form/login-password-input.svelte.d.ts +26 -0
  57. package/dist/lib/components/ui/login-form/login-provider.svelte +13 -0
  58. package/dist/lib/components/ui/login-form/login-provider.svelte.d.ts +25 -0
  59. package/dist/lib/components/ui/login-form/login-submit.svelte +17 -0
  60. package/dist/lib/components/ui/login-form/login-submit.svelte.d.ts +7 -0
  61. package/dist/lib/components/ui/login-form/login-user-input.svelte +21 -0
  62. package/dist/lib/components/ui/login-form/login-user-input.svelte.d.ts +26 -0
  63. package/dist/lib/components/ui/login-form/login.schema.d.ts +6 -0
  64. package/dist/lib/components/ui/login-form/login.schema.js +5 -0
  65. package/dist/lib/components/ui/register-form/index.d.ts +10 -2
  66. package/dist/lib/components/ui/register-form/index.js +10 -2
  67. package/dist/lib/components/ui/register-form/register-container.svelte +27 -0
  68. package/dist/lib/components/ui/register-form/register-container.svelte.d.ts +8 -0
  69. package/dist/lib/components/ui/register-form/register-form.svelte +67 -166
  70. package/dist/lib/components/ui/register-form/register-form.svelte.d.ts +10 -5
  71. package/dist/lib/components/ui/register-form/register-header.svelte +34 -0
  72. package/dist/lib/components/ui/register-form/register-header.svelte.d.ts +13 -0
  73. package/dist/lib/components/ui/register-form/register-name-input.svelte +21 -0
  74. package/dist/lib/components/ui/register-form/register-name-input.svelte.d.ts +26 -0
  75. package/dist/lib/components/ui/register-form/register-password-input.svelte +21 -0
  76. package/dist/lib/components/ui/register-form/register-password-input.svelte.d.ts +26 -0
  77. package/dist/lib/components/ui/register-form/register-provider.svelte +13 -0
  78. package/dist/lib/components/ui/register-form/register-provider.svelte.d.ts +25 -0
  79. package/dist/lib/components/ui/register-form/register-submit.svelte +17 -0
  80. package/dist/lib/components/ui/register-form/register-submit.svelte.d.ts +7 -0
  81. package/dist/lib/components/ui/register-form/register-user-input.svelte +21 -0
  82. package/dist/lib/components/ui/register-form/register-user-input.svelte.d.ts +26 -0
  83. package/dist/lib/components/ui/register-form/register.schema.d.ts +8 -0
  84. package/dist/lib/components/ui/register-form/register.schema.js +7 -0
  85. package/dist/lib/components/ui/reset-password/index.d.ts +8 -2
  86. package/dist/lib/components/ui/reset-password/index.js +8 -2
  87. package/dist/lib/components/ui/reset-password/reset-password-container.svelte +27 -0
  88. package/dist/lib/components/ui/reset-password/reset-password-container.svelte.d.ts +8 -0
  89. package/dist/lib/components/ui/reset-password/reset-password-form.svelte +91 -0
  90. package/dist/lib/components/ui/reset-password/reset-password-form.svelte.d.ts +20 -0
  91. package/dist/lib/components/ui/reset-password/reset-password-header.svelte +34 -0
  92. package/dist/lib/components/ui/reset-password/reset-password-header.svelte.d.ts +13 -0
  93. package/dist/lib/components/ui/reset-password/reset-password-password-input.svelte +21 -0
  94. package/dist/lib/components/ui/reset-password/reset-password-password-input.svelte.d.ts +26 -0
  95. package/dist/lib/components/ui/reset-password/reset-password-provider.svelte +13 -0
  96. package/dist/lib/components/ui/reset-password/reset-password-provider.svelte.d.ts +25 -0
  97. package/dist/lib/components/ui/reset-password/reset-password-submit.svelte +17 -0
  98. package/dist/lib/components/ui/reset-password/reset-password-submit.svelte.d.ts +7 -0
  99. package/dist/lib/components/ui/reset-password/reset-password.schema.d.ts +6 -0
  100. package/dist/lib/components/ui/reset-password/reset-password.schema.js +9 -0
  101. package/dist/lib/index.d.ts +2 -3
  102. package/dist/lib/index.js +3 -3
  103. package/dist/lib/utils.d.ts +10 -0
  104. package/package.json +39 -30
  105. package/src/app.css +174 -0
  106. package/src/app.html +0 -1
  107. package/src/index.ts +1 -1
  108. package/src/lib/components/types.ts +24 -0
  109. package/src/lib/components/ui/auth-layout/auth-layout-content-top.svelte +15 -0
  110. package/src/lib/components/ui/auth-layout/auth-layout-content.svelte +15 -0
  111. package/src/lib/components/ui/auth-layout/auth-layout-feature-info.svelte +45 -0
  112. package/src/lib/components/ui/auth-layout/auth-layout-feature.svelte +24 -0
  113. package/src/lib/components/ui/auth-layout/auth-layout-logo.svelte +99 -0
  114. package/src/lib/components/ui/auth-layout/auth-layout-main.svelte +17 -0
  115. package/src/lib/components/ui/auth-layout/auth-layout.svelte +22 -88
  116. package/src/lib/components/ui/auth-layout/index.ts +20 -2
  117. package/src/lib/components/ui/forgot-password/forgot-password-container.svelte +27 -0
  118. package/src/lib/components/ui/forgot-password/forgot-password-form.svelte +70 -77
  119. package/src/lib/components/ui/forgot-password/forgot-password-header.svelte +34 -0
  120. package/src/lib/components/ui/forgot-password/forgot-password-login.svelte +19 -0
  121. package/src/lib/components/ui/forgot-password/forgot-password-provider.svelte +13 -0
  122. package/src/lib/components/ui/forgot-password/forgot-password-submit.svelte +17 -0
  123. package/src/lib/components/ui/forgot-password/forgot-password-user-input.svelte +21 -0
  124. package/src/lib/components/ui/forgot-password/forgot-password.schema.ts +7 -0
  125. package/src/lib/components/ui/forgot-password/index.ts +19 -2
  126. package/src/lib/components/ui/index.ts +6 -5
  127. package/src/lib/components/ui/login-form/index.ts +26 -2
  128. package/src/lib/components/ui/login-form/login-container.svelte +27 -0
  129. package/src/lib/components/ui/login-form/login-context.ts +16 -0
  130. package/src/lib/components/ui/login-form/login-forgot-password.svelte +19 -0
  131. package/src/lib/components/ui/login-form/login-form.svelte +68 -107
  132. package/src/lib/components/ui/login-form/login-header.svelte +34 -0
  133. package/src/lib/components/ui/login-form/login-password-input.svelte +21 -0
  134. package/src/lib/components/ui/login-form/login-provider.svelte +13 -0
  135. package/src/lib/components/ui/login-form/login-submit.svelte +17 -0
  136. package/src/lib/components/ui/login-form/login-user-input.svelte +21 -0
  137. package/src/lib/components/ui/login-form/login.schema.ts +8 -0
  138. package/src/lib/components/ui/register-form/index.ts +21 -2
  139. package/src/lib/components/ui/register-form/register-container.svelte +27 -0
  140. package/src/lib/components/ui/register-form/register-form.svelte +67 -166
  141. package/src/lib/components/ui/register-form/register-header.svelte +34 -0
  142. package/src/lib/components/ui/register-form/register-name-input.svelte +21 -0
  143. package/src/lib/components/ui/register-form/register-password-input.svelte +21 -0
  144. package/src/lib/components/ui/register-form/register-provider.svelte +13 -0
  145. package/src/lib/components/ui/register-form/register-submit.svelte +17 -0
  146. package/src/lib/components/ui/register-form/register-user-input.svelte +21 -0
  147. package/src/lib/components/ui/register-form/register.schema.ts +10 -0
  148. package/src/lib/components/ui/reset-password/index.ts +17 -2
  149. package/src/lib/components/ui/reset-password/reset-password-container.svelte +27 -0
  150. package/src/lib/components/ui/reset-password/reset-password-form.svelte +91 -0
  151. package/src/lib/components/ui/reset-password/reset-password-header.svelte +34 -0
  152. package/src/lib/components/ui/reset-password/reset-password-password-input.svelte +21 -0
  153. package/src/lib/components/ui/reset-password/reset-password-provider.svelte +13 -0
  154. package/src/lib/components/ui/reset-password/reset-password-submit.svelte +17 -0
  155. package/src/lib/components/ui/reset-password/reset-password.schema.ts +12 -0
  156. package/src/lib/index.ts +3 -3
  157. package/src/lib/utils.ts +8 -1
  158. package/dist/lib/components/ui/reset-password/reset-form.svelte +0 -116
  159. package/dist/lib/components/ui/reset-password/reset-form.svelte.d.ts +0 -16
  160. package/src/lib/components/ui/reset-password/reset-form.svelte +0 -116
package/dist/app.css ADDED
@@ -0,0 +1,174 @@
1
+ @import "tailwindcss";
2
+
3
+ @import "tw-animate-css";
4
+
5
+ @source "../node_modules/@tanglemedia/svelte-starter-form-shadcn/dist/**/*.{html,js,svelte,ts}";
6
+ @source "src/**/*.{html,js,svelte,ts}";
7
+ /*
8
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
9
+ so we've added these compatibility styles to make sure everything still
10
+ looks the same as it did with Tailwind CSS v3.
11
+
12
+ If we ever want to remove these styles, we need to add an explicit border
13
+ color utility to any element that depends on these defaults.
14
+ */
15
+ @layer base {
16
+ *,
17
+ ::after,
18
+ ::before,
19
+ ::backdrop,
20
+ ::file-selector-button {
21
+ border-color: var(--color-gray-200, currentcolor);
22
+ }
23
+ }
24
+
25
+ @custom-variant dark (&:is(.dark *));
26
+
27
+ :root {
28
+ --radius: 0.625rem;
29
+ --background: oklch(1 0 0);
30
+ --foreground: oklch(0.129 0.042 264.695);
31
+ --card: oklch(1 0 0);
32
+ --card-foreground: oklch(0.129 0.042 264.695);
33
+ --popover: oklch(1 0 0);
34
+ --popover-foreground: oklch(0.129 0.042 264.695);
35
+ --primary: oklch(0.208 0.042 265.755);
36
+ --primary-foreground: oklch(0.984 0.003 247.858);
37
+ --secondary: oklch(0.968 0.007 247.896);
38
+ --secondary-foreground: oklch(0.208 0.042 265.755);
39
+ --muted: oklch(0.968 0.007 247.896);
40
+ --muted-foreground: oklch(0.554 0.046 257.417);
41
+ --accent: oklch(0.968 0.007 247.896);
42
+ --accent-foreground: oklch(0.208 0.042 265.755);
43
+ --destructive: oklch(0.577 0.245 27.325);
44
+ --border: oklch(0.929 0.013 255.508);
45
+ --input: oklch(0.929 0.013 255.508);
46
+ --ring: oklch(0.704 0.04 256.788);
47
+ --chart-1: oklch(0.646 0.222 41.116);
48
+ --chart-2: oklch(0.6 0.118 184.704);
49
+ --chart-3: oklch(0.398 0.07 227.392);
50
+ --chart-4: oklch(0.828 0.189 84.429);
51
+ --chart-5: oklch(0.769 0.188 70.08);
52
+ --sidebar: oklch(0.984 0.003 247.858);
53
+ --sidebar-foreground: oklch(0.129 0.042 264.695);
54
+ --sidebar-primary: oklch(0.208 0.042 265.755);
55
+ --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
56
+ --sidebar-accent: oklch(0.968 0.007 247.896);
57
+ --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
58
+ --sidebar-border: oklch(0.929 0.013 255.508);
59
+ --sidebar-ring: oklch(0.704 0.04 256.788);
60
+ }
61
+
62
+ .dark {
63
+ --background: oklch(0.129 0.042 264.695);
64
+ --foreground: oklch(0.984 0.003 247.858);
65
+ --card: oklch(0.208 0.042 265.755);
66
+ --card-foreground: oklch(0.984 0.003 247.858);
67
+ --popover: oklch(0.208 0.042 265.755);
68
+ --popover-foreground: oklch(0.984 0.003 247.858);
69
+ --primary: oklch(0.929 0.013 255.508);
70
+ --primary-foreground: oklch(0.208 0.042 265.755);
71
+ --secondary: oklch(0.279 0.041 260.031);
72
+ --secondary-foreground: oklch(0.984 0.003 247.858);
73
+ --muted: oklch(0.279 0.041 260.031);
74
+ --muted-foreground: oklch(0.704 0.04 256.788);
75
+ --accent: oklch(0.279 0.041 260.031);
76
+ --accent-foreground: oklch(0.984 0.003 247.858);
77
+ --destructive: oklch(0.704 0.191 22.216);
78
+ --border: oklch(1 0 0 / 10%);
79
+ --input: oklch(1 0 0 / 15%);
80
+ --ring: oklch(0.551 0.027 264.364);
81
+ --chart-1: oklch(0.488 0.243 264.376);
82
+ --chart-2: oklch(0.696 0.17 162.48);
83
+ --chart-3: oklch(0.769 0.188 70.08);
84
+ --chart-4: oklch(0.627 0.265 303.9);
85
+ --chart-5: oklch(0.645 0.246 16.439);
86
+ --sidebar: oklch(0.208 0.042 265.755);
87
+ --sidebar-foreground: oklch(0.984 0.003 247.858);
88
+ --sidebar-primary: oklch(0.488 0.243 264.376);
89
+ --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
90
+ --sidebar-accent: oklch(0.279 0.041 260.031);
91
+ --sidebar-accent-foreground: oklch(0.984 0.003 247.858);
92
+ --sidebar-border: oklch(1 0 0 / 10%);
93
+ --sidebar-ring: oklch(0.551 0.027 264.364);
94
+ }
95
+
96
+ @theme inline {
97
+ --radius-sm: calc(var(--radius) - 4px);
98
+ --radius-md: calc(var(--radius) - 2px);
99
+ --radius-lg: var(--radius);
100
+ --radius-xl: calc(var(--radius) + 4px);
101
+ --color-background: var(--background);
102
+ --color-foreground: var(--foreground);
103
+ --color-card: var(--card);
104
+ --color-card-foreground: var(--card-foreground);
105
+ --color-popover: var(--popover);
106
+ --color-popover-foreground: var(--popover-foreground);
107
+ --color-primary: var(--primary);
108
+ --color-primary-foreground: var(--primary-foreground);
109
+ --color-secondary: var(--secondary);
110
+ --color-secondary-foreground: var(--secondary-foreground);
111
+ --color-muted: var(--muted);
112
+ --color-muted-foreground: var(--muted-foreground);
113
+ --color-accent: var(--accent);
114
+ --color-accent-foreground: var(--accent-foreground);
115
+ --color-destructive: var(--destructive);
116
+ --color-border: var(--border);
117
+ --color-input: var(--input);
118
+ --color-ring: var(--ring);
119
+ --color-chart-1: var(--chart-1);
120
+ --color-chart-2: var(--chart-2);
121
+ --color-chart-3: var(--chart-3);
122
+ --color-chart-4: var(--chart-4);
123
+ --color-chart-5: var(--chart-5);
124
+ --color-sidebar: var(--sidebar);
125
+ --color-sidebar-foreground: var(--sidebar-foreground);
126
+ --color-sidebar-primary: var(--sidebar-primary);
127
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
128
+ --color-sidebar-accent: var(--sidebar-accent);
129
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
130
+ --color-sidebar-border: var(--sidebar-border);
131
+ --color-sidebar-ring: var(--sidebar-ring);
132
+ }
133
+
134
+ @layer base {
135
+ * {
136
+ @apply border-border outline-ring/50;
137
+ }
138
+ body {
139
+ @apply bg-background text-foreground;
140
+ }
141
+ }
142
+
143
+ @keyframes accordion-down {
144
+ from {
145
+ height: 0;
146
+ }
147
+
148
+ to {
149
+ height: var(--bits-accordion-content-height);
150
+ }
151
+ }
152
+
153
+ @keyframes accordion-up {
154
+ from {
155
+ height: var(--bits-accordion-content-height);
156
+ }
157
+
158
+ to {
159
+ height: 0;
160
+ }
161
+ }
162
+
163
+ @keyframes caret-blink {
164
+ 0%,
165
+ 70%,
166
+ 100% {
167
+ opacity: 1;
168
+ }
169
+
170
+ 20%,
171
+ 50% {
172
+ opacity: 0;
173
+ }
174
+ }
package/dist/app.html CHANGED
@@ -1,4 +1,3 @@
1
- // src/app.html
2
1
  <!doctype html>
3
2
  <html lang="en">
4
3
  <head>
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './lib';
1
+ export * from './lib/index.ts';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export * from './lib';
1
+ export * from "./lib/index.js";
@@ -0,0 +1,13 @@
1
+ import type { FsSuperForm } from 'formsnap';
2
+ import type { WithChild } from 'svelte-toolbelt';
3
+ import type { SuperForm } from 'sveltekit-superforms';
4
+ export type FsSuperFormPrimitive<T extends Record<string, unknown>> = FsSuperForm<T>;
5
+ export type LoginProviderProps<T extends Record<string, unknown>> = WithChild<{
6
+ superforms: SuperForm<T>;
7
+ action?: string;
8
+ method?: 'dialog' | 'get' | 'post' | 'DIALOG' | 'GET' | 'POST' | null | undefined;
9
+ }, {
10
+ props: {
11
+ superforms: SuperForm<T>;
12
+ };
13
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { cn } from "@tanglemedia/svelte-starter-ui-shadcn";
3
+ import type { Snippet } from "svelte";
4
+
5
+ type Props = {
6
+ children?: Snippet<[]>;
7
+ class?: string;
8
+ };
9
+
10
+ const { children, class: cls }: Props = $props();
11
+ </script>
12
+
13
+ <div class={cn("flex justify-center gap-2 md:justify-start", cls)}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from "svelte";
2
+ type Props = {
3
+ children?: Snippet<[]>;
4
+ class?: string;
5
+ };
6
+ declare const AuthLayoutContentTop: import("svelte").Component<Props, {}, "">;
7
+ type AuthLayoutContentTop = ReturnType<typeof AuthLayoutContentTop>;
8
+ export default AuthLayoutContentTop;
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { cn } from "@tanglemedia/svelte-starter-ui-shadcn";
3
+ import type { Snippet } from "svelte";
4
+
5
+ type Props = {
6
+ children?: Snippet<[]>;
7
+ class?: string;
8
+ };
9
+
10
+ const { children, class: cls }: Props = $props();
11
+ </script>
12
+
13
+ <div class={cn("flex flex-col gap-4 p-6 md:p-10", cls)}>
14
+ {@render children?.()}
15
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from "svelte";
2
+ type Props = {
3
+ children?: Snippet<[]>;
4
+ class?: string;
5
+ };
6
+ declare const AuthLayoutContent: import("svelte").Component<Props, {}, "">;
7
+ type AuthLayoutContent = ReturnType<typeof AuthLayoutContent>;
8
+ export default AuthLayoutContent;
@@ -0,0 +1,45 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+
4
+ interface Props {
5
+ logo?: string | null;
6
+ logoClass?: string | null;
7
+ name?: string | null;
8
+ quote?: string | null;
9
+ quoteAuthor?: string | null;
10
+ children?: Snippet;
11
+ }
12
+
13
+ let {
14
+ logo = null,
15
+ name = "Tangle Media Inc.",
16
+ quote = "",
17
+ quoteAuthor = "",
18
+ logoClass,
19
+ children,
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <div
24
+ class="text-white top-6 left-6 right-6 bottom-6 absolute text-lg font-medium text-shadow-lg"
25
+ >
26
+ {@render renderLogoName()}
27
+ {@render children?.()}
28
+ <blockquote class="space-y-2 mt-2 lg:mt-0 mr-4 lg:mr-0 hidden lg:block lg:absolute bottom-6">
29
+ <p class="text-sm text-shadow-lg">
30
+ {quote}
31
+ </p>
32
+ <footer class="text-xs text-shadow-lg">{quoteAuthor}</footer>
33
+ </blockquote>
34
+ </div>
35
+
36
+ {#snippet renderLogoName()}
37
+ <div class="flex items-center gap-4">
38
+ {#if logo}
39
+ <img src={logo} alt="logo" class={logoClass} />
40
+ {/if}
41
+ {#if name}
42
+ {name}
43
+ {/if}
44
+ </div>
45
+ {/snippet}
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from "svelte";
2
+ interface Props {
3
+ logo?: string | null;
4
+ logoClass?: string | null;
5
+ name?: string | null;
6
+ quote?: string | null;
7
+ quoteAuthor?: string | null;
8
+ children?: Snippet;
9
+ }
10
+ declare const AuthLayoutFeatureInfo: import("svelte").Component<Props, {}, "">;
11
+ type AuthLayoutFeatureInfo = ReturnType<typeof AuthLayoutFeatureInfo>;
12
+ export default AuthLayoutFeatureInfo;
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+
4
+ interface Props {
5
+ image?: string | null;
6
+ children?: Snippet;
7
+ }
8
+
9
+ let {
10
+ image = "https://images.unsplash.com/photo-1590069261209-f8e9b8642343?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1376&q=80",
11
+ children,
12
+ }: Props = $props();
13
+ </script>
14
+
15
+ <div
16
+ class="absolute top-0 left-0 right-0 bottom-0 z-[-1]"
17
+ style="
18
+ background-image:
19
+ url({image});
20
+ background-size: cover;
21
+ background-position: center"
22
+ >
23
+ {@render children?.()}
24
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from "svelte";
2
+ interface Props {
3
+ image?: string | null;
4
+ children?: Snippet;
5
+ }
6
+ declare const AuthLayoutFeature: import("svelte").Component<Props, {}, "">;
7
+ type AuthLayoutFeature = ReturnType<typeof AuthLayoutFeature>;
8
+ export default AuthLayoutFeature;
@@ -0,0 +1,99 @@
1
+ <script lang="ts" module>
2
+ import { type VariantProps, tv } from 'tailwind-variants';
3
+
4
+ const authLogoSizeVariants = tv({
5
+ base: 'flex shrink-0 overflow-hidden rounded-lg',
6
+ variants: {
7
+ size: {
8
+ default: 'size-8',
9
+ lg: 'size-16',
10
+ xl: 'size-24',
11
+ '2xl': 'size-32',
12
+ '3xl': 'size-40',
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ size: 'default',
17
+ },
18
+ });
19
+
20
+ const authLogoTextSizeVariants = tv({
21
+ base: '',
22
+ variants: {
23
+ size: {
24
+ default: '',
25
+ lg: 'text-2xl',
26
+ xl: 'text-5xl',
27
+ '2xl': 'text-6xl',
28
+ '3xl': 'text-9xl',
29
+ },
30
+ },
31
+ defaultVariants: {
32
+ size: 'default',
33
+ },
34
+ });
35
+
36
+ const authLogoAlignVariants = tv({
37
+ base: 'flex items-center gap-2 font-medium',
38
+ variants: {
39
+ align: {
40
+ default: 'self-auto',
41
+ left: 'self-start',
42
+ right: 'self-end',
43
+ center: 'self-center',
44
+ },
45
+ },
46
+ defaultVariants: {
47
+ align: 'default',
48
+ },
49
+ });
50
+
51
+ export type AuthLogoSize = VariantProps<typeof authLogoSizeVariants>['size'];
52
+ export type AuthLogoAlign = VariantProps<
53
+ typeof authLogoAlignVariants
54
+ >['align'];
55
+ </script>
56
+
57
+ <script lang="ts">
58
+ import { cn } from '@tanglemedia/svelte-starter-ui-shadcn';
59
+ import type { Snippet } from 'svelte';
60
+
61
+ type Props = {
62
+ children?: Snippet<[]>;
63
+ class?: string;
64
+ src?: string | null;
65
+ logoClass?: string | null;
66
+ href?: string;
67
+ size?: AuthLogoSize;
68
+ align?: AuthLogoAlign;
69
+ };
70
+
71
+ const {
72
+ children,
73
+ class: cls,
74
+ src,
75
+ logoClass,
76
+ href,
77
+ size,
78
+ align,
79
+ }: Props = $props();
80
+
81
+ // cn(authLogoVariants({ size }));
82
+ </script>
83
+
84
+ <svelte:element
85
+ this={href ? 'a' : 'span'}
86
+ class={cn(authLogoAlignVariants({ align }), cls)}
87
+ {href}
88
+ >
89
+ <div class={cn(authLogoSizeVariants({ size }))}>
90
+ {#if src}
91
+ <img {src} alt="logo" class={cn('aspect-square size-full', logoClass)} />
92
+ {/if}
93
+ </div>
94
+ {#if children}
95
+ <div class={cn(authLogoTextSizeVariants({ size }))}>
96
+ {@render children?.()}
97
+ </div>
98
+ {/if}
99
+ </svelte:element>
@@ -0,0 +1,63 @@
1
+ import { type VariantProps } from 'tailwind-variants';
2
+ declare const authLogoSizeVariants: import("tailwind-variants").TVReturnType<{
3
+ size: {
4
+ default: string;
5
+ lg: string;
6
+ xl: string;
7
+ '2xl': string;
8
+ '3xl': string;
9
+ };
10
+ }, undefined, "flex shrink-0 overflow-hidden rounded-lg", {
11
+ size: {
12
+ default: string;
13
+ lg: string;
14
+ xl: string;
15
+ '2xl': string;
16
+ '3xl': string;
17
+ };
18
+ }, undefined, import("tailwind-variants").TVReturnType<{
19
+ size: {
20
+ default: string;
21
+ lg: string;
22
+ xl: string;
23
+ '2xl': string;
24
+ '3xl': string;
25
+ };
26
+ }, undefined, "flex shrink-0 overflow-hidden rounded-lg", unknown, unknown, undefined>>;
27
+ declare const authLogoAlignVariants: import("tailwind-variants").TVReturnType<{
28
+ align: {
29
+ default: string;
30
+ left: string;
31
+ right: string;
32
+ center: string;
33
+ };
34
+ }, undefined, "flex items-center gap-2 font-medium", {
35
+ align: {
36
+ default: string;
37
+ left: string;
38
+ right: string;
39
+ center: string;
40
+ };
41
+ }, undefined, import("tailwind-variants").TVReturnType<{
42
+ align: {
43
+ default: string;
44
+ left: string;
45
+ right: string;
46
+ center: string;
47
+ };
48
+ }, undefined, "flex items-center gap-2 font-medium", unknown, unknown, undefined>>;
49
+ export type AuthLogoSize = VariantProps<typeof authLogoSizeVariants>['size'];
50
+ export type AuthLogoAlign = VariantProps<typeof authLogoAlignVariants>['align'];
51
+ import type { Snippet } from 'svelte';
52
+ type Props = {
53
+ children?: Snippet<[]>;
54
+ class?: string;
55
+ src?: string | null;
56
+ logoClass?: string | null;
57
+ href?: string;
58
+ size?: AuthLogoSize;
59
+ align?: AuthLogoAlign;
60
+ };
61
+ declare const AuthLayoutLogo: import("svelte").Component<Props, {}, "">;
62
+ type AuthLayoutLogo = ReturnType<typeof AuthLayoutLogo>;
63
+ export default AuthLayoutLogo;
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { cn } from '@tanglemedia/svelte-starter-ui-shadcn';
3
+ import type { Snippet } from 'svelte';
4
+
5
+ type Props = {
6
+ children?: Snippet<[]>;
7
+ class?: string;
8
+ };
9
+
10
+ const { children, class: cls }: Props = $props();
11
+ </script>
12
+
13
+ <div class={cn('flex flex-1 items-center justify-center', cls)}>
14
+ <div class="w-full max-w-sm lg:max-w-md flex flex-col gap-6">
15
+ {@render children?.()}
16
+ </div>
17
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Props = {
3
+ children?: Snippet<[]>;
4
+ class?: string;
5
+ };
6
+ declare const AuthLayoutMain: import("svelte").Component<Props, {}, "">;
7
+ type AuthLayoutMain = ReturnType<typeof AuthLayoutMain>;
8
+ export default AuthLayoutMain;
@@ -1,97 +1,31 @@
1
1
  <script lang="ts">
2
- import { Button } from '@tanglemedia/svelte-starter-ui-shadcn';
3
- // import { getConfig } from '@tanglemedia/svelte-starter-core';
2
+ import type { Snippet } from "svelte";
4
3
 
5
4
  interface Props {
6
- logo?: string | null;
7
- backgroundImage?: string | null;
8
- name?: string | null;
9
- quote?: string | null;
10
- quoteAuthor?: string | null;
11
- layoutMode?: string | null;
12
- leftSideBackground?: string | null;
13
- rightSideBackground?: string | null;
14
- opacity?: number | null;
15
- logoClass?: string | null;
16
- filterClass?: string | null;
17
- backgroundImageClass?: string | null;
5
+ side?: "left" | "right";
6
+ feature?: Snippet;
7
+ children: Snippet;
18
8
  }
19
9
 
20
- let {
21
- logo = null,
22
- backgroundImage = "https://images.unsplash.com/photo-1590069261209-f8e9b8642343?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1376&q=80",
23
- name = "Tangle Media Inc.",
24
- quote = "",
25
- quoteAuthor = "",
26
- layoutMode,
27
- leftSideBackground,
28
- rightSideBackground,
29
- opacity,
30
- logoClass = "",
31
- filterClass,
32
- backgroundImageClass = "",
33
- children
34
- }: Props = $props();
10
+ let { side = "left", feature, children }: Props = $props();
35
11
  </script>
36
12
 
37
- <div
38
- class="container relative h-[100vh] flex-col items-center justify-center grid lg:max-w-none lg:grid-cols-2 lg:px-0"
39
- >
40
- <div class="bg-muted relative hidden h-full flex-col p-10 text-white lg:flex dark:border-r">
41
- <div
42
- class="absolute inset-0 bg-background {backgroundImageClass}"
43
- style="
44
- background-image:
45
- url({backgroundImage});"
46
- ></div>
47
- <div class="relative z-20 flex items-center text-lg font-medium text-shadow-lg">
48
- {#if logo}
49
- <img src={logo} alt="logo" class={logoClass} />
50
- {:else}
51
- {name}
52
- {/if}
53
- </div>
54
- <div class="relative z-20 mt-auto">
55
- <blockquote class="space-y-2">
56
- <p class="text-lg text-shadow-lg">
57
- {quote}
58
- </p>
59
- <footer class="text-sm text-shadow-lg">{quoteAuthor}</footer>
60
- </blockquote>
61
- </div>
62
- <div class="absolute top-0 bottom-0 left-0 right-0 bg-primary-500/10 filter blur(2px)"></div>
63
- </div>
64
- <div class="lg:hidden absolute top-0 left-0 right-0 bottom-1/2 z-[-1] {backgroundImageClass}" style="
65
- mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
66
- background-image:
67
- url({backgroundImage});
68
- background-size: cover;
69
- background-position: center">
70
- <div class="text-white top-6 left-6 absolute text-lg font-medium z-20 text-shadow-lg">
71
- {#if logo}
72
- <img src={logo} alt="logo" class={logoClass} />
73
- {:else}
74
- {name}
75
- {/if}
76
- <blockquote class="space-y-2 mt-2 mr-4">
77
- <p class="text-sm text-shadow-lg">
78
- {quote}
79
- </p>
80
- <footer class="text-xs text-shadow-lg">{quoteAuthor}</footer>
81
- </blockquote>
82
- </div>
83
- <div class="absolute top-0 bottom-0 left-0 right-0 bg-primary-500/10 filter blur(2px)"></div>
84
- <div class="absolute bottom-0 left-0 right-0 h-20 bg-gradient-to-b from-gray-900/10 to-background transition duration-500 ease-in-out"></div>
85
- </div>
86
- <div class="lg:p-8">
87
- <div class="mx-auto flex w-full flex-col justify-center space-y-6">
88
- {@render children()}
89
- </div>
90
- </div>
13
+ <div class="relative min-h-svh grid grid-cols-1 lg:grid-cols-2">
14
+ {#if side === "left"}
15
+ {#if feature}
16
+ {@render renderFeature()}
17
+ {/if}
18
+ {/if}
19
+ {@render children()}
20
+ {#if side === "right"}
21
+ {#if feature}
22
+ {@render renderFeature()}
23
+ {/if}
24
+ {/if}
91
25
  </div>
92
26
 
93
- <style>
94
- .text-shadow-lg {
95
- text-shadow: 0 2px 2px rgb(0 0 0 / 0.4);
96
- }
97
- </style>
27
+ {#snippet renderFeature()}
28
+ <div class="w-full absolute h-[50vh] lg:h-screen lg:relative lg:block">
29
+ {@render feature?.()}
30
+ </div>
31
+ {/snippet}
@@ -1,16 +1,8 @@
1
+ import type { Snippet } from "svelte";
1
2
  interface Props {
2
- logo?: string | null;
3
- backgroundImage?: string | null;
4
- name?: string | null;
5
- quote?: string | null;
6
- quoteAuthor?: string | null;
7
- layoutMode?: string | null;
8
- leftSideBackground?: string | null;
9
- rightSideBackground?: string | null;
10
- opacity?: number | null;
11
- logoClass?: string | null;
12
- filterClass?: string | null;
13
- backgroundImageClass?: string | null;
3
+ side?: "left" | "right";
4
+ feature?: Snippet;
5
+ children: Snippet;
14
6
  }
15
7
  declare const AuthLayout: import("svelte").Component<Props, {}, "">;
16
8
  type AuthLayout = ReturnType<typeof AuthLayout>;