@getmicdrop/svelte-components 5.12.0 → 5.14.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 (86) hide show
  1. package/dist/calendar/OrderSummary/OrderSummary.svelte +67 -7
  2. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts +2 -0
  3. package/dist/calendar/OrderSummary/OrderSummary.svelte.d.ts.map +1 -1
  4. package/dist/index.spec.js +0 -1
  5. package/dist/patterns/navigation/Header.svelte +23 -27
  6. package/dist/patterns/navigation/Header.svelte.d.ts.map +1 -1
  7. package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -0
  8. package/dist/primitives/AvatarButton/AvatarButton.svelte.d.ts +18 -0
  9. package/dist/primitives/AvatarButton/AvatarButton.svelte.d.ts.map +1 -0
  10. package/dist/primitives/BottomSheet/BottomSheet.spec.js +19 -19
  11. package/dist/primitives/BottomSheet/BottomSheet.svelte +5 -5
  12. package/dist/primitives/BottomSheet/BottomSheet.svelte.d.ts +2 -2
  13. package/dist/primitives/BottomSheet/BottomSheet.svelte.d.ts.map +1 -1
  14. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte +3 -3
  15. package/dist/primitives/BottomSheet/BottomSheetWrapper.test.svelte.d.ts +1 -1
  16. package/dist/primitives/Button/Button.spec.js +16 -14
  17. package/dist/primitives/Button/Button.svelte +9 -45
  18. package/dist/primitives/Button/Button.svelte.d.ts.map +1 -1
  19. package/dist/primitives/CardAction/CardAction.svelte +68 -0
  20. package/dist/primitives/CardAction/CardAction.svelte.d.ts +20 -0
  21. package/dist/primitives/CardAction/CardAction.svelte.d.ts.map +1 -0
  22. package/dist/primitives/Drawer/Drawer.spec.js +33 -33
  23. package/dist/primitives/Drawer/Drawer.svelte +5 -9
  24. package/dist/primitives/Drawer/Drawer.svelte.d.ts +2 -3
  25. package/dist/primitives/Drawer/Drawer.svelte.d.ts.map +1 -1
  26. package/dist/primitives/Input/Input.svelte +1 -1
  27. package/dist/primitives/LandingButton/LandingButton.svelte +92 -0
  28. package/dist/primitives/LandingButton/LandingButton.svelte.d.ts +22 -0
  29. package/dist/primitives/LandingButton/LandingButton.svelte.d.ts.map +1 -0
  30. package/dist/primitives/MenuItem/MenuItem.svelte +85 -0
  31. package/dist/primitives/MenuItem/MenuItem.svelte.d.ts +24 -0
  32. package/dist/primitives/MenuItem/MenuItem.svelte.d.ts.map +1 -0
  33. package/dist/primitives/Modal/Modal.spec.js +7 -7
  34. package/dist/primitives/Modal/Modal.stories.svelte +3 -3
  35. package/dist/primitives/Modal/Modal.svelte +25 -18
  36. package/dist/primitives/Modal/Modal.svelte.d.ts +5 -5
  37. package/dist/primitives/Modal/Modal.svelte.d.ts.map +1 -1
  38. package/dist/primitives/Modal/ModalTestWrapper.svelte +3 -3
  39. package/dist/primitives/Modal/ModalTestWrapper.svelte.d.ts +2 -2
  40. package/dist/primitives/NavItem/NavItem.svelte +75 -0
  41. package/dist/primitives/NavItem/NavItem.svelte.d.ts +20 -0
  42. package/dist/primitives/NavItem/NavItem.svelte.d.ts.map +1 -0
  43. package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -0
  44. package/dist/primitives/SearchResultItem/SearchResultItem.svelte.d.ts +26 -0
  45. package/dist/primitives/SearchResultItem/SearchResultItem.svelte.d.ts.map +1 -0
  46. package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -0
  47. package/dist/primitives/SidebarToggle/SidebarToggle.svelte.d.ts +18 -0
  48. package/dist/primitives/SidebarToggle/SidebarToggle.svelte.d.ts.map +1 -0
  49. package/dist/primitives/index.d.ts +7 -0
  50. package/dist/primitives/index.js +21 -0
  51. package/dist/recipes/SuperLogin/SuperLogin.svelte +3 -3
  52. package/dist/recipes/SuperLogin/SuperLogin.svelte.d.ts.map +1 -1
  53. package/dist/recipes/inputs/index.d.ts +0 -1
  54. package/dist/recipes/inputs/index.js +0 -1
  55. package/dist/recipes/modals/AlertModal.spec.js +2 -2
  56. package/dist/recipes/modals/AlertModal.svelte +6 -6
  57. package/dist/recipes/modals/AlertModal.svelte.d.ts +3 -3
  58. package/dist/recipes/modals/ConfirmationModal.spec.js +2 -2
  59. package/dist/recipes/modals/ConfirmationModal.svelte +5 -5
  60. package/dist/recipes/modals/ConfirmationModal.svelte.d.ts +3 -3
  61. package/dist/recipes/modals/InputModal.spec.js +2 -2
  62. package/dist/recipes/modals/InputModal.svelte +4 -4
  63. package/dist/recipes/modals/InputModal.svelte.d.ts +3 -3
  64. package/dist/recipes/modals/ModalTestWrapper.spec.js +49 -49
  65. package/dist/recipes/modals/ModalTestWrapper.svelte +3 -3
  66. package/dist/recipes/modals/ModalTestWrapper.svelte.d.ts +2 -2
  67. package/dist/recipes/modals/StatusModal.spec.js +2 -2
  68. package/dist/recipes/modals/StatusModal.svelte +4 -4
  69. package/dist/recipes/modals/StatusModal.svelte.d.ts +3 -3
  70. package/dist/stories/ComponentConsolidation.stories.svelte +10 -10
  71. package/dist/stories/PrimitivesGallery.svelte +25 -21
  72. package/dist/stories/PrimitivesGallery.svelte.d.ts.map +1 -1
  73. package/dist/stories/RecipesGallery.spec.js +9 -18
  74. package/dist/stories/RecipesGallery.svelte +5 -22
  75. package/dist/stories/RecipesGallery.svelte.d.ts.map +1 -1
  76. package/dist/tokens/__tests__/sizing.test.js +5 -7
  77. package/dist/tokens/sizing.d.ts +20 -19
  78. package/dist/tokens/sizing.d.ts.map +1 -1
  79. package/dist/tokens/sizing.js +20 -19
  80. package/package.json +1 -1
  81. package/dist/recipes/inputs/SelectDropdown.spec.d.ts +0 -2
  82. package/dist/recipes/inputs/SelectDropdown.spec.d.ts.map +0 -1
  83. package/dist/recipes/inputs/SelectDropdown.spec.js +0 -518
  84. package/dist/recipes/inputs/SelectDropdown.svelte +0 -171
  85. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts +0 -16
  86. package/dist/recipes/inputs/SelectDropdown.svelte.d.ts.map +0 -1
@@ -17,7 +17,7 @@ import { expect } from 'vitest';
17
17
  * 1. Header with title, description, and dark mode toggle
18
18
  * 2. Feedback Components section (EmptyState, ErrorDisplay, StatusIndicator)
19
19
  * 3. Form Fields section (FormField, SelectField, TextareaField, CheckboxField, ToggleField, RadioGroup)
20
- * 4. Special Inputs section (PasswordInput, PasswordStrengthIndicator, OTPInput, Search, MultiSelect, SelectDropdown)
20
+ * 4. Special Inputs section (PasswordInput, PasswordStrengthIndicator, OTPInput, Search, MultiSelect)
21
21
  * 5. Modals section (AlertModal, ConfirmationModal, InputModal, StatusModal)
22
22
  * 6. Common Recipe Patterns section (Registration Form, Settings Form)
23
23
  *
@@ -38,7 +38,7 @@ describe('RecipesGallery Component - Documentation', () => {
38
38
  const componentStructure = {
39
39
  imports: {
40
40
  feedback: ['EmptyState', 'ErrorDisplay', 'StatusIndicator'],
41
- inputs: ['MultiSelect', 'OTPInput', 'PasswordInput', 'PasswordStrengthIndicator', 'Search', 'SelectDropdown'],
41
+ inputs: ['MultiSelect', 'OTPInput', 'PasswordInput', 'PasswordStrengthIndicator', 'Search'],
42
42
  modals: ['AlertModal', 'ConfirmationModal', 'InputModal', 'StatusModal'],
43
43
  fields: ['CheckboxField', 'FormField', 'RadioGroup', 'SelectField', 'TextareaField', 'ToggleField'],
44
44
  primitives: ['Button', 'Card']
@@ -54,7 +54,6 @@ describe('RecipesGallery Component - Documentation', () => {
54
54
  passwordValue: 'string',
55
55
  searchValue: 'string',
56
56
  multiSelectValue: 'string[]',
57
- selectDropdownValue: '{label: string, value: string} | null',
58
57
  checkboxChecked: 'boolean',
59
58
  toggleChecked: 'boolean',
60
59
  radioValue: 'string',
@@ -109,7 +108,6 @@ describe('RecipesGallery Component - Documentation', () => {
109
108
  'PasswordInput',
110
109
  'PasswordStrengthIndicator',
111
110
  'Search',
112
- 'SelectDropdown',
113
111
  'AlertModal',
114
112
  'ConfirmationModal',
115
113
  'InputModal',
@@ -123,7 +121,7 @@ describe('RecipesGallery Component - Documentation', () => {
123
121
  ];
124
122
 
125
123
  // All components are imported in the file
126
- expect(recipeComponents).toHaveLength(19);
124
+ expect(recipeComponents).toHaveLength(18);
127
125
  expect(recipeComponents).toContain('EmptyState');
128
126
  expect(recipeComponents).toContain('PasswordInput');
129
127
  expect(recipeComponents).toContain('AlertModal');
@@ -132,13 +130,13 @@ describe('RecipesGallery Component - Documentation', () => {
132
130
 
133
131
  test('Modal state management is properly implemented', () => {
134
132
  const modalStates = {
135
- alert: { show: false, autoClose: 0 },
136
- confirm: { show: false },
137
- input: { show: false },
138
- status: { show: false, type: 'success', autoCloseDelay: 2000 }
133
+ alert: { open: false, autoClose: 0 },
134
+ confirm: { open: false },
135
+ input: { open: false },
136
+ status: { open: false, type: 'success', autoCloseDelay: 2000 }
139
137
  };
140
138
 
141
- expect(modalStates.alert.show).toBe(false);
139
+ expect(modalStates.alert.open).toBe(false);
142
140
  expect(modalStates.status.autoCloseDelay).toBe(2000);
143
141
  });
144
142
 
@@ -148,7 +146,6 @@ describe('RecipesGallery Component - Documentation', () => {
148
146
  passwordValue: 'string',
149
147
  searchValue: 'string',
150
148
  multiSelectValue: 'string[]',
151
- selectDropdownValue: '{label: string, value: string} | null',
152
149
  checkboxChecked: 'boolean',
153
150
  toggleChecked: 'boolean',
154
151
  radioValue: 'string',
@@ -158,7 +155,7 @@ describe('RecipesGallery Component - Documentation', () => {
158
155
  };
159
156
 
160
157
  expect(fieldBindings.otpValue).toBe('string[]');
161
- expect(fieldBindings.selectDropdownValue).toContain('label');
158
+ // Note: selectDropdownValue removed - SelectDropdown has been deprecated, use Select
162
159
  expect(fieldBindings.checkboxChecked).toBe('boolean');
163
160
  });
164
161
 
@@ -177,11 +174,6 @@ describe('RecipesGallery Component - Documentation', () => {
177
174
  { value: 'lg', name: 'Large' },
178
175
  { value: 'xl', name: 'Extra Large' }
179
176
  ],
180
- selectDropdownOptions: [
181
- { value: 'low', label: 'Low Priority' },
182
- { value: 'medium', label: 'Medium Priority' },
183
- { value: 'high', label: 'High Priority' }
184
- ],
185
177
  radioOptions: [
186
178
  { value: 'daily', label: 'Daily', description: 'Get updates every day' },
187
179
  { value: 'weekly', label: 'Weekly', description: 'Get updates once a week' },
@@ -191,7 +183,6 @@ describe('RecipesGallery Component - Documentation', () => {
191
183
 
192
184
  expect(demoData.multiSelectItems).toHaveLength(5);
193
185
  expect(demoData.selectFieldItems).toHaveLength(4);
194
- expect(demoData.selectDropdownOptions).toHaveLength(3);
195
186
  expect(demoData.radioOptions).toHaveLength(3);
196
187
  });
197
188
 
@@ -15,7 +15,6 @@
15
15
  import PasswordInput from '../recipes/inputs/PasswordInput.svelte';
16
16
  import PasswordStrengthIndicator from '../recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte';
17
17
  import Search from '../recipes/inputs/Search.svelte';
18
- import SelectDropdown from '../recipes/inputs/SelectDropdown.svelte';
19
18
 
20
19
  // Modals
21
20
  import AlertModal from '../recipes/modals/AlertModal.svelte';
@@ -50,7 +49,6 @@
50
49
  let passwordValue = $state('');
51
50
  let searchValue = $state('');
52
51
  let multiSelectValue = $state<string[]>([]);
53
- let selectDropdownValue = $state<{label: string, value: string} | null>(null); // SelectDropdown expects object
54
52
 
55
53
  // Field states
56
54
  let checkboxChecked = $state(false);
@@ -92,13 +90,6 @@
92
90
  { value: 'xl', name: 'Extra Large' },
93
91
  ];
94
92
 
95
- // SelectDropdown uses 'options' with {label, value} format
96
- const selectDropdownOptions = [
97
- { value: 'low', label: 'Low Priority' },
98
- { value: 'medium', label: 'Medium Priority' },
99
- { value: 'high', label: 'High Priority' },
100
- ];
101
-
102
93
  const radioOptions = [
103
94
  { value: 'daily', label: 'Daily', description: 'Get updates every day' },
104
95
  { value: 'weekly', label: 'Weekly', description: 'Get updates once a week' },
@@ -259,7 +250,7 @@
259
250
  <!-- ========== SPECIAL INPUTS ========== -->
260
251
  <section class={sectionClass(isDark)}>
261
252
  <h2 class={headingClass(isDark)}>Special Inputs</h2>
262
- <p class={subheadingClass(isDark)}>Password, OTP, Search, MultiSelect, SelectDropdown</p>
253
+ <p class={subheadingClass(isDark)}>Password, OTP, Search, MultiSelect</p>
263
254
 
264
255
  <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
265
256
  <div>
@@ -303,14 +294,6 @@
303
294
  />
304
295
  </div>
305
296
 
306
- <div>
307
- <p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">SelectDropdown</p>
308
- <SelectDropdown
309
- options={selectDropdownOptions}
310
- bind:selected={selectDropdownValue}
311
- placeholder="Priority"
312
- />
313
- </div>
314
297
  </div>
315
298
  </section>
316
299
 
@@ -360,7 +343,7 @@
360
343
 
361
344
  <!-- AlertModal -->
362
345
  <AlertModal
363
- bind:show={showAlertModal}
346
+ bind:open={showAlertModal}
364
347
  title="Alert"
365
348
  message="This is an alert message that requires your attention."
366
349
  buttonText="OK"
@@ -370,7 +353,7 @@
370
353
 
371
354
  <!-- ConfirmationModal -->
372
355
  <ConfirmationModal
373
- bind:show={showConfirmModal}
356
+ bind:open={showConfirmModal}
374
357
  title="Confirm Action"
375
358
  description="Are you sure you want to proceed? This action cannot be undone."
376
359
  primaryButtonText="Yes, proceed"
@@ -385,7 +368,7 @@
385
368
 
386
369
  <!-- InputModal -->
387
370
  <InputModal
388
- bind:show={showInputModal}
371
+ bind:open={showInputModal}
389
372
  title="Enter Information"
390
373
  inputLabel="Name"
391
374
  inputPlaceholder="Enter your name"
@@ -400,7 +383,7 @@
400
383
 
401
384
  <!-- StatusModal -->
402
385
  <StatusModal
403
- bind:show={showStatusModal}
386
+ bind:open={showStatusModal}
404
387
  iconType={statusModalType}
405
388
  title={statusModalType === 'loading' ? 'Processing...' : statusModalType === 'success' ? 'Success!' : 'Error'}
406
389
  description={statusModalType === 'loading' ? 'Please wait...' : statusModalType === 'success' ? 'Operation completed successfully.' : 'Something went wrong.'}
@@ -1 +1 @@
1
- {"version":3,"file":"RecipesGallery.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/stories/RecipesGallery.svelte.ts"],"names":[],"mappings":"AAoYA,QAAA,MAAM,cAAc,2DAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"RecipesGallery.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/stories/RecipesGallery.svelte.ts"],"names":[],"mappings":"AAsXA,QAAA,MAAM,cAAc,2DAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -22,9 +22,8 @@ describe('sizing tokens', () => {
22
22
  expect(formInputSizes.md).toContain('h-10');
23
23
  expect(formInputSizes.lg).toContain('h-12');
24
24
  });
25
- it('includes padding and text size classes', () => {
25
+ it('includes horizontal padding and text size classes', () => {
26
26
  for (const size of Object.values(formInputSizes)) {
27
- expect(size).toMatch(/py-\d/);
28
27
  expect(size).toMatch(/px-\d/);
29
28
  expect(size).toMatch(/text-(sm|base)/);
30
29
  }
@@ -39,14 +38,13 @@ describe('sizing tokens', () => {
39
38
  expect(formControlSizes).toHaveProperty('md');
40
39
  expect(formControlSizes).toHaveProperty('lg');
41
40
  });
42
- it('does NOT include height classes (for flexible controls)', () => {
41
+ it('includes explicit height classes for toolbar alignment', () => {
43
42
  for (const size of Object.values(formControlSizes)) {
44
- expect(size).not.toMatch(/h-\d/);
43
+ expect(size).toMatch(/h-\d+/);
45
44
  }
46
45
  });
47
46
  it('includes padding and text size classes', () => {
48
47
  for (const size of Object.values(formControlSizes)) {
49
- expect(size).toMatch(/py-\d/);
50
48
  expect(size).toMatch(/px-\d/);
51
49
  expect(size).toMatch(/text-(sm|base)/);
52
50
  }
@@ -170,11 +168,11 @@ describe('sizing tokens', () => {
170
168
  expect(buttonSizes).toHaveProperty('full-md-auto');
171
169
  expect(buttonSizes).toHaveProperty('half');
172
170
  });
173
- it('standard sizes include padding and text sizing', () => {
171
+ it('standard sizes include explicit height, padding and text sizing', () => {
174
172
  const standardSizes = ['xs', 'sm', 'md', 'lg', 'xl'];
175
173
  for (const size of standardSizes) {
174
+ expect(buttonSizes[size]).toMatch(/h-\d+/);
176
175
  expect(buttonSizes[size]).toMatch(/px-\d/);
177
- expect(buttonSizes[size]).toMatch(/py-\d/);
178
176
  expect(buttonSizes[size]).toMatch(/text-(xs|sm)/);
179
177
  }
180
178
  });
@@ -6,21 +6,21 @@
6
6
  */
7
7
  /**
8
8
  * Form input sizes - for Input component with fixed heights
9
- * Provides consistent height, padding, and text sizing for text inputs.
9
+ * Uses explicit heights for consistent toolbar alignment.
10
10
  */
11
11
  export declare const formInputSizes: {
12
- readonly sm: "py-2 px-3 text-sm h-9";
13
- readonly md: "py-2.5 px-4 text-sm h-10";
14
- readonly lg: "py-3 px-4 text-base h-12";
12
+ readonly sm: "h-9 px-3 text-sm";
13
+ readonly md: "h-10 px-4 text-sm";
14
+ readonly lg: "h-12 px-4 text-base";
15
15
  };
16
16
  /**
17
- * Form control sizes - for Select and other form controls without fixed heights
18
- * Provides consistent padding and text sizing.
17
+ * Form control sizes - for Select and other form controls
18
+ * Uses explicit heights to match buttons and inputs for toolbar alignment.
19
19
  */
20
20
  export declare const formControlSizes: {
21
- readonly sm: "py-2 px-3 text-sm";
22
- readonly md: "py-2.5 px-4 text-sm";
23
- readonly lg: "py-3 px-4 text-base";
21
+ readonly sm: "h-9 px-3 text-sm";
22
+ readonly md: "h-10 px-4 text-sm";
23
+ readonly lg: "h-12 px-4 text-base";
24
24
  };
25
25
  export type FormInputSize = keyof typeof formInputSizes;
26
26
  export type FormControlSize = keyof typeof formControlSizes;
@@ -63,18 +63,19 @@ export declare const skeletonSizes: {
63
63
  };
64
64
  export type SkeletonSize = keyof typeof skeletonSizes;
65
65
  /**
66
- * Standard button sizes - padding and text sizing.
66
+ * Standard button sizes - padding, text sizing, and explicit heights for consistency.
67
+ * All toolbar elements (buttons, inputs, selects) should align at the same height.
67
68
  */
68
69
  export declare const buttonSizes: {
69
- readonly xs: "px-3 py-1.5 text-xs";
70
- readonly sm: "px-3 py-2 text-sm";
71
- readonly md: "px-4 py-2.5 text-sm";
72
- readonly lg: "px-5 py-3 text-sm";
73
- readonly xl: "px-6 py-3.5 text-sm";
74
- readonly 'xl-medium': "w-full px-6 py-3.5 text-sm";
75
- readonly full: "w-full px-5 py-3 text-sm";
76
- readonly 'full-md-auto': "w-full px-5 py-3 text-sm md:w-auto";
77
- readonly half: "w-1/2 px-4 py-2.5 text-sm";
70
+ readonly xs: "h-8 px-3 text-xs";
71
+ readonly sm: "h-9 px-3 text-sm";
72
+ readonly md: "h-10 px-4 text-sm";
73
+ readonly lg: "h-11 px-5 text-sm";
74
+ readonly xl: "h-12 px-6 text-sm";
75
+ readonly 'xl-medium': "w-full h-12 px-6 text-sm";
76
+ readonly full: "w-full h-11 px-5 text-sm";
77
+ readonly 'full-md-auto': "w-full h-11 px-5 text-sm md:w-auto";
78
+ readonly half: "w-1/2 h-10 px-4 text-sm";
78
79
  readonly landing: "h-12 sm:h-14 px-6 sm:px-8 text-base sm:text-lg";
79
80
  };
80
81
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sizing.d.ts","sourceRoot":"","sources":["../../src/lib/tokens/sizing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAM5D;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,SAAS,CAAC;AAM9C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,UAAU,CAItE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAM3D;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,aAAa,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAYd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,eAAe,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"sizing.d.ts","sourceRoot":"","sources":["../../src/lib/tokens/sizing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,cAAc,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAM5D;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,SAAS,CAAC;AAM9C;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,UAAU,CAItE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAM3D;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,aAAa,CAAC;AAMtD;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;CAYd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,eAAe,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,eAAe,CAAC"}
@@ -9,21 +9,21 @@
9
9
  // =============================================================================
10
10
  /**
11
11
  * Form input sizes - for Input component with fixed heights
12
- * Provides consistent height, padding, and text sizing for text inputs.
12
+ * Uses explicit heights for consistent toolbar alignment.
13
13
  */
14
14
  export const formInputSizes = {
15
- sm: 'py-2 px-3 text-sm h-9',
16
- md: 'py-2.5 px-4 text-sm h-10',
17
- lg: 'py-3 px-4 text-base h-12',
15
+ sm: 'h-9 px-3 text-sm',
16
+ md: 'h-10 px-4 text-sm',
17
+ lg: 'h-12 px-4 text-base',
18
18
  };
19
19
  /**
20
- * Form control sizes - for Select and other form controls without fixed heights
21
- * Provides consistent padding and text sizing.
20
+ * Form control sizes - for Select and other form controls
21
+ * Uses explicit heights to match buttons and inputs for toolbar alignment.
22
22
  */
23
23
  export const formControlSizes = {
24
- sm: 'py-2 px-3 text-sm',
25
- md: 'py-2.5 px-4 text-sm',
26
- lg: 'py-3 px-4 text-base',
24
+ sm: 'h-9 px-3 text-sm',
25
+ md: 'h-10 px-4 text-sm',
26
+ lg: 'h-12 px-4 text-base',
27
27
  };
28
28
  // =============================================================================
29
29
  // ICON/SPINNER SIZES
@@ -76,18 +76,19 @@ export const skeletonSizes = {
76
76
  // BUTTON SIZES
77
77
  // =============================================================================
78
78
  /**
79
- * Standard button sizes - padding and text sizing.
79
+ * Standard button sizes - padding, text sizing, and explicit heights for consistency.
80
+ * All toolbar elements (buttons, inputs, selects) should align at the same height.
80
81
  */
81
82
  export const buttonSizes = {
82
- xs: 'px-3 py-1.5 text-xs',
83
- sm: 'px-3 py-2 text-sm',
84
- md: 'px-4 py-2.5 text-sm',
85
- lg: 'px-5 py-3 text-sm',
86
- xl: 'px-6 py-3.5 text-sm',
87
- 'xl-medium': 'w-full px-6 py-3.5 text-sm',
88
- full: 'w-full px-5 py-3 text-sm',
89
- 'full-md-auto': 'w-full px-5 py-3 text-sm md:w-auto',
90
- half: 'w-1/2 px-4 py-2.5 text-sm',
83
+ xs: 'h-8 px-3 text-xs',
84
+ sm: 'h-9 px-3 text-sm',
85
+ md: 'h-10 px-4 text-sm',
86
+ lg: 'h-11 px-5 text-sm',
87
+ xl: 'h-12 px-6 text-sm',
88
+ 'xl-medium': 'w-full h-12 px-6 text-sm',
89
+ full: 'w-full h-11 px-5 text-sm',
90
+ 'full-md-auto': 'w-full h-11 px-5 text-sm md:w-auto',
91
+ half: 'w-1/2 h-10 px-4 text-sm',
91
92
  // Landing page hero buttons - taller with larger text
92
93
  landing: 'h-12 sm:h-14 px-6 sm:px-8 text-base sm:text-lg',
93
94
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getmicdrop/svelte-components",
3
- "version": "5.12.0",
3
+ "version": "5.14.0",
4
4
  "description": "Shared component library for Micdrop applications",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SelectDropdown.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectDropdown.spec.d.ts","sourceRoot":"","sources":["../../../src/lib/recipes/inputs/SelectDropdown.spec.js"],"names":[],"mappings":""}