@morscherlab/mint-sdk 1.0.0-alpha.7 → 1.0.0-alpha.9

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 (217) hide show
  1. package/README.md +15 -15
  2. package/dist/{auth-BYmxZdJl.js → auth-DsI0rQ7_.js} +6 -6
  3. package/dist/auth-DsI0rQ7_.js.map +1 -0
  4. package/dist/components/index.js +2 -2
  5. package/dist/{components-CKf-UpGi.js → components-CzbQQPCb.js} +1429 -1429
  6. package/dist/components-CzbQQPCb.js.map +1 -0
  7. package/dist/composables/index.js +2 -2
  8. package/dist/composables/usePlatformContext.d.ts +3 -3
  9. package/dist/{composables-D0QfFzq1.js → composables-BXklV5ii.js} +3 -3
  10. package/dist/{composables-D0QfFzq1.js.map → composables-BXklV5ii.js.map} +1 -1
  11. package/dist/index.js +4 -4
  12. package/dist/install.d.ts +3 -3
  13. package/dist/install.js +5 -5
  14. package/dist/install.js.map +1 -1
  15. package/dist/stores/auth.d.ts +1 -1
  16. package/dist/stores/index.js +1 -1
  17. package/dist/stores/settings.d.ts +1 -1
  18. package/dist/styles.css +5388 -5388
  19. package/dist/types/platform.d.ts +1 -1
  20. package/dist/{useScheduleDrag-DAJueTbK.js → useScheduleDrag-CxBeqYcu.js} +331 -331
  21. package/dist/useScheduleDrag-CxBeqYcu.js.map +1 -0
  22. package/package.json +2 -2
  23. package/src/__tests__/components/AppLayout.test.ts +23 -23
  24. package/src/__tests__/components/AppSidebar.test.ts +29 -29
  25. package/src/__tests__/components/AppTopBar.test.ts +45 -45
  26. package/src/__tests__/components/BaseInput.test.ts +2 -2
  27. package/src/__tests__/components/BasePill.test.ts +37 -37
  28. package/src/__tests__/components/Calendar.test.ts +52 -52
  29. package/src/__tests__/components/CollapsibleCard.test.ts +81 -81
  30. package/src/__tests__/components/DataFrame.test.ts +80 -80
  31. package/src/__tests__/components/DropdownButton.test.ts +80 -80
  32. package/src/__tests__/composables/usePlatformContext.test.ts +1 -1
  33. package/src/components/AlertBox.story.vue +1 -1
  34. package/src/components/AlertBox.vue +14 -14
  35. package/src/components/AppAvatarMenu.vue +26 -26
  36. package/src/components/AppContainer.vue +3 -3
  37. package/src/components/AppLayout.vue +7 -7
  38. package/src/components/AppPageSelector.vue +30 -30
  39. package/src/components/AppPillNav.vue +10 -10
  40. package/src/components/AppPluginSwitcher.vue +31 -31
  41. package/src/components/AppSidebar.vue +8 -8
  42. package/src/components/AppTopBar.story.vue +7 -7
  43. package/src/components/AppTopBar.vue +102 -102
  44. package/src/components/AuditTrail.vue +19 -19
  45. package/src/components/AutoGroupModal.vue +76 -76
  46. package/src/components/Avatar.vue +6 -6
  47. package/src/components/BaseButton.vue +6 -6
  48. package/src/components/BaseCheckbox.vue +9 -9
  49. package/src/components/BaseInput.vue +4 -4
  50. package/src/components/BaseModal.story.vue +1 -1
  51. package/src/components/BaseModal.vue +14 -14
  52. package/src/components/BasePill.vue +9 -9
  53. package/src/components/BaseRadioGroup.vue +21 -21
  54. package/src/components/BaseSelect.vue +6 -6
  55. package/src/components/BaseSlider.vue +8 -8
  56. package/src/components/BaseTabs.vue +7 -7
  57. package/src/components/BaseTextarea.vue +5 -5
  58. package/src/components/BaseToggle.vue +10 -10
  59. package/src/components/BatchProgressList.vue +25 -25
  60. package/src/components/Breadcrumb.vue +8 -8
  61. package/src/components/Calendar.vue +19 -19
  62. package/src/components/ChartContainer.vue +9 -9
  63. package/src/components/ChemicalFormula.vue +7 -7
  64. package/src/components/CollapsibleCard.vue +20 -20
  65. package/src/components/ColorSlider.vue +6 -6
  66. package/src/components/ConcentrationInput.vue +12 -12
  67. package/src/components/ConfirmDialog.story.vue +1 -1
  68. package/src/components/ConfirmDialog.vue +7 -7
  69. package/src/components/DataFrame.vue +40 -40
  70. package/src/components/DatePicker.vue +29 -29
  71. package/src/components/DateTimePicker.vue +41 -41
  72. package/src/components/Divider.vue +9 -9
  73. package/src/components/DoseCalculator.vue +66 -66
  74. package/src/components/DropdownButton.vue +19 -19
  75. package/src/components/EmptyState.vue +9 -9
  76. package/src/components/ExperimentCodeBadge.vue +3 -3
  77. package/src/components/ExperimentDataViewer.vue +25 -25
  78. package/src/components/ExperimentPopover.vue +35 -35
  79. package/src/components/ExperimentSelectorModal.vue +40 -40
  80. package/src/components/ExperimentTimeline.vue +48 -48
  81. package/src/components/FileUploader.vue +31 -31
  82. package/src/components/FitPanel.vue +9 -9
  83. package/src/components/FormActions.vue +1 -1
  84. package/src/components/FormBuilder.vue +2 -2
  85. package/src/components/FormField.vue +7 -7
  86. package/src/components/FormSection.vue +7 -7
  87. package/src/components/FormulaInput.vue +10 -10
  88. package/src/components/GroupAssigner.vue +40 -40
  89. package/src/components/GroupingModal.vue +45 -45
  90. package/src/components/IconButton.vue +6 -6
  91. package/src/components/LoadingSpinner.vue +5 -5
  92. package/src/components/MoleculeInput.vue +21 -21
  93. package/src/components/MultiSelect.vue +13 -13
  94. package/src/components/NumberInput.vue +13 -13
  95. package/src/components/PlateMapEditor.vue +63 -63
  96. package/src/components/ProgressBar.vue +18 -18
  97. package/src/components/ProtocolStepEditor.vue +57 -57
  98. package/src/components/RackEditor.vue +28 -28
  99. package/src/components/ReagentEditor.vue +61 -61
  100. package/src/components/ReagentList.vue +49 -49
  101. package/src/components/ResourceCard.vue +28 -28
  102. package/src/components/SampleHierarchyTree.vue +13 -13
  103. package/src/components/SampleLegend.vue +12 -12
  104. package/src/components/SampleSelector.vue +104 -104
  105. package/src/components/ScheduleCalendar.vue +42 -42
  106. package/src/components/ScientificNumber.vue +11 -11
  107. package/src/components/SegmentedControl.vue +12 -12
  108. package/src/components/SequenceInput.vue +32 -32
  109. package/src/components/SettingsButton.vue +5 -5
  110. package/src/components/SettingsModal.vue +17 -17
  111. package/src/components/StatusIndicator.vue +5 -5
  112. package/src/components/StepWizard.vue +16 -16
  113. package/src/components/TagsInput.vue +20 -20
  114. package/src/components/ThemeToggle.vue +3 -3
  115. package/src/components/TimePicker.vue +21 -21
  116. package/src/components/TimeRangeInput.vue +5 -5
  117. package/src/components/ToastNotification.vue +8 -8
  118. package/src/components/Tooltip.vue +7 -7
  119. package/src/components/UnitInput.vue +12 -12
  120. package/src/components/WellEditPopup.vue +28 -28
  121. package/src/components/WellPlate.vue +37 -37
  122. package/src/composables/useAppExperiment.ts +1 -1
  123. package/src/composables/usePlatformContext.ts +16 -16
  124. package/src/composables/useProtocolTemplates.ts +1 -1
  125. package/src/install.ts +3 -3
  126. package/src/stores/auth.ts +3 -3
  127. package/src/stores/settings.ts +2 -2
  128. package/src/styles/components/alert-box.css +30 -30
  129. package/src/styles/components/app-avatar-menu.css +23 -23
  130. package/src/styles/components/app-container.css +6 -6
  131. package/src/styles/components/app-layout.css +15 -15
  132. package/src/styles/components/app-page-selector.css +26 -26
  133. package/src/styles/components/app-pill-nav.css +7 -7
  134. package/src/styles/components/app-plugin-switcher.css +27 -27
  135. package/src/styles/components/app-sidebar.css +24 -24
  136. package/src/styles/components/app-top-bar.css +65 -65
  137. package/src/styles/components/audit-trail.css +29 -29
  138. package/src/styles/components/auto-group-modal.css +91 -91
  139. package/src/styles/components/avatar.css +15 -15
  140. package/src/styles/components/batch-progress-list.css +40 -40
  141. package/src/styles/components/breadcrumb.css +8 -8
  142. package/src/styles/components/button.css +31 -31
  143. package/src/styles/components/calendar.css +27 -27
  144. package/src/styles/components/chart-container.css +9 -9
  145. package/src/styles/components/checkbox.css +20 -20
  146. package/src/styles/components/chemical-formula.css +8 -8
  147. package/src/styles/components/collapsible-card.css +35 -35
  148. package/src/styles/components/color-slider.css +8 -8
  149. package/src/styles/components/concentration-input.css +27 -27
  150. package/src/styles/components/confirm-dialog.css +32 -32
  151. package/src/styles/components/dataframe.css +66 -66
  152. package/src/styles/components/date-picker.css +40 -40
  153. package/src/styles/components/datetime-picker.css +37 -37
  154. package/src/styles/components/divider.css +13 -13
  155. package/src/styles/components/dose-calculator.css +43 -43
  156. package/src/styles/components/dropdown-button.css +46 -46
  157. package/src/styles/components/empty-state.css +44 -44
  158. package/src/styles/components/experiment-code-badge.css +8 -8
  159. package/src/styles/components/experiment-data-viewer.css +23 -23
  160. package/src/styles/components/experiment-popover.css +97 -97
  161. package/src/styles/components/experiment-selector-modal.css +39 -39
  162. package/src/styles/components/experiment-timeline.css +98 -98
  163. package/src/styles/components/file-uploader.css +44 -44
  164. package/src/styles/components/fit-panel.css +12 -12
  165. package/src/styles/components/form-builder.css +11 -11
  166. package/src/styles/components/form-field.css +7 -7
  167. package/src/styles/components/formula-input.css +17 -17
  168. package/src/styles/components/group-assigner.css +26 -26
  169. package/src/styles/components/grouping-modal.css +51 -51
  170. package/src/styles/components/icon-button.css +41 -41
  171. package/src/styles/components/input.css +13 -13
  172. package/src/styles/components/loading-spinner.css +12 -12
  173. package/src/styles/components/modal.css +69 -69
  174. package/src/styles/components/molecule-input.css +27 -27
  175. package/src/styles/components/multi-select.css +23 -23
  176. package/src/styles/components/number-input.css +32 -32
  177. package/src/styles/components/pill.css +37 -37
  178. package/src/styles/components/plate-map-editor.css +67 -67
  179. package/src/styles/components/progress-bar.css +41 -41
  180. package/src/styles/components/protocol-step-editor.css +63 -63
  181. package/src/styles/components/rack-editor.css +34 -34
  182. package/src/styles/components/radio-group.css +41 -41
  183. package/src/styles/components/reagent-editor.css +70 -70
  184. package/src/styles/components/reagent-list.css +65 -65
  185. package/src/styles/components/resource-card.css +52 -52
  186. package/src/styles/components/sample-hierarchy-tree.css +56 -56
  187. package/src/styles/components/sample-legend.css +37 -37
  188. package/src/styles/components/sample-selector.css +121 -121
  189. package/src/styles/components/schedule-calendar.css +67 -67
  190. package/src/styles/components/scientific-number.css +11 -11
  191. package/src/styles/components/segmented-control.css +33 -33
  192. package/src/styles/components/select.css +11 -11
  193. package/src/styles/components/sequence-input.css +29 -29
  194. package/src/styles/components/settings-button.css +16 -16
  195. package/src/styles/components/settings-modal.css +14 -14
  196. package/src/styles/components/skeleton.css +2 -2
  197. package/src/styles/components/slider.css +10 -10
  198. package/src/styles/components/status-indicator.css +12 -12
  199. package/src/styles/components/step-wizard.css +32 -32
  200. package/src/styles/components/tabs.css +16 -16
  201. package/src/styles/components/tags-input.css +46 -46
  202. package/src/styles/components/textarea.css +17 -17
  203. package/src/styles/components/theme-toggle.css +13 -13
  204. package/src/styles/components/time-picker.css +28 -28
  205. package/src/styles/components/time-range-input.css +8 -8
  206. package/src/styles/components/toast.css +18 -18
  207. package/src/styles/components/toggle.css +27 -27
  208. package/src/styles/components/tooltip.css +18 -18
  209. package/src/styles/components/unit-input.css +25 -25
  210. package/src/styles/components/well-edit-popup.css +32 -32
  211. package/src/styles/components/well-plate.css +49 -49
  212. package/src/styles/index.css +1 -1
  213. package/src/styles/variables.css +3 -3
  214. package/src/types/platform.ts +6 -6
  215. package/dist/auth-BYmxZdJl.js.map +0 -1
  216. package/dist/components-CKf-UpGi.js.map +0 -1
  217. package/dist/useScheduleDrag-DAJueTbK.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  /* IconButton Component Styles */
2
2
 
3
- .mld-icon-button {
3
+ .mint-icon-button {
4
4
  display: inline-flex;
5
5
  align-items: center;
6
6
  justify-content: center;
@@ -20,46 +20,46 @@
20
20
  transform: translateY(0);
21
21
  }
22
22
 
23
- .mld-icon-button:hover:not(.mld-icon-button--disabled) {
23
+ .mint-icon-button:hover:not(.mint-icon-button--disabled) {
24
24
  transform: translateY(-1px);
25
25
  }
26
26
 
27
- .mld-icon-button:hover:not(.mld-icon-button--disabled):not(.mld-icon-button--ghost) {
27
+ .mint-icon-button:hover:not(.mint-icon-button--disabled):not(.mint-icon-button--ghost) {
28
28
  box-shadow: var(--shadow-sm);
29
29
  }
30
30
 
31
- .mld-icon-button:active:not(.mld-icon-button--disabled) {
31
+ .mint-icon-button:active:not(.mint-icon-button--disabled) {
32
32
  transform: translateY(0);
33
33
  box-shadow: none;
34
34
  background-image: none;
35
35
  transition-duration: 0.05s;
36
36
  }
37
37
 
38
- .mld-icon-button:focus-visible {
38
+ .mint-icon-button:focus-visible {
39
39
  outline: none;
40
40
  box-shadow: var(--focus-ring);
41
41
  }
42
42
 
43
- .mld-icon-button--disabled {
43
+ .mint-icon-button--disabled {
44
44
  opacity: var(--mint-disabled-opacity);
45
45
  cursor: not-allowed;
46
46
  }
47
47
 
48
48
  /* Colored variants shift to neutral bg when disabled for WCAG AA contrast */
49
- .mld-icon-button--primary.mld-icon-button--disabled,
50
- .mld-icon-button--cta.mld-icon-button--disabled,
51
- .mld-icon-button--danger.mld-icon-button--disabled,
52
- .mld-icon-button--success.mld-icon-button--disabled {
49
+ .mint-icon-button--primary.mint-icon-button--disabled,
50
+ .mint-icon-button--cta.mint-icon-button--disabled,
51
+ .mint-icon-button--danger.mint-icon-button--disabled,
52
+ .mint-icon-button--success.mint-icon-button--disabled {
53
53
  background-color: var(--bg-tertiary);
54
54
  background-image: none;
55
55
  color: var(--text-muted);
56
56
  }
57
57
 
58
58
  /* Subtle top-to-bottom highlight on filled variants — catch of light. */
59
- .mld-icon-button--primary,
60
- .mld-icon-button--cta,
61
- .mld-icon-button--danger,
62
- .mld-icon-button--success {
59
+ .mint-icon-button--primary,
60
+ .mint-icon-button--cta,
61
+ .mint-icon-button--danger,
62
+ .mint-icon-button--success {
63
63
  background-image: linear-gradient(
64
64
  to bottom,
65
65
  rgba(255, 255, 255, 0.12),
@@ -68,107 +68,107 @@
68
68
  }
69
69
 
70
70
  /* Variants */
71
- .mld-icon-button--primary {
71
+ .mint-icon-button--primary {
72
72
  background-color: var(--color-primary);
73
73
  color: white;
74
74
  }
75
75
 
76
- .mld-icon-button--primary:hover:not(.mld-icon-button--disabled) {
76
+ .mint-icon-button--primary:hover:not(.mint-icon-button--disabled) {
77
77
  background-color: var(--color-primary-hover);
78
78
  }
79
79
 
80
- .mld-icon-button--secondary {
80
+ .mint-icon-button--secondary {
81
81
  background-color: var(--bg-secondary);
82
82
  color: var(--text-primary);
83
83
  border: 1px solid var(--border-color);
84
84
  }
85
85
 
86
- .mld-icon-button--secondary:hover:not(.mld-icon-button--disabled) {
86
+ .mint-icon-button--secondary:hover:not(.mint-icon-button--disabled) {
87
87
  background-color: var(--bg-tertiary);
88
88
  }
89
89
 
90
- .mld-icon-button--cta {
90
+ .mint-icon-button--cta {
91
91
  background-color: var(--color-cta);
92
92
  color: white;
93
93
  }
94
94
 
95
- .mld-icon-button--cta:hover:not(.mld-icon-button--disabled) {
95
+ .mint-icon-button--cta:hover:not(.mint-icon-button--disabled) {
96
96
  background-color: var(--color-cta-hover);
97
97
  }
98
98
 
99
- .mld-icon-button--danger {
99
+ .mint-icon-button--danger {
100
100
  background-color: var(--mint-error);
101
101
  color: white;
102
102
  }
103
103
 
104
- .mld-icon-button--danger:hover:not(.mld-icon-button--disabled) {
104
+ .mint-icon-button--danger:hover:not(.mint-icon-button--disabled) {
105
105
  background-color: var(--mint-error-hover);
106
106
  }
107
107
 
108
- .mld-icon-button--success {
108
+ .mint-icon-button--success {
109
109
  background-color: var(--mint-success);
110
110
  color: white;
111
111
  }
112
112
 
113
- .mld-icon-button--success:hover:not(.mld-icon-button--disabled) {
113
+ .mint-icon-button--success:hover:not(.mint-icon-button--disabled) {
114
114
  background-color: var(--mint-success-hover);
115
115
  }
116
116
 
117
- .mld-icon-button--ghost {
117
+ .mint-icon-button--ghost {
118
118
  background-color: transparent;
119
119
  color: var(--text-secondary);
120
120
  }
121
121
 
122
- .mld-icon-button--ghost:hover:not(.mld-icon-button--disabled) {
122
+ .mint-icon-button--ghost:hover:not(.mint-icon-button--disabled) {
123
123
  background-color: var(--bg-tertiary);
124
124
  color: var(--text-primary);
125
125
  }
126
126
 
127
127
  /* Sizes */
128
- .mld-icon-button--sm {
128
+ .mint-icon-button--sm {
129
129
  padding: 0.375rem;
130
130
  min-height: var(--form-height-sm);
131
131
  }
132
132
 
133
- .mld-icon-button--md {
133
+ .mint-icon-button--md {
134
134
  padding: 0.5rem;
135
135
  min-height: var(--form-height-md);
136
136
  }
137
137
 
138
- .mld-icon-button--lg {
138
+ .mint-icon-button--lg {
139
139
  padding: 0.75rem;
140
140
  min-height: var(--form-height-lg);
141
141
  }
142
142
 
143
- .mld-icon-button__icon--sm,
144
- .mld-icon-button__icon--md,
145
- .mld-icon-button__icon--lg {
143
+ .mint-icon-button__icon--sm,
144
+ .mint-icon-button__icon--md,
145
+ .mint-icon-button__icon--lg {
146
146
  display: inline-flex;
147
147
  align-items: center;
148
148
  justify-content: center;
149
149
  }
150
150
 
151
- .mld-icon-button__icon--sm {
151
+ .mint-icon-button__icon--sm {
152
152
  width: 1rem;
153
153
  height: 1rem;
154
154
  }
155
155
 
156
- .mld-icon-button__icon--md {
156
+ .mint-icon-button__icon--md {
157
157
  width: 1.25rem;
158
158
  height: 1.25rem;
159
159
  }
160
160
 
161
- .mld-icon-button__icon--lg {
161
+ .mint-icon-button__icon--lg {
162
162
  width: 1.5rem;
163
163
  height: 1.5rem;
164
164
  }
165
165
 
166
166
  /* Spinner */
167
- .mld-icon-button__spinner {
168
- animation: mld-spin 1s linear infinite;
167
+ .mint-icon-button__spinner {
168
+ animation: mint-spin 1s linear infinite;
169
169
  }
170
170
 
171
- @keyframes mld-spin {
171
+ @keyframes mint-spin {
172
172
  from {
173
173
  transform: rotate(0deg);
174
174
  }
@@ -178,15 +178,15 @@
178
178
  }
179
179
 
180
180
  @media (prefers-reduced-motion: reduce) {
181
- .mld-icon-button {
181
+ .mint-icon-button {
182
182
  transition:
183
183
  color 0.15s ease,
184
184
  background-color 0.15s ease,
185
185
  border-color 0.15s ease,
186
186
  box-shadow 0.15s ease;
187
187
  }
188
- .mld-icon-button:hover:not(.mld-icon-button--disabled),
189
- .mld-icon-button:active:not(.mld-icon-button--disabled) {
188
+ .mint-icon-button:hover:not(.mint-icon-button--disabled),
189
+ .mint-icon-button:active:not(.mint-icon-button--disabled) {
190
190
  transform: none;
191
191
  }
192
192
  }
@@ -1,6 +1,6 @@
1
1
  /* BaseInput Component Styles */
2
2
 
3
- .mld-input {
3
+ .mint-input {
4
4
  display: block;
5
5
  width: 100%;
6
6
  font-family: inherit;
@@ -15,31 +15,31 @@
15
15
  box-sizing: border-box;
16
16
  }
17
17
 
18
- .mld-input::placeholder {
18
+ .mint-input::placeholder {
19
19
  color: var(--text-muted);
20
20
  }
21
21
 
22
- .mld-input:hover:not(:focus-visible):not(.mld-input--disabled):not(.mld-input--error) {
22
+ .mint-input:hover:not(:focus-visible):not(.mint-input--disabled):not(.mint-input--error) {
23
23
  border-color: var(--text-muted);
24
24
  }
25
25
 
26
- .mld-input:focus,
27
- .mld-input:focus-visible {
26
+ .mint-input:focus,
27
+ .mint-input:focus-visible {
28
28
  border-color: var(--color-primary);
29
29
  box-shadow: var(--focus-ring-soft);
30
30
  }
31
31
 
32
- .mld-input--error {
32
+ .mint-input--error {
33
33
  border-color: var(--mint-error);
34
34
  }
35
35
 
36
- .mld-input--error:focus,
37
- .mld-input--error:focus-visible {
36
+ .mint-input--error:focus,
37
+ .mint-input--error:focus-visible {
38
38
  box-shadow: var(--focus-ring-soft-error);
39
39
  }
40
40
 
41
- .mld-input--disabled,
42
- .mld-input:disabled {
41
+ .mint-input--disabled,
42
+ .mint-input:disabled {
43
43
  background-color: var(--bg-tertiary);
44
44
  color: var(--text-muted);
45
45
  cursor: not-allowed;
@@ -47,19 +47,19 @@
47
47
 
48
48
  /* Size variants — 1px optical padding shift (0.16+).
49
49
  See CLAUDE.md § Optical Centering. */
50
- .mld-input--sm {
50
+ .mint-input--sm {
51
51
  padding: 0.3125rem 0.625rem 0.4375rem;
52
52
  font-size: 0.8125rem;
53
53
  min-height: var(--form-height-sm);
54
54
  }
55
55
 
56
- .mld-input--md {
56
+ .mint-input--md {
57
57
  padding: 0.4375rem 0.75rem 0.5625rem;
58
58
  font-size: 0.875rem;
59
59
  min-height: var(--form-height-md);
60
60
  }
61
61
 
62
- .mld-input--lg {
62
+ .mint-input--lg {
63
63
  padding: 0.6875rem 1rem 0.8125rem;
64
64
  font-size: 1rem;
65
65
  min-height: var(--form-height-lg);
@@ -1,51 +1,51 @@
1
1
  /* LoadingSpinner Component Styles */
2
2
 
3
- .mld-spinner {
3
+ .mint-spinner {
4
4
  display: inline-flex;
5
5
  align-items: center;
6
6
  justify-content: center;
7
7
  }
8
8
 
9
- .mld-spinner__svg {
10
- animation: mld-spin 1s linear infinite;
9
+ .mint-spinner__svg {
10
+ animation: mint-spin 1s linear infinite;
11
11
  }
12
12
 
13
13
  /* Sizes */
14
- .mld-spinner--xs .mld-spinner__svg {
14
+ .mint-spinner--xs .mint-spinner__svg {
15
15
  width: 16px;
16
16
  height: 16px;
17
17
  }
18
18
 
19
- .mld-spinner--sm .mld-spinner__svg {
19
+ .mint-spinner--sm .mint-spinner__svg {
20
20
  width: 20px;
21
21
  height: 20px;
22
22
  }
23
23
 
24
- .mld-spinner--md .mld-spinner__svg {
24
+ .mint-spinner--md .mint-spinner__svg {
25
25
  width: 24px;
26
26
  height: 24px;
27
27
  }
28
28
 
29
- .mld-spinner--lg .mld-spinner__svg {
29
+ .mint-spinner--lg .mint-spinner__svg {
30
30
  width: 32px;
31
31
  height: 32px;
32
32
  }
33
33
 
34
34
  /* Variants */
35
- .mld-spinner--primary {
35
+ .mint-spinner--primary {
36
36
  color: var(--color-primary);
37
37
  }
38
38
 
39
- .mld-spinner--cta {
39
+ .mint-spinner--cta {
40
40
  color: var(--color-cta);
41
41
  }
42
42
 
43
- .mld-spinner--muted {
43
+ .mint-spinner--muted {
44
44
  color: var(--text-muted);
45
45
  }
46
46
 
47
47
  /* Screen-reader only label */
48
- .mld-spinner__label {
48
+ .mint-spinner__label {
49
49
  position: absolute;
50
50
  width: 1px;
51
51
  height: 1px;
@@ -57,7 +57,7 @@
57
57
  border-width: 0;
58
58
  }
59
59
 
60
- @keyframes mld-spin {
60
+ @keyframes mint-spin {
61
61
  from {
62
62
  transform: rotate(0deg);
63
63
  }
@@ -3,12 +3,12 @@
3
3
  /* ========================================================================
4
4
  Modal Backdrop — variant-agnostic outer wrapper
5
5
  ========================================================================
6
- The outer .mld-modal positions the modal in the viewport. Variant
7
- modifiers (.mld-modal--drawer / .mld-modal--sheet) repoint the
6
+ The outer .mint-modal positions the modal in the viewport. Variant
7
+ modifiers (.mint-modal--drawer / .mint-modal--sheet) repoint the
8
8
  flex alignment so the container slides in from the relevant edge.
9
9
  ======================================================================== */
10
10
 
11
- .mld-modal {
11
+ .mint-modal {
12
12
  position: fixed;
13
13
  inset: 0;
14
14
  z-index: 50;
@@ -16,24 +16,24 @@
16
16
  padding: 1rem;
17
17
  }
18
18
 
19
- .mld-modal--centered {
19
+ .mint-modal--centered {
20
20
  align-items: center;
21
21
  justify-content: center;
22
22
  }
23
23
 
24
- .mld-modal--drawer {
24
+ .mint-modal--drawer {
25
25
  align-items: stretch; /* fill viewport height */
26
26
  justify-content: flex-end;
27
27
  padding: 0; /* drawer flush to the right edge */
28
28
  }
29
29
 
30
- .mld-modal--sheet {
30
+ .mint-modal--sheet {
31
31
  align-items: flex-end;
32
32
  justify-content: center;
33
33
  padding: 0; /* sheet flush to the bottom edge */
34
34
  }
35
35
 
36
- .mld-modal__overlay {
36
+ .mint-modal__overlay {
37
37
  position: absolute;
38
38
  inset: 0;
39
39
  background-color: rgba(15, 23, 42, 0.55);
@@ -45,7 +45,7 @@
45
45
  Modal Container — shared card DNA
46
46
  ======================================================================== */
47
47
 
48
- .mld-modal__container {
48
+ .mint-modal__container {
49
49
  position: relative;
50
50
  width: 100%;
51
51
  display: flex;
@@ -61,13 +61,13 @@
61
61
 
62
62
  /* ---------- Centered variant — card DNA with height cap (unchanged visually) ---------- */
63
63
 
64
- .mld-modal__container--centered {
64
+ .mint-modal__container--centered {
65
65
  max-height: calc(100vh - 2rem);
66
66
  }
67
67
 
68
68
  /* ---------- Drawer variant — fills viewport height, right-edge anchored ---------- */
69
69
 
70
- .mld-modal__container--drawer {
70
+ .mint-modal__container--drawer {
71
71
  max-height: 100vh;
72
72
  height: 100vh;
73
73
  border-radius: 0.875rem 0 0 0.875rem; /* radius drops on right edge */
@@ -79,7 +79,7 @@
79
79
 
80
80
  /* ---------- Sheet variant — bottom-edge anchored, top-only radius ---------- */
81
81
 
82
- .mld-modal__container--sheet {
82
+ .mint-modal__container--sheet {
83
83
  max-height: calc(100vh - 3rem);
84
84
  border-radius: 0.875rem 0.875rem 0 0; /* top corners only */
85
85
  border-bottom: none;
@@ -95,31 +95,31 @@
95
95
  After: sm 28 · md 35 · lg 45 · xl 57.5 · full 56 (unchanged)
96
96
  ======================================================================== */
97
97
 
98
- .mld-modal__container--sm { max-width: 28rem; }
99
- .mld-modal__container--md { max-width: 35rem; }
100
- .mld-modal__container--lg { max-width: 45rem; }
101
- .mld-modal__container--xl { max-width: 57.5rem; }
102
- .mld-modal__container--full { max-width: 56rem; }
98
+ .mint-modal__container--sm { max-width: 28rem; }
99
+ .mint-modal__container--md { max-width: 35rem; }
100
+ .mint-modal__container--lg { max-width: 45rem; }
101
+ .mint-modal__container--xl { max-width: 57.5rem; }
102
+ .mint-modal__container--full { max-width: 56rem; }
103
103
 
104
104
  /* Drawer width ramps — narrower than centered widths since drawer fills height */
105
- .mld-modal__container--drawer.mld-modal__container--sm { max-width: 21.25rem; /* 340px */ }
106
- .mld-modal__container--drawer.mld-modal__container--md { max-width: 30rem; /* 480px */ }
107
- .mld-modal__container--drawer.mld-modal__container--lg { max-width: 40rem; /* 640px */ }
108
- .mld-modal__container--drawer.mld-modal__container--xl { max-width: 48rem; /* 768px */ }
109
- .mld-modal__container--drawer.mld-modal__container--full { max-width: 100%; /* full-drawer */ }
105
+ .mint-modal__container--drawer.mint-modal__container--sm { max-width: 21.25rem; /* 340px */ }
106
+ .mint-modal__container--drawer.mint-modal__container--md { max-width: 30rem; /* 480px */ }
107
+ .mint-modal__container--drawer.mint-modal__container--lg { max-width: 40rem; /* 640px */ }
108
+ .mint-modal__container--drawer.mint-modal__container--xl { max-width: 48rem; /* 768px */ }
109
+ .mint-modal__container--drawer.mint-modal__container--full { max-width: 100%; /* full-drawer */ }
110
110
 
111
111
  /* Sheet widths — wider than drawer but still centered horizontally. Mobile override drops to 100% below */
112
- .mld-modal__container--sheet.mld-modal__container--sm { max-width: 23.75rem; /* 380px */ }
113
- .mld-modal__container--sheet.mld-modal__container--md { max-width: 28.75rem; /* 460px */ }
114
- .mld-modal__container--sheet.mld-modal__container--lg { max-width: 36rem; /* 576px */ }
115
- .mld-modal__container--sheet.mld-modal__container--xl { max-width: 45rem; /* 720px */ }
116
- .mld-modal__container--sheet.mld-modal__container--full { max-width: 100%; }
112
+ .mint-modal__container--sheet.mint-modal__container--sm { max-width: 23.75rem; /* 380px */ }
113
+ .mint-modal__container--sheet.mint-modal__container--md { max-width: 28.75rem; /* 460px */ }
114
+ .mint-modal__container--sheet.mint-modal__container--lg { max-width: 36rem; /* 576px */ }
115
+ .mint-modal__container--sheet.mint-modal__container--xl { max-width: 45rem; /* 720px */ }
116
+ .mint-modal__container--sheet.mint-modal__container--full { max-width: 100%; }
117
117
 
118
118
  /* ========================================================================
119
119
  Grab-hint bar (sheet only)
120
120
  ======================================================================== */
121
121
 
122
- .mld-modal__grab-hint {
122
+ .mint-modal__grab-hint {
123
123
  width: 2.5rem;
124
124
  height: 3px;
125
125
  background-color: var(--border-color);
@@ -132,7 +132,7 @@
132
132
  Header / body / footer (shared — unchanged vs. current modal.css)
133
133
  ======================================================================== */
134
134
 
135
- .mld-modal__header {
135
+ .mint-modal__header {
136
136
  display: flex;
137
137
  align-items: flex-start;
138
138
  gap: 0.625rem;
@@ -140,12 +140,12 @@
140
140
  border-bottom: 1px solid var(--border-light);
141
141
  }
142
142
 
143
- .mld-modal__header-text {
143
+ .mint-modal__header-text {
144
144
  flex: 1;
145
145
  min-width: 0;
146
146
  }
147
147
 
148
- .mld-modal__title {
148
+ .mint-modal__title {
149
149
  font-size: 0.9375rem;
150
150
  font-weight: 600;
151
151
  letter-spacing: -0.005em;
@@ -156,14 +156,14 @@
156
156
  padding: 0 !important;
157
157
  }
158
158
 
159
- .mld-modal__subtitle {
159
+ .mint-modal__subtitle {
160
160
  font-size: 0.75rem;
161
161
  color: var(--text-secondary);
162
162
  line-height: 1.4;
163
163
  margin: 0.125rem 0 0;
164
164
  }
165
165
 
166
- .mld-modal__close {
166
+ .mint-modal__close {
167
167
  flex-shrink: 0;
168
168
  width: 1.75rem;
169
169
  height: 1.75rem;
@@ -178,23 +178,23 @@
178
178
  transition: color var(--mint-transition), background-color var(--mint-transition);
179
179
  }
180
180
 
181
- .mld-modal__close:hover {
181
+ .mint-modal__close:hover {
182
182
  color: var(--text-primary);
183
183
  background-color: var(--bg-hover);
184
184
  }
185
185
 
186
- .mld-modal__close:focus-visible {
186
+ .mint-modal__close:focus-visible {
187
187
  outline: none;
188
188
  box-shadow: var(--focus-ring);
189
189
  }
190
190
 
191
- .mld-modal__close-icon {
191
+ .mint-modal__close-icon {
192
192
  width: 0.875rem;
193
193
  height: 0.875rem;
194
194
  display: block;
195
195
  }
196
196
 
197
- .mld-modal__body {
197
+ .mint-modal__body {
198
198
  padding: 1.125rem 1.25rem;
199
199
  flex: 1;
200
200
  min-height: 0;
@@ -204,7 +204,7 @@
204
204
  line-height: 1.55;
205
205
  }
206
206
 
207
- .mld-modal__footer {
207
+ .mint-modal__footer {
208
208
  padding: 0.75rem 1.25rem;
209
209
  border-top: 1px solid var(--border-light);
210
210
  background-color: var(--bg-primary);
@@ -226,16 +226,16 @@
226
226
  .modal-centered-leave-active {
227
227
  transition: opacity 0.2s ease;
228
228
  }
229
- .modal-centered-enter-active .mld-modal__container,
230
- .modal-centered-leave-active .mld-modal__container {
229
+ .modal-centered-enter-active .mint-modal__container,
230
+ .modal-centered-leave-active .mint-modal__container {
231
231
  transition: transform 0.2s ease, opacity 0.2s ease;
232
232
  }
233
233
  .modal-centered-enter-from,
234
234
  .modal-centered-leave-to {
235
235
  opacity: 0;
236
236
  }
237
- .modal-centered-enter-from .mld-modal__container,
238
- .modal-centered-leave-to .mld-modal__container {
237
+ .modal-centered-enter-from .mint-modal__container,
238
+ .modal-centered-leave-to .mint-modal__container {
239
239
  transform: scale(0.95);
240
240
  opacity: 0;
241
241
  }
@@ -245,16 +245,16 @@
245
245
  .modal-drawer-leave-active {
246
246
  transition: opacity 0.25s ease;
247
247
  }
248
- .modal-drawer-enter-active .mld-modal__container,
249
- .modal-drawer-leave-active .mld-modal__container {
248
+ .modal-drawer-enter-active .mint-modal__container,
249
+ .modal-drawer-leave-active .mint-modal__container {
250
250
  transition: transform 0.25s ease;
251
251
  }
252
252
  .modal-drawer-enter-from,
253
253
  .modal-drawer-leave-to {
254
254
  opacity: 0;
255
255
  }
256
- .modal-drawer-enter-from .mld-modal__container,
257
- .modal-drawer-leave-to .mld-modal__container {
256
+ .modal-drawer-enter-from .mint-modal__container,
257
+ .modal-drawer-leave-to .mint-modal__container {
258
258
  transform: translateX(100%);
259
259
  }
260
260
 
@@ -263,16 +263,16 @@
263
263
  .modal-sheet-leave-active {
264
264
  transition: opacity 0.25s ease;
265
265
  }
266
- .modal-sheet-enter-active .mld-modal__container,
267
- .modal-sheet-leave-active .mld-modal__container {
266
+ .modal-sheet-enter-active .mint-modal__container,
267
+ .modal-sheet-leave-active .mint-modal__container {
268
268
  transition: transform 0.25s ease;
269
269
  }
270
270
  .modal-sheet-enter-from,
271
271
  .modal-sheet-leave-to {
272
272
  opacity: 0;
273
273
  }
274
- .modal-sheet-enter-from .mld-modal__container,
275
- .modal-sheet-leave-to .mld-modal__container {
274
+ .modal-sheet-enter-from .mint-modal__container,
275
+ .modal-sheet-leave-to .mint-modal__container {
276
276
  transform: translateY(100%);
277
277
  }
278
278
 
@@ -287,12 +287,12 @@
287
287
  transition: opacity 0.1s ease;
288
288
  }
289
289
 
290
- .modal-centered-enter-active .mld-modal__container,
291
- .modal-centered-leave-active .mld-modal__container,
292
- .modal-drawer-enter-active .mld-modal__container,
293
- .modal-drawer-leave-active .mld-modal__container,
294
- .modal-sheet-enter-active .mld-modal__container,
295
- .modal-sheet-leave-active .mld-modal__container {
290
+ .modal-centered-enter-active .mint-modal__container,
291
+ .modal-centered-leave-active .mint-modal__container,
292
+ .modal-drawer-enter-active .mint-modal__container,
293
+ .modal-drawer-leave-active .mint-modal__container,
294
+ .modal-sheet-enter-active .mint-modal__container,
295
+ .modal-sheet-leave-active .mint-modal__container {
296
296
  transition: opacity 0.1s ease;
297
297
  transform: none !important;
298
298
  }
@@ -309,16 +309,16 @@
309
309
  ======================================================================== */
310
310
 
311
311
  @media (max-width: 767px) {
312
- .mld-modal {
312
+ .mint-modal {
313
313
  align-items: flex-end;
314
314
  justify-content: center;
315
315
  padding: 0;
316
316
  }
317
317
 
318
- .mld-modal__container,
319
- .mld-modal__container--centered,
320
- .mld-modal__container--drawer,
321
- .mld-modal__container--sheet {
318
+ .mint-modal__container,
319
+ .mint-modal__container--centered,
320
+ .mint-modal__container--drawer,
321
+ .mint-modal__container--sheet {
322
322
  width: 100%;
323
323
  max-width: 100%;
324
324
  max-height: calc(100vh - 3rem);
@@ -332,19 +332,19 @@
332
332
  }
333
333
 
334
334
  /* All size variants collapse to 100% width under mobile */
335
- .mld-modal__container--sm,
336
- .mld-modal__container--md,
337
- .mld-modal__container--lg,
338
- .mld-modal__container--xl,
339
- .mld-modal__container--full {
335
+ .mint-modal__container--sm,
336
+ .mint-modal__container--md,
337
+ .mint-modal__container--lg,
338
+ .mint-modal__container--xl,
339
+ .mint-modal__container--full {
340
340
  max-width: 100%;
341
341
  }
342
342
 
343
343
  /* Non-sheet variants flip to sheet-like slide-up animation under mobile */
344
- .modal-centered-enter-from .mld-modal__container,
345
- .modal-centered-leave-to .mld-modal__container,
346
- .modal-drawer-enter-from .mld-modal__container,
347
- .modal-drawer-leave-to .mld-modal__container {
344
+ .modal-centered-enter-from .mint-modal__container,
345
+ .modal-centered-leave-to .mint-modal__container,
346
+ .modal-drawer-enter-from .mint-modal__container,
347
+ .modal-drawer-leave-to .mint-modal__container {
348
348
  transform: translateY(100%);
349
349
  }
350
350
  }