@designcrowd/fe-shared-lib 1.6.7 → 1.6.9-ModalAccessibility

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 (156) hide show
  1. package/.claude/settings.local.json +59 -0
  2. package/.storybook-static/assets/Auth-DT64t5h-.css +1 -0
  3. package/.storybook-static/assets/Auth.stories-C6eXcTSu.js +490 -0
  4. package/.storybook-static/assets/AuthCrazyDomains.stories-DGvEoWCa.js +73 -0
  5. package/.storybook-static/assets/Button-5UzSGUF6.css +1 -0
  6. package/.storybook-static/assets/Button-DKdQT6Fq.js +1 -0
  7. package/.storybook-static/assets/ButtonGroup-DDPXuhxR.css +1 -0
  8. package/.storybook-static/assets/ButtonGroup.stories-DlrYMRSk.js +504 -0
  9. package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +1 -0
  10. package/.storybook-static/assets/ButtonPrimary-BvWW6Duz.js +1 -0
  11. package/.storybook-static/assets/Buttons.stories-CKmd6hkZ.js +761 -0
  12. package/.storybook-static/assets/ButtonsCrazyDomains.stories-DdEuOUrn.js +199 -0
  13. package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +1 -0
  14. package/.storybook-static/assets/Checkbox.stories-DPBUC2Mx.js +246 -0
  15. package/.storybook-static/assets/Checktile.stories-ByaFwplD.js +88 -0
  16. package/.storybook-static/assets/CollapsiblePanel.stories-Y6q3gP9j.js +56 -0
  17. package/.storybook-static/assets/ColorPicker.stories-DdxPUB_R.js +73 -0
  18. package/.storybook-static/assets/CopyToClipboardText.stories-J9qndWxd.js +32 -0
  19. package/.storybook-static/assets/Dropdown.stories-1zKPATii.js +159 -0
  20. package/.storybook-static/assets/DropdownItem-BV-BdThU.css +1 -0
  21. package/.storybook-static/assets/DropdownItem-DA6TdpDb.js +1 -0
  22. package/.storybook-static/assets/FormControl.mixin-DcEBwrV3.js +1 -0
  23. package/.storybook-static/assets/HashRouteModal.stories-BGxvqE22.js +60 -0
  24. package/.storybook-static/assets/HelloBar-CYEZR2kQ.js +1 -0
  25. package/.storybook-static/assets/HelloBar.stories-597Kxj0W.js +342 -0
  26. package/.storybook-static/assets/Icon-C17LFvsP.js +145 -0
  27. package/.storybook-static/assets/Icon.stories-B9iAmcTU.js +151 -0
  28. package/.storybook-static/assets/Icon.stories-CR5vT9H7.js +791 -0
  29. package/.storybook-static/assets/Loader-BWGoT_xC.js +1 -0
  30. package/.storybook-static/assets/LogoBusinessBrandColours-CExzox1Z.js +1 -0
  31. package/.storybook-static/assets/LogoBusinessBrandColours-CeAaMKke.css +1 -0
  32. package/.storybook-static/assets/LogoBusinessBrandColours.stories-kuxAH8B8.js +36 -0
  33. package/.storybook-static/assets/Masonry-C2MNiGg0.css +1 -0
  34. package/.storybook-static/assets/Masonry.stories-CTXJLQ_i.js +71 -0
  35. package/.storybook-static/assets/Modal-CGwEIF5R.css +1 -0
  36. package/.storybook-static/assets/Modal-CydTNprT.js +1 -0
  37. package/.storybook-static/assets/Modal.stories-DZiG5NGM.js +345 -0
  38. package/.storybook-static/assets/Notice.stories-ChOj8CWm.js +222 -0
  39. package/.storybook-static/assets/NumberStepper-Blffv09R.css +1 -0
  40. package/.storybook-static/assets/NumberStepper.stories-CVbKJ_oJ.js +64 -0
  41. package/.storybook-static/assets/PaymentConfigList-BpUMV6cp.css +1 -0
  42. package/.storybook-static/assets/PaymentConfigList.stories-DUD7OZBS.js +130 -0
  43. package/.storybook-static/assets/Picture-B8m1I9xN.js +1 -0
  44. package/.storybook-static/assets/Picture.stories-MMzybhJ6.js +119 -0
  45. package/.storybook-static/assets/Pill-DLXZ_TL8.js +1 -0
  46. package/.storybook-static/assets/Pill.stories-DCP7szJm.js +18 -0
  47. package/.storybook-static/assets/PillBar-os4mJV3M.css +1 -0
  48. package/.storybook-static/assets/PillBar.stories-Bry-zQ6f.js +41 -0
  49. package/.storybook-static/assets/Price-C4GZbDSa.js +1 -0
  50. package/.storybook-static/assets/Price.stories-CMHly9V0.js +337 -0
  51. package/.storybook-static/assets/PromoCard.stories-xsbFtADE.js +299 -0
  52. package/.storybook-static/assets/PublishBrandPageModal-Q9-mNG1q.css +1 -0
  53. package/.storybook-static/assets/PublishBrandPageModal.stories-C9XzW_1m.js +324 -0
  54. package/.storybook-static/assets/SearchBar.stories-DaIneOSz.js +12 -0
  55. package/.storybook-static/assets/Select-DnioWQmi.css +1 -0
  56. package/.storybook-static/assets/Select.stories-BmGYB4pw.js +108 -0
  57. package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +1 -0
  58. package/.storybook-static/assets/SellDomainNameListModal-DH6khE10.css +1 -0
  59. package/.storybook-static/assets/SellDomainNameListModal-ymtVclFP.js +1 -0
  60. package/.storybook-static/assets/SellDomainNameListModal.stories-DvGvylgx.js +71 -0
  61. package/.storybook-static/assets/SellDomainNameListSearchResult-Cpxq0jDA.css +1 -0
  62. package/.storybook-static/assets/SellDomainNameListSearchResult-D-1CrQyf.js +1 -0
  63. package/.storybook-static/assets/SellDomainNameSearchWithResults-bX--zu97.js +1 -0
  64. package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-DRUJjSdH.js +37 -0
  65. package/.storybook-static/assets/SellDomainNameWidget.stories-CC3LX10s.js +36 -0
  66. package/.storybook-static/assets/SignIn-CPjf8_2O.css +1 -0
  67. package/.storybook-static/assets/SignIn-DI0DSDFe.js +1 -0
  68. package/.storybook-static/assets/Slider-Cog2FFdj.css +1 -0
  69. package/.storybook-static/assets/Slider.stories-B2KGwnJy.js +141 -0
  70. package/.storybook-static/assets/SparkleIcon.stories-Dk904hVE.js +547 -0
  71. package/.storybook-static/assets/StarRating-BtKh7pzm.css +1 -0
  72. package/.storybook-static/assets/StarRating.stories-d2mgOuo2.js +45 -0
  73. package/.storybook-static/assets/TabMenu.stories-Cg2yenqj.js +47 -0
  74. package/.storybook-static/assets/TextCopyField-B66NKTk_.js +1 -0
  75. package/.storybook-static/assets/TextCopyField.stories-B4_ZlfLU.js +47 -0
  76. package/.storybook-static/assets/TextInput-CMoUjT_5.js +1 -0
  77. package/.storybook-static/assets/TextInput.stories-oyyxxf3j.js +233 -0
  78. package/.storybook-static/assets/Textarea.stories-BvhZR6K2.js +207 -0
  79. package/.storybook-static/assets/Toggle.stories-yT5-rL2k.js +161 -0
  80. package/.storybook-static/assets/Tooltip-DyXIgFQH.css +1 -0
  81. package/.storybook-static/assets/Tooltip-ZukyujG5.js +1 -0
  82. package/.storybook-static/assets/Tooltip.stories-sJFylRS_.js +953 -0
  83. package/.storybook-static/assets/UploadYourLogoApplication-Dmw8QcH3.css +1 -0
  84. package/.storybook-static/assets/UploadYourLogoApplication.stories-C9AvzHO_.js +186 -0
  85. package/.storybook-static/assets/UploadYourLogoDropzone-B1ffcicv.js +24 -0
  86. package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +1 -0
  87. package/.storybook-static/assets/UploadYourLogoDropzone.stories-D1Dt2ord.js +55 -0
  88. package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-D8oF1Yrx.js +79 -0
  89. package/.storybook-static/assets/WebsiteContextualUpgradeModal-8u1zOZrW.css +1 -0
  90. package/.storybook-static/assets/WebsiteContextualUpgradeModal.stories-mtcvWOAg.js +211 -0
  91. package/.storybook-static/assets/_commonjsHelpers-CE1G-McA.js +1 -0
  92. package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  93. package/.storybook-static/assets/api-lSJGRrF2.js +1 -0
  94. package/.storybook-static/assets/axe-DrS73Vi2.js +20 -0
  95. package/.storybook-static/assets/brand-crowd-api.client-D45NKshX.js +1 -0
  96. package/.storybook-static/assets/bundled-translations-BoWhEDU_.js +1 -0
  97. package/.storybook-static/assets/bundled-translations.de-DE-C4lqla4O.js +1 -0
  98. package/.storybook-static/assets/bundled-translations.es-ES-BxMIllUH.js +1 -0
  99. package/.storybook-static/assets/bundled-translations.fr-CA-MxZpyz0w.js +1 -0
  100. package/.storybook-static/assets/bundled-translations.fr-FR-N7UPCZVr.js +1 -0
  101. package/.storybook-static/assets/bundled-translations.pt-BR-C8tscYuG.js +1 -0
  102. package/.storybook-static/assets/bundled-translations.pt-PT-Dszj5Xfa.js +1 -0
  103. package/.storybook-static/assets/carousel-BelyIYOK.css +1 -0
  104. package/.storybook-static/assets/carousel.stories-CJw3-Iy6.js +668 -0
  105. package/.storybook-static/assets/event-constants-CMO9VQVu.js +1 -0
  106. package/.storybook-static/assets/iframe-B3A6OXQU.js +1104 -0
  107. package/.storybook-static/assets/index-B-eiLVzF.js +7 -0
  108. package/.storybook-static/assets/index-QquxUozE.js +6 -0
  109. package/.storybook-static/assets/matchers-5TDFFDYO-HJu_DfWo.js +14 -0
  110. package/.storybook-static/assets/mediaQueryMixin-CISNqd93.js +1 -0
  111. package/.storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
  112. package/.storybook-static/assets/tracking-ATsLLehC.js +1 -0
  113. package/.storybook-static/css/tailwind-brandCrowd.css +2508 -0
  114. package/.storybook-static/css/tailwind-brandPage.css +2188 -0
  115. package/.storybook-static/css/tailwind-crazyDomains.css +2508 -0
  116. package/.storybook-static/css/tailwind-designCom.css +2508 -0
  117. package/.storybook-static/css/tailwind-designCrowd.css +2508 -0
  118. package/.storybook-static/favicon-wrapper.svg +46 -0
  119. package/.storybook-static/favicon.svg +1 -0
  120. package/.storybook-static/iframe.html +713 -0
  121. package/.storybook-static/index.html +148 -0
  122. package/.storybook-static/index.json +1 -0
  123. package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  124. package/.storybook-static/nunito-sans-bold.woff2 +0 -0
  125. package/.storybook-static/nunito-sans-italic.woff2 +0 -0
  126. package/.storybook-static/nunito-sans-regular.woff2 +0 -0
  127. package/.storybook-static/project.json +1 -0
  128. package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +57 -0
  129. package/.storybook-static/sb-addons/links-2/manager-bundle.js +3 -0
  130. package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +628 -0
  131. package/.storybook-static/sb-addons/themes-3/manager-bundle.js +3 -0
  132. package/.storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  133. package/.storybook-static/sb-common-assets/favicon.svg +1 -0
  134. package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  135. package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  136. package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  137. package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  138. package/.storybook-static/sb-manager/globals-runtime.js +77935 -0
  139. package/.storybook-static/sb-manager/globals.js +24 -0
  140. package/.storybook-static/sb-manager/manager-stores.js +23 -0
  141. package/.storybook-static/sb-manager/runtime.js +20404 -0
  142. package/.storybook-static/vite-inject-mocker-entry.js +2 -0
  143. package/dist/css/tailwind-brandCrowd.css +4 -34
  144. package/dist/css/tailwind-brandPage.css +3 -25
  145. package/dist/css/tailwind-crazyDomains.css +4 -34
  146. package/dist/css/tailwind-designCom.css +4 -34
  147. package/dist/css/tailwind-designCrowd.css +4 -34
  148. package/package.json +1 -1
  149. package/public/css/tailwind-brandCrowd.css +2538 -0
  150. package/public/css/tailwind-brandPage.css +2210 -0
  151. package/public/css/tailwind-crazyDomains.css +2538 -0
  152. package/public/css/tailwind-designCom.css +2538 -0
  153. package/public/css/tailwind-designCrowd.css +2538 -0
  154. package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.stories.js +1 -275
  155. package/src/atoms/components/AiPoweredLoader/AiPoweredLoader.vue +98 -274
  156. package/src/atoms/components/Modal/Modal.vue +9 -0
@@ -5,15 +5,10 @@ export default {
5
5
  component: AiPoweredLoader,
6
6
  argTypes: {
7
7
  size: {
8
- control: { type: 'number', min: 16, max: 200, step: 8 },
8
+ control: { type: 'range', min: 50, max: 500, step: 1 },
9
9
  description: 'Size of the loader in pixels (width and height)',
10
10
  defaultValue: 96,
11
11
  },
12
- interval: {
13
- control: { type: 'range', min: 50, max: 500, step: 50 },
14
- description: 'Animation frame interval in milliseconds',
15
- defaultValue: 150,
16
- },
17
12
  alt: {
18
13
  control: 'text',
19
14
  description: 'Alternative text for accessibility',
@@ -33,175 +28,9 @@ export const Default = (args) => ({
33
28
 
34
29
  Default.args = {
35
30
  size: 96,
36
- interval: 150,
37
31
  alt: 'loading',
38
32
  };
39
33
 
40
- // Size variations story
41
- export const SizeVariations = () => ({
42
- components: { AiPoweredLoader },
43
- template: `
44
- <div class="tw-flex tw-gap-8 tw-items-center tw-p-6">
45
- <div class="tw-text-center">
46
- <AiPoweredLoader :size="48" alt="Small loader" />
47
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Small (48px)</p>
48
- </div>
49
- <div class="tw-text-center">
50
- <AiPoweredLoader :size="64" alt="Medium-small loader" />
51
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Medium-Small (64px)</p>
52
- </div>
53
- <div class="tw-text-center">
54
- <AiPoweredLoader :size="96" alt="Default loader" />
55
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Default (96px)</p>
56
- </div>
57
- <div class="tw-text-center">
58
- <AiPoweredLoader :size="128" alt="Large loader" />
59
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Large (128px)</p>
60
- </div>
61
- <div class="tw-text-center">
62
- <AiPoweredLoader :size="160" alt="Extra large loader" />
63
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Extra Large (160px)</p>
64
- </div>
65
- </div>
66
- `,
67
- });
68
-
69
- SizeVariations.story = {
70
- name: 'Size Variations',
71
- };
72
-
73
- // Speed variations story
74
- export const SpeedVariations = () => ({
75
- components: { AiPoweredLoader },
76
- template: `
77
- <div class="tw-p-6">
78
- <h3 class="tw-text-lg tw-font-bold tw-mb-4">Animation Speed Variations</h3>
79
- <div class="tw-flex tw-gap-8 tw-items-center">
80
- <div class="tw-text-center">
81
- <AiPoweredLoader :interval="75" alt="Fast animation" />
82
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Fast (75ms)</p>
83
- </div>
84
- <div class="tw-text-center">
85
- <AiPoweredLoader :interval="150" alt="Normal animation" />
86
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Normal (150ms)</p>
87
- </div>
88
- <div class="tw-text-center">
89
- <AiPoweredLoader :interval="300" alt="Slow animation" />
90
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Slow (300ms)</p>
91
- </div>
92
- </div>
93
- </div>
94
- `,
95
- });
96
-
97
- SpeedVariations.story = {
98
- name: 'Animation Speed',
99
- };
100
-
101
- // Common use cases story
102
- export const CommonUseCases = () => ({
103
- components: { AiPoweredLoader },
104
- template: `
105
- <div class="tw-p-6 tw-space-y-8">
106
- <!-- Inline loader -->
107
- <div class="tw-border tw-rounded-lg tw-p-4">
108
- <h4 class="tw-text-md tw-font-semibold tw-mb-3">Inline Button Loader</h4>
109
- <div class="tw-flex tw-items-center tw-gap-3">
110
- <button class="tw-px-4 tw-py-2 tw-bg-primary-500 tw-text-white tw-rounded tw-flex tw-items-center tw-gap-2">
111
- <AiPoweredLoader :size="20" :interval="100" alt="Processing" />
112
- Processing...
113
- </button>
114
- </div>
115
- </div>
116
-
117
- <!-- Card loader -->
118
- <div class="tw-border tw-rounded-lg tw-p-4">
119
- <h4 class="tw-text-md tw-font-semibold tw-mb-3">Card Loading State</h4>
120
- <div class="tw-bg-gray-50 tw-rounded tw-p-6 tw-flex tw-flex-col tw-items-center tw-justify-center tw-min-h-[200px]">
121
- <AiPoweredLoader :size="80" alt="Loading content" />
122
- <p class="tw-mt-4 tw-text-gray-600">Loading your content...</p>
123
- </div>
124
- </div>
125
-
126
- <!-- Page loader -->
127
- <div class="tw-border tw-rounded-lg tw-p-4">
128
- <h4 class="tw-text-md tw-font-semibold tw-mb-3">Full Page Loader</h4>
129
- <div class="tw-bg-white tw-rounded tw-p-12 tw-flex tw-flex-col tw-items-center tw-justify-center tw-min-h-[300px] tw-border-2 tw-border-dashed tw-border-gray-300">
130
- <AiPoweredLoader :size="120" alt="Loading page" />
131
- <p class="tw-mt-6 tw-text-xl tw-text-gray-700">AI is working its magic...</p>
132
- <p class="tw-text-sm tw-text-gray-500 tw-mt-2">This may take a few moments</p>
133
- </div>
134
- </div>
135
- </div>
136
- `,
137
- });
138
-
139
- CommonUseCases.story = {
140
- name: 'Common Use Cases',
141
- };
142
-
143
- // Interactive size control story
144
- export const InteractiveSize = () => ({
145
- components: { AiPoweredLoader },
146
- data() {
147
- return {
148
- currentSize: 96,
149
- currentInterval: 150,
150
- };
151
- },
152
- template: `
153
- <div class="tw-p-6">
154
- <h3 class="tw-text-lg tw-font-bold tw-mb-4">Interactive Size Control</h3>
155
-
156
- <!-- Controls -->
157
- <div class="tw-mb-6 tw-space-y-4">
158
- <div class="tw-flex tw-items-center tw-gap-4">
159
- <label class="tw-text-sm tw-font-medium tw-w-20">Size:</label>
160
- <input
161
- type="range"
162
- min="32"
163
- max="200"
164
- step="8"
165
- v-model="currentSize"
166
- class="tw-flex-1 tw-max-w-xs"
167
- />
168
- <span class="tw-text-sm tw-text-gray-600 tw-w-16">{{ currentSize }}px</span>
169
- </div>
170
-
171
- <div class="tw-flex tw-items-center tw-gap-4">
172
- <label class="tw-text-sm tw-font-medium tw-w-20">Speed:</label>
173
- <input
174
- type="range"
175
- min="50"
176
- max="500"
177
- step="25"
178
- v-model="currentInterval"
179
- class="tw-flex-1 tw-max-w-xs"
180
- />
181
- <span class="tw-text-sm tw-text-gray-600 tw-w-16">{{ currentInterval }}ms</span>
182
- </div>
183
- </div>
184
-
185
- <!-- Preview -->
186
- <div class="tw-flex tw-items-center tw-justify-center tw-p-8 tw-bg-gray-50 tw-rounded-lg">
187
- <AiPoweredLoader
188
- :size="currentSize"
189
- :interval="currentInterval"
190
- alt="Interactive loader preview"
191
- />
192
- </div>
193
-
194
- <p class="tw-text-sm tw-text-gray-600 tw-mt-4">
195
- Use the sliders above to adjust the loader size and animation speed in real-time.
196
- </p>
197
- </div>
198
- `,
199
- });
200
-
201
- InteractiveSize.story = {
202
- name: 'Interactive Controls',
203
- };
204
-
205
34
  // Comparison with traditional loader story
206
35
  export const LoaderComparison = () => ({
207
36
  components: { AiPoweredLoader },
@@ -259,106 +88,3 @@ export const LoaderComparison = () => ({
259
88
  LoaderComparison.story = {
260
89
  name: 'Loader Comparison',
261
90
  };
262
-
263
- // Showcase story
264
- export const Showcase = () => ({
265
- components: { AiPoweredLoader },
266
- template: `
267
- <div class="tw-p-6">
268
- <h3 class="tw-text-lg tw-font-bold tw-mb-4">AI-Powered Loader Showcase</h3>
269
-
270
- <div class="tw-space-y-8">
271
- <!-- Size Showcase -->
272
- <div class="tw-border tw-rounded-lg tw-p-6">
273
- <h4 class="tw-text-md tw-font-semibold tw-mb-4">Size Range</h4>
274
- <div class="tw-flex tw-gap-6 tw-items-end tw-justify-center">
275
- <div class="tw-text-center">
276
- <AiPoweredLoader :size="32" alt="Tiny loader" />
277
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">32px</p>
278
- </div>
279
- <div class="tw-text-center">
280
- <AiPoweredLoader :size="48" alt="Small loader" />
281
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">48px</p>
282
- </div>
283
- <div class="tw-text-center">
284
- <AiPoweredLoader :size="64" alt="Medium loader" />
285
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">64px</p>
286
- </div>
287
- <div class="tw-text-center">
288
- <AiPoweredLoader :size="96" alt="Default loader" />
289
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">96px (default)</p>
290
- </div>
291
- <div class="tw-text-center">
292
- <AiPoweredLoader :size="128" alt="Large loader" />
293
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">128px</p>
294
- </div>
295
- <div class="tw-text-center">
296
- <AiPoweredLoader :size="180" alt="Extra large loader" />
297
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">180px</p>
298
- </div>
299
- </div>
300
- </div>
301
-
302
- <!-- Speed Showcase -->
303
- <div class="tw-border tw-rounded-lg tw-p-6">
304
- <h4 class="tw-text-md tw-font-semibold tw-mb-4">Animation Speeds</h4>
305
- <div class="tw-flex tw-gap-8 tw-items-center tw-justify-center">
306
- <div class="tw-text-center">
307
- <AiPoweredLoader :size="80" :interval="50" alt="Very fast loader" />
308
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Very Fast (50ms)</p>
309
- </div>
310
- <div class="tw-text-center">
311
- <AiPoweredLoader :size="80" :interval="100" alt="Fast loader" />
312
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Fast (100ms)</p>
313
- </div>
314
- <div class="tw-text-center">
315
- <AiPoweredLoader :size="80" :interval="150" alt="Normal loader" />
316
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Normal (150ms)</p>
317
- </div>
318
- <div class="tw-text-center">
319
- <AiPoweredLoader :size="80" :interval="250" alt="Slow loader" />
320
- <p class="tw-text-xs tw-mt-2 tw-text-gray-600">Slow (250ms)</p>
321
- </div>
322
- </div>
323
- </div>
324
-
325
- <!-- Context Examples -->
326
- <div class="tw-border tw-rounded-lg tw-p-6">
327
- <h4 class="tw-text-md tw-font-semibold tw-mb-4">Real-World Examples</h4>
328
- <div class="tw-grid tw-grid-cols-1 md:tw-grid-cols-3 tw-gap-6">
329
- <!-- Button context -->
330
- <div class="tw-bg-gray-50 tw-p-4 tw-rounded tw-text-center">
331
- <p class="tw-text-sm tw-font-medium tw-mb-3">Button Context</p>
332
- <button class="tw-px-4 tw-py-2 tw-bg-primary-500 tw-text-white tw-rounded tw-flex tw-items-center tw-gap-2 tw-mx-auto">
333
- <AiPoweredLoader :size="18" :interval="120" alt="Button loading" />
334
- Loading...
335
- </button>
336
- </div>
337
-
338
- <!-- Card context -->
339
- <div class="tw-bg-gray-50 tw-p-4 tw-rounded tw-text-center">
340
- <p class="tw-text-sm tw-font-medium tw-mb-3">Card Loading</p>
341
- <div class="tw-bg-white tw-p-4 tw-rounded tw-shadow-sm">
342
- <AiPoweredLoader :size="60" alt="Card loading" />
343
- <p class="tw-text-sm tw-text-gray-600 tw-mt-2">Loading data...</p>
344
- </div>
345
- </div>
346
-
347
- <!-- Full screen context -->
348
- <div class="tw-bg-gray-50 tw-p-4 tw-rounded tw-text-center">
349
- <p class="tw-text-sm tw-font-medium tw-mb-3">Page Loading</p>
350
- <div class="tw-bg-white tw-p-6 tw-rounded tw-shadow-sm tw-min-h-[120px] tw-flex tw-flex-col tw-justify-center">
351
- <AiPoweredLoader :size="80" alt="Page loading" />
352
- <p class="tw-text-sm tw-text-gray-600 tw-mt-3">Please wait...</p>
353
- </div>
354
- </div>
355
- </div>
356
- </div>
357
- </div>
358
- </div>
359
- `,
360
- });
361
-
362
- Showcase.story = {
363
- name: 'Complete Showcase',
364
- };