@getmicdrop/svelte-components 5.3.2 → 5.3.6
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.
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +10 -10
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts +6 -6
- package/dist/calendar/OrderSummary/OrderSummary.svelte +2 -2
- package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +2 -2
- package/dist/calendar/PublicCard/PublicCard.svelte +2 -2
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts +2 -2
- package/dist/calendar/ShowCard/ShowCard.svelte +2 -2
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts +2 -2
- package/dist/patterns/navigation/Header.svelte +38 -27
- package/dist/patterns/page/PageLayout.svelte +1 -1
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -0
- package/dist/primitives/Accordion/Accordion.stories.svelte.d.ts +28 -0
- package/dist/primitives/Accordion/Accordion.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Alert/Alert.stories.svelte +88 -0
- package/dist/primitives/Alert/Alert.stories.svelte.d.ts +28 -0
- package/dist/primitives/Alert/Alert.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts +28 -0
- package/dist/primitives/Avatar/Avatar.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +1 -1
- package/dist/primitives/Button/Button.svelte +87 -22
- package/dist/primitives/Button/Button.svelte.d.ts +4 -0
- package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -0
- package/dist/primitives/Checkbox/Checkbox.stories.svelte.d.ts +28 -0
- package/dist/primitives/Checkbox/Checkbox.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte +100 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte.d.ts +28 -0
- package/dist/primitives/Drawer/Drawer.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte.d.ts +28 -0
- package/dist/primitives/Dropdown/Dropdown.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Dropdown/Dropdown.svelte +13 -15
- package/dist/primitives/Dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/primitives/Icons/Icon.svelte +2 -1
- package/dist/primitives/Icons/Icon.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.stories.svelte +112 -0
- package/dist/primitives/Input/Select.stories.svelte.d.ts +28 -0
- package/dist/primitives/Input/Select.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Input/Textarea.stories.svelte +137 -0
- package/dist/primitives/Input/Textarea.stories.svelte.d.ts +28 -0
- package/dist/primitives/Input/Textarea.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte.d.ts +28 -0
- package/dist/primitives/Pagination/Pagination.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Pagination/Pagination.svelte +3 -3
- package/dist/primitives/Pagination/Pagination.svelte.d.ts +1 -1
- package/dist/primitives/Radio/Radio.stories.svelte +80 -0
- package/dist/primitives/Radio/Radio.stories.svelte.d.ts +28 -0
- package/dist/primitives/Radio/Radio.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte.d.ts +28 -0
- package/dist/primitives/Skeleton/Skeleton.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte.d.ts +28 -0
- package/dist/primitives/Tabs/Tabs.stories.svelte.d.ts.map +1 -0
- package/dist/primitives/Tabs/Tabs.svelte +1 -1
- package/dist/primitives/Toggle.svelte +4 -4
- package/dist/primitives/ValidationError.spec.js +25 -1
- package/dist/primitives/ValidationError.stories.svelte +24 -0
- package/dist/primitives/ValidationError.stories.svelte.d.ts.map +1 -1
- package/dist/primitives/ValidationError.svelte +8 -4
- package/dist/primitives/ValidationError.svelte.d.ts +2 -0
- package/dist/primitives/ValidationError.svelte.d.ts.map +1 -1
- package/dist/recipes/CropImage/CropImage.svelte +3 -3
- package/dist/recipes/SuperLogin/SuperLogin.svelte +34 -23
- package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +2 -1
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte.d.ts.map +1 -1
- package/dist/recipes/inputs/MultiSelect.svelte +2 -2
- package/dist/recipes/modals/InputModal.svelte +2 -1
- package/dist/recipes/modals/InputModal.svelte.d.ts.map +1 -1
- package/dist/stories/ComponentConsolidation.stories.svelte +276 -188
- package/dist/stories/ComponentConsolidation.stories.svelte.d.ts.map +1 -1
- package/dist/stories/PatternsGallery.stories.svelte +19 -0
- package/dist/stories/PatternsGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/PatternsGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/PatternsGallery.svelte +388 -0
- package/dist/stories/PatternsGallery.svelte.d.ts +4 -0
- package/dist/stories/PatternsGallery.svelte.d.ts.map +1 -0
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -0
- package/dist/stories/PrimitivesGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/PrimitivesGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/PrimitivesGallery.svelte +752 -0
- package/dist/stories/PrimitivesGallery.svelte.d.ts +4 -0
- package/dist/stories/PrimitivesGallery.svelte.d.ts.map +1 -0
- package/dist/stories/RecipesGallery.stories.svelte +19 -0
- package/dist/stories/RecipesGallery.stories.svelte.d.ts +28 -0
- package/dist/stories/RecipesGallery.stories.svelte.d.ts.map +1 -0
- package/dist/stories/RecipesGallery.svelte +441 -0
- package/dist/stories/RecipesGallery.svelte.d.ts +4 -0
- package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -0
- package/package.json +3 -2
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
<script module>
|
|
2
2
|
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
3
|
|
|
4
|
-
// Placeholder component for documentation-only stories
|
|
5
|
-
const DocPlaceholder = {
|
|
6
|
-
$$render: () => ''
|
|
7
|
-
};
|
|
8
|
-
|
|
9
4
|
const { Story } = defineMeta({
|
|
10
5
|
title: "Design System/Component Consolidation",
|
|
11
|
-
component: DocPlaceholder,
|
|
12
6
|
parameters: {
|
|
13
7
|
layout: 'padded',
|
|
14
8
|
}
|
|
@@ -256,223 +250,334 @@ grep -r "<button" /Users/peet/repos/performers-portal/src --include="*.svelte
|
|
|
256
250
|
|
|
257
251
|
<Story name="svelte-components Problems">
|
|
258
252
|
<div class="space-y-8">
|
|
259
|
-
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">
|
|
253
|
+
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">svelte-components: Complete Element Audit (Dec 26, 2025)</h1>
|
|
260
254
|
<p class="text-gray-600 dark:text-gray-400">
|
|
261
|
-
|
|
255
|
+
Comprehensive audit of raw HTML elements in this library: buttons, inputs, forms, textareas, and selects.
|
|
256
|
+
Categorized by what needs fixing vs. what's expected as primitive implementations.
|
|
262
257
|
</p>
|
|
263
258
|
|
|
264
|
-
<!--
|
|
265
|
-
<div class="bg-
|
|
266
|
-
<h2 class="text-xl font-semibold text-
|
|
267
|
-
|
|
259
|
+
<!-- SUMMARY BOX -->
|
|
260
|
+
<div class="bg-blue-50 dark:bg-blue-900/20 rounded-lg p-6">
|
|
261
|
+
<h2 class="text-xl font-semibold text-blue-800 dark:text-blue-300 mb-4">Summary by Element Type</h2>
|
|
262
|
+
<div class="grid grid-cols-3 md:grid-cols-6 gap-3 text-center">
|
|
263
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
264
|
+
<div class="text-2xl font-bold text-green-600">✓</div>
|
|
265
|
+
<div class="text-xs text-gray-500">Buttons</div>
|
|
266
|
+
<div class="text-xs text-green-600">0 remaining</div>
|
|
267
|
+
</div>
|
|
268
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
269
|
+
<div class="text-2xl font-bold text-green-600">5</div>
|
|
270
|
+
<div class="text-xs text-gray-500">Inputs</div>
|
|
271
|
+
<div class="text-xs text-green-600">primitives</div>
|
|
272
|
+
</div>
|
|
273
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
274
|
+
<div class="text-2xl font-bold text-amber-600">5</div>
|
|
275
|
+
<div class="text-xs text-gray-500">Recipe Inputs</div>
|
|
276
|
+
<div class="text-xs text-amber-600">specialized</div>
|
|
277
|
+
</div>
|
|
278
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
279
|
+
<div class="text-2xl font-bold text-green-600">3</div>
|
|
280
|
+
<div class="text-xs text-gray-500">Textareas</div>
|
|
281
|
+
<div class="text-xs text-green-600">expected</div>
|
|
282
|
+
</div>
|
|
283
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
284
|
+
<div class="text-2xl font-bold text-gray-400">4</div>
|
|
285
|
+
<div class="text-xs text-gray-500">Forms</div>
|
|
286
|
+
<div class="text-xs text-gray-400">semantic</div>
|
|
287
|
+
</div>
|
|
288
|
+
<div class="bg-white dark:bg-gray-800 p-3 rounded-lg">
|
|
289
|
+
<div class="text-2xl font-bold text-green-600">0</div>
|
|
290
|
+
<div class="text-xs text-gray-500">Selects</div>
|
|
291
|
+
<div class="text-xs text-green-600">none</div>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<!-- COMPLETED - ALL FIXED -->
|
|
297
|
+
<div class="bg-green-50 dark:bg-green-900/20 rounded-lg p-6">
|
|
298
|
+
<h2 class="text-xl font-semibold text-green-800 dark:text-green-300 mb-4">
|
|
299
|
+
✓ Completed: All High-Priority Files Migrated (Dec 26, 2025)
|
|
268
300
|
</h2>
|
|
301
|
+
<p class="text-sm text-green-700 dark:text-green-400 mb-4">
|
|
302
|
+
All files that needed fixing have been migrated to use the Button component with appropriate variants.
|
|
303
|
+
</p>
|
|
269
304
|
|
|
270
|
-
<div class="space-y-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
<
|
|
275
|
-
<h3 class="font-bold text-gray-900 dark:text-white">patterns/navigation/Header.svelte</h3>
|
|
276
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">11 raw <button> elements</p>
|
|
277
|
-
</div>
|
|
278
|
-
<span class="px-2 py-1 rounded text-xs bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300">11 buttons</span>
|
|
279
|
-
</div>
|
|
280
|
-
<div class="mt-3 text-sm">
|
|
281
|
-
<p class="text-gray-600 dark:text-gray-400 mb-2"><strong>What they are:</strong></p>
|
|
282
|
-
<ul class="list-disc list-inside text-gray-500 dark:text-gray-400 space-y-1">
|
|
283
|
-
<li>Back button (mobile)</li>
|
|
284
|
-
<li>Avatar/profile dropdown trigger</li>
|
|
285
|
-
<li>Dropdown menu items (settings, profile, etc.)</li>
|
|
286
|
-
<li>Mobile menu toggle (hamburger)</li>
|
|
287
|
-
<li>Sign out button</li>
|
|
288
|
-
</ul>
|
|
289
|
-
<p class="text-green-600 dark:text-green-400 mt-3">
|
|
290
|
-
<strong>Recommendation:</strong> Use Button component with <code class="bg-gray-100 dark:bg-gray-700 px-1 rounded">variant="ghost"</code>
|
|
291
|
-
or <code class="bg-gray-100 dark:bg-gray-700 px-1 rounded">variant="icon"</code>
|
|
292
|
-
</p>
|
|
305
|
+
<div class="space-y-3">
|
|
306
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500 flex justify-between items-center">
|
|
307
|
+
<div>
|
|
308
|
+
<span class="font-medium text-gray-900 dark:text-white">patterns/navigation/Header.svelte</span>
|
|
309
|
+
<span class="text-sm text-green-600 dark:text-green-400 ml-2">9 buttons → Button avatar/menu-item/menu-item-danger</span>
|
|
293
310
|
</div>
|
|
311
|
+
<span class="text-green-600">✓</span>
|
|
294
312
|
</div>
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
<div>
|
|
300
|
-
<h3 class="font-bold text-gray-900 dark:text-white">recipes/SuperLogin/SuperLogin.svelte</h3>
|
|
301
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">10 raw <button> + 4 raw <form> elements</p>
|
|
302
|
-
</div>
|
|
303
|
-
<span class="px-2 py-1 rounded text-xs bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300">14 elements</span>
|
|
313
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500 flex justify-between items-center">
|
|
314
|
+
<div>
|
|
315
|
+
<span class="font-medium text-gray-900 dark:text-white">recipes/SuperLogin/SuperLogin.svelte</span>
|
|
316
|
+
<span class="text-sm text-green-600 dark:text-green-400 ml-2">4 buttons → Button card/link variants</span>
|
|
304
317
|
</div>
|
|
305
|
-
<
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
<li>4 forms (login, signup, forgot password, verify)</li>
|
|
312
|
-
</ul>
|
|
313
|
-
<p class="text-green-600 dark:text-green-400 mt-3">
|
|
314
|
-
<strong>Recommendation:</strong> Replace buttons with Button component. Forms can stay raw
|
|
315
|
-
(they're self-contained auth logic).
|
|
316
|
-
</p>
|
|
318
|
+
<span class="text-green-600">✓</span>
|
|
319
|
+
</div>
|
|
320
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500 flex justify-between items-center">
|
|
321
|
+
<div>
|
|
322
|
+
<span class="font-medium text-gray-900 dark:text-white">recipes/CropImage/CropImage.svelte</span>
|
|
323
|
+
<span class="text-sm text-green-600 dark:text-green-400 ml-2">5 Button uses, 0 raw</span>
|
|
317
324
|
</div>
|
|
325
|
+
<span class="text-green-600">✓</span>
|
|
318
326
|
</div>
|
|
327
|
+
</div>
|
|
319
328
|
|
|
320
|
-
|
|
321
|
-
<
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
329
|
+
<div class="mt-4 p-3 bg-blue-50 dark:bg-blue-900/20 rounded text-sm">
|
|
330
|
+
<strong class="text-blue-700 dark:text-blue-400">New Button variants added:</strong>
|
|
331
|
+
<ul class="mt-2 list-disc list-inside text-blue-600 dark:text-blue-400 space-y-1">
|
|
332
|
+
<li><code class="bg-gray-200 dark:bg-gray-700 px-1 rounded">variant="avatar"</code> - Avatar/image trigger buttons (opacity hover)</li>
|
|
333
|
+
<li><code class="bg-gray-200 dark:bg-gray-700 px-1 rounded">variant="menu-item"</code> - Dropdown menu items (full width, left-aligned)</li>
|
|
334
|
+
<li><code class="bg-gray-200 dark:bg-gray-700 px-1 rounded">variant="menu-item-danger"</code> - Destructive menu items (red text)</li>
|
|
335
|
+
<li><code class="bg-gray-200 dark:bg-gray-700 px-1 rounded">variant="card"</code> - Selectable card buttons (bordered)</li>
|
|
336
|
+
</ul>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
<!-- PRIMITIVES - EXPECTED -->
|
|
341
|
+
<div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-6">
|
|
342
|
+
<h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-4">
|
|
343
|
+
Primitives: Raw Buttons Expected (15 total)
|
|
344
|
+
</h2>
|
|
345
|
+
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
|
|
346
|
+
These ARE the button implementations. Raw <code class="bg-gray-200 dark:bg-gray-700 px-1 rounded"><button></code> is correct here.
|
|
347
|
+
</p>
|
|
348
|
+
|
|
349
|
+
<div class="grid md:grid-cols-2 gap-3 text-sm">
|
|
350
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
351
|
+
<span>Button/Button.svelte</span>
|
|
352
|
+
<span class="text-gray-400">1 button</span>
|
|
353
|
+
</div>
|
|
354
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
355
|
+
<span>Pagination/Pagination.svelte</span>
|
|
356
|
+
<span class="text-gray-400">10 buttons</span>
|
|
357
|
+
</div>
|
|
358
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
359
|
+
<span>Accordion/AccordionItem.svelte</span>
|
|
360
|
+
<span class="text-gray-400">1 button</span>
|
|
361
|
+
</div>
|
|
362
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
363
|
+
<span>Tabs/Tabs.svelte</span>
|
|
364
|
+
<span class="text-gray-400">1 button</span>
|
|
365
|
+
</div>
|
|
366
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
367
|
+
<span>DarkModeToggle.svelte</span>
|
|
368
|
+
<span class="text-gray-400">1 button</span>
|
|
369
|
+
</div>
|
|
370
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
371
|
+
<span>Dropdown/DropdownItem.svelte</span>
|
|
372
|
+
<span class="text-gray-400">1 button</span>
|
|
341
373
|
</div>
|
|
342
374
|
</div>
|
|
343
375
|
</div>
|
|
344
376
|
|
|
345
|
-
<!--
|
|
377
|
+
<!-- RAW INPUTS - PRIMITIVES (EXPECTED) -->
|
|
378
|
+
<div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-6">
|
|
379
|
+
<h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-4">
|
|
380
|
+
Raw <input> Elements: Primitives (5 files - Expected)
|
|
381
|
+
</h2>
|
|
382
|
+
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
|
|
383
|
+
These ARE the input implementations. Raw <code class="bg-gray-200 dark:bg-gray-700 px-1 rounded"><input></code> is correct here.
|
|
384
|
+
</p>
|
|
385
|
+
|
|
386
|
+
<div class="grid md:grid-cols-2 gap-3 text-sm">
|
|
387
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
388
|
+
<span>primitives/Input/Input.svelte</span>
|
|
389
|
+
<span class="text-gray-400">2 inputs</span>
|
|
390
|
+
</div>
|
|
391
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
392
|
+
<span>primitives/Checkbox/Checkbox.svelte</span>
|
|
393
|
+
<span class="text-gray-400">1 input</span>
|
|
394
|
+
</div>
|
|
395
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
396
|
+
<span>primitives/Radio/Radio.svelte</span>
|
|
397
|
+
<span class="text-gray-400">1 input</span>
|
|
398
|
+
</div>
|
|
399
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
400
|
+
<span>primitives/Toggle.svelte</span>
|
|
401
|
+
<span class="text-gray-400">1 input</span>
|
|
402
|
+
</div>
|
|
403
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
404
|
+
<span>primitives/Input/Textarea.svelte</span>
|
|
405
|
+
<span class="text-gray-400">1 textarea</span>
|
|
406
|
+
</div>
|
|
407
|
+
</div>
|
|
408
|
+
</div>
|
|
409
|
+
|
|
410
|
+
<!-- RAW INPUTS - RECIPES (SPECIALIZED) -->
|
|
346
411
|
<div class="bg-amber-50 dark:bg-amber-900/20 rounded-lg p-6">
|
|
347
412
|
<h2 class="text-xl font-semibold text-amber-800 dark:text-amber-300 mb-4">
|
|
348
|
-
|
|
413
|
+
Raw <input> Elements: Recipes (5 files - Specialized)
|
|
349
414
|
</h2>
|
|
415
|
+
<p class="text-sm text-amber-700 dark:text-amber-400 mb-4">
|
|
416
|
+
These are specialized input controls with unique behavior. Using raw inputs is acceptable for these specialized use cases.
|
|
417
|
+
</p>
|
|
350
418
|
|
|
351
|
-
<div class="space-y-
|
|
352
|
-
<div class="bg-white dark:bg-gray-800 rounded-lg p-
|
|
353
|
-
<div class="flex justify-between
|
|
354
|
-
<
|
|
355
|
-
|
|
356
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">3 raw buttons (zoom controls, save/cancel)</p>
|
|
357
|
-
</div>
|
|
358
|
-
<span class="px-2 py-1 rounded text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-300">3 buttons</span>
|
|
419
|
+
<div class="space-y-3">
|
|
420
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500">
|
|
421
|
+
<div class="flex justify-between">
|
|
422
|
+
<span class="font-medium">recipes/inputs/OTPInput.svelte</span>
|
|
423
|
+
<span class="text-green-600">1 input ✓</span>
|
|
359
424
|
</div>
|
|
360
|
-
<p class="text-
|
|
361
|
-
<strong>Recommendation:</strong> Use Button variant="icon" for zoom, Button for save/cancel
|
|
362
|
-
</p>
|
|
425
|
+
<p class="text-sm text-gray-500 mt-1">OTP digit inputs - highly specialized, raw input appropriate</p>
|
|
363
426
|
</div>
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
<
|
|
368
|
-
<h3 class="font-bold text-gray-900 dark:text-white">patterns/page/PageLoader.svelte</h3>
|
|
369
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">1 retry button</p>
|
|
370
|
-
</div>
|
|
371
|
-
<span class="px-2 py-1 rounded text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-300">1 button</span>
|
|
427
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500">
|
|
428
|
+
<div class="flex justify-between">
|
|
429
|
+
<span class="font-medium">recipes/inputs/Search.svelte</span>
|
|
430
|
+
<span class="text-green-600">1 input ✓</span>
|
|
372
431
|
</div>
|
|
373
|
-
<p class="text-
|
|
374
|
-
|
|
375
|
-
|
|
432
|
+
<p class="text-sm text-gray-500 mt-1">Search input - specialized styling and behavior</p>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500">
|
|
435
|
+
<div class="flex justify-between">
|
|
436
|
+
<span class="font-medium">recipes/inputs/MultiSelect.svelte</span>
|
|
437
|
+
<span class="text-green-600">1 input ✓</span>
|
|
438
|
+
</div>
|
|
439
|
+
<p class="text-sm text-gray-500 mt-1">Filter/search input within multiselect dropdown</p>
|
|
440
|
+
</div>
|
|
441
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500">
|
|
442
|
+
<div class="flex justify-between">
|
|
443
|
+
<span class="font-medium">recipes/inputs/PlaceAutocomplete.svelte</span>
|
|
444
|
+
<span class="text-green-600">1 input ✓</span>
|
|
445
|
+
</div>
|
|
446
|
+
<p class="text-sm text-gray-500 mt-1">Google Places API integration - requires raw input for autocomplete</p>
|
|
447
|
+
</div>
|
|
448
|
+
<div class="bg-white dark:bg-gray-800 rounded-lg p-3 border-l-4 border-green-500">
|
|
449
|
+
<div class="flex justify-between">
|
|
450
|
+
<span class="font-medium">recipes/CropImage/CropImage.svelte</span>
|
|
451
|
+
<span class="text-green-600">1 input ✓</span>
|
|
452
|
+
</div>
|
|
453
|
+
<p class="text-sm text-gray-500 mt-1">File input for image upload - must be raw for file picker</p>
|
|
376
454
|
</div>
|
|
377
455
|
</div>
|
|
378
456
|
</div>
|
|
379
457
|
|
|
380
|
-
<!--
|
|
381
|
-
<div class="bg-
|
|
382
|
-
<h2 class="text-xl font-semibold text-
|
|
383
|
-
|
|
458
|
+
<!-- RAW FORMS -->
|
|
459
|
+
<div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-6">
|
|
460
|
+
<h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-4">
|
|
461
|
+
Raw <form> Elements (1 file, 4 forms)
|
|
384
462
|
</h2>
|
|
463
|
+
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
|
|
464
|
+
No shared Form component exists. Raw <code class="bg-gray-200 dark:bg-gray-700 px-1 rounded"><form></code> elements are acceptable as semantic containers.
|
|
465
|
+
</p>
|
|
385
466
|
|
|
386
|
-
<
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
467
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded">
|
|
468
|
+
<div class="flex justify-between">
|
|
469
|
+
<span class="font-medium">recipes/SuperLogin/SuperLogin.svelte</span>
|
|
470
|
+
<span class="text-gray-400">4 forms</span>
|
|
471
|
+
</div>
|
|
472
|
+
<p class="text-sm text-gray-500 mt-1">Login, password reset, OTP, and email verification forms - semantic containers for form submission</p>
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
|
|
476
|
+
<!-- RAW TEXTAREAS -->
|
|
477
|
+
<div class="bg-gray-50 dark:bg-gray-800 rounded-lg p-6">
|
|
478
|
+
<h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-4">
|
|
479
|
+
Raw <textarea> Elements (3 files - Expected)
|
|
480
|
+
</h2>
|
|
481
|
+
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">
|
|
482
|
+
All textarea usage is in primitives and recipes - no migration needed.
|
|
390
483
|
</p>
|
|
391
484
|
|
|
392
|
-
<div class="grid md:grid-cols-
|
|
393
|
-
<div class="bg-white dark:bg-gray-
|
|
394
|
-
<
|
|
395
|
-
<
|
|
396
|
-
<li>Button/Button.svelte - IS the component</li>
|
|
397
|
-
<li>Input/Input.svelte - IS the component</li>
|
|
398
|
-
<li>Checkbox/Checkbox.svelte - IS the component</li>
|
|
399
|
-
<li>Radio/Radio.svelte - IS the component</li>
|
|
400
|
-
</ul>
|
|
485
|
+
<div class="grid md:grid-cols-3 gap-3 text-sm">
|
|
486
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
487
|
+
<span>primitives/Input/Textarea.svelte</span>
|
|
488
|
+
<span class="text-green-500">primitive ✓</span>
|
|
401
489
|
</div>
|
|
402
|
-
<div class="bg-white dark:bg-gray-
|
|
403
|
-
<
|
|
404
|
-
<
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
<li>SelectDropdown - Custom select</li>
|
|
410
|
-
</ul>
|
|
490
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
491
|
+
<span>primitives/Input/Input.svelte</span>
|
|
492
|
+
<span class="text-green-500">primitive ✓</span>
|
|
493
|
+
</div>
|
|
494
|
+
<div class="bg-white dark:bg-gray-900 p-3 rounded flex justify-between">
|
|
495
|
+
<span>recipes/modals/InputModal.svelte</span>
|
|
496
|
+
<span class="text-green-500">recipe ✓</span>
|
|
411
497
|
</div>
|
|
412
498
|
</div>
|
|
413
499
|
</div>
|
|
414
500
|
|
|
501
|
+
<!-- RAW SELECTS -->
|
|
502
|
+
<div class="bg-green-50 dark:bg-green-900/20 rounded-lg p-6">
|
|
503
|
+
<h2 class="text-xl font-semibold text-green-800 dark:text-green-300 mb-4">
|
|
504
|
+
Raw <select> Elements: None Found ✓
|
|
505
|
+
</h2>
|
|
506
|
+
<p class="text-sm text-green-700 dark:text-green-400">
|
|
507
|
+
No raw <code class="bg-green-100 dark:bg-green-800 px-1 rounded"><select></code> elements found outside of primitives.
|
|
508
|
+
All select functionality uses custom dropdown components (MultiSelect, SelectDropdown).
|
|
509
|
+
</p>
|
|
510
|
+
</div>
|
|
511
|
+
|
|
415
512
|
<!-- CALENDAR PACKAGE -->
|
|
416
513
|
<div class="bg-purple-50 dark:bg-purple-900/20 rounded-lg p-6">
|
|
417
514
|
<h2 class="text-xl font-semibold text-purple-800 dark:text-purple-300 mb-4">
|
|
418
|
-
|
|
515
|
+
Calendar Package: Phase 4 (16 buttons in 6 files)
|
|
419
516
|
</h2>
|
|
420
|
-
|
|
421
517
|
<p class="text-sm text-purple-700 dark:text-purple-400 mb-4">
|
|
422
|
-
|
|
423
|
-
This code is embedded from venue-calendar-npm and may need updates in that source package.
|
|
518
|
+
Embedded from venue-calendar-npm. Handle separately - cannot import from svelte-components (circular dependency).
|
|
424
519
|
</p>
|
|
425
520
|
|
|
426
521
|
<table class="w-full text-sm">
|
|
427
522
|
<thead>
|
|
428
523
|
<tr class="text-left border-b border-purple-300 dark:border-purple-700">
|
|
429
524
|
<th class="py-2 font-semibold text-purple-700 dark:text-purple-300">File</th>
|
|
430
|
-
<th class="py-2 font-semibold text-purple-700 dark:text-purple-300">
|
|
525
|
+
<th class="py-2 font-semibold text-purple-700 dark:text-purple-300">Count</th>
|
|
431
526
|
<th class="py-2 font-semibold text-purple-700 dark:text-purple-300">Purpose</th>
|
|
432
527
|
</tr>
|
|
433
528
|
</thead>
|
|
434
529
|
<tbody class="text-purple-600 dark:text-purple-400">
|
|
435
530
|
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
436
|
-
<td class="py-2">
|
|
437
|
-
<td class="py-2">3</td>
|
|
438
|
-
<td class="py-2">Month navigation arrows</td>
|
|
439
|
-
</tr>
|
|
440
|
-
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
441
|
-
<td class="py-2">OrderSummary</td>
|
|
531
|
+
<td class="py-2">OrderSummary.svelte</td>
|
|
442
532
|
<td class="py-2">5</td>
|
|
443
533
|
<td class="py-2">Checkout actions</td>
|
|
444
534
|
</tr>
|
|
445
535
|
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
446
|
-
<td class="py-2">
|
|
536
|
+
<td class="py-2">MiniMonthCalendar.svelte</td>
|
|
447
537
|
<td class="py-2">3</td>
|
|
448
538
|
<td class="py-2">Month navigation</td>
|
|
449
539
|
</tr>
|
|
450
540
|
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
451
|
-
<td class="py-2">
|
|
541
|
+
<td class="py-2">MonthSwitcher.svelte</td>
|
|
452
542
|
<td class="py-2">3</td>
|
|
453
|
-
<td class="py-2">
|
|
543
|
+
<td class="py-2">Month navigation</td>
|
|
454
544
|
</tr>
|
|
455
545
|
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
456
|
-
<td class="py-2">
|
|
546
|
+
<td class="py-2">AboutShow.svelte</td>
|
|
547
|
+
<td class="py-2">3</td>
|
|
548
|
+
<td class="py-2">Show details</td>
|
|
549
|
+
</tr>
|
|
550
|
+
<tr class="border-b border-purple-200 dark:border-purple-800">
|
|
551
|
+
<td class="py-2">ShowCard.svelte</td>
|
|
457
552
|
<td class="py-2">1</td>
|
|
458
553
|
<td class="py-2">CTA button</td>
|
|
459
554
|
</tr>
|
|
460
555
|
<tr>
|
|
461
|
-
<td class="py-2">FAQs</td>
|
|
556
|
+
<td class="py-2">FAQs.svelte</td>
|
|
462
557
|
<td class="py-2">1</td>
|
|
463
558
|
<td class="py-2">Accordion toggle</td>
|
|
464
559
|
</tr>
|
|
465
560
|
</tbody>
|
|
466
561
|
</table>
|
|
467
562
|
</div>
|
|
563
|
+
|
|
564
|
+
<!-- STORIES - LOW PRIORITY -->
|
|
565
|
+
<div class="bg-gray-100 dark:bg-gray-800/50 rounded-lg p-6">
|
|
566
|
+
<h2 class="text-xl font-semibold text-gray-600 dark:text-gray-400 mb-4">
|
|
567
|
+
Stories: Low Priority (~30 buttons in 19 files)
|
|
568
|
+
</h2>
|
|
569
|
+
<p class="text-sm text-gray-500 dark:text-gray-500">
|
|
570
|
+
Demo and test files. Not user-facing. Fix only if time permits.
|
|
571
|
+
</p>
|
|
572
|
+
</div>
|
|
468
573
|
</div>
|
|
469
574
|
</Story>
|
|
470
575
|
|
|
471
576
|
<Story name="micdrop-frontend Detailed">
|
|
472
577
|
<div class="space-y-8">
|
|
473
|
-
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">micdrop-frontend:
|
|
578
|
+
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">micdrop-frontend: Fresh Audit (Dec 26, 2025)</h1>
|
|
474
579
|
<p class="text-gray-600 dark:text-gray-400">
|
|
475
|
-
|
|
580
|
+
<strong>12 files</strong> with raw buttons. Total: <strong>25 raw buttons</strong> (9 production, 8 storybook).
|
|
476
581
|
</p>
|
|
477
582
|
|
|
478
583
|
<!-- Summary -->
|
|
@@ -645,9 +750,10 @@ grep -r "<button" /Users/peet/repos/performers-portal/src --include="*.svelte
|
|
|
645
750
|
|
|
646
751
|
<Story name="performers-portal Detailed">
|
|
647
752
|
<div class="space-y-8">
|
|
648
|
-
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">performers-portal:
|
|
753
|
+
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">performers-portal: Fresh Audit (Dec 26, 2025)</h1>
|
|
649
754
|
<p class="text-gray-600 dark:text-gray-400">
|
|
650
|
-
|
|
755
|
+
<strong>7 files</strong> with raw buttons. Total: <strong>27 raw buttons</strong> (24 production, 3 test/story).
|
|
756
|
+
<span class="text-red-600 font-medium">Critical: Only 3 files use shared library!</span>
|
|
651
757
|
</p>
|
|
652
758
|
|
|
653
759
|
<!-- Summary -->
|
|
@@ -1071,84 +1177,66 @@ grep -r "from '\$lib/components/Button" /Users/peet/repos/micdrop-frontend/src -
|
|
|
1071
1177
|
<div class="space-y-8">
|
|
1072
1178
|
<h1 class="text-2xl font-bold text-gray-900 dark:text-white">Recommended Action Plan</h1>
|
|
1073
1179
|
|
|
1074
|
-
|
|
1075
|
-
|
|
1180
|
+
<!-- Phase 1 COMPLETE -->
|
|
1181
|
+
<div class="bg-green-50 dark:bg-green-900/20 rounded-lg p-6 border-2 border-green-500">
|
|
1182
|
+
<h2 class="text-xl font-bold text-green-800 dark:text-green-300 mb-4">✓ Phase 1: Audit Complete (Dec 26, 2025)</h2>
|
|
1076
1183
|
|
|
1077
1184
|
<div class="space-y-3">
|
|
1078
1185
|
<div class="flex items-start gap-3">
|
|
1079
|
-
<input type="checkbox" class="mt-1" />
|
|
1186
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1080
1187
|
<div>
|
|
1081
|
-
<p class="font-medium text-
|
|
1082
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">buttons, inputs, forms, selects, textareas</p>
|
|
1188
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">Scan svelte-components: 36 files, 13 need fixing</p>
|
|
1083
1189
|
</div>
|
|
1084
1190
|
</div>
|
|
1085
1191
|
<div class="flex items-start gap-3">
|
|
1086
|
-
<input type="checkbox" class="mt-1" />
|
|
1192
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1087
1193
|
<div>
|
|
1088
|
-
<p class="font-medium text-
|
|
1194
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">Scan micdrop-frontend: 12 files, 25 raw buttons</p>
|
|
1089
1195
|
</div>
|
|
1090
1196
|
</div>
|
|
1091
1197
|
<div class="flex items-start gap-3">
|
|
1092
|
-
<input type="checkbox" class="mt-1" />
|
|
1198
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1093
1199
|
<div>
|
|
1094
|
-
<p class="font-medium text-
|
|
1095
|
-
<p class="text-sm text-gray-500 dark:text-gray-400">Which exist? Which are used? Which are outdated?</p>
|
|
1200
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">Scan performers-portal: 7 files, 27 raw buttons</p>
|
|
1096
1201
|
</div>
|
|
1097
1202
|
</div>
|
|
1098
1203
|
<div class="flex items-start gap-3">
|
|
1099
|
-
<input type="checkbox" class="mt-1" />
|
|
1204
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1100
1205
|
<div>
|
|
1101
|
-
<p class="font-medium text-
|
|
1206
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">Document findings with categorization and suggestions</p>
|
|
1102
1207
|
</div>
|
|
1103
1208
|
</div>
|
|
1104
1209
|
</div>
|
|
1105
1210
|
</div>
|
|
1106
1211
|
|
|
1107
|
-
|
|
1108
|
-
|
|
1212
|
+
<!-- Phase 2 COMPLETE -->
|
|
1213
|
+
<div class="bg-green-50 dark:bg-green-900/20 rounded-lg p-6 border-2 border-green-500">
|
|
1214
|
+
<h2 class="text-xl font-bold text-green-800 dark:text-green-300 mb-4">✓ Phase 2: Fix svelte-components (COMPLETE - Dec 26, 2025)</h2>
|
|
1215
|
+
<p class="text-sm text-green-600 dark:text-green-400 mb-4">All 13 raw buttons in 2 files have been migrated. New Button variants added: avatar, menu-item, menu-item-danger, card.</p>
|
|
1109
1216
|
|
|
1110
1217
|
<div class="space-y-3">
|
|
1111
1218
|
<div class="flex items-start gap-3">
|
|
1112
|
-
<input type="checkbox" class="mt-1" />
|
|
1113
|
-
<div>
|
|
1114
|
-
<p class="font-medium text-blue-700 dark:text-blue-400">Replace raw buttons in Header.svelte (11)</p>
|
|
1115
|
-
</div>
|
|
1116
|
-
</div>
|
|
1117
|
-
<div class="flex items-start gap-3">
|
|
1118
|
-
<input type="checkbox" class="mt-1" />
|
|
1219
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1119
1220
|
<div>
|
|
1120
|
-
<p class="font-medium text-
|
|
1221
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">CropImage.svelte - fully migrated to Button</p>
|
|
1121
1222
|
</div>
|
|
1122
1223
|
</div>
|
|
1123
1224
|
<div class="flex items-start gap-3">
|
|
1124
|
-
<input type="checkbox" class="mt-1" />
|
|
1225
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1125
1226
|
<div>
|
|
1126
|
-
<p class="font-medium text-
|
|
1227
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">Header.svelte - 9 raw buttons → Button avatar/menu-item/menu-item-danger</p>
|
|
1127
1228
|
</div>
|
|
1128
1229
|
</div>
|
|
1129
1230
|
<div class="flex items-start gap-3">
|
|
1130
|
-
<input type="checkbox" class="mt-1" />
|
|
1231
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1131
1232
|
<div>
|
|
1132
|
-
<p class="font-medium text-
|
|
1233
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">SuperLogin.svelte - 4 raw buttons → Button card/link variants</p>
|
|
1133
1234
|
</div>
|
|
1134
1235
|
</div>
|
|
1135
1236
|
<div class="flex items-start gap-3">
|
|
1136
|
-
<input type="checkbox" class="mt-1" />
|
|
1137
|
-
<div>
|
|
1138
|
-
<p class="font-medium text-blue-700 dark:text-blue-400">Replace raw button in PageLoader.svelte (1)</p>
|
|
1139
|
-
</div>
|
|
1140
|
-
</div>
|
|
1141
|
-
<div class="flex items-start gap-3">
|
|
1142
|
-
<input type="checkbox" class="mt-1" />
|
|
1143
|
-
<div>
|
|
1144
|
-
<p class="font-medium text-blue-700 dark:text-blue-400">Ensure Button has all needed variants</p>
|
|
1145
|
-
<p class="text-sm text-blue-500 dark:text-blue-500">ghost, icon, link - do they cover all use cases?</p>
|
|
1146
|
-
</div>
|
|
1147
|
-
</div>
|
|
1148
|
-
<div class="flex items-start gap-3">
|
|
1149
|
-
<input type="checkbox" class="mt-1" />
|
|
1237
|
+
<input type="checkbox" checked disabled class="mt-1" />
|
|
1150
1238
|
<div>
|
|
1151
|
-
<p class="font-medium text-
|
|
1239
|
+
<p class="font-medium text-green-700 dark:text-green-400 line-through">PR #25 updated with all fixes</p>
|
|
1152
1240
|
</div>
|
|
1153
1241
|
</div>
|
|
1154
1242
|
</div>
|