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
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # FLOWBITE-SVELTE
2
+
3
+ ## Installation
4
+
5
+ [Getting started](https://flowbite-svelte.vercel.app/getting-started)
6
+
7
+ ## Alert components
8
+
9
+ [Alerts](https://flowbite-svelte.vercel.app/alerts)
10
+
11
+ ## Button component
12
+
13
+ [Buttons](https://flowbite-svelte.vercel.app/buttons)
14
+
15
+ ## Card components
16
+
17
+ [Cards](https://flowbite-svelte.vercel.app/cards)
18
+
19
+ ## List group component
20
+
21
+ [List group](https://flowbite-svelte.vercel.app/list-group)
22
+
23
+ ## Modal components
24
+
25
+ [Modals](https://flowbite-svelte.vercel.app/modals)
26
+
27
+ ## Navbar component
28
+
29
+ [Navbars](https://flowbite-svelte.vercel.app/navbar)
30
+
31
+ ## Tab components
32
+
33
+ [Tabs](https://flowbite-svelte.vercel.app/tabs)
@@ -0,0 +1,26 @@
1
+ <script>
2
+ import { onDestroy } from "svelte";
3
+ import { setContext } from "svelte";
4
+ import { createEventDispatcher } from "svelte";
5
+ import { writable } from "svelte/store";
6
+ export let duration = 0.2;
7
+ export let easing = "ease";
8
+ export let id = null;
9
+ const dispatch = createEventDispatcher();
10
+ // create a store for the children to access
11
+ const store = writable({ id, duration, easing });
12
+ // when the store changes, update the id prop
13
+ const unsubscribe = store.subscribe((s) => {
14
+ id = s.id;
15
+ dispatch("change", { id });
16
+ });
17
+ // when the id prop changes, update the store
18
+ $: store.update((s) => Object.assign(s, { id }));
19
+ // make the store available to children
20
+ setContext("svelte-collapsible-accordion", store);
21
+ onDestroy(unsubscribe);
22
+ </script>
23
+
24
+ <div>
25
+ <slot />
26
+ </div>
@@ -0,0 +1,35 @@
1
+ /** @typedef {typeof __propDef.props} AccordionDefaultProps */
2
+ /** @typedef {typeof __propDef.events} AccordionDefaultEvents */
3
+ /** @typedef {typeof __propDef.slots} AccordionDefaultSlots */
4
+ export default class AccordionDefault extends SvelteComponentTyped<{
5
+ id?: any;
6
+ duration?: number;
7
+ easing?: string;
8
+ }, {
9
+ change: CustomEvent<any>;
10
+ } & {
11
+ [evt: string]: CustomEvent<any>;
12
+ }, {
13
+ default: {};
14
+ }> {
15
+ }
16
+ export type AccordionDefaultProps = typeof __propDef.props;
17
+ export type AccordionDefaultEvents = typeof __propDef.events;
18
+ export type AccordionDefaultSlots = typeof __propDef.slots;
19
+ import { SvelteComponentTyped } from "svelte";
20
+ declare const __propDef: {
21
+ props: {
22
+ id?: any;
23
+ duration?: number;
24
+ easing?: string;
25
+ };
26
+ events: {
27
+ change: CustomEvent<any>;
28
+ } & {
29
+ [evt: string]: CustomEvent<any>;
30
+ };
31
+ slots: {
32
+ default: {};
33
+ };
34
+ };
35
+ export {};
@@ -0,0 +1,44 @@
1
+ <script>
2
+ import { getContext } from "svelte";
3
+ import collapse from "svelte-collapse";
4
+ import {
5
+ ChevronDownIconSolid,
6
+ ChevronUpIconSolid,
7
+ } from "@codewithshin/svelte-heroicons";
8
+ export let id;
9
+ const store = getContext("svelte-collapsible-accordion");
10
+ $: params = {
11
+ open: $store.id === id,
12
+ duration: $store.duration,
13
+ easing: $store.easing,
14
+ };
15
+ const handleToggle = () => {
16
+ if (params.open) {
17
+ store.update((s) => Object.assign(s, { id: null }));
18
+ } else {
19
+ store.update((s) => Object.assign(s, { id }));
20
+ }
21
+ };
22
+ </script>
23
+
24
+ <h2 aria-expanded={params.open}>
25
+ <button
26
+ on:click={handleToggle}
27
+ type="button"
28
+ class:rounded-t-xl={id === "1"}
29
+ class:border-t-0={id !== "1"}
30
+ class="flex items-center focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800 justify-between p-5 w-full font-medium border border-gray-200 dark:border-gray-700 text-left text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800"
31
+ >
32
+ <span><slot name="header" /></span>
33
+ {#if params.open}
34
+ <ChevronUpIconSolid />
35
+ {:else}
36
+ <ChevronDownIconSolid />
37
+ {/if}
38
+ </button>
39
+ </h2>
40
+ <div use:collapse={params}>
41
+ <div class="p-5 border border-t-0 border-gray-200 dark:border-gray-700">
42
+ <slot name="body" />
43
+ </div>
44
+ </div>
@@ -0,0 +1,29 @@
1
+ /** @typedef {typeof __propDef.props} AccordionItemProps */
2
+ /** @typedef {typeof __propDef.events} AccordionItemEvents */
3
+ /** @typedef {typeof __propDef.slots} AccordionItemSlots */
4
+ export default class AccordionItem extends SvelteComponentTyped<{
5
+ id: any;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ header: {};
10
+ body: {};
11
+ }> {
12
+ }
13
+ export type AccordionItemProps = typeof __propDef.props;
14
+ export type AccordionItemEvents = typeof __propDef.events;
15
+ export type AccordionItemSlots = typeof __propDef.slots;
16
+ import { SvelteComponentTyped } from "svelte";
17
+ declare const __propDef: {
18
+ props: {
19
+ id: any;
20
+ };
21
+ events: {
22
+ [evt: string]: CustomEvent<any>;
23
+ };
24
+ slots: {
25
+ header: {};
26
+ body: {};
27
+ };
28
+ };
29
+ export {};
@@ -0,0 +1,111 @@
1
+ <script>
2
+ import Button from "../buttons/Button.svelte";
3
+
4
+ // use blue (default), red, yellow, purple, green, indigo, gray, (no pink)
5
+ export let color = "blue";
6
+ export let alertId = "alert-1";
7
+ export let closeBtn = false;
8
+
9
+ let hidden = false;
10
+ const handleHide = () => {
11
+ hidden = !hidden;
12
+ };
13
+ let divClass;
14
+ let svgClass;
15
+ let slotClass;
16
+ let buttonClass;
17
+
18
+ if (color === "blue") {
19
+ divClass = "flex p-4 mb-4 bg-blue-100 rounded-lg dark:bg-blue-200";
20
+ svgClass = "flex-shrink-0 w-5 h-5 text-blue-700 dark:text-blue-800";
21
+ slotClass = "ml-3 text-sm font-medium text-blue-700 dark:text-blue-800";
22
+ buttonClass =
23
+ "ml-auto -mx-1.5 -my-1.5 bg-blue-100 text-blue-500 rounded-lg focus:ring-2 focus:ring-blue-400 p-1.5 hover:bg-blue-200 inline-flex h-8 w-8 dark:bg-blue-200 dark:text-blue-600 dark:hover:bg-blue-300";
24
+ } else if (color === "gray") {
25
+ divClass = "flex p-4 mb-4 bg-gray-100 rounded-lg dark:bg-gray-200";
26
+ svgClass = "flex-shrink-0 w-5 h-5 text-gray-700 dark:text-gray-800";
27
+ slotClass = "ml-3 text-sm font-medium text-gray-700 dark:text-gray-800";
28
+ buttonClass =
29
+ "ml-auto -mx-1.5 -my-1.5 bg-gray-100 text-gray-500 rounded-lg focus:ring-2 focus:ring-gray-400 p-1.5 hover:bg-gray-200 inline-flex h-8 w-8 dark:bg-gray-200 dark:text-gray-600 dark:hover:bg-gray-300";
30
+ } else if (color === "red") {
31
+ divClass = "flex p-4 mb-4 bg-red-100 rounded-lg dark:bg-red-200";
32
+ svgClass = "flex-shrink-0 w-5 h-5 text-red-700 dark:text-red-800";
33
+ slotClass = "ml-3 text-sm font-medium text-red-700 dark:text-red-800";
34
+ buttonClass =
35
+ "ml-auto -mx-1.5 -my-1.5 bg-red-100 text-red-500 rounded-lg focus:ring-2 focus:ring-red-400 p-1.5 hover:bg-red-200 inline-flex h-8 w-8 dark:bg-red-200 dark:text-red-600 dark:hover:bg-red-300";
36
+ } else if (color === "yellow") {
37
+ divClass = "flex p-4 mb-4 bg-yellow-100 rounded-lg dark:bg-yellow-200";
38
+ svgClass = "flex-shrink-0 w-5 h-5 text-yellow-700 dark:text-yellow-800";
39
+ slotClass = "ml-3 text-sm font-medium text-yellow-700 dark:text-yellow-800";
40
+ buttonClass =
41
+ "ml-auto -mx-1.5 -my-1.5 bg-yellow-100 text-yellow-500 rounded-lg focus:ring-2 focus:ring-yellow-400 p-1.5 hover:bg-yellow-200 inline-flex h-8 w-8 dark:bg-yellow-200 dark:text-yellow-600 dark:hover:bg-yellow-300";
42
+ } else if (color === "green") {
43
+ divClass = "flex p-4 mb-4 bg-green-100 rounded-lg dark:bg-green-200";
44
+ svgClass = "flex-shrink-0 w-5 h-5 text-green-700 dark:text-green-800";
45
+ slotClass = "ml-3 text-sm font-medium text-green-700 dark:text-green-800";
46
+ buttonClass =
47
+ "ml-auto -mx-1.5 -my-1.5 bg-green-100 text-green-500 rounded-lg focus:ring-2 focus:ring-green-400 p-1.5 hover:bg-green-200 inline-flex h-8 w-8 dark:bg-green-200 dark:text-green-600 dark:hover:bg-green-300";
48
+ } else if (color === "indigo") {
49
+ divClass = "flex p-4 mb-4 bg-indigo-100 rounded-lg dark:bg-indigo-200";
50
+ svgClass = "flex-shrink-0 w-5 h-5 text-indigo-700 dark:text-indigo-800";
51
+ slotClass = "ml-3 text-sm font-medium text-indigo-700 dark:text-indigo-800";
52
+ buttonClass =
53
+ "ml-auto -mx-1.5 -my-1.5 bg-indigo-100 text-indigo-500 rounded-lg focus:ring-2 focus:ring-indigo-400 p-1.5 hover:bg-indigo-200 inline-flex h-8 w-8 dark:bg-indigo-200 dark:text-indigo-600 dark:hover:bg-indigo-300";
54
+ } else if (color === "purple") {
55
+ divClass = "flex p-4 mb-4 bg-purple-100 rounded-lg dark:bg-purple-200";
56
+ svgClass = "flex-shrink-0 w-5 h-5 text-purple-700 dark:text-purple-800";
57
+ slotClass = "ml-3 text-sm font-medium text-purple-700 dark:text-purple-800";
58
+ buttonClass =
59
+ "ml-auto -mx-1.5 -my-1.5 bg-purple-100 text-purple-500 rounded-lg focus:ring-2 focus:ring-purple-400 p-1.5 hover:bg-purple-200 inline-flex h-8 w-8 dark:bg-purple-200 dark:text-purple-600 dark:hover:bg-purple-300";
60
+ } else if (color === "pink") {
61
+ divClass = "flex p-4 mb-4 bg-pink-100 rounded-lg dark:bg-pink-200";
62
+ svgClass = "flex-shrink-0 w-5 h-5 text-pink-700 dark:text-pink-800";
63
+ slotClass = "ml-3 text-sm font-medium text-pink-700 dark:text-pink-800";
64
+ buttonClass =
65
+ "ml-auto -mx-1.5 -my-1.5 bg-pink-100 text-pink-500 rounded-lg focus:ring-2 focus:ring-pink-400 p-1.5 hover:bg-pink-200 inline-flex h-8 w-8 dark:bg-pink-200 dark:text-pink-600 dark:hover:bg-pink-300";
66
+ } else {
67
+ divClass = "flex p-4 mb-4 bg-blue-100 rounded-lg dark:bg-blue-200";
68
+ svgClass = "flex-shrink-0 w-5 h-5 text-blue-700 dark:text-blue-800";
69
+ slotClass = "ml-3 text-sm font-medium text-blue-700 dark:text-blue-800";
70
+ buttonClass =
71
+ "ml-auto -mx-1.5 -my-1.5 bg-gray-100 text-gray-500 rounded-lg focus:ring-2 focus:ring-gray-400 p-1.5 hover:bg-gray-200 inline-flex h-8 w-8 dark:bg-gray-200 dark:text-gray-600 dark:hover:bg-gray-300";
72
+ }
73
+ </script>
74
+
75
+ <div id={alertId} class:hidden class={divClass} role="alert">
76
+ <svg
77
+ class={svgClass}
78
+ fill="currentColor"
79
+ viewBox="0 0 20 20"
80
+ xmlns="http://www.w3.org/2000/svg"
81
+ ><path
82
+ fill-rule="evenodd"
83
+ d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
84
+ clip-rule="evenodd"
85
+ /></svg
86
+ >
87
+ <div class={slotClass}>
88
+ <slot />
89
+ </div>
90
+ {#if closeBtn}
91
+ <button
92
+ on:click={handleHide}
93
+ type="button"
94
+ class={buttonClass}
95
+ aria-label="Close"
96
+ >
97
+ <span class="sr-only">Close</span>
98
+ <svg
99
+ class="w-5 h-5"
100
+ fill="currentColor"
101
+ viewBox="0 0 20 20"
102
+ xmlns="http://www.w3.org/2000/svg"
103
+ ><path
104
+ fill-rule="evenodd"
105
+ 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"
106
+ clip-rule="evenodd"
107
+ /></svg
108
+ >
109
+ </button>
110
+ {/if}
111
+ </div>
@@ -0,0 +1,31 @@
1
+ /** @typedef {typeof __propDef.props} AlertProps */
2
+ /** @typedef {typeof __propDef.events} AlertEvents */
3
+ /** @typedef {typeof __propDef.slots} AlertSlots */
4
+ export default class Alert extends SvelteComponentTyped<{
5
+ color?: string;
6
+ alertId?: string;
7
+ closeBtn?: boolean;
8
+ }, {
9
+ [evt: string]: CustomEvent<any>;
10
+ }, {
11
+ default: {};
12
+ }> {
13
+ }
14
+ export type AlertProps = typeof __propDef.props;
15
+ export type AlertEvents = typeof __propDef.events;
16
+ export type AlertSlots = typeof __propDef.slots;
17
+ import { SvelteComponentTyped } from "svelte";
18
+ declare const __propDef: {
19
+ props: {
20
+ color?: string;
21
+ alertId?: string;
22
+ closeBtn?: boolean;
23
+ };
24
+ events: {
25
+ [evt: string]: CustomEvent<any>;
26
+ };
27
+ slots: {
28
+ default: {};
29
+ };
30
+ };
31
+ export {};
@@ -0,0 +1,118 @@
1
+ <script>
2
+ // use blue (default), red, green, yellow, and gray
3
+ export let color = "blue";
4
+ export let alertId = "alert-border-1";
5
+ export let closeBtn = false;
6
+ let hidden = false;
7
+ const handleHide = () => {
8
+ hidden = !hidden;
9
+ };
10
+
11
+ let divClass;
12
+ let svgClass;
13
+ let slotClass;
14
+ let buttonClass;
15
+
16
+ if (color === "blue") {
17
+ divClass =
18
+ "flex p-4 mb-4 bg-blue-100 border-t-4 border-blue-500 dark:bg-blue-200";
19
+ svgClass = "flex-shrink-0 w-5 h-5 text-blue-700";
20
+ slotClass = "ml-3 text-sm font-medium text-blue-700";
21
+ buttonClass =
22
+ "ml-auto -mx-1.5 -my-1.5 bg-blue-100 text-blue-500 rounded-lg focus:ring-2 focus:ring-blue-400 p-1.5 hover:bg-blue-200 inline-flex h-8 w-8 dark:bg-blue-200 dark:text-blue-600 dark:hover:bg-blue-300";
23
+ } else if (color === "gray") {
24
+ divClass =
25
+ "flex p-4 mb-4 bg-gray-100 border-t-4 border-gray-500 dark:bg-gray-200";
26
+ svgClass = "flex-shrink-0 w-5 h-5 text-gray-700";
27
+ slotClass = "ml-3 text-sm font-medium text-gray-700";
28
+ buttonClass =
29
+ "ml-auto -mx-1.5 -my-1.5 bg-gray-100 text-gray-500 rounded-lg focus:ring-2 focus:ring-gray-400 p-1.5 hover:bg-gray-200 inline-flex h-8 w-8 dark:bg-gray-200 dark:text-gray-600 dark:hover:bg-gray-300";
30
+ } else if (color === "red") {
31
+ divClass =
32
+ "flex p-4 mb-4 bg-red-100 border-t-4 border-red-500 dark:bg-red-200";
33
+ svgClass = "flex-shrink-0 w-5 h-5 text-red-700";
34
+ slotClass = "ml-3 text-sm font-medium text-red-700";
35
+ buttonClass =
36
+ "ml-auto -mx-1.5 -my-1.5 bg-red-100 text-red-500 rounded-lg focus:ring-2 focus:ring-red-400 p-1.5 hover:bg-red-200 inline-flex h-8 w-8 dark:bg-red-200 dark:text-red-600 dark:hover:bg-red-300";
37
+ } else if (color === "yellow") {
38
+ divClass =
39
+ "flex p-4 mb-4 bg-yellow-100 border-t-4 border-yellow-500 dark:bg-yellow-200";
40
+ svgClass = "flex-shrink-0 w-5 h-5 text-yellow-700";
41
+ slotClass = "ml-3 text-sm font-medium text-yellow-700";
42
+ buttonClass =
43
+ "ml-auto -mx-1.5 -my-1.5 bg-yellow-100 text-yellow-500 rounded-lg focus:ring-2 focus:ring-yellow-400 p-1.5 hover:bg-yellow-200 inline-flex h-8 w-8 dark:bg-yellow-200 dark:text-yellow-600 dark:hover:bg-yellow-300";
44
+ } else if (color === "green") {
45
+ divClass =
46
+ "flex p-4 mb-4 bg-green-100 border-t-4 border-green-500 dark:bg-green-200";
47
+ svgClass = "flex-shrink-0 w-5 h-5 text-green-700";
48
+ slotClass = "ml-3 text-sm font-medium text-green-700";
49
+ buttonClass =
50
+ "ml-auto -mx-1.5 -my-1.5 bg-green-100 text-green-500 rounded-lg focus:ring-2 focus:ring-green-400 p-1.5 hover:bg-green-200 inline-flex h-8 w-8 dark:bg-green-200 dark:text-green-600 dark:hover:bg-green-300";
51
+ } else if (color === "indigo") {
52
+ divClass =
53
+ "flex p-4 mb-4 bg-indigo-100 border-t-4 border-indigo-500 dark:bg-indigo-200";
54
+ svgClass = "flex-shrink-0 w-5 h-5 text-indigo-700";
55
+ slotClass = "ml-3 text-sm font-medium text-indigo-700";
56
+ buttonClass =
57
+ "ml-auto -mx-1.5 -my-1.5 bg-indigo-100 text-indigo-500 rounded-lg focus:ring-2 focus:ring-indigo-400 p-1.5 hover:bg-indigo-200 inline-flex h-8 w-8 dark:bg-indigo-200 dark:text-indigo-600 dark:hover:bg-indigo-300";
58
+ } else if (color === "purple") {
59
+ divClass =
60
+ "flex p-4 mb-4 bg-purple-100 border-t-4 border-purple-500 dark:bg-purple-200";
61
+ svgClass = "flex-shrink-0 w-5 h-5 text-purple-700";
62
+ slotClass = "ml-3 text-sm font-medium text-purple-700";
63
+ buttonClass =
64
+ "ml-auto -mx-1.5 -my-1.5 bg-purple-100 text-purple-500 rounded-lg focus:ring-2 focus:ring-purple-400 p-1.5 hover:bg-purple-200 inline-flex h-8 w-8 dark:bg-purple-200 dark:text-purple-600 dark:hover:bg-purple-300";
65
+ } else if (color === "pink") {
66
+ divClass =
67
+ "flex p-4 mb-4 bg-pink-100 border-t-4 border-pink-500 dark:bg-pink-200";
68
+ svgClass = "flex-shrink-0 w-5 h-5 text-pink-700";
69
+ slotClass = "ml-3 text-sm font-medium text-pink-700";
70
+ buttonClass =
71
+ "ml-auto -mx-1.5 -my-1.5 bg-pink-100 text-pink-500 rounded-lg focus:ring-2 focus:ring-pink-400 p-1.5 hover:bg-pink-200 inline-flex h-8 w-8 dark:bg-pink-200 dark:text-pink-600 dark:hover:bg-pink-300";
72
+ } else {
73
+ divClass =
74
+ "flex p-4 mb-4 bg-blue-100 border-t-4 border-blue-500 dark:bg-blue-200";
75
+ svgClass = "flex-shrink-0 w-5 h-5 text-blue-700";
76
+ slotClass = "ml-3 text-sm font-medium text-blue-700";
77
+ buttonClass =
78
+ "ml-auto -mx-1.5 -my-1.5 bg-gray-100 text-gray-500 rounded-lg focus:ring-2 focus:ring-gray-400 p-1.5 hover:bg-gray-200 inline-flex h-8 w-8 dark:bg-gray-200 dark:text-gray-600 dark:hover:bg-gray-300";
79
+ }
80
+ </script>
81
+
82
+ <div id={alertId} class:hidden class={divClass} role="alert">
83
+ <svg
84
+ class={svgClass}
85
+ fill="currentColor"
86
+ viewBox="0 0 20 20"
87
+ xmlns="http://www.w3.org/2000/svg"
88
+ ><path
89
+ fill-rule="evenodd"
90
+ d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
91
+ clip-rule="evenodd"
92
+ /></svg
93
+ >
94
+ <div class={slotClass}>
95
+ <slot />
96
+ </div>
97
+ {#if closeBtn}
98
+ <button
99
+ on:click={handleHide}
100
+ type="button"
101
+ class={buttonClass}
102
+ aria-label="Close"
103
+ >
104
+ <span class="sr-only">Dismiss</span>
105
+ <svg
106
+ class="w-5 h-5"
107
+ fill="currentColor"
108
+ viewBox="0 0 20 20"
109
+ xmlns="http://www.w3.org/2000/svg"
110
+ ><path
111
+ fill-rule="evenodd"
112
+ 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"
113
+ clip-rule="evenodd"
114
+ /></svg
115
+ >
116
+ </button>
117
+ {/if}
118
+ </div>
@@ -0,0 +1,31 @@
1
+ /** @typedef {typeof __propDef.props} BorderAlertProps */
2
+ /** @typedef {typeof __propDef.events} BorderAlertEvents */
3
+ /** @typedef {typeof __propDef.slots} BorderAlertSlots */
4
+ export default class BorderAlert extends SvelteComponentTyped<{
5
+ color?: string;
6
+ alertId?: string;
7
+ closeBtn?: boolean;
8
+ }, {
9
+ [evt: string]: CustomEvent<any>;
10
+ }, {
11
+ default: {};
12
+ }> {
13
+ }
14
+ export type BorderAlertProps = typeof __propDef.props;
15
+ export type BorderAlertEvents = typeof __propDef.events;
16
+ export type BorderAlertSlots = typeof __propDef.slots;
17
+ import { SvelteComponentTyped } from "svelte";
18
+ declare const __propDef: {
19
+ props: {
20
+ color?: string;
21
+ alertId?: string;
22
+ closeBtn?: boolean;
23
+ };
24
+ events: {
25
+ [evt: string]: CustomEvent<any>;
26
+ };
27
+ slots: {
28
+ default: {};
29
+ };
30
+ };
31
+ export {};
@@ -0,0 +1,125 @@
1
+ <script>
2
+ // use blue (default), red, green, yellow, and gray
3
+ export let color = "blue";
4
+ export let alertId = "alert-additional-content-1";
5
+ export let infoLink = false;
6
+ export let closeBtn = false;
7
+ let hidden = false;
8
+ const handleHide = () => {
9
+ hidden = !hidden;
10
+ };
11
+
12
+ let divClass;
13
+ let svgClass;
14
+ let slotClass;
15
+ let buttonClass;
16
+
17
+ if (color === "blue") {
18
+ divClass = "p-4 mb-4 bg-blue-100 rounded-lg dark:bg-blue-200";
19
+ svgClass = "mr-2 w-5 h-5 text-blue-700 dark:text-blue-800";
20
+ slotClass = "mt-2 mb-4 text-sm text-blue-700 dark:text-blue-800";
21
+ buttonClass =
22
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-blue-800 dark:hover:bg-blue-900";
23
+ } else if (color === "gray") {
24
+ divClass = "p-4 mb-4 bg-gray-100 rounded-lg dark:bg-gray-200";
25
+ svgClass = "mr-2 w-5 h-5 text-gray-700 dark:text-gray-800";
26
+ slotClass = "mt-2 mb-4 text-sm text-gray-700 dark:text-gray-800";
27
+ buttonClass =
28
+ "text-white bg-gray-700 hover:bg-gray-800 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-gray-800 dark:hover:bg-gray-900";
29
+ } else if (color === "red") {
30
+ divClass = "p-4 mb-4 bg-red-100 rounded-lg dark:bg-red-200";
31
+ svgClass = "mr-2 w-5 h-5 text-red-700 dark:text-red-800";
32
+ slotClass = "mt-2 mb-4 text-sm text-red-700 dark:text-red-800";
33
+ buttonClass =
34
+ "text-white bg-red-700 hover:bg-red-800 focus:ring-4 focus:ring-red-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-red-800 dark:hover:bg-red-900";
35
+ } else if (color === "yellow") {
36
+ divClass = "p-4 mb-4 bg-yellow-100 rounded-lg dark:bg-yellow-200";
37
+ svgClass = "mr-2 w-5 h-5 text-yellow-700 dark:text-yellow-800";
38
+ slotClass = "mt-2 mb-4 text-sm text-yellow-700 dark:text-yellow-800";
39
+ buttonClass =
40
+ "text-white bg-yellow-700 hover:bg-yellow-800 focus:ring-4 focus:ring-yellow-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-yellow-800 dark:hover:bg-yellow-900";
41
+ } else if (color === "green") {
42
+ divClass = "p-4 mb-4 bg-green-100 rounded-lg dark:bg-green-200";
43
+ svgClass = "mr-2 w-5 h-5 text-green-700 dark:text-green-800";
44
+ slotClass = "mt-2 mb-4 text-sm text-green-700 dark:text-green-800";
45
+ buttonClass =
46
+ "text-white bg-green-700 hover:bg-green-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-green-800 dark:hover:bg-green-900";
47
+ } else if (color === "indigo") {
48
+ divClass = "p-4 mb-4 bg-indigo-100 rounded-lg dark:bg-indigo-200";
49
+ svgClass = "mr-2 w-5 h-5 text-indigo-700 dark:text-indigo-800";
50
+ slotClass = "mt-2 mb-4 text-sm text-indigo-700 dark:text-indigo-800";
51
+ buttonClass =
52
+ "text-white bg-indigo-700 hover:bg-indigo-800 focus:ring-4 focus:ring-indigo-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-indigo-800 dark:hover:bg-indigo-900";
53
+ } else if (color === "purple") {
54
+ divClass = "p-4 mb-4 bg-purple-100 rounded-lg dark:bg-purple-200";
55
+ svgClass = "mr-2 w-5 h-5 text-purple-700 dark:text-purple-800";
56
+ slotClass = "mt-2 mb-4 text-sm text-purple-700 dark:text-purple-800";
57
+ buttonClass =
58
+ "text-white bg-purple-700 hover:bg-purple-800 focus:ring-4 focus:ring-purple-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-purple-800 dark:hover:bg-purple-900";
59
+ } else if (color === "pink") {
60
+ divClass = "p-4 mb-4 bg-pink-100 rounded-lg dark:bg-pink-200";
61
+ svgClass = "mr-2 w-5 h-5 text-pink-700 dark:text-pink-800";
62
+ slotClass = "mt-2 mb-4 text-sm text-pink-700 dark:text-pink-800";
63
+ buttonClass =
64
+ "text-white bg-pink-700 hover:bg-pink-800 focus:ring-4 focus:ring-pink-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-pink-800 dark:hover:bg-pink-900";
65
+ } else {
66
+ divClass = "p-4 mb-4 bg-blue-100 rounded-lg dark:bg-blue-200";
67
+ svgClass = "mr-2 w-5 h-5 text-blue-700 dark:text-blue-800";
68
+ slotClass = "mt-2 mb-4 text-sm text-blue-700 dark:text-blue-800";
69
+ buttonClass =
70
+ "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-blue-800 dark:hover:bg-blue-900";
71
+ }
72
+ </script>
73
+
74
+ <div id={alertId} class:hidden class={divClass} role="alert">
75
+ <div class="flex items-center">
76
+ <svg
77
+ class={svgClass}
78
+ fill="currentColor"
79
+ viewBox="0 0 20 20"
80
+ xmlns="http://www.w3.org/2000/svg"
81
+ ><path
82
+ fill-rule="evenodd"
83
+ d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
84
+ clip-rule="evenodd"
85
+ /></svg
86
+ >
87
+ <h3 class="text-lg font-medium text-{color}-700 dark:text-{color}-800">
88
+ <slot name="header">No header was provided</slot>
89
+ </h3>
90
+ </div>
91
+ <div class={slotClass}>
92
+ <slot>No content was provided.</slot>
93
+ </div>
94
+ <div class="flex">
95
+ {#if infoLink}
96
+ <button
97
+ type="button"
98
+ class="text-white bg-{color}-700 hover:bg-{color}-800 focus:ring-4 focus:ring-{color}-300 font-medium rounded-lg text-xs px-3 py-1.5 mr-2 text-center inline-flex items-center dark:bg-{color}-800 dark:hover:bg-{color}-900"
99
+ >
100
+ <svg
101
+ class="-ml-0.5 mr-2 h-4 w-4"
102
+ fill="currentColor"
103
+ viewBox="0 0 20 20"
104
+ xmlns="http://www.w3.org/2000/svg"
105
+ ><path d="M10 12a2 2 0 100-4 2 2 0 000 4z" /><path
106
+ fill-rule="evenodd"
107
+ d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z"
108
+ clip-rule="evenodd"
109
+ /></svg
110
+ >
111
+ <a href={infoLink} rel="external">View more</a>
112
+ </button>
113
+ {/if}
114
+ {#if closeBtn}
115
+ <button
116
+ on:click={handleHide}
117
+ type="button"
118
+ class="text-{color}-700 bg-transparent border border-{color}-700 hover:bg-{color}-800 hover:text-white focus:ring-4 focus:ring-{color}-300 font-medium rounded-lg text-xs px-3 py-1.5 text-center dark:border-{color}-800 dark:text-{color}-800 dark:hover:text-white"
119
+ aria-label="Close"
120
+ >
121
+ Dismiss
122
+ </button>
123
+ {/if}
124
+ </div>
125
+ </div>
@@ -0,0 +1,35 @@
1
+ /** @typedef {typeof __propDef.props} InfoAlertProps */
2
+ /** @typedef {typeof __propDef.events} InfoAlertEvents */
3
+ /** @typedef {typeof __propDef.slots} InfoAlertSlots */
4
+ export default class InfoAlert extends SvelteComponentTyped<{
5
+ color?: string;
6
+ alertId?: string;
7
+ closeBtn?: boolean;
8
+ infoLink?: boolean;
9
+ }, {
10
+ [evt: string]: CustomEvent<any>;
11
+ }, {
12
+ header: {};
13
+ default: {};
14
+ }> {
15
+ }
16
+ export type InfoAlertProps = typeof __propDef.props;
17
+ export type InfoAlertEvents = typeof __propDef.events;
18
+ export type InfoAlertSlots = typeof __propDef.slots;
19
+ import { SvelteComponentTyped } from "svelte";
20
+ declare const __propDef: {
21
+ props: {
22
+ color?: string;
23
+ alertId?: string;
24
+ closeBtn?: boolean;
25
+ infoLink?: boolean;
26
+ };
27
+ events: {
28
+ [evt: string]: CustomEvent<any>;
29
+ };
30
+ slots: {
31
+ header: {};
32
+ default: {};
33
+ };
34
+ };
35
+ export {};
@@ -0,0 +1,28 @@
1
+ <script>
2
+ export let textSize = "text-xs"; // text-sm
3
+ export let name = "Read more";
4
+ export let color = "blue";
5
+
6
+ let badgeClass;
7
+ if (color === "blue") {
8
+ badgeClass = `bg-blue-100 text-blue-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-blue-200 dark:text-blue-800`;
9
+ } else if (color === "gray") {
10
+ badgeClass = `bg-gray-100 text-gray-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-gray-700 dark:text-gray-300`;
11
+ } else if (color === "red") {
12
+ badgeClass = `bg-red-100 text-red-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-red-200 dark:text-red-900`;
13
+ } else if (color === "green") {
14
+ badgeClass = `bg-green-100 text-green-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-green-200 dark:text-green-900`;
15
+ } else if (color === "yellow") {
16
+ badgeClass = `bg-yellow-100 text-yellow-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-yellow-200 dark:text-yellow-900`;
17
+ } else if (color === "indigo") {
18
+ badgeClass = `bg-indigo-100 text-indigo-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-indigo-200 dark:text-indigo-900`;
19
+ } else if (color === "purple") {
20
+ badgeClass = `bg-purple-100 text-purple-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-purple-200 dark:text-purple-900`;
21
+ } else if (color === "pink") {
22
+ badgeClass = `bg-pink-100 text-pink-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-pink-200 dark:text-pink-900`;
23
+ } else {
24
+ badgeClass = `bg-blue-100 text-blue-800 ${textSize} font-semibold mr-2 px-2.5 py-0.5 rounded dark:bg-blue-200 dark:text-blue-800`;
25
+ }
26
+ </script>
27
+
28
+ <span class={badgeClass}>{name}</span>