flowbite-svelte 0.6.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 (80) hide show
  1. package/README.md +33 -0
  2. package/accordions/AccordionDefault.svelte +26 -0
  3. package/accordions/AccordionDefault.svelte.d.ts +35 -0
  4. package/accordions/AccordionItem.svelte +44 -0
  5. package/accordions/AccordionItem.svelte.d.ts +29 -0
  6. package/alerts/Alert.svelte +111 -0
  7. package/alerts/Alert.svelte.d.ts +31 -0
  8. package/alerts/BorderAlert.svelte +118 -0
  9. package/alerts/BorderAlert.svelte.d.ts +31 -0
  10. package/alerts/InfoAlert.svelte +125 -0
  11. package/alerts/InfoAlert.svelte.d.ts +35 -0
  12. package/badges/Badge.svelte +28 -0
  13. package/badges/Badge.svelte.d.ts +27 -0
  14. package/badges/BadgeIcon.svelte +31 -0
  15. package/badges/BadgeIcon.svelte.d.ts +31 -0
  16. package/badges/BadgeLink.svelte +29 -0
  17. package/badges/BadgeLink.svelte.d.ts +29 -0
  18. package/buttongroups/ButtonGroup.svelte +68 -0
  19. package/buttongroups/ButtonGroup.svelte.d.ts +33 -0
  20. package/buttongroups/ButtonGroupOutline.svelte +70 -0
  21. package/buttongroups/ButtonGroupOutline.svelte.d.ts +33 -0
  22. package/buttons/Button.svelte +60 -0
  23. package/buttons/Button.svelte.d.ts +33 -0
  24. package/buttons/ColorShadowButton.svelte +35 -0
  25. package/buttons/ColorShadowButton.svelte.d.ts +31 -0
  26. package/buttons/GradientDuotoneButton.svelte +33 -0
  27. package/buttons/GradientDuotoneButton.svelte.d.ts +31 -0
  28. package/buttons/GradientMonochromeButton.svelte +35 -0
  29. package/buttons/GradientMonochromeButton.svelte.d.ts +31 -0
  30. package/buttons/GradientOutlineButton.svelte +52 -0
  31. package/buttons/GradientOutlineButton.svelte.d.ts +31 -0
  32. package/cards/Card.svelte +86 -0
  33. package/cards/Card.svelte.d.ts +39 -0
  34. package/cards/CtaCard.svelte +63 -0
  35. package/cards/CtaCard.svelte.d.ts +45 -0
  36. package/cards/EcommerceCard.svelte +98 -0
  37. package/cards/EcommerceCard.svelte.d.ts +41 -0
  38. package/cards/HorizontalCard.svelte +29 -0
  39. package/cards/HorizontalCard.svelte.d.ts +35 -0
  40. package/cards/InteractiveCard.svelte +127 -0
  41. package/cards/InteractiveCard.svelte.d.ts +63 -0
  42. package/cards/ListCard.svelte +82 -0
  43. package/cards/ListCard.svelte.d.ts +51 -0
  44. package/cards/SignInCard.svelte +125 -0
  45. package/cards/SignInCard.svelte.d.ts +45 -0
  46. package/darkmode/DarkMode.svelte +78 -0
  47. package/darkmode/DarkMode.svelte.d.ts +23 -0
  48. package/dropdowns/DropdownDefault.svelte +117 -0
  49. package/dropdowns/DropdownDefault.svelte.d.ts +51 -0
  50. package/footer/SimpleFooter.svelte +32 -0
  51. package/footer/SimpleFooter.svelte.d.ts +45 -0
  52. package/index.d.ts +39 -0
  53. package/index.js +116 -0
  54. package/list-group/List.svelte +79 -0
  55. package/list-group/List.svelte.d.ts +33 -0
  56. package/modals/ExtraLargeModal.svelte +236 -0
  57. package/modals/ExtraLargeModal.svelte.d.ts +45 -0
  58. package/modals/LargeModal.svelte +236 -0
  59. package/modals/LargeModal.svelte.d.ts +45 -0
  60. package/modals/MediumModal.svelte +242 -0
  61. package/modals/MediumModal.svelte.d.ts +45 -0
  62. package/modals/ModalButton.svelte +48 -0
  63. package/modals/ModalButton.svelte.d.ts +29 -0
  64. package/modals/SignInModal.svelte +174 -0
  65. package/modals/SignInModal.svelte.d.ts +37 -0
  66. package/modals/SmallModal.svelte +236 -0
  67. package/modals/SmallModal.svelte.d.ts +45 -0
  68. package/modals/modalStores.d.ts +1 -0
  69. package/modals/modalStores.js +3 -0
  70. package/navbar/DropdownNavbar.svelte +210 -0
  71. package/navbar/DropdownNavbar.svelte.d.ts +65 -0
  72. package/navbar/Navbar.svelte +96 -0
  73. package/navbar/Navbar.svelte.d.ts +39 -0
  74. package/package.json +92 -0
  75. package/tabs/DefaultTabs.svelte +43 -0
  76. package/tabs/DefaultTabs.svelte.d.ts +33 -0
  77. package/tabs/InteractiveTabs.svelte +68 -0
  78. package/tabs/InteractiveTabs.svelte.d.ts +47 -0
  79. package/tabs/PillTabs.svelte +38 -0
  80. package/tabs/PillTabs.svelte.d.ts +31 -0
@@ -0,0 +1,236 @@
1
+ <script>
2
+ import { createEventDispatcher } from "svelte";
3
+ import { modalIdStore } from "./modalStores.js";
4
+ const dispatch = createEventDispatcher();
5
+ export let id = "large-modal";
6
+ export let btnColor = "blue";
7
+ export let textColor = "gray";
8
+ export let title = "Terms of Service";
9
+ export let btn1;
10
+ export let btn2;
11
+
12
+ const closeModal = () => {
13
+ modalIdStore.update((value) => {
14
+ value = null;
15
+ });
16
+ };
17
+
18
+ export let showModalId;
19
+ modalIdStore.subscribe((value) => {
20
+ showModalId = value;
21
+ });
22
+
23
+ const handlebtn1 = () => {
24
+ dispatch("handlebtn1");
25
+ };
26
+
27
+ const handlebtn2 = () => {
28
+ dispatch("handlebtn2");
29
+ };
30
+
31
+ let divClass;
32
+ let headDivClass;
33
+ let h3Class;
34
+ let buttonClass;
35
+ let pClass;
36
+ let footerClass;
37
+ let btn2Class;
38
+ if (textColor === "blue") {
39
+ divClass = "relative bg-white rounded-lg shadow dark:bg-blue-700";
40
+ headDivClass =
41
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-blue-600";
42
+ h3Class = "text-xl font-medium text-blue-900 dark:text-white";
43
+ buttonClass =
44
+ "text-blue-400 bg-transparent hover:bg-blue-200 hover:text-blue-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-blue-600 dark:hover:text-white";
45
+ pClass = "text-base leading-relaxed text-blue-500 dark:text-blue-400";
46
+ footerClass =
47
+ "flex items-center p-6 space-x-2 rounded-b border-t border-blue-200 dark:border-blue-600";
48
+ btn2Class =
49
+ "text-blue-500 bg-white hover:bg-blue-100 focus:ring-4 focus:ring-blue-300 rounded-lg border border-blue-200 text-sm font-medium px-5 py-2.5 hover:text-blue-900 focus:z-10 dark:bg-blue-700 dark:text-blue-300 dark:border-blue-500 dark:hover:text-white dark:hover:bg-blue-600";
50
+ } else if (textColor === "gray") {
51
+ divClass = "relative bg-white rounded-lg shadow dark:bg-gray-700";
52
+ headDivClass =
53
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-gray-600";
54
+ h3Class = "text-xl font-medium text-gray-900 dark:text-white";
55
+ buttonClass =
56
+ "text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white";
57
+ pClass = "text-base leading-relaxed text-gray-500 dark:text-gray-400";
58
+ footerClass =
59
+ "flex items-center p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600";
60
+ btn2Class =
61
+ "text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:ring-gray-300 rounded-lg border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600";
62
+ } else if (textColor === "red") {
63
+ divClass = "relative bg-white rounded-lg shadow dark:bg-red-700";
64
+ headDivClass =
65
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-red-600";
66
+ h3Class = "text-xl font-medium text-red-900 dark:text-white";
67
+ buttonClass =
68
+ "text-red-400 bg-transparent hover:bg-red-200 hover:text-red-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-red-600 dark:hover:text-white";
69
+ pClass = "text-base leading-relaxed text-red-500 dark:text-red-400";
70
+ footerClass =
71
+ "flex items-center p-6 space-x-2 rounded-b border-t border-red-200 dark:border-red-600";
72
+ btn2Class =
73
+ "text-red-500 bg-white hover:bg-red-100 focus:ring-4 focus:ring-red-300 rounded-lg border border-red-200 text-sm font-medium px-5 py-2.5 hover:text-red-900 focus:z-10 dark:bg-red-700 dark:text-red-300 dark:border-red-500 dark:hover:text-white dark:hover:bg-red-600";
74
+ } else if (textColor === "yellow") {
75
+ divClass = "relative bg-white rounded-lg shadow dark:bg-yellow-700";
76
+ headDivClass =
77
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-yellow-600";
78
+ h3Class = "text-xl font-medium text-yellow-900 dark:text-white";
79
+ buttonClass =
80
+ "text-yellow-400 bg-transparent hover:bg-yellow-200 hover:text-yellow-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-yellow-600 dark:hover:text-white";
81
+ pClass = "text-base leading-relaxed text-yellow-500 dark:text-yellow-400";
82
+ footerClass =
83
+ "flex items-center p-6 space-x-2 rounded-b border-t border-yellow-200 dark:border-yellow-600";
84
+ btn2Class =
85
+ "text-yellow-500 bg-white hover:bg-yellow-100 focus:ring-4 focus:ring-yellow-300 rounded-lg border border-yellow-200 text-sm font-medium px-5 py-2.5 hover:text-yellow-900 focus:z-10 dark:bg-yellow-700 dark:text-yellow-300 dark:border-yellow-500 dark:hover:text-white dark:hover:bg-yellow-600";
86
+ } else if (textColor === "green") {
87
+ divClass = "relative bg-white rounded-lg shadow dark:bg-green-700";
88
+ headDivClass =
89
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-green-600";
90
+ h3Class = "text-xl font-medium text-green-900 dark:text-white";
91
+ buttonClass =
92
+ "text-green-400 bg-transparent hover:bg-green-200 hover:text-green-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-green-600 dark:hover:text-white";
93
+ pClass = "text-base leading-relaxed text-green-500 dark:text-green-400";
94
+ footerClass =
95
+ "flex items-center p-6 space-x-2 rounded-b border-t border-green-200 dark:border-green-600";
96
+ btn2Class =
97
+ "text-green-500 bg-white hover:bg-green-100 focus:ring-4 focus:ring-green-300 rounded-lg border border-green-200 text-sm font-medium px-5 py-2.5 hover:text-green-900 focus:z-10 dark:bg-green-700 dark:text-green-300 dark:border-green-500 dark:hover:text-white dark:hover:bg-green-600";
98
+ } else if (textColor === "indigo") {
99
+ divClass = "relative bg-white rounded-lg shadow dark:bg-indigo-700";
100
+ headDivClass =
101
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-indigo-600";
102
+ h3Class = "text-xl font-medium text-indigo-900 dark:text-white";
103
+ buttonClass =
104
+ "text-indigo-400 bg-transparent hover:bg-indigo-200 hover:text-indigo-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-indigo-600 dark:hover:text-white";
105
+ pClass = "text-base leading-relaxed text-indigo-500 dark:text-indigo-400";
106
+ footerClass =
107
+ "flex items-center p-6 space-x-2 rounded-b border-t border-indigo-200 dark:border-indigo-600";
108
+ btn2Class =
109
+ "text-indigo-500 bg-white hover:bg-indigo-100 focus:ring-4 focus:ring-indigo-300 rounded-lg border border-indigo-200 text-sm font-medium px-5 py-2.5 hover:text-indigo-900 focus:z-10 dark:bg-indigo-700 dark:text-indigo-300 dark:border-indigo-500 dark:hover:text-white dark:hover:bg-indigo-600";
110
+ } else if (textColor === "purple") {
111
+ divClass = "relative bg-white rounded-lg shadow dark:bg-purple-700";
112
+ headDivClass =
113
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-purple-600";
114
+ h3Class = "text-xl font-medium text-purple-900 dark:text-white";
115
+ buttonClass =
116
+ "text-purple-400 bg-transparent hover:bg-purple-200 hover:text-purple-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-purple-600 dark:hover:text-white";
117
+ pClass = "text-base leading-relaxed text-purple-500 dark:text-purple-400";
118
+ footerClass =
119
+ "flex items-center p-6 space-x-2 rounded-b border-t border-purple-200 dark:border-purple-600";
120
+ btn2Class =
121
+ "text-purple-500 bg-white hover:bg-purple-100 focus:ring-4 focus:ring-purple-300 rounded-lg border border-purple-200 text-sm font-medium px-5 py-2.5 hover:text-purple-900 focus:z-10 dark:bg-purple-700 dark:text-purple-300 dark:border-purple-500 dark:hover:text-white dark:hover:bg-purple-600";
122
+ } else if (textColor === "pink") {
123
+ divClass = "relative bg-white rounded-lg shadow dark:bg-pink-700";
124
+ headDivClass =
125
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-pink-600";
126
+ h3Class = "text-xl font-medium text-pink-900 dark:text-white";
127
+ buttonClass =
128
+ "text-pink-400 bg-transparent hover:bg-pink-200 hover:text-pink-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-pink-600 dark:hover:text-white";
129
+ pClass = "text-base leading-relaxed text-pink-500 dark:text-pink-400";
130
+ footerClass =
131
+ "flex items-center p-6 space-x-2 rounded-b border-t border-pink-200 dark:border-pink-600";
132
+ btn2Class =
133
+ "text-pink-500 bg-white hover:bg-pink-100 focus:ring-4 focus:ring-pink-300 rounded-lg border border-pink-200 text-sm font-medium px-5 py-2.5 hover:text-pink-900 focus:z-10 dark:bg-pink-700 dark:text-pink-300 dark:border-pink-500 dark:hover:text-white dark:hover:bg-pink-600";
134
+ } else {
135
+ divClass = "relative bg-white rounded-lg shadow dark:bg-blue-700";
136
+ headDivClass =
137
+ "flex justify-between items-center p-5 rounded-t border-b dark:border-blue-600";
138
+ h3Class = "text-xl font-medium text-blue-900 dark:text-white";
139
+ buttonClass =
140
+ "text-blue-400 bg-transparent hover:bg-blue-200 hover:text-blue-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-blue-600 dark:hover:text-white";
141
+ pClass = "text-base leading-relaxed text-blue-500 dark:text-blue-400";
142
+ footerClass =
143
+ "flex items-center p-6 space-x-2 rounded-b border-t border-blue-200 dark:border-blue-600";
144
+ btn2Class =
145
+ "text-blue-500 bg-white hover:bg-blue-100 focus:ring-4 focus:ring-blue-300 rounded-lg border border-blue-200 text-sm font-medium px-5 py-2.5 hover:text-blue-900 focus:z-10 dark:bg-blue-700 dark:text-blue-300 dark:border-blue-500 dark:hover:text-white dark:hover:bg-blue-600";
146
+ }
147
+
148
+ let button1Class;
149
+ if (btnColor === "blue") {
150
+ button1Class =
151
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
152
+ } else if (btnColor === "gray") {
153
+ button1Class =
154
+ "text-white bg-gray-700 hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
155
+ } else if (btnColor === "red") {
156
+ button1Class =
157
+ "text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
158
+ } else if (btnColor === "yellow") {
159
+ button1Class =
160
+ "text-white bg-yellow-700 hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
161
+ } else if (btnColor === "green") {
162
+ button1Class =
163
+ "text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
164
+ } else if (btnColor === "indigo") {
165
+ button1Class =
166
+ "text-white bg-indigo-700 hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
167
+ } else if (btnColor === "purple") {
168
+ button1Class =
169
+ "text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
170
+ } else if (btnColor === "pink") {
171
+ button1Class =
172
+ "text-white bg-pink-700 hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
173
+ } else {
174
+ button1Class =
175
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
176
+ }
177
+ </script>
178
+
179
+ {#if showModalId === id}
180
+ <!-- Large Modal -->
181
+ <div
182
+ {id}
183
+ role="dialog"
184
+ aria-modal="true"
185
+ class="flex overflow-y-auto overflow-x-hidden fixed right-0 left-0 top-20 z-50 justify-center items-center"
186
+ >
187
+ <div class="relative px-4 w-full max-w-4xl h-full md:h-auto">
188
+ <!-- Modal content -->
189
+ <div class={divClass}>
190
+ <!-- Modal header -->
191
+ <div class={headDivClass}>
192
+ <h3 class={h3Class}>
193
+ {title}
194
+ </h3>
195
+ <button type="button" class={buttonClass} on:click={closeModal}>
196
+ <svg
197
+ class="w-5 h-5"
198
+ fill="currentColor"
199
+ viewBox="0 0 20 20"
200
+ xmlns="http://www.w3.org/2000/svg"
201
+ ><path
202
+ fill-rule="evenodd"
203
+ d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
204
+ clip-rule="evenodd"
205
+ /></svg
206
+ >
207
+ </button>
208
+ </div>
209
+ <!-- Modal body -->
210
+ <div class="p-6 space-y-6">
211
+ <p class={pClass}>
212
+ <slot />
213
+ </p>
214
+ </div>
215
+ <!-- Modal footer -->
216
+ <div class={footerClass}>
217
+ {#if btn1}
218
+ <button type="button" class={button1Class} on:click={handlebtn1}
219
+ >{btn1}</button
220
+ >
221
+ {/if}
222
+ {#if btn2}
223
+ <button type="button" class={btn2Class} on:click={handlebtn2}
224
+ >{btn2}</button
225
+ >
226
+ {/if}
227
+ </div>
228
+ </div>
229
+ </div>
230
+ </div>
231
+
232
+ <div
233
+ on:click={closeModal}
234
+ class="bg-gray-900 bg-opacity-50 dark:bg-opacity-80 fixed inset-0 z-40 w-full h-full"
235
+ />
236
+ {/if}
@@ -0,0 +1,45 @@
1
+ /** @typedef {typeof __propDef.props} LargeModalProps */
2
+ /** @typedef {typeof __propDef.events} LargeModalEvents */
3
+ /** @typedef {typeof __propDef.slots} LargeModalSlots */
4
+ export default class LargeModal extends SvelteComponentTyped<{
5
+ btn1: any;
6
+ btn2: any;
7
+ showModalId: any;
8
+ id?: string;
9
+ btnColor?: string;
10
+ title?: string;
11
+ textColor?: string;
12
+ }, {
13
+ handlebtn1: CustomEvent<any>;
14
+ handlebtn2: CustomEvent<any>;
15
+ } & {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {
18
+ default: {};
19
+ }> {
20
+ }
21
+ export type LargeModalProps = typeof __propDef.props;
22
+ export type LargeModalEvents = typeof __propDef.events;
23
+ export type LargeModalSlots = typeof __propDef.slots;
24
+ import { SvelteComponentTyped } from "svelte";
25
+ declare const __propDef: {
26
+ props: {
27
+ btn1: any;
28
+ btn2: any;
29
+ showModalId: any;
30
+ id?: string;
31
+ btnColor?: string;
32
+ title?: string;
33
+ textColor?: string;
34
+ };
35
+ events: {
36
+ handlebtn1: CustomEvent<any>;
37
+ handlebtn2: CustomEvent<any>;
38
+ } & {
39
+ [evt: string]: CustomEvent<any>;
40
+ };
41
+ slots: {
42
+ default: {};
43
+ };
44
+ };
45
+ export {};
@@ -0,0 +1,242 @@
1
+ <script>
2
+ // import { toggleModal } from "./modalHelper";
3
+ import { modalIdStore } from "./modalStores.js";
4
+ import { createEventDispatcher } from "svelte";
5
+
6
+ const dispatch = createEventDispatcher();
7
+
8
+ export let id = "medium-modal";
9
+ export let btnColor = "blue";
10
+ export let textColor = "gray";
11
+ export let title = "Terms of Service";
12
+ export let btn1;
13
+ export let btn2;
14
+
15
+ const closeModal = () => {
16
+ modalIdStore.update((value) => {
17
+ value = null;
18
+ });
19
+ };
20
+
21
+ export let showModalId;
22
+ modalIdStore.subscribe((value) => {
23
+ showModalId = value;
24
+ });
25
+
26
+ const handlebtn1 = () => {
27
+ dispatch("handlebtn1");
28
+ };
29
+
30
+ const handlebtn2 = () => {
31
+ dispatch("handlebtn2");
32
+ };
33
+ let divClass;
34
+ let headDivClass;
35
+ let h3Class;
36
+ let buttonClass;
37
+ let pClass;
38
+ let footerClass;
39
+ let btn2Class;
40
+ if (textColor === "blue") {
41
+ divClass = "relative bg-white rounded-lg shadow dark:bg-blue-700";
42
+ headDivClass =
43
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-blue-600";
44
+ h3Class = "text-xl font-semibold text-blue-900 lg:text-2xl dark:text-white";
45
+ buttonClass =
46
+ "text-blue-400 bg-transparent hover:bg-blue-200 hover:text-blue-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-blue-600 dark:hover:text-white";
47
+ pClass = "text-base leading-relaxed text-blue-500 dark:text-blue-400";
48
+ footerClass =
49
+ "flex items-center p-6 space-x-2 rounded-b border-t border-blue-200 dark:border-blue-600";
50
+ btn2Class =
51
+ "text-blue-500 bg-white hover:bg-blue-100 focus:ring-4 focus:ring-blue-300 rounded-lg border border-blue-200 text-sm font-medium px-5 py-2.5 hover:text-blue-900 focus:z-10 dark:bg-blue-700 dark:text-blue-300 dark:border-blue-500 dark:hover:text-white dark:hover:bg-blue-600";
52
+ } else if (textColor === "gray") {
53
+ divClass = "relative bg-white rounded-lg shadow dark:bg-gray-700";
54
+ headDivClass =
55
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-gray-600";
56
+ h3Class = "text-xl font-semibold text-gray-900 lg:text-2xl dark:text-white";
57
+ buttonClass =
58
+ "text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white";
59
+ pClass = "text-base leading-relaxed text-gray-500 dark:text-gray-400";
60
+ footerClass =
61
+ "flex items-center p-6 space-x-2 rounded-b border-t border-gray-200 dark:border-gray-600";
62
+ btn2Class =
63
+ "text-gray-500 bg-white hover:bg-gray-100 focus:ring-4 focus:ring-gray-300 rounded-lg border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600";
64
+ } else if (textColor === "red") {
65
+ divClass = "relative bg-white rounded-lg shadow dark:bg-red-700";
66
+ headDivClass =
67
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-red-600";
68
+ h3Class = "text-xl font-semibold text-red-900 lg:text-2xl dark:text-white";
69
+ buttonClass =
70
+ "text-red-400 bg-transparent hover:bg-red-200 hover:text-red-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-red-600 dark:hover:text-white";
71
+ pClass = "text-base leading-relaxed text-red-500 dark:text-red-400";
72
+ footerClass =
73
+ "flex items-center p-6 space-x-2 rounded-b border-t border-red-200 dark:border-red-600";
74
+ btn2Class =
75
+ "text-red-500 bg-white hover:bg-red-100 focus:ring-4 focus:ring-red-300 rounded-lg border border-red-200 text-sm font-medium px-5 py-2.5 hover:text-red-900 focus:z-10 dark:bg-red-700 dark:text-red-300 dark:border-red-500 dark:hover:text-white dark:hover:bg-red-600";
76
+ } else if (textColor === "yellow") {
77
+ divClass = "relative bg-white rounded-lg shadow dark:bg-yellow-700";
78
+ headDivClass =
79
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-yellow-600";
80
+ h3Class =
81
+ "text-xl font-semibold text-yellow-900 lg:text-2xl dark:text-white";
82
+ buttonClass =
83
+ "text-yellow-400 bg-transparent hover:bg-yellow-200 hover:text-yellow-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-yellow-600 dark:hover:text-white";
84
+ pClass = "text-base leading-relaxed text-yellow-500 dark:text-yellow-400";
85
+ footerClass =
86
+ "flex items-center p-6 space-x-2 rounded-b border-t border-yellow-200 dark:border-yellow-600";
87
+ btn2Class =
88
+ "text-yellow-500 bg-white hover:bg-yellow-100 focus:ring-4 focus:ring-yellow-300 rounded-lg border border-yellow-200 text-sm font-medium px-5 py-2.5 hover:text-yellow-900 focus:z-10 dark:bg-yellow-700 dark:text-yellow-300 dark:border-yellow-500 dark:hover:text-white dark:hover:bg-yellow-600";
89
+ } else if (textColor === "green") {
90
+ divClass = "relative bg-white rounded-lg shadow dark:bg-green-700";
91
+ headDivClass =
92
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-green-600";
93
+ h3Class =
94
+ "text-xl font-semibold text-green-900 lg:text-2xl dark:text-white";
95
+ buttonClass =
96
+ "text-green-400 bg-transparent hover:bg-green-200 hover:text-green-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-green-600 dark:hover:text-white";
97
+ pClass = "text-base leading-relaxed text-green-500 dark:text-green-400";
98
+ footerClass =
99
+ "flex items-center p-6 space-x-2 rounded-b border-t border-green-200 dark:border-green-600";
100
+ btn2Class =
101
+ "text-green-500 bg-white hover:bg-green-100 focus:ring-4 focus:ring-green-300 rounded-lg border border-green-200 text-sm font-medium px-5 py-2.5 hover:text-green-900 focus:z-10 dark:bg-green-700 dark:text-green-300 dark:border-green-500 dark:hover:text-white dark:hover:bg-green-600";
102
+ } else if (textColor === "indigo") {
103
+ divClass = "relative bg-white rounded-lg shadow dark:bg-indigo-700";
104
+ headDivClass =
105
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-indigo-600";
106
+ h3Class =
107
+ "text-xl font-semibold text-indigo-900 lg:text-2xl dark:text-white";
108
+ buttonClass =
109
+ "text-indigo-400 bg-transparent hover:bg-indigo-200 hover:text-indigo-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-indigo-600 dark:hover:text-white";
110
+ pClass = "text-base leading-relaxed text-indigo-500 dark:text-indigo-400";
111
+ footerClass =
112
+ "flex items-center p-6 space-x-2 rounded-b border-t border-indigo-200 dark:border-indigo-600";
113
+ btn2Class =
114
+ "text-indigo-500 bg-white hover:bg-indigo-100 focus:ring-4 focus:ring-indigo-300 rounded-lg border border-indigo-200 text-sm font-medium px-5 py-2.5 hover:text-indigo-900 focus:z-10 dark:bg-indigo-700 dark:text-indigo-300 dark:border-indigo-500 dark:hover:text-white dark:hover:bg-indigo-600";
115
+ } else if (textColor === "purple") {
116
+ divClass = "relative bg-white rounded-lg shadow dark:bg-purple-700";
117
+ headDivClass =
118
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-purple-600";
119
+ h3Class =
120
+ "text-xl font-semibold text-purple-900 lg:text-2xl dark:text-white";
121
+ buttonClass =
122
+ "text-purple-400 bg-transparent hover:bg-purple-200 hover:text-purple-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-purple-600 dark:hover:text-white";
123
+ pClass = "text-base leading-relaxed text-purple-500 dark:text-purple-400";
124
+ footerClass =
125
+ "flex items-center p-6 space-x-2 rounded-b border-t border-purple-200 dark:border-purple-600";
126
+ btn2Class =
127
+ "text-purple-500 bg-white hover:bg-purple-100 focus:ring-4 focus:ring-purple-300 rounded-lg border border-purple-200 text-sm font-medium px-5 py-2.5 hover:text-purple-900 focus:z-10 dark:bg-purple-700 dark:text-purple-300 dark:border-purple-500 dark:hover:text-white dark:hover:bg-purple-600";
128
+ } else if (textColor === "pink") {
129
+ divClass = "relative bg-white rounded-lg shadow dark:bg-pink-700";
130
+ headDivClass =
131
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-pink-600";
132
+ h3Class = "text-xl font-semibold text-pink-900 lg:text-2xl dark:text-white";
133
+ buttonClass =
134
+ "text-pink-400 bg-transparent hover:bg-pink-200 hover:text-pink-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-pink-600 dark:hover:text-white";
135
+ pClass = "text-base leading-relaxed text-pink-500 dark:text-pink-400";
136
+ footerClass =
137
+ "flex items-center p-6 space-x-2 rounded-b border-t border-pink-200 dark:border-pink-600";
138
+ btn2Class =
139
+ "text-pink-500 bg-white hover:bg-pink-100 focus:ring-4 focus:ring-pink-300 rounded-lg border border-pink-200 text-sm font-medium px-5 py-2.5 hover:text-pink-900 focus:z-10 dark:bg-pink-700 dark:text-pink-300 dark:border-pink-500 dark:hover:text-white dark:hover:bg-pink-600";
140
+ } else {
141
+ divClass = "relative bg-white rounded-lg shadow dark:bg-blue-700";
142
+ headDivClass =
143
+ "flex justify-between items-start p-5 rounded-t border-b dark:border-blue-600";
144
+ h3Class = "text-xl font-semibold text-blue-900 lg:text-2xl dark:text-white";
145
+ buttonClass =
146
+ "text-blue-400 bg-transparent hover:bg-blue-200 hover:text-blue-900 rounded-lg text-sm p-1.5 ml-auto inline-flex items-center dark:hover:bg-blue-600 dark:hover:text-white";
147
+ pClass = "text-base leading-relaxed text-blue-500 dark:text-blue-400";
148
+ footerClass =
149
+ "flex items-center p-6 space-x-2 rounded-b border-t border-blue-200 dark:border-blue-600";
150
+ btn2Class =
151
+ "text-blue-500 bg-white hover:bg-blue-100 focus:ring-4 focus:ring-blue-300 rounded-lg border border-blue-200 text-sm font-medium px-5 py-2.5 hover:text-blue-900 focus:z-10 dark:bg-blue-700 dark:text-blue-300 dark:border-blue-500 dark:hover:text-white dark:hover:bg-blue-600";
152
+ }
153
+
154
+ let button1Class;
155
+ if (btnColor === "blue") {
156
+ button1Class =
157
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
158
+ } else if (btnColor === "gray") {
159
+ button1Class =
160
+ "text-white bg-gray-700 hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
161
+ } else if (btnColor === "red") {
162
+ button1Class =
163
+ "text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
164
+ } else if (btnColor === "yellow") {
165
+ button1Class =
166
+ "text-white bg-yellow-700 hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
167
+ } else if (btnColor === "green") {
168
+ button1Class =
169
+ "text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
170
+ } else if (btnColor === "indigo") {
171
+ button1Class =
172
+ "text-white bg-indigo-700 hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
173
+ } else if (btnColor === "purple") {
174
+ button1Class =
175
+ "text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
176
+ } else if (btnColor === "pink") {
177
+ button1Class =
178
+ "text-white bg-pink-700 hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
179
+ } else {
180
+ button1Class =
181
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
182
+ }
183
+ </script>
184
+
185
+ {#if showModalId === id}
186
+ <!-- Main modal -->
187
+ <div
188
+ {id}
189
+ role="dialog"
190
+ aria-modal="true"
191
+ class="flex overflow-y-auto overflow-x-hidden fixed right-0 left-0 top-20 z-50 justify-center items-center"
192
+ >
193
+ <div class="relative px-4 w-full max-w-2xl h-full md:h-auto">
194
+ <!-- Modal content -->
195
+ <div class={divClass}>
196
+ <!-- Modal header -->
197
+ <div class={headDivClass}>
198
+ <h3 class={h3Class}>
199
+ {title}
200
+ </h3>
201
+ <button type="button" class={buttonClass} on:click={closeModal}>
202
+ <svg
203
+ class="w-5 h-5"
204
+ fill="currentColor"
205
+ viewBox="0 0 20 20"
206
+ xmlns="http://www.w3.org/2000/svg"
207
+ ><path
208
+ fill-rule="evenodd"
209
+ d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
210
+ clip-rule="evenodd"
211
+ /></svg
212
+ >
213
+ </button>
214
+ </div>
215
+ <!-- Modal body -->
216
+ <div class="p-6 space-y-6">
217
+ <p class={pClass}>
218
+ <slot />
219
+ </p>
220
+ </div>
221
+ <!-- Modal footer -->
222
+ <div class={footerClass}>
223
+ {#if btn1}
224
+ <button type="button" class={button1Class} on:click={handlebtn1}>
225
+ {btn1}
226
+ </button>
227
+ {/if}
228
+ {#if btn2}
229
+ <button type="button" class={btn2Class} on:click={handlebtn2}
230
+ >{btn2}</button
231
+ >
232
+ {/if}
233
+ </div>
234
+ </div>
235
+ </div>
236
+ </div>
237
+
238
+ <div
239
+ on:click={closeModal}
240
+ class="bg-gray-900 bg-opacity-50 dark:bg-opacity-80 fixed inset-0 z-40 w-full h-full"
241
+ />
242
+ {/if}
@@ -0,0 +1,45 @@
1
+ /** @typedef {typeof __propDef.props} MediumModalProps */
2
+ /** @typedef {typeof __propDef.events} MediumModalEvents */
3
+ /** @typedef {typeof __propDef.slots} MediumModalSlots */
4
+ export default class MediumModal extends SvelteComponentTyped<{
5
+ btn1: any;
6
+ btn2: any;
7
+ showModalId: any;
8
+ id?: string;
9
+ btnColor?: string;
10
+ title?: string;
11
+ textColor?: string;
12
+ }, {
13
+ handlebtn1: CustomEvent<any>;
14
+ handlebtn2: CustomEvent<any>;
15
+ } & {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {
18
+ default: {};
19
+ }> {
20
+ }
21
+ export type MediumModalProps = typeof __propDef.props;
22
+ export type MediumModalEvents = typeof __propDef.events;
23
+ export type MediumModalSlots = typeof __propDef.slots;
24
+ import { SvelteComponentTyped } from "svelte";
25
+ declare const __propDef: {
26
+ props: {
27
+ btn1: any;
28
+ btn2: any;
29
+ showModalId: any;
30
+ id?: string;
31
+ btnColor?: string;
32
+ title?: string;
33
+ textColor?: string;
34
+ };
35
+ events: {
36
+ handlebtn1: CustomEvent<any>;
37
+ handlebtn2: CustomEvent<any>;
38
+ } & {
39
+ [evt: string]: CustomEvent<any>;
40
+ };
41
+ slots: {
42
+ default: {};
43
+ };
44
+ };
45
+ export {};
@@ -0,0 +1,48 @@
1
+ <script>
2
+ import { modalIdStore } from "./modalStores.js";
3
+ import { get } from "svelte/store";
4
+ export let id = "modal-id";
5
+ export let btnName = "Modal Name";
6
+ export let btnColor = "blue";
7
+
8
+ let showModalId;
9
+ export let openFn = (modal) => {
10
+ modalIdStore.update((n) => (n = modal.id));
11
+ showModalId = get(modalIdStore);
12
+ console.log("showModalId", showModalId);
13
+ };
14
+
15
+ let buttonClass;
16
+ if (btnColor === "blue") {
17
+ buttonClass =
18
+ "block w-full md:w-auto text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
19
+ } else if (btnColor === "gray") {
20
+ buttonClass =
21
+ "block w-full md:w-auto text-white bg-gray-700 hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-gray-600 dark:hover:bg-gray-700 dark:focus:ring-gray-800";
22
+ } else if (btnColor === "red") {
23
+ buttonClass =
24
+ "block w-full md:w-auto text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-600 dark:hover:bg-red-700 dark:focus:ring-red-800";
25
+ } else if (btnColor === "yellow") {
26
+ buttonClass =
27
+ "block w-full md:w-auto text-white bg-yellow-700 hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-yellow-600 dark:hover:bg-yellow-700 dark:focus:ring-yellow-800";
28
+ } else if (btnColor === "green") {
29
+ buttonClass =
30
+ "block w-full md:w-auto text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800";
31
+ } else if (btnColor === "indigo") {
32
+ buttonClass =
33
+ "block w-full md:w-auto text-white bg-indigo-700 hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-indigo-600 dark:hover:bg-indigo-700 dark:focus:ring-indigo-800";
34
+ } else if (btnColor === "purple") {
35
+ buttonClass =
36
+ "block w-full md:w-auto text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-purple-600 dark:hover:bg-purple-700 dark:focus:ring-purple-800";
37
+ } else if (btnColor === "pink") {
38
+ buttonClass =
39
+ "block w-full md:w-auto text-white bg-pink-700 hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-pink-600 dark:hover:bg-pink-700 dark:focus:ring-pink-800";
40
+ } else {
41
+ buttonClass =
42
+ "block w-full md:w-auto text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800";
43
+ }
44
+ </script>
45
+
46
+ <button on:click={openFn({ id })} class={buttonClass} type="button">
47
+ {btnName}
48
+ </button>
@@ -0,0 +1,29 @@
1
+ /** @typedef {typeof __propDef.props} ModalButtonProps */
2
+ /** @typedef {typeof __propDef.events} ModalButtonEvents */
3
+ /** @typedef {typeof __propDef.slots} ModalButtonSlots */
4
+ export default class ModalButton extends SvelteComponentTyped<{
5
+ id?: string;
6
+ btnColor?: string;
7
+ btnName?: string;
8
+ openFn?: (modal: any) => void;
9
+ }, {
10
+ [evt: string]: CustomEvent<any>;
11
+ }, {}> {
12
+ }
13
+ export type ModalButtonProps = typeof __propDef.props;
14
+ export type ModalButtonEvents = typeof __propDef.events;
15
+ export type ModalButtonSlots = typeof __propDef.slots;
16
+ import { SvelteComponentTyped } from "svelte";
17
+ declare const __propDef: {
18
+ props: {
19
+ id?: string;
20
+ btnColor?: string;
21
+ btnName?: string;
22
+ openFn?: (modal: any) => void;
23
+ };
24
+ events: {
25
+ [evt: string]: CustomEvent<any>;
26
+ };
27
+ slots: {};
28
+ };
29
+ export {};