@getmicdrop/svelte-components 5.3.15 → 5.4.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 (225) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  3. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  6. package/dist/calendar/PublicCard/PublicCard.svelte +145 -145
  7. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  8. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  9. package/dist/components/Layout/Grid.svelte +109 -109
  10. package/dist/components/Layout/Section.svelte +80 -80
  11. package/dist/components/Layout/Sidebar.svelte +108 -108
  12. package/dist/components/Layout/Stack.svelte +90 -90
  13. package/dist/constants/validation.js +91 -91
  14. package/dist/constants/validation.spec.js +64 -64
  15. package/dist/datetime/constants.d.ts +7 -0
  16. package/dist/datetime/constants.d.ts.map +1 -1
  17. package/dist/datetime/constants.js +26 -0
  18. package/dist/datetime/index.d.ts +3 -2
  19. package/dist/datetime/index.d.ts.map +1 -1
  20. package/dist/datetime/index.js +2 -2
  21. package/dist/datetime/timezone.d.ts +72 -0
  22. package/dist/datetime/timezone.d.ts.map +1 -1
  23. package/dist/datetime/timezone.js +138 -0
  24. package/dist/forms/createFieldTracker.svelte.d.ts.map +1 -1
  25. package/dist/forms/createFieldTracker.svelte.js +3 -6
  26. package/dist/index.js +223 -223
  27. package/dist/patterns/data/DataGrid.svelte +45 -45
  28. package/dist/patterns/data/DataList.svelte +24 -24
  29. package/dist/patterns/data/DataTable.svelte +40 -40
  30. package/dist/patterns/forms/FormActions.spec.js +88 -88
  31. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  32. package/dist/patterns/forms/FormActions.svelte +46 -46
  33. package/dist/patterns/forms/FormGrid.svelte +33 -33
  34. package/dist/patterns/forms/FormSection.svelte +32 -32
  35. package/dist/patterns/forms/FormValidationSummary.spec.js +203 -203
  36. package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
  37. package/dist/patterns/forms/FormValidationSummary.svelte +67 -67
  38. package/dist/patterns/layout/Grid.svelte +35 -35
  39. package/dist/patterns/layout/Sidebar.svelte +39 -39
  40. package/dist/patterns/layout/Stack.svelte +45 -45
  41. package/dist/patterns/navigation/BottomNav.spec.js +130 -130
  42. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  43. package/dist/patterns/navigation/BottomNav.svelte +54 -54
  44. package/dist/patterns/navigation/Header.spec.js +203 -203
  45. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  46. package/dist/patterns/navigation/Header.svelte +240 -240
  47. package/dist/patterns/page/PageHeader.svelte +36 -36
  48. package/dist/patterns/page/PageLayout.svelte +40 -40
  49. package/dist/patterns/page/PageLoader.spec.js +54 -54
  50. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  51. package/dist/patterns/page/PageLoader.svelte +41 -41
  52. package/dist/patterns/page/SectionHeader.svelte +41 -41
  53. package/dist/presets/badges.js +112 -112
  54. package/dist/presets/buttons.js +76 -76
  55. package/dist/presets/index.js +9 -9
  56. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  57. package/dist/primitives/Accordion/Accordion.svelte +61 -61
  58. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  59. package/dist/primitives/Alert/Alert.spec.js +170 -170
  60. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  61. package/dist/primitives/Alert/Alert.svelte +65 -65
  62. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  63. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  64. package/dist/primitives/Badges/Badge.spec.js +103 -103
  65. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  66. package/dist/primitives/Badges/Badge.svelte +142 -142
  67. package/dist/primitives/BottomSheet/BottomSheet.spec.js +127 -127
  68. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  69. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  70. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +120 -120
  71. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  72. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +89 -89
  73. package/dist/primitives/Button/Button.spec.js +211 -211
  74. package/dist/primitives/Button/Button.stories.svelte +76 -76
  75. package/dist/primitives/Button/Button.svelte +301 -301
  76. package/dist/primitives/Button/ButtonSaveDemo.spec.js +48 -48
  77. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  78. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  79. package/dist/primitives/Card.spec.js +49 -49
  80. package/dist/primitives/Card.stories.svelte +22 -22
  81. package/dist/primitives/Card.svelte +28 -28
  82. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  83. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  84. package/dist/primitives/DarkModeToggle.spec.js +357 -357
  85. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  86. package/dist/primitives/DarkModeToggle.svelte +136 -136
  87. package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
  88. package/dist/primitives/Drawer/Drawer.svelte +214 -214
  89. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  90. package/dist/primitives/Dropdown/Dropdown.svelte +148 -148
  91. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  92. package/dist/primitives/Icons/ArrowLeft.svelte +20 -20
  93. package/dist/primitives/Icons/ArrowRight.svelte +20 -20
  94. package/dist/primitives/Icons/Availability.svelte +26 -26
  95. package/dist/primitives/Icons/Back.svelte +26 -26
  96. package/dist/primitives/Icons/CheckCircle.svelte +18 -18
  97. package/dist/primitives/Icons/CheckCircleOutline.svelte +27 -27
  98. package/dist/primitives/Icons/ChevronLeft.svelte +16 -16
  99. package/dist/primitives/Icons/ChevronRight.svelte +16 -16
  100. package/dist/primitives/Icons/Copy.svelte +27 -27
  101. package/dist/primitives/Icons/Cross.svelte +17 -17
  102. package/dist/primitives/Icons/DownArrow.svelte +20 -20
  103. package/dist/primitives/Icons/ErrorCircle.svelte +18 -18
  104. package/dist/primitives/Icons/FacebookIcon.svelte +13 -13
  105. package/dist/primitives/Icons/Home.svelte +27 -27
  106. package/dist/primitives/Icons/Icon.spec.js +175 -175
  107. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  108. package/dist/primitives/Icons/Icon.svelte +63 -63
  109. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  110. package/dist/primitives/Icons/ImageOutline.svelte +19 -19
  111. package/dist/primitives/Icons/Info.svelte +19 -19
  112. package/dist/primitives/Icons/InstagramIcon.svelte +19 -19
  113. package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
  114. package/dist/primitives/Icons/Message.svelte +27 -27
  115. package/dist/primitives/Icons/MoonIcon.svelte +16 -16
  116. package/dist/primitives/Icons/More.svelte +33 -33
  117. package/dist/primitives/Icons/MoreHori.spec.js +67 -67
  118. package/dist/primitives/Icons/MoreHori.svelte +34 -34
  119. package/dist/primitives/Icons/Notification.svelte +26 -26
  120. package/dist/primitives/Icons/Payment.svelte +26 -26
  121. package/dist/primitives/Icons/Profile.svelte +33 -33
  122. package/dist/primitives/Icons/Reload.svelte +41 -41
  123. package/dist/primitives/Icons/Shows.svelte +33 -33
  124. package/dist/primitives/Icons/Signout.svelte +33 -33
  125. package/dist/primitives/Icons/SunIcon.svelte +19 -19
  126. package/dist/primitives/Icons/TiktokIcon.svelte +13 -13
  127. package/dist/primitives/Icons/TrashBinOutline.svelte +19 -19
  128. package/dist/primitives/Icons/TwitterIcon.svelte +13 -13
  129. package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
  130. package/dist/primitives/Icons/WarningIcon.svelte +24 -24
  131. package/dist/primitives/Input/Input.spec.js +573 -573
  132. package/dist/primitives/Input/Input.stories.svelte +139 -139
  133. package/dist/primitives/Input/Input.svelte +444 -444
  134. package/dist/primitives/Input/Select.spec.js +218 -218
  135. package/dist/primitives/Input/Select.stories.svelte +112 -112
  136. package/dist/primitives/Input/Select.svelte +232 -232
  137. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  138. package/dist/primitives/Input/Textarea.svelte +79 -79
  139. package/dist/primitives/Label/Label.svelte +37 -37
  140. package/dist/primitives/Modal/Modal.spec.js +95 -95
  141. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  142. package/dist/primitives/Modal/Modal.svelte +158 -158
  143. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  144. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  145. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  146. package/dist/primitives/Radio/Radio.svelte +67 -67
  147. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  148. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  149. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  150. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  151. package/dist/primitives/Skeleton/Skeleton.svelte +52 -52
  152. package/dist/primitives/Spinner/Spinner.spec.js +75 -75
  153. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  154. package/dist/primitives/Spinner/Spinner.svelte +57 -57
  155. package/dist/primitives/Tabs/TabItem.svelte +51 -51
  156. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  157. package/dist/primitives/Tabs/Tabs.svelte +128 -128
  158. package/dist/primitives/Toggle.spec.js +127 -127
  159. package/dist/primitives/Toggle.stories.svelte +92 -92
  160. package/dist/primitives/Toggle.svelte +71 -71
  161. package/dist/primitives/Typography/Typography.svelte +53 -53
  162. package/dist/primitives/ValidationError.spec.js +103 -103
  163. package/dist/primitives/ValidationError.stories.svelte +111 -111
  164. package/dist/primitives/ValidationError.svelte +29 -29
  165. package/dist/recipes/CropImage/CropImage.spec.js +216 -216
  166. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  167. package/dist/recipes/CropImage/CropImage.svelte +238 -238
  168. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  169. package/dist/recipes/ImageUploader/ImageUploader.svelte +980 -980
  170. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  171. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +47 -47
  172. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  173. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +112 -112
  174. package/dist/recipes/feedback/ErrorDisplay.svelte +38 -38
  175. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +129 -129
  176. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +167 -167
  177. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  178. package/dist/recipes/fields/FormField.svelte +58 -58
  179. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  180. package/dist/recipes/fields/SelectField.svelte +82 -82
  181. package/dist/recipes/fields/TextareaField.svelte +101 -101
  182. package/dist/recipes/fields/ToggleField.svelte +60 -60
  183. package/dist/recipes/fields/index.js +7 -7
  184. package/dist/recipes/inputs/MultiSelect.spec.js +257 -257
  185. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  186. package/dist/recipes/inputs/MultiSelect.svelte +244 -244
  187. package/dist/recipes/inputs/OTPInput.spec.js +238 -238
  188. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  189. package/dist/recipes/inputs/OTPInput.svelte +102 -102
  190. package/dist/recipes/inputs/PasswordInput.svelte +100 -100
  191. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.spec.js +173 -173
  192. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +108 -108
  193. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.spec.js +300 -300
  194. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +165 -165
  195. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +337 -337
  196. package/dist/recipes/inputs/Search.svelte +85 -85
  197. package/dist/recipes/inputs/SelectDropdown.svelte +161 -161
  198. package/dist/recipes/modals/AlertModal.svelte +130 -130
  199. package/dist/recipes/modals/ConfirmationModal.spec.js +191 -191
  200. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  201. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  202. package/dist/recipes/modals/InputModal.svelte +182 -182
  203. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  204. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  205. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  206. package/dist/recipes/modals/StatusModal.svelte +206 -206
  207. package/dist/services/EventService.js +75 -75
  208. package/dist/services/EventService.spec.js +217 -217
  209. package/dist/services/ShowService.spec.js +342 -342
  210. package/dist/stores/auth.js +36 -36
  211. package/dist/stores/auth.spec.js +139 -139
  212. package/dist/stores/toaster.js +13 -13
  213. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  214. package/dist/stories/ButtonAuditReview.svelte +427 -427
  215. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  216. package/dist/stories/PatternsGallery.svelte +388 -388
  217. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  218. package/dist/stories/PrimitivesGallery.svelte +752 -752
  219. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  220. package/dist/stories/RecipesGallery.svelte +441 -441
  221. package/dist/stories/button-audit-manifest.json +11186 -11186
  222. package/dist/tailwind/preset.cjs +82 -82
  223. package/dist/tokens/tokens.css +87 -87
  224. package/dist/utils/utils.js +354 -354
  225. package/package.json +274 -274
@@ -1,235 +1,235 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
-
4
- const { Story } = defineMeta({
5
- title: 'Components/Icons/Gallery',
6
- tags: ['autodocs'],
7
- });
8
-
9
- </script>
10
-
11
- <script>
12
- import ArrowLeft from './ArrowLeft.svelte';
13
- import ArrowRight from './ArrowRight.svelte';
14
- import Availability from './Availability.svelte';
15
- import Back from './Back.svelte';
16
- import CheckCircle from './CheckCircle.svelte';
17
- import CheckCircleOutline from './CheckCircleOutline.svelte';
18
- import ChevronLeft from './ChevronLeft.svelte';
19
- import ChevronRight from './ChevronRight.svelte';
20
- import Copy from './Copy.svelte';
21
- import Cross from './Cross.svelte';
22
- import DownArrow from './DownArrow.svelte';
23
- import ErrorCircle from './ErrorCircle.svelte';
24
- import FacebookIcon from './FacebookIcon.svelte';
25
- import Home from './Home.svelte';
26
- import Icon from './Icon.svelte';
27
- import Info from './Info.svelte';
28
- import InstagramIcon from './InstagramIcon.svelte';
29
- import Message from './Message.svelte';
30
- import MoonIcon from './MoonIcon.svelte';
31
- import More from './More.svelte';
32
- import MoreHori from './MoreHori.svelte';
33
- import Notification from './Notification.svelte';
34
- import Payment from './Payment.svelte';
35
- import Profile from './Profile.svelte';
36
- import Reload from './Reload.svelte';
37
- import Shows from './Shows.svelte';
38
- import Signout from './Signout.svelte';
39
- import SunIcon from './SunIcon.svelte';
40
- import TiktokIcon from './TiktokIcon.svelte';
41
- import TwitterIcon from './TwitterIcon.svelte';
42
- import WarningIcon from './WarningIcon.svelte';
43
-
44
- const icons = [
45
- { name: 'ArrowLeft', component: ArrowLeft },
46
- { name: 'ArrowRight', component: ArrowRight },
47
- { name: 'Availability', component: Availability },
48
- { name: 'Back', component: Back },
49
- { name: 'CheckCircle', component: CheckCircle },
50
- { name: 'CheckCircleOutline', component: CheckCircleOutline },
51
- { name: 'ChevronLeft', component: ChevronLeft },
52
- { name: 'ChevronRight', component: ChevronRight },
53
- { name: 'Copy', component: Copy },
54
- { name: 'Cross', component: Cross },
55
- { name: 'DownArrow', component: DownArrow },
56
- { name: 'ErrorCircle', component: ErrorCircle },
57
- { name: 'FacebookIcon', component: FacebookIcon },
58
- { name: 'Home', component: Home },
59
- { name: 'Info', component: Info },
60
- { name: 'InstagramIcon', component: InstagramIcon },
61
- { name: 'Message', component: Message },
62
- { name: 'MoonIcon', component: MoonIcon },
63
- { name: 'More', component: More },
64
- { name: 'MoreHori', component: MoreHori },
65
- { name: 'Notification', component: Notification },
66
- { name: 'Payment', component: Payment },
67
- { name: 'Profile', component: Profile },
68
- { name: 'Reload', component: Reload },
69
- { name: 'Shows', component: Shows },
70
- { name: 'Signout', component: Signout },
71
- { name: 'SunIcon', component: SunIcon },
72
- { name: 'TiktokIcon', component: TiktokIcon },
73
- { name: 'TwitterIcon', component: TwitterIcon },
74
- { name: 'WarningIcon', component: WarningIcon },
75
- ];
76
- </script>
77
-
78
- <Story name="All Icons">
79
- <div class="p-8">
80
- <h1 class="text-3xl font-bold mb-6">Icon Gallery</h1>
81
- <p class="text-gray-500 dark:text-gray-400 mb-8">All available icons in the component library</p>
82
-
83
- <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6">
84
- {#each icons as { name, component }}
85
- <div class="flex flex-col items-center p-4 border rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
86
- <div class="w-12 h-12 flex items-center justify-center mb-2">
87
- <svelte:component this={component} />
88
- </div>
89
- <span class="text-sm text-center text-gray-500 dark:text-gray-400 font-medium">{name}</span>
90
- </div>
91
- {/each}
92
- </div>
93
- </div>
94
- </Story>
95
-
96
- <Story name="Icon Sizes">
97
- <div class="p-8 space-y-8">
98
- <div>
99
- <h2 class="text-2xl font-bold mb-4">Navigation Icons</h2>
100
- <div class="flex gap-6 items-end">
101
- <div class="text-center">
102
- <div class="w-12 h-12 flex items-center justify-center mb-2">
103
- <Home />
104
- </div>
105
- <span class="text-xs text-gray-500 dark:text-gray-400">Home</span>
106
- </div>
107
- <div class="text-center">
108
- <div class="w-12 h-12 flex items-center justify-center mb-2">
109
- <Shows />
110
- </div>
111
- <span class="text-xs text-gray-500 dark:text-gray-400">Shows</span>
112
- </div>
113
- <div class="text-center">
114
- <div class="w-12 h-12 flex items-center justify-center mb-2">
115
- <Availability />
116
- </div>
117
- <span class="text-xs text-gray-500 dark:text-gray-400">Availability</span>
118
- </div>
119
- <div class="text-center">
120
- <div class="w-12 h-12 flex items-center justify-center mb-2">
121
- <Profile />
122
- </div>
123
- <span class="text-xs text-gray-500 dark:text-gray-400">Profile</span>
124
- </div>
125
- </div>
126
- </div>
127
-
128
- <div>
129
- <h2 class="text-2xl font-bold mb-4">Status Icons</h2>
130
- <div class="flex gap-6 items-end">
131
- <div class="text-center">
132
- <div class="w-12 h-12 flex items-center justify-center mb-2 text-green-600 dark:text-green-400">
133
- <CheckCircle />
134
- </div>
135
- <span class="text-xs text-gray-500 dark:text-gray-400">Success</span>
136
- </div>
137
- <div class="text-center">
138
- <div class="w-12 h-12 flex items-center justify-center mb-2 text-red-600 dark:text-red-400">
139
- <ErrorCircle />
140
- </div>
141
- <span class="text-xs text-gray-500 dark:text-gray-400">Error</span>
142
- </div>
143
- <div class="text-center">
144
- <div class="w-12 h-12 flex items-center justify-center mb-2 text-amber-500 dark:text-amber-400">
145
- <WarningIcon />
146
- </div>
147
- <span class="text-xs text-gray-500 dark:text-gray-400">Warning</span>
148
- </div>
149
- <div class="text-center">
150
- <div class="w-12 h-12 flex items-center justify-center mb-2 text-blue-500">
151
- <Info />
152
- </div>
153
- <span class="text-xs text-gray-500 dark:text-gray-400">Info</span>
154
- </div>
155
- </div>
156
- </div>
157
-
158
- <div>
159
- <h2 class="text-2xl font-bold mb-4">Social Media Icons</h2>
160
- <div class="flex gap-6 items-end">
161
- <div class="text-center">
162
- <div class="w-12 h-12 flex items-center justify-center mb-2">
163
- <FacebookIcon />
164
- </div>
165
- <span class="text-xs text-gray-500 dark:text-gray-400">Facebook</span>
166
- </div>
167
- <div class="text-center">
168
- <div class="w-12 h-12 flex items-center justify-center mb-2">
169
- <InstagramIcon />
170
- </div>
171
- <span class="text-xs text-gray-500 dark:text-gray-400">Instagram</span>
172
- </div>
173
- <div class="text-center">
174
- <div class="w-12 h-12 flex items-center justify-center mb-2">
175
- <TwitterIcon />
176
- </div>
177
- <span class="text-xs text-gray-500 dark:text-gray-400">Twitter</span>
178
- </div>
179
- <div class="text-center">
180
- <div class="w-12 h-12 flex items-center justify-center mb-2">
181
- <TiktokIcon />
182
- </div>
183
- <span class="text-xs text-gray-500 dark:text-gray-400">TikTok</span>
184
- </div>
185
- </div>
186
- </div>
187
-
188
- <div>
189
- <h2 class="text-2xl font-bold mb-4">Action Icons</h2>
190
- <div class="flex gap-6 items-end">
191
- <div class="text-center">
192
- <div class="w-12 h-12 flex items-center justify-center mb-2">
193
- <Copy />
194
- </div>
195
- <span class="text-xs text-gray-500 dark:text-gray-400">Copy</span>
196
- </div>
197
- <div class="text-center">
198
- <div class="w-12 h-12 flex items-center justify-center mb-2">
199
- <Reload />
200
- </div>
201
- <span class="text-xs text-gray-500 dark:text-gray-400">Reload</span>
202
- </div>
203
- <div class="text-center">
204
- <div class="w-12 h-12 flex items-center justify-center mb-2">
205
- <Cross />
206
- </div>
207
- <span class="text-xs text-gray-500 dark:text-gray-400">Close</span>
208
- </div>
209
- <div class="text-center">
210
- <div class="w-12 h-12 flex items-center justify-center mb-2">
211
- <More />
212
- </div>
213
- <span class="text-xs text-gray-500 dark:text-gray-400">More</span>
214
- </div>
215
- </div>
216
- </div>
217
- </div>
218
- </Story>
219
-
220
- <Story name="Dark Mode Icons">
221
- <div class="bg-gray-900 p-8">
222
- <h1 class="text-3xl font-bold mb-6 text-white">Icons in Dark Mode</h1>
223
-
224
- <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6">
225
- {#each icons.slice(0, 12) as { name, component }}
226
- <div class="flex flex-col items-center p-4 border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors">
227
- <div class="w-12 h-12 flex items-center justify-center mb-2 text-white">
228
- <svelte:component this={component} />
229
- </div>
230
- <span class="text-sm text-center text-gray-300 font-medium">{name}</span>
231
- </div>
232
- {/each}
233
- </div>
234
- </div>
235
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+
4
+ const { Story } = defineMeta({
5
+ title: 'Components/Icons/Gallery',
6
+ tags: ['autodocs'],
7
+ });
8
+
9
+ </script>
10
+
11
+ <script>
12
+ import ArrowLeft from './ArrowLeft.svelte';
13
+ import ArrowRight from './ArrowRight.svelte';
14
+ import Availability from './Availability.svelte';
15
+ import Back from './Back.svelte';
16
+ import CheckCircle from './CheckCircle.svelte';
17
+ import CheckCircleOutline from './CheckCircleOutline.svelte';
18
+ import ChevronLeft from './ChevronLeft.svelte';
19
+ import ChevronRight from './ChevronRight.svelte';
20
+ import Copy from './Copy.svelte';
21
+ import Cross from './Cross.svelte';
22
+ import DownArrow from './DownArrow.svelte';
23
+ import ErrorCircle from './ErrorCircle.svelte';
24
+ import FacebookIcon from './FacebookIcon.svelte';
25
+ import Home from './Home.svelte';
26
+ import Icon from './Icon.svelte';
27
+ import Info from './Info.svelte';
28
+ import InstagramIcon from './InstagramIcon.svelte';
29
+ import Message from './Message.svelte';
30
+ import MoonIcon from './MoonIcon.svelte';
31
+ import More from './More.svelte';
32
+ import MoreHori from './MoreHori.svelte';
33
+ import Notification from './Notification.svelte';
34
+ import Payment from './Payment.svelte';
35
+ import Profile from './Profile.svelte';
36
+ import Reload from './Reload.svelte';
37
+ import Shows from './Shows.svelte';
38
+ import Signout from './Signout.svelte';
39
+ import SunIcon from './SunIcon.svelte';
40
+ import TiktokIcon from './TiktokIcon.svelte';
41
+ import TwitterIcon from './TwitterIcon.svelte';
42
+ import WarningIcon from './WarningIcon.svelte';
43
+
44
+ const icons = [
45
+ { name: 'ArrowLeft', component: ArrowLeft },
46
+ { name: 'ArrowRight', component: ArrowRight },
47
+ { name: 'Availability', component: Availability },
48
+ { name: 'Back', component: Back },
49
+ { name: 'CheckCircle', component: CheckCircle },
50
+ { name: 'CheckCircleOutline', component: CheckCircleOutline },
51
+ { name: 'ChevronLeft', component: ChevronLeft },
52
+ { name: 'ChevronRight', component: ChevronRight },
53
+ { name: 'Copy', component: Copy },
54
+ { name: 'Cross', component: Cross },
55
+ { name: 'DownArrow', component: DownArrow },
56
+ { name: 'ErrorCircle', component: ErrorCircle },
57
+ { name: 'FacebookIcon', component: FacebookIcon },
58
+ { name: 'Home', component: Home },
59
+ { name: 'Info', component: Info },
60
+ { name: 'InstagramIcon', component: InstagramIcon },
61
+ { name: 'Message', component: Message },
62
+ { name: 'MoonIcon', component: MoonIcon },
63
+ { name: 'More', component: More },
64
+ { name: 'MoreHori', component: MoreHori },
65
+ { name: 'Notification', component: Notification },
66
+ { name: 'Payment', component: Payment },
67
+ { name: 'Profile', component: Profile },
68
+ { name: 'Reload', component: Reload },
69
+ { name: 'Shows', component: Shows },
70
+ { name: 'Signout', component: Signout },
71
+ { name: 'SunIcon', component: SunIcon },
72
+ { name: 'TiktokIcon', component: TiktokIcon },
73
+ { name: 'TwitterIcon', component: TwitterIcon },
74
+ { name: 'WarningIcon', component: WarningIcon },
75
+ ];
76
+ </script>
77
+
78
+ <Story name="All Icons">
79
+ <div class="p-8">
80
+ <h1 class="text-3xl font-bold mb-6">Icon Gallery</h1>
81
+ <p class="text-gray-500 dark:text-gray-400 mb-8">All available icons in the component library</p>
82
+
83
+ <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6">
84
+ {#each icons as { name, component }}
85
+ <div class="flex flex-col items-center p-4 border rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
86
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
87
+ <svelte:component this={component} />
88
+ </div>
89
+ <span class="text-sm text-center text-gray-500 dark:text-gray-400 font-medium">{name}</span>
90
+ </div>
91
+ {/each}
92
+ </div>
93
+ </div>
94
+ </Story>
95
+
96
+ <Story name="Icon Sizes">
97
+ <div class="p-8 space-y-8">
98
+ <div>
99
+ <h2 class="text-2xl font-bold mb-4">Navigation Icons</h2>
100
+ <div class="flex gap-6 items-end">
101
+ <div class="text-center">
102
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
103
+ <Home />
104
+ </div>
105
+ <span class="text-xs text-gray-500 dark:text-gray-400">Home</span>
106
+ </div>
107
+ <div class="text-center">
108
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
109
+ <Shows />
110
+ </div>
111
+ <span class="text-xs text-gray-500 dark:text-gray-400">Shows</span>
112
+ </div>
113
+ <div class="text-center">
114
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
115
+ <Availability />
116
+ </div>
117
+ <span class="text-xs text-gray-500 dark:text-gray-400">Availability</span>
118
+ </div>
119
+ <div class="text-center">
120
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
121
+ <Profile />
122
+ </div>
123
+ <span class="text-xs text-gray-500 dark:text-gray-400">Profile</span>
124
+ </div>
125
+ </div>
126
+ </div>
127
+
128
+ <div>
129
+ <h2 class="text-2xl font-bold mb-4">Status Icons</h2>
130
+ <div class="flex gap-6 items-end">
131
+ <div class="text-center">
132
+ <div class="w-12 h-12 flex items-center justify-center mb-2 text-green-600 dark:text-green-400">
133
+ <CheckCircle />
134
+ </div>
135
+ <span class="text-xs text-gray-500 dark:text-gray-400">Success</span>
136
+ </div>
137
+ <div class="text-center">
138
+ <div class="w-12 h-12 flex items-center justify-center mb-2 text-red-600 dark:text-red-400">
139
+ <ErrorCircle />
140
+ </div>
141
+ <span class="text-xs text-gray-500 dark:text-gray-400">Error</span>
142
+ </div>
143
+ <div class="text-center">
144
+ <div class="w-12 h-12 flex items-center justify-center mb-2 text-amber-500 dark:text-amber-400">
145
+ <WarningIcon />
146
+ </div>
147
+ <span class="text-xs text-gray-500 dark:text-gray-400">Warning</span>
148
+ </div>
149
+ <div class="text-center">
150
+ <div class="w-12 h-12 flex items-center justify-center mb-2 text-blue-500">
151
+ <Info />
152
+ </div>
153
+ <span class="text-xs text-gray-500 dark:text-gray-400">Info</span>
154
+ </div>
155
+ </div>
156
+ </div>
157
+
158
+ <div>
159
+ <h2 class="text-2xl font-bold mb-4">Social Media Icons</h2>
160
+ <div class="flex gap-6 items-end">
161
+ <div class="text-center">
162
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
163
+ <FacebookIcon />
164
+ </div>
165
+ <span class="text-xs text-gray-500 dark:text-gray-400">Facebook</span>
166
+ </div>
167
+ <div class="text-center">
168
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
169
+ <InstagramIcon />
170
+ </div>
171
+ <span class="text-xs text-gray-500 dark:text-gray-400">Instagram</span>
172
+ </div>
173
+ <div class="text-center">
174
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
175
+ <TwitterIcon />
176
+ </div>
177
+ <span class="text-xs text-gray-500 dark:text-gray-400">Twitter</span>
178
+ </div>
179
+ <div class="text-center">
180
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
181
+ <TiktokIcon />
182
+ </div>
183
+ <span class="text-xs text-gray-500 dark:text-gray-400">TikTok</span>
184
+ </div>
185
+ </div>
186
+ </div>
187
+
188
+ <div>
189
+ <h2 class="text-2xl font-bold mb-4">Action Icons</h2>
190
+ <div class="flex gap-6 items-end">
191
+ <div class="text-center">
192
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
193
+ <Copy />
194
+ </div>
195
+ <span class="text-xs text-gray-500 dark:text-gray-400">Copy</span>
196
+ </div>
197
+ <div class="text-center">
198
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
199
+ <Reload />
200
+ </div>
201
+ <span class="text-xs text-gray-500 dark:text-gray-400">Reload</span>
202
+ </div>
203
+ <div class="text-center">
204
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
205
+ <Cross />
206
+ </div>
207
+ <span class="text-xs text-gray-500 dark:text-gray-400">Close</span>
208
+ </div>
209
+ <div class="text-center">
210
+ <div class="w-12 h-12 flex items-center justify-center mb-2">
211
+ <More />
212
+ </div>
213
+ <span class="text-xs text-gray-500 dark:text-gray-400">More</span>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </Story>
219
+
220
+ <Story name="Dark Mode Icons">
221
+ <div class="bg-gray-900 p-8">
222
+ <h1 class="text-3xl font-bold mb-6 text-white">Icons in Dark Mode</h1>
223
+
224
+ <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-6">
225
+ {#each icons.slice(0, 12) as { name, component }}
226
+ <div class="flex flex-col items-center p-4 border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors">
227
+ <div class="w-12 h-12 flex items-center justify-center mb-2 text-white">
228
+ <svelte:component this={component} />
229
+ </div>
230
+ <span class="text-sm text-center text-gray-300 font-medium">{name}</span>
231
+ </div>
232
+ {/each}
233
+ </div>
234
+ </div>
235
+ </Story>
@@ -1,19 +1,19 @@
1
- <script>
2
- let { class: className = 'w-5 h-5', ...restProps } = $props();
3
- </script>
4
-
5
- <svg
6
- class={className}
7
- fill="none"
8
- stroke="currentColor"
9
- viewBox="0 0 24 24"
10
- xmlns="http://www.w3.org/2000/svg"
11
- {...restProps}
12
- >
13
- <path
14
- stroke-linecap="round"
15
- stroke-linejoin="round"
16
- stroke-width="2"
17
- d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
18
- />
19
- </svg>
1
+ <script>
2
+ let { class: className = 'w-5 h-5', ...restProps } = $props();
3
+ </script>
4
+
5
+ <svg
6
+ class={className}
7
+ fill="none"
8
+ stroke="currentColor"
9
+ viewBox="0 0 24 24"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ {...restProps}
12
+ >
13
+ <path
14
+ stroke-linecap="round"
15
+ stroke-linejoin="round"
16
+ stroke-width="2"
17
+ d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
18
+ />
19
+ </svg>
@@ -1,19 +1,19 @@
1
- <script>
2
- let { size = "20", color = "currentColor" } = $props();
3
- </script>
4
-
5
- <svg
6
- {size}
7
- width={size}
8
- height={size}
9
- viewBox="0 0 18 18"
10
- fill="none"
11
- xmlns="http://www.w3.org/2000/svg"
12
- >
13
- <path
14
- fill-rule="evenodd"
15
- clip-rule="evenodd"
16
- d="M8.99935 2.33341C5.31745 2.33341 2.33268 5.31818 2.33268 9.00008C2.33268 12.682 5.31745 15.6667 8.99935 15.6667C12.6812 15.6667 15.666 12.682 15.666 9.00008C15.666 5.31818 12.6812 2.33341 8.99935 2.33341ZM0.666016 9.00008C0.666016 4.39771 4.39698 0.666748 8.99935 0.666748C13.6017 0.666748 17.3327 4.39771 17.3327 9.00008C17.3327 13.6025 13.6017 17.3334 8.99935 17.3334C4.39698 17.3334 0.666016 13.6025 0.666016 9.00008ZM7.6726 5.25008C7.6726 4.78984 8.04569 4.41675 8.50593 4.41675H8.51426C8.9745 4.41675 9.3476 4.78984 9.3476 5.25008C9.3476 5.71032 8.9745 6.08342 8.51426 6.08342H8.50593C8.04569 6.08342 7.6726 5.71032 7.6726 5.25008ZM6.49935 8.16675C6.49935 7.70651 6.87245 7.33342 7.33268 7.33342H8.99935C9.45959 7.33342 9.83268 7.70651 9.83268 8.16675V11.5001H10.666C11.1263 11.5001 11.4993 11.8732 11.4993 12.3334C11.4993 12.7937 11.1263 13.1667 10.666 13.1667H7.33268C6.87245 13.1667 6.49935 12.7937 6.49935 12.3334C6.49935 11.8732 6.87245 11.5001 7.33268 11.5001H8.16602V9.00008H7.33268C6.87245 9.00008 6.49935 8.62699 6.49935 8.16675Z"
17
- fill={color}
18
- />
19
- </svg>
1
+ <script>
2
+ let { size = "20", color = "currentColor" } = $props();
3
+ </script>
4
+
5
+ <svg
6
+ {size}
7
+ width={size}
8
+ height={size}
9
+ viewBox="0 0 18 18"
10
+ fill="none"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ >
13
+ <path
14
+ fill-rule="evenodd"
15
+ clip-rule="evenodd"
16
+ d="M8.99935 2.33341C5.31745 2.33341 2.33268 5.31818 2.33268 9.00008C2.33268 12.682 5.31745 15.6667 8.99935 15.6667C12.6812 15.6667 15.666 12.682 15.666 9.00008C15.666 5.31818 12.6812 2.33341 8.99935 2.33341ZM0.666016 9.00008C0.666016 4.39771 4.39698 0.666748 8.99935 0.666748C13.6017 0.666748 17.3327 4.39771 17.3327 9.00008C17.3327 13.6025 13.6017 17.3334 8.99935 17.3334C4.39698 17.3334 0.666016 13.6025 0.666016 9.00008ZM7.6726 5.25008C7.6726 4.78984 8.04569 4.41675 8.50593 4.41675H8.51426C8.9745 4.41675 9.3476 4.78984 9.3476 5.25008C9.3476 5.71032 8.9745 6.08342 8.51426 6.08342H8.50593C8.04569 6.08342 7.6726 5.71032 7.6726 5.25008ZM6.49935 8.16675C6.49935 7.70651 6.87245 7.33342 7.33268 7.33342H8.99935C9.45959 7.33342 9.83268 7.70651 9.83268 8.16675V11.5001H10.666C11.1263 11.5001 11.4993 11.8732 11.4993 12.3334C11.4993 12.7937 11.1263 13.1667 10.666 13.1667H7.33268C6.87245 13.1667 6.49935 12.7937 6.49935 12.3334C6.49935 11.8732 6.87245 11.5001 7.33268 11.5001H8.16602V9.00008H7.33268C6.87245 9.00008 6.49935 8.62699 6.49935 8.16675Z"
17
+ fill={color}
18
+ />
19
+ </svg>
@@ -1,19 +1,19 @@
1
- <script>
2
- let { size = "20", color = "currentColor" } = $props();
3
- </script>
4
-
5
- <svg
6
- width={size}
7
- height={size}
8
- viewBox="0 0 24 24"
9
- fill="none"
10
- stroke={color}
11
- stroke-width="1.5"
12
- stroke-linecap="round"
13
- stroke-linejoin="round"
14
- xmlns="http://www.w3.org/2000/svg"
15
- >
16
- <rect x="2" y="2" width="20" height="20" rx="5" ry="5"/>
17
- <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/>
18
- <line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/>
19
- </svg>
1
+ <script>
2
+ let { size = "20", color = "currentColor" } = $props();
3
+ </script>
4
+
5
+ <svg
6
+ width={size}
7
+ height={size}
8
+ viewBox="0 0 24 24"
9
+ fill="none"
10
+ stroke={color}
11
+ stroke-width="1.5"
12
+ stroke-linecap="round"
13
+ stroke-linejoin="round"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ >
16
+ <rect x="2" y="2" width="20" height="20" rx="5" ry="5"/>
17
+ <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/>
18
+ <line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/>
19
+ </svg>
@@ -1,15 +1,15 @@
1
- <script>
2
- let { class: className = "", size = 20 } = $props();
3
- </script>
4
-
5
- <svg
6
- class={className}
7
- width={size}
8
- height={size}
9
- aria-hidden="true"
10
- fill="currentColor"
11
- viewBox="0 0 24 24"
12
- xmlns="http://www.w3.org/2000/svg"
13
- >
14
- <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z" />
15
- </svg>
1
+ <script>
2
+ let { class: className = "", size = 20 } = $props();
3
+ </script>
4
+
5
+ <svg
6
+ class={className}
7
+ width={size}
8
+ height={size}
9
+ aria-hidden="true"
10
+ fill="currentColor"
11
+ viewBox="0 0 24 24"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ >
14
+ <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z" />
15
+ </svg>