@morscherlab/mint-sdk 1.0.0-rc.4 → 1.0.0-rc.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.
Files changed (324) hide show
  1. package/dist/__tests__/components/AppTopBar.navigation.test.d.ts +1 -0
  2. package/dist/__tests__/components/DoseCalculatorVolumeField.test.d.ts +1 -0
  3. package/dist/__tests__/components/PlateMapEditorToolbarInternal.test.d.ts +1 -0
  4. package/dist/__tests__/components/PluginWorkspaceView.controls.test.d.ts +1 -0
  5. package/dist/__tests__/components/PluginWorkspaceView.navigation.test.d.ts +1 -0
  6. package/dist/__tests__/components/PluginWorkspaceView.shell.test.d.ts +1 -0
  7. package/dist/__tests__/components/ProtocolStep.presentation.test.d.ts +1 -0
  8. package/dist/__tests__/components/ProtocolStepEditor.state.test.d.ts +1 -0
  9. package/dist/__tests__/components/ProtocolStepParameterField.test.d.ts +1 -0
  10. package/dist/__tests__/components/ReagentList.presentation.test.d.ts +1 -0
  11. package/dist/__tests__/components/SampleSelector.colors.test.d.ts +1 -0
  12. package/dist/__tests__/components/SampleSelector.drag.test.d.ts +1 -0
  13. package/dist/__tests__/components/SampleSelector.groups.test.d.ts +1 -0
  14. package/dist/__tests__/components/SampleSelector.selection.test.d.ts +1 -0
  15. package/dist/__tests__/components/SampleSelectorSampleRow.test.d.ts +1 -0
  16. package/dist/__tests__/components/ScheduleCalendar.test.d.ts +1 -0
  17. package/dist/__tests__/components/SettingsModal.schema.test.d.ts +1 -0
  18. package/dist/__tests__/components/WellPlate.colors.test.d.ts +1 -0
  19. package/dist/__tests__/components/WellPlate.conditions.test.d.ts +1 -0
  20. package/dist/__tests__/components/WellPlate.geometry.test.d.ts +1 -0
  21. package/dist/__tests__/components/WellPlate.interaction.test.d.ts +1 -0
  22. package/dist/__tests__/components/WellPlate.legend.test.d.ts +1 -0
  23. package/dist/__tests__/components/WellPlate.rendering.test.d.ts +1 -0
  24. package/dist/__tests__/components/WellPlate.sampleDrop.test.d.ts +1 -0
  25. package/dist/__tests__/composables/autoGroup/classify.test.d.ts +1 -0
  26. package/dist/__tests__/composables/autoGroup/columns.test.d.ts +1 -0
  27. package/dist/__tests__/composables/autoGroup/compose.test.d.ts +1 -0
  28. package/dist/__tests__/composables/autoGroup/cooccurrence.test.d.ts +1 -0
  29. package/dist/__tests__/composables/autoGroup/fingerprint.test.d.ts +1 -0
  30. package/dist/__tests__/composables/autoGroup/integration.test.d.ts +1 -0
  31. package/dist/__tests__/composables/autoGroup/template.test.d.ts +1 -0
  32. package/dist/__tests__/composables/autoGroup/tokenize.test.d.ts +1 -0
  33. package/dist/__tests__/composables/useAutoGroupInputSources.test.d.ts +1 -0
  34. package/dist/__tests__/composables/useScheduleCalendarLayout.test.d.ts +1 -0
  35. package/dist/__tests__/docs/extractDocsComponents.test.d.ts +1 -0
  36. package/dist/__tests__/docs/extractDocsExports.test.d.ts +1 -0
  37. package/dist/__tests__/docs/extractDocsParsing.test.d.ts +1 -0
  38. package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +1 -0
  39. package/dist/__tests__/docs/extractDocsTheme.test.d.ts +1 -0
  40. package/dist/components/AppSidebar.vue.d.ts +9 -6
  41. package/dist/components/AppTopBar.navigation.d.ts +11 -0
  42. package/dist/components/BaseButton.vue.d.ts +1 -1
  43. package/dist/components/BaseCheckbox.vue.d.ts +7 -2
  44. package/dist/components/BaseInput.vue.d.ts +2 -2
  45. package/dist/components/BasePill.vue.d.ts +2 -2
  46. package/dist/components/BaseRadioGroup.vue.d.ts +2 -2
  47. package/dist/components/BaseSelect.vue.d.ts +1 -1
  48. package/dist/components/BaseSlider.vue.d.ts +2 -2
  49. package/dist/components/BaseTextarea.vue.d.ts +2 -2
  50. package/dist/components/BaseToggle.vue.d.ts +7 -2
  51. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  52. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -1
  53. package/dist/components/CollapsibleCard.vue.d.ts +9 -0
  54. package/dist/components/ColorSlider.vue.d.ts +2 -2
  55. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  56. package/dist/components/ControlWorkspaceView.vue.d.ts +4 -4
  57. package/dist/components/DatePicker.vue.d.ts +1 -1
  58. package/dist/components/DateTimePicker.vue.d.ts +2 -2
  59. package/dist/components/DoseCalculatorVolumeField.vue.d.ts +15 -0
  60. package/dist/components/DoseDesignWorkspaceView.vue.d.ts +2 -2
  61. package/dist/components/DropdownButton.vue.d.ts +1 -1
  62. package/dist/components/FileUploader.vue.d.ts +2 -2
  63. package/dist/components/FormulaInput.vue.d.ts +2 -2
  64. package/dist/components/IconButton.vue.d.ts +1 -1
  65. package/dist/components/LoadingSpinner.vue.d.ts +1 -1
  66. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  67. package/dist/components/MultiSelect.vue.d.ts +1 -1
  68. package/dist/components/NumberInput.vue.d.ts +1 -1
  69. package/dist/components/PlateMapEditor.vue.d.ts +6 -6
  70. package/dist/components/PluginWorkspaceView.controls.d.ts +28 -0
  71. package/dist/components/PluginWorkspaceView.navigation.d.ts +29 -0
  72. package/dist/components/PluginWorkspaceView.props.d.ts +151 -0
  73. package/dist/components/PluginWorkspaceView.shell.d.ts +19 -0
  74. package/dist/components/PluginWorkspaceView.vue.d.ts +51 -196
  75. package/dist/components/ProgressBar.vue.d.ts +1 -1
  76. package/dist/components/ProtocolStep.presentation.d.ts +4 -0
  77. package/dist/components/ProtocolStepEditor.state.d.ts +18 -0
  78. package/dist/components/ProtocolStepParameterField.vue.d.ts +12 -0
  79. package/dist/components/ReagentList.presentation.d.ts +16 -0
  80. package/dist/components/ResourceCard.vue.d.ts +1 -1
  81. package/dist/components/SampleSelector.colors.d.ts +13 -0
  82. package/dist/components/SampleSelector.drag.d.ts +24 -0
  83. package/dist/components/SampleSelector.groups.d.ts +15 -0
  84. package/dist/components/SampleSelector.selection.d.ts +26 -0
  85. package/dist/components/SampleSelector.vue.d.ts +4 -1
  86. package/dist/components/SampleSelectorSampleRow.vue.d.ts +21 -0
  87. package/dist/components/SegmentedControl.vue.d.ts +1 -1
  88. package/dist/components/SequenceInput.vue.d.ts +2 -2
  89. package/dist/components/SequenceProgressBar.vue.d.ts +1 -1
  90. package/dist/components/SettingsModal.schema.d.ts +9 -0
  91. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  92. package/dist/components/TagsInput.vue.d.ts +2 -2
  93. package/dist/components/TimePicker.vue.d.ts +2 -2
  94. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  95. package/dist/components/UnitInput.vue.d.ts +2 -2
  96. package/dist/components/WellPlate.colors.d.ts +9 -0
  97. package/dist/components/WellPlate.conditions.d.ts +26 -0
  98. package/dist/components/WellPlate.geometry.d.ts +23 -0
  99. package/dist/components/WellPlate.interaction.d.ts +71 -0
  100. package/dist/components/WellPlate.legend.d.ts +2 -0
  101. package/dist/components/WellPlate.rendering.d.ts +24 -0
  102. package/dist/components/WellPlate.sampleDrop.d.ts +8 -0
  103. package/dist/components/WellPlate.vue.d.ts +1 -1
  104. package/dist/components/index.js +2 -2
  105. package/dist/components/internal/ActionItemInternal.vue.d.ts +1 -1
  106. package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +28 -0
  107. package/dist/{components-DafPc4rM.js → components-Blx4MG--.js} +4073 -4222
  108. package/dist/components-Blx4MG--.js.map +1 -0
  109. package/dist/composables/autoGroup/classKey.d.ts +4 -0
  110. package/dist/composables/autoGroup/classify.d.ts +28 -0
  111. package/dist/composables/autoGroup/colors.d.ts +2 -0
  112. package/dist/composables/autoGroup/columns.d.ts +10 -0
  113. package/dist/composables/autoGroup/compose.d.ts +8 -0
  114. package/dist/composables/autoGroup/cooccurrence.d.ts +2 -0
  115. package/dist/composables/autoGroup/csv-shim.d.ts +2 -0
  116. package/dist/composables/autoGroup/fingerprint.d.ts +3 -0
  117. package/dist/composables/autoGroup/index.d.ts +16 -0
  118. package/dist/composables/autoGroup/replicatePreGroup.d.ts +38 -0
  119. package/dist/composables/autoGroup/template.d.ts +15 -0
  120. package/dist/composables/autoGroup/tokenize.d.ts +8 -0
  121. package/dist/composables/autoGroupConstants.d.ts +1 -0
  122. package/dist/composables/autoGroupGrouping.d.ts +3 -0
  123. package/dist/composables/controlComponentBindings.d.ts +1 -1
  124. package/dist/composables/controlSchemaAdapters.d.ts +1 -1
  125. package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
  126. package/dist/composables/controlSchemaLayout.d.ts +1 -1
  127. package/dist/composables/controlSchemaModel.d.ts +5 -0
  128. package/dist/composables/controlSchemaNormalize.d.ts +1 -1
  129. package/dist/composables/controlSchemaTypes.d.ts +311 -0
  130. package/dist/composables/controlWorkspaceOptions.d.ts +1 -1
  131. package/dist/composables/formBuilderSchema.d.ts +18 -0
  132. package/dist/composables/index.js +3 -3
  133. package/dist/composables/pluginEndpointBuilder.d.ts +13 -0
  134. package/dist/composables/protocolTemplateCatalog.d.ts +26 -0
  135. package/dist/composables/useAutoGroup.d.ts +61 -74
  136. package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
  137. package/dist/composables/useBioTemplateControls.d.ts +1 -1
  138. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +1 -1
  139. package/dist/composables/useBioTemplateWorkspace.d.ts +1 -1
  140. package/dist/composables/useControlSchema.d.ts +4 -316
  141. package/dist/composables/useControlWorkspace.d.ts +1 -1
  142. package/dist/composables/useForm.d.ts +2 -33
  143. package/dist/composables/useFormBuilder.d.ts +2 -9
  144. package/dist/composables/useFormValidation.d.ts +34 -0
  145. package/dist/composables/usePluginClient.d.ts +1 -4
  146. package/dist/composables/useProtocolTemplates.d.ts +2 -24
  147. package/dist/composables/useScheduleCalendarLayout.d.ts +49 -0
  148. package/dist/{composables-BMkPQhVK.js → composables-CHDjDIQT.js} +33 -31
  149. package/dist/composables-CHDjDIQT.js.map +1 -0
  150. package/dist/index.js +4 -4
  151. package/dist/install.js +2 -2
  152. package/dist/styles.css +1432 -660
  153. package/dist/templates/controlSchemaTypes.d.ts +1 -1
  154. package/dist/templates/index.js +1 -1
  155. package/dist/templates/templateAdapterTypes.d.ts +48 -0
  156. package/dist/templates/templateCreateOptions.d.ts +165 -0
  157. package/dist/templates/templateQpcrTypes.d.ts +42 -0
  158. package/dist/templates/types.d.ts +5 -250
  159. package/dist/{templates-bUAWMn5L.js → templates-DSbHJC4v.js} +1536 -297
  160. package/dist/templates-DSbHJC4v.js.map +1 -0
  161. package/dist/types/auto-group.d.ts +79 -9
  162. package/dist/types/componentLabTypes.d.ts +161 -0
  163. package/dist/types/componentWorkflowTypes.d.ts +150 -0
  164. package/dist/types/components.d.ts +14 -311
  165. package/dist/types/form-builder.d.ts +3 -0
  166. package/dist/types/index.d.ts +1 -1
  167. package/dist/{useProtocolTemplates-QZtHFFH2.js → useProtocolTemplates-BbPOYPzO.js} +1220 -454
  168. package/dist/useProtocolTemplates-BbPOYPzO.js.map +1 -0
  169. package/package.json +1 -1
  170. package/src/__tests__/components/AppSidebar.test.ts +67 -0
  171. package/src/__tests__/components/AppTopBar.navigation.test.ts +70 -0
  172. package/src/__tests__/components/CollapsibleCard.test.ts +47 -0
  173. package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
  174. package/src/__tests__/components/FormBuilder.test.ts +57 -0
  175. package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
  176. package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
  177. package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
  178. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +43 -0
  179. package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
  180. package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
  181. package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
  182. package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
  183. package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
  184. package/src/__tests__/components/SampleSelector.drag.test.ts +100 -0
  185. package/src/__tests__/components/SampleSelector.groups.test.ts +81 -0
  186. package/src/__tests__/components/SampleSelector.selection.test.ts +70 -0
  187. package/src/__tests__/components/SampleSelector.test.ts +32 -0
  188. package/src/__tests__/components/SampleSelectorSampleRow.test.ts +37 -0
  189. package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
  190. package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
  191. package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
  192. package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
  193. package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
  194. package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
  195. package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
  196. package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
  197. package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
  198. package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
  199. package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
  200. package/src/__tests__/composables/autoGroup/compose.test.ts +227 -0
  201. package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
  202. package/src/__tests__/composables/autoGroup/fingerprint.test.ts +50 -0
  203. package/src/__tests__/composables/autoGroup/integration.test.ts +79 -0
  204. package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
  205. package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
  206. package/src/__tests__/composables/useAutoGroup.test.ts +129 -625
  207. package/src/__tests__/composables/useAutoGroupInputSources.test.ts +107 -0
  208. package/src/__tests__/composables/useControlSchema.test.ts +23 -0
  209. package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
  210. package/src/__tests__/docs/extractDocsComponents.test.ts +142 -0
  211. package/src/__tests__/docs/extractDocsExports.test.ts +77 -0
  212. package/src/__tests__/docs/extractDocsParsing.test.ts +69 -0
  213. package/src/__tests__/docs/extractDocsTemplates.test.ts +54 -0
  214. package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
  215. package/src/__tests__/docs/frontendDocsCatalog.test.ts +1 -1
  216. package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
  217. package/src/components/AppSidebar.story.vue +79 -6
  218. package/src/components/AppSidebar.vue +74 -6
  219. package/src/components/AppTopBar.navigation.ts +62 -0
  220. package/src/components/AppTopBar.vue +17 -44
  221. package/src/components/AutoGroupModal.story.vue +50 -0
  222. package/src/components/AutoGroupModal.vue +441 -158
  223. package/src/components/BaseCheckbox.story.vue +27 -0
  224. package/src/components/BaseCheckbox.vue +63 -1
  225. package/src/components/BaseToggle.story.vue +27 -0
  226. package/src/components/BaseToggle.vue +66 -1
  227. package/src/components/CollapsibleCard.vue +123 -45
  228. package/src/components/ControlWorkspaceView.vue +2 -6
  229. package/src/components/DoseCalculator.vue +13 -73
  230. package/src/components/DoseCalculatorVolumeField.vue +61 -0
  231. package/src/components/ExperimentTimeline.vue +6 -31
  232. package/src/components/FormBuilder.story.vue +13 -0
  233. package/src/components/FormBuilder.vue +2 -7
  234. package/src/components/PlateMapEditor.vue +32 -106
  235. package/src/components/PluginWorkspaceView.controls.ts +182 -0
  236. package/src/components/PluginWorkspaceView.navigation.ts +106 -0
  237. package/src/components/PluginWorkspaceView.props.ts +174 -0
  238. package/src/components/PluginWorkspaceView.shell.ts +67 -0
  239. package/src/components/PluginWorkspaceView.vue +88 -404
  240. package/src/components/ProtocolStep.presentation.ts +31 -0
  241. package/src/components/ProtocolStepEditor.state.ts +104 -0
  242. package/src/components/ProtocolStepEditor.vue +48 -179
  243. package/src/components/ProtocolStepParameterField.vue +134 -0
  244. package/src/components/ReagentList.presentation.ts +105 -0
  245. package/src/components/ReagentList.vue +16 -79
  246. package/src/components/SampleSelector.colors.ts +43 -0
  247. package/src/components/SampleSelector.drag.ts +164 -0
  248. package/src/components/SampleSelector.groups.ts +109 -0
  249. package/src/components/SampleSelector.selection.ts +103 -0
  250. package/src/components/SampleSelector.vue +82 -349
  251. package/src/components/SampleSelectorSampleRow.vue +64 -0
  252. package/src/components/ScheduleCalendar.vue +44 -199
  253. package/src/components/SettingsModal.schema.ts +71 -0
  254. package/src/components/SettingsModal.vue +16 -46
  255. package/src/components/WellPlate.colors.ts +56 -0
  256. package/src/components/WellPlate.conditions.ts +100 -0
  257. package/src/components/WellPlate.geometry.ts +91 -0
  258. package/src/components/WellPlate.interaction.ts +272 -0
  259. package/src/components/WellPlate.legend.ts +8 -0
  260. package/src/components/WellPlate.rendering.ts +105 -0
  261. package/src/components/WellPlate.sampleDrop.ts +73 -0
  262. package/src/components/WellPlate.vue +102 -550
  263. package/src/components/internal/FormFieldRendererInternal.vue +23 -5
  264. package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
  265. package/src/composables/autoGroup/classKey.ts +5 -0
  266. package/src/composables/autoGroup/classify.ts +205 -0
  267. package/src/composables/autoGroup/colors.ts +6 -0
  268. package/src/composables/autoGroup/columns.ts +226 -0
  269. package/src/composables/autoGroup/compose.ts +156 -0
  270. package/src/composables/autoGroup/cooccurrence.ts +46 -0
  271. package/src/composables/autoGroup/csv-shim.ts +44 -0
  272. package/src/composables/autoGroup/fingerprint.ts +49 -0
  273. package/src/composables/autoGroup/index.ts +20 -0
  274. package/src/composables/autoGroup/replicatePreGroup.ts +90 -0
  275. package/src/composables/autoGroup/template.ts +126 -0
  276. package/src/composables/autoGroup/tokenize.ts +41 -0
  277. package/src/composables/autoGroup/vocab.json +67 -0
  278. package/src/composables/autoGroupConstants.ts +4 -0
  279. package/src/composables/autoGroupGrouping.ts +148 -0
  280. package/src/composables/controlComponentBindings.ts +1 -1
  281. package/src/composables/controlSchemaAdapters.ts +4 -1
  282. package/src/composables/controlSchemaDoseDesign.ts +215 -0
  283. package/src/composables/controlSchemaFormFields.ts +4 -1
  284. package/src/composables/controlSchemaLayout.ts +1 -1
  285. package/src/composables/controlSchemaModel.ts +163 -0
  286. package/src/composables/controlSchemaNormalize.ts +1 -1
  287. package/src/composables/controlSchemaTypes.ts +372 -0
  288. package/src/composables/controlWorkspaceOptions.ts +1 -1
  289. package/src/composables/formBuilderSchema.ts +153 -0
  290. package/src/composables/pluginEndpointBuilder.ts +203 -0
  291. package/src/composables/protocolTemplateCatalog.ts +325 -0
  292. package/src/composables/useAutoGroup.ts +395 -549
  293. package/src/composables/useAutoGroupInputSources.ts +147 -0
  294. package/src/composables/useBioTemplateControls.ts +1 -1
  295. package/src/composables/useBioTemplatePresetWorkspace.ts +1 -1
  296. package/src/composables/useBioTemplateWorkspace.ts +1 -1
  297. package/src/composables/useControlSchema.ts +21 -692
  298. package/src/composables/useControlWorkspace.ts +7 -13
  299. package/src/composables/useForm.ts +5 -187
  300. package/src/composables/useFormBuilder.ts +11 -153
  301. package/src/composables/useFormValidation.ts +154 -0
  302. package/src/composables/usePluginClient.ts +10 -193
  303. package/src/composables/useProtocolTemplates.ts +10 -328
  304. package/src/composables/useScheduleCalendarLayout.ts +287 -0
  305. package/src/styles/components/app-sidebar.css +134 -6
  306. package/src/styles/components/auto-group-modal.css +248 -310
  307. package/src/styles/components/checkbox.css +87 -0
  308. package/src/styles/components/collapsible-card.css +154 -14
  309. package/src/styles/components/toggle.css +80 -0
  310. package/src/templates/controlSchemaTypes.ts +1 -1
  311. package/src/templates/templateAdapterTypes.ts +58 -0
  312. package/src/templates/templateCreateOptions.ts +208 -0
  313. package/src/templates/templateQpcrTypes.ts +48 -0
  314. package/src/templates/types.ts +79 -275
  315. package/src/types/auto-group.ts +107 -9
  316. package/src/types/componentLabTypes.ts +235 -0
  317. package/src/types/componentWorkflowTypes.ts +190 -0
  318. package/src/types/components.ts +95 -424
  319. package/src/types/form-builder.ts +3 -0
  320. package/src/types/index.ts +2 -0
  321. package/dist/components-DafPc4rM.js.map +0 -1
  322. package/dist/composables-BMkPQhVK.js.map +0 -1
  323. package/dist/templates-bUAWMn5L.js.map +0 -1
  324. package/dist/useProtocolTemplates-QZtHFFH2.js.map +0 -1
package/dist/styles.css CHANGED
@@ -188,6 +188,90 @@
188
188
  height: 1rem;
189
189
  color: var(--text-muted);
190
190
  }
191
+ /* Tooltip — Dark Short */
192
+ .mint-tooltip {
193
+ display: inline-flex;
194
+ }
195
+ .mint-tooltip__content {
196
+ position: absolute;
197
+ z-index: 9999;
198
+ display: inline-flex;
199
+ align-items: center;
200
+ gap: 0.5rem;
201
+ padding: 0.375rem 0.625rem;
202
+ font-size: 0.75rem;
203
+ line-height: 1.2;
204
+ color: #FFFFFF;
205
+ background: #0F172A;
206
+ border-radius: var(--radius-sm);
207
+ white-space: nowrap;
208
+ pointer-events: none;
209
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
210
+ }
211
+
212
+ /* Multi-line opt-in via maxWidth prop */
213
+ .mint-tooltip__content--multiline {
214
+ white-space: normal;
215
+ line-height: 1.4;
216
+ }
217
+ .mint-tooltip__body {
218
+ display: inline;
219
+ }
220
+
221
+ /* Keyboard shortcut chip */
222
+ .mint-tooltip__shortcut {
223
+ display: inline-flex;
224
+ align-items: center;
225
+ padding: 0.0625rem 0.375rem;
226
+ font-family: var(--font-mono, 'Fira Code', monospace);
227
+ font-size: 0.6875rem;
228
+ font-weight: 500;
229
+ color: rgba(255, 255, 255, 0.85);
230
+ background: rgba(255, 255, 255, 0.12);
231
+ border: 1px solid rgba(255, 255, 255, 0.18);
232
+ border-radius: 3px;
233
+ line-height: 1;
234
+ }
235
+
236
+ /* Arrow — color matches the dark tooltip bg */
237
+ .mint-tooltip__content::after {
238
+ content: '';
239
+ position: absolute;
240
+ border-width: 4px;
241
+ border-style: solid;
242
+ }
243
+ .mint-tooltip__content--top::after,
244
+ .mint-tooltip__content--top-start::after,
245
+ .mint-tooltip__content--top-end::after {
246
+ top: 100%;
247
+ left: 50%;
248
+ transform: translateX(-50%);
249
+ border-color: #0F172A transparent transparent transparent;
250
+ }
251
+ .mint-tooltip__content--bottom::after,
252
+ .mint-tooltip__content--bottom-start::after,
253
+ .mint-tooltip__content--bottom-end::after {
254
+ bottom: 100%;
255
+ left: 50%;
256
+ transform: translateX(-50%);
257
+ border-color: transparent transparent #0F172A transparent;
258
+ }
259
+ .mint-tooltip__content--left::after,
260
+ .mint-tooltip__content--left-start::after,
261
+ .mint-tooltip__content--left-end::after {
262
+ left: 100%;
263
+ top: 50%;
264
+ transform: translateY(-50%);
265
+ border-color: transparent transparent transparent #0F172A;
266
+ }
267
+ .mint-tooltip__content--right::after,
268
+ .mint-tooltip__content--right-start::after,
269
+ .mint-tooltip__content--right-end::after {
270
+ right: 100%;
271
+ top: 50%;
272
+ transform: translateY(-50%);
273
+ border-color: transparent #0F172A transparent transparent;
274
+ }
191
275
  /* BaseCheckbox Component Styles */
192
276
  .mint-checkbox {
193
277
  display: inline-flex;
@@ -196,15 +280,77 @@
196
280
  cursor: pointer;
197
281
  user-select: none;
198
282
  }
283
+ .mint-checkbox--default {
284
+ width: fit-content;
285
+ }
286
+ .mint-checkbox--row {
287
+ width: 100%;
288
+ min-height: 2rem;
289
+ gap: 0.5rem;
290
+ padding: 0.375rem 0.5rem;
291
+ border-radius: var(--radius-sm, 0.375rem);
292
+ background: transparent;
293
+ box-sizing: border-box;
294
+ transition:
295
+ background-color 0.15s ease,
296
+ color 0.15s ease;
297
+ }
298
+ .mint-checkbox--row:hover {
299
+ background: var(--bg-hover);
300
+ }
199
301
  .mint-checkbox--disabled {
200
302
  opacity: var(--mint-disabled-opacity);
201
303
  cursor: not-allowed;
202
304
  }
305
+ .mint-checkbox--disabled.mint-checkbox--row:hover {
306
+ background: transparent;
307
+ }
308
+ .mint-checkbox__row-icon {
309
+ display: inline-flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ width: 0.875rem;
313
+ height: 0.875rem;
314
+ flex-shrink: 0;
315
+ transition:
316
+ color 0.15s ease,
317
+ transform 0.15s ease;
318
+ }
319
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
320
+ transform: scale(1.04);
321
+ }
322
+ .mint-checkbox__row-svg {
323
+ width: 0.875rem;
324
+ height: 0.875rem;
325
+ }
326
+ .mint-checkbox__row-text-icon {
327
+ font-size: 0.75rem;
328
+ font-weight: 700;
329
+ line-height: 1;
330
+ }
331
+ .mint-checkbox__copy {
332
+ display: block;
333
+ flex: 1 1 auto;
334
+ min-width: 0;
335
+ }
336
+ .mint-checkbox__copy .mint-tooltip {
337
+ max-width: 100%;
338
+ }
339
+ .mint-checkbox--row .mint-checkbox__label {
340
+ display: block;
341
+ overflow: hidden;
342
+ text-overflow: ellipsis;
343
+ white-space: nowrap;
344
+ }
345
+ .mint-checkbox__label--tooltip {
346
+ cursor: help;
347
+ }
203
348
  .mint-checkbox__input-wrapper {
204
349
  position: relative;
205
350
  display: flex;
206
351
  align-items: center;
207
352
  justify-content: center;
353
+ flex-shrink: 0;
208
354
  }
209
355
  .mint-checkbox__native {
210
356
  position: absolute;
@@ -281,6 +427,7 @@
281
427
  }
282
428
  .mint-checkbox__label {
283
429
  color: var(--text-primary);
430
+ line-height: 1.25;
284
431
  }
285
432
  .mint-checkbox__label--sm {
286
433
  font-size: 0.875rem;
@@ -291,6 +438,16 @@
291
438
  .mint-checkbox__label--lg {
292
439
  font-size: 1rem;
293
440
  }
441
+ @media (prefers-reduced-motion: reduce) {
442
+ .mint-checkbox--row,
443
+ .mint-checkbox__row-icon,
444
+ .mint-checkbox__box {
445
+ transition: none;
446
+ }
447
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
448
+ transform: none;
449
+ }
450
+ }
294
451
  /* BaseToggle Component Styles */
295
452
  .mint-toggle {
296
453
  display: inline-flex;
@@ -299,6 +456,24 @@
299
456
  cursor: pointer;
300
457
  user-select: none;
301
458
  }
459
+ .mint-toggle--default {
460
+ width: fit-content;
461
+ }
462
+ .mint-toggle--row {
463
+ width: 100%;
464
+ min-height: 2rem;
465
+ gap: 0.5rem;
466
+ padding: 0.375rem 0.5rem;
467
+ border-radius: var(--radius-sm, 0.375rem);
468
+ background: transparent;
469
+ box-sizing: border-box;
470
+ transition:
471
+ background-color 0.15s ease,
472
+ color 0.15s ease;
473
+ }
474
+ .mint-toggle--row:hover {
475
+ background: var(--bg-hover);
476
+ }
302
477
  .mint-toggle--reverse {
303
478
  flex-direction: row-reverse;
304
479
  justify-content: space-between;
@@ -317,6 +492,49 @@
317
492
  opacity: var(--mint-disabled-opacity);
318
493
  cursor: not-allowed;
319
494
  }
495
+ .mint-toggle--disabled.mint-toggle--row:hover {
496
+ background: transparent;
497
+ }
498
+ .mint-toggle__row-icon {
499
+ display: inline-flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ width: 0.875rem;
503
+ height: 0.875rem;
504
+ flex-shrink: 0;
505
+ transition:
506
+ color 0.15s ease,
507
+ transform 0.15s ease;
508
+ }
509
+ .mint-toggle--row:hover .mint-toggle__row-icon {
510
+ transform: scale(1.04);
511
+ }
512
+ .mint-toggle__row-svg {
513
+ width: 0.875rem;
514
+ height: 0.875rem;
515
+ }
516
+ .mint-toggle__row-text-icon {
517
+ font-size: 0.75rem;
518
+ font-weight: 700;
519
+ line-height: 1;
520
+ }
521
+ .mint-toggle__copy {
522
+ display: block;
523
+ flex: 1 1 auto;
524
+ min-width: 0;
525
+ }
526
+ .mint-toggle__copy .mint-tooltip {
527
+ max-width: 100%;
528
+ }
529
+ .mint-toggle--row .mint-toggle__label {
530
+ display: block;
531
+ overflow: hidden;
532
+ text-overflow: ellipsis;
533
+ white-space: nowrap;
534
+ }
535
+ .mint-toggle__label--tooltip {
536
+ cursor: help;
537
+ }
320
538
  .mint-toggle__track {
321
539
  position: relative;
322
540
  display: inline-block;
@@ -396,6 +614,7 @@
396
614
  }
397
615
  .mint-toggle__label {
398
616
  color: var(--text-primary);
617
+ line-height: 1.25;
399
618
  }
400
619
  .mint-toggle__label--sm {
401
620
  font-size: 0.875rem;
@@ -407,9 +626,14 @@
407
626
  font-size: 1rem;
408
627
  }
409
628
  @media (prefers-reduced-motion: reduce) {
410
- .mint-toggle__knob {
629
+ .mint-toggle--row,
630
+ .mint-toggle__row-icon,
631
+ .mint-toggle__knob {
411
632
  transition: none;
412
633
  }
634
+ .mint-toggle--row:hover .mint-toggle__row-icon {
635
+ transform: none;
636
+ }
413
637
  }
414
638
  /* BaseRadioGroup Component Styles */
415
639
  .mint-radio-group {
@@ -4802,24 +5026,43 @@ to {
4802
5026
  border-radius: var(--radius-lg);
4803
5027
  overflow: hidden;
4804
5028
  background-color: var(--bg-card);
5029
+ transition:
5030
+ border-color 150ms ease,
5031
+ box-shadow 150ms ease,
5032
+ transform 150ms ease;
4805
5033
  }
4806
- .mint-collapsible-card__header {
5034
+ .mint-collapsible-card:hover {
5035
+ border-color: color-mix(in srgb, var(--color-primary) 20%, var(--border-color));
5036
+ box-shadow: var(--shadow-sm);
5037
+ }
5038
+ .mint-collapsible-card__header-shell {
4807
5039
  display: flex;
4808
5040
  align-items: center;
4809
- justify-content: space-between;
4810
5041
  width: 100%;
5042
+ background-color: var(--bg-card);
5043
+ transition: background-color 0.15s ease;
5044
+ }
5045
+ .mint-collapsible-card__header-shell:hover {
5046
+ background-color: var(--bg-hover);
5047
+ }
5048
+ .mint-collapsible-card__header {
5049
+ display: flex;
5050
+ align-items: center;
5051
+ justify-content: flex-start;
5052
+ flex: 1;
5053
+ min-width: 0;
4811
5054
  padding: 0.75rem;
4812
5055
  text-align: left;
4813
- background-color: var(--bg-card);
5056
+ background-color: transparent;
4814
5057
  border: none;
4815
5058
  cursor: pointer;
4816
- transition: background-color 0.15s ease;
5059
+ transition: color 0.15s ease;
4817
5060
  gap: 0.75rem;
4818
5061
  font-family: inherit;
4819
5062
  min-height: 3rem;
4820
5063
  }
4821
5064
  .mint-collapsible-card__header:hover {
4822
- background-color: var(--bg-hover);
5065
+ background-color: transparent;
4823
5066
  }
4824
5067
  .mint-collapsible-card__header:focus-visible {
4825
5068
  outline: none;
@@ -4844,6 +5087,10 @@ to {
4844
5087
  height: 2rem;
4845
5088
  border-radius: var(--radius-md);
4846
5089
  flex-shrink: 0;
5090
+ transition: transform 180ms ease, background-color 150ms ease;
5091
+ }
5092
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge {
5093
+ transform: scale(1.04);
4847
5094
  }
4848
5095
  .mint-collapsible-card__icon {
4849
5096
  width: 1rem;
@@ -4885,8 +5132,95 @@ to {
4885
5132
  .mint-collapsible-card__actions {
4886
5133
  display: flex;
4887
5134
  align-items: center;
4888
- gap: 0.75rem;
5135
+ gap: 0.375rem;
4889
5136
  flex-shrink: 0;
5137
+ padding-right: 0.625rem;
5138
+ }
5139
+ .mint-collapsible-card__badge {
5140
+ display: inline-flex;
5141
+ align-items: center;
5142
+ justify-content: center;
5143
+ min-width: 1.25rem;
5144
+ height: 1.25rem;
5145
+ padding: 0 0.375rem;
5146
+ border-radius: 9999px;
5147
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color) 14%, transparent);
5148
+ color: var(--mint-sidebar-badge-color);
5149
+ font-size: 0.6875rem;
5150
+ font-weight: 700;
5151
+ line-height: 1;
5152
+ font-variant-numeric: tabular-nums;
5153
+ }
5154
+ .mint-collapsible-card__badge--primary,
5155
+ .mint-collapsible-card__action--primary {
5156
+ --mint-sidebar-badge-color: var(--color-primary);
5157
+ }
5158
+ .mint-collapsible-card__badge--cta,
5159
+ .mint-collapsible-card__action--cta {
5160
+ --mint-sidebar-badge-color: var(--color-cta);
5161
+ }
5162
+ .mint-collapsible-card__badge--success,
5163
+ .mint-collapsible-card__action--success {
5164
+ --mint-sidebar-badge-color: var(--mint-success);
5165
+ }
5166
+ .mint-collapsible-card__badge--warning,
5167
+ .mint-collapsible-card__action--warning {
5168
+ --mint-sidebar-badge-color: var(--mint-warning);
5169
+ }
5170
+ .mint-collapsible-card__badge--error,
5171
+ .mint-collapsible-card__action--error {
5172
+ --mint-sidebar-badge-color: var(--mint-error);
5173
+ }
5174
+ .mint-collapsible-card__badge--info,
5175
+ .mint-collapsible-card__action--info {
5176
+ --mint-sidebar-badge-color: var(--mint-info);
5177
+ }
5178
+ .mint-collapsible-card__badge--neutral,
5179
+ .mint-collapsible-card__action--neutral {
5180
+ --mint-sidebar-badge-color: var(--text-secondary);
5181
+ }
5182
+ .mint-collapsible-card__action,
5183
+ .mint-collapsible-card__chevron-button {
5184
+ display: inline-flex;
5185
+ align-items: center;
5186
+ justify-content: center;
5187
+ width: 1.75rem;
5188
+ height: 1.75rem;
5189
+ border: 0;
5190
+ border-radius: var(--radius-md);
5191
+ color: var(--mint-sidebar-badge-color, var(--text-muted));
5192
+ background: transparent;
5193
+ cursor: pointer;
5194
+ transition:
5195
+ color 150ms ease,
5196
+ background-color 150ms ease,
5197
+ transform 150ms ease;
5198
+ }
5199
+ .mint-collapsible-card__action:hover,
5200
+ .mint-collapsible-card__chevron-button:hover {
5201
+ color: var(--mint-sidebar-badge-color, var(--text-secondary));
5202
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color, var(--text-secondary)) 10%, transparent);
5203
+ transform: translateY(-1px);
5204
+ }
5205
+ .mint-collapsible-card__action:focus-visible,
5206
+ .mint-collapsible-card__chevron-button:focus-visible {
5207
+ outline: none;
5208
+ box-shadow: var(--focus-ring);
5209
+ }
5210
+ .mint-collapsible-card__action:disabled,
5211
+ .mint-collapsible-card__action--disabled,
5212
+ .mint-collapsible-card__chevron-button:disabled {
5213
+ opacity: var(--mint-disabled-opacity);
5214
+ cursor: not-allowed;
5215
+ transform: none;
5216
+ }
5217
+ .mint-collapsible-card__action-icon {
5218
+ width: 0.875rem;
5219
+ height: 0.875rem;
5220
+ }
5221
+ .mint-collapsible-card__action-text-icon {
5222
+ font-size: 0.8125rem;
5223
+ line-height: 1;
4890
5224
  }
4891
5225
  .mint-collapsible-card__toggle {
4892
5226
  display: flex;
@@ -4924,8 +5258,8 @@ to {
4924
5258
  left: 1.125rem;
4925
5259
  }
4926
5260
  .mint-collapsible-card__chevron {
4927
- width: 1.25rem;
4928
- height: 1.25rem;
5261
+ width: 1rem;
5262
+ height: 1rem;
4929
5263
  color: var(--text-muted);
4930
5264
  transition: transform 0.2s ease;
4931
5265
  flex-shrink: 0;
@@ -4933,7 +5267,7 @@ to {
4933
5267
  .mint-collapsible-card__chevron--open {
4934
5268
  transform: rotate(180deg);
4935
5269
  }
4936
- .mint-collapsible-card__header:hover .mint-collapsible-card__chevron {
5270
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__chevron {
4937
5271
  color: var(--text-secondary);
4938
5272
  }
4939
5273
  .mint-collapsible-card__body {
@@ -4955,15 +5289,13 @@ to {
4955
5289
  gap: 0.5rem;
4956
5290
  }
4957
5291
  .mint-collapsible-card--dense .mint-collapsible-card__icon-badge {
4958
- width: 1.5rem;
4959
- height: 1.5rem;
4960
- border-radius: var(--radius);
4961
- background: transparent !important;
5292
+ width: 1.75rem;
5293
+ height: 1.75rem;
5294
+ border-radius: var(--radius);
4962
5295
  }
4963
5296
  .mint-collapsible-card--dense .mint-collapsible-card__icon {
4964
5297
  width: 0.875rem;
4965
5298
  height: 0.875rem;
4966
- opacity: 0.5;
4967
5299
  }
4968
5300
  .mint-collapsible-card--dense .mint-collapsible-card__title {
4969
5301
  font-size: 0.8125rem;
@@ -4972,7 +5304,8 @@ to {
4972
5304
  font-size: 0.6875rem;
4973
5305
  }
4974
5306
  .mint-collapsible-card--dense .mint-collapsible-card__actions {
4975
- gap: 0.5rem;
5307
+ gap: 0.25rem;
5308
+ padding-right: 0.5rem;
4976
5309
  }
4977
5310
  .mint-collapsible-card--dense .mint-collapsible-card__chevron {
4978
5311
  width: 0.875rem;
@@ -5003,6 +5336,18 @@ to {
5003
5336
  .mint-collapsible-card__chevron {
5004
5337
  transition: none;
5005
5338
  }
5339
+ .mint-collapsible-card,
5340
+ .mint-collapsible-card__icon-badge,
5341
+ .mint-collapsible-card__action,
5342
+ .mint-collapsible-card__chevron-button {
5343
+ transition: none;
5344
+ }
5345
+ .mint-collapsible-card:hover,
5346
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge,
5347
+ .mint-collapsible-card__action:hover,
5348
+ .mint-collapsible-card__chevron-button:hover {
5349
+ transform: none;
5350
+ }
5006
5351
  .mint-collapsible-card__toggle-knob {
5007
5352
  transition: none;
5008
5353
  }
@@ -7731,7 +8076,7 @@ to { transform: rotate(360deg);
7731
8076
  height: 100%;
7732
8077
  overflow: hidden;
7733
8078
  background-color: var(--bg-secondary);
7734
- transition: width 180ms ease;
8079
+ transition: width 180ms ease, background-color 150ms ease;
7735
8080
  }
7736
8081
  .mint-sidebar--hidden {
7737
8082
  display: none;
@@ -7769,6 +8114,10 @@ to { transform: rotate(360deg);
7769
8114
  padding: 0.75rem;
7770
8115
  gap: 0.75rem;
7771
8116
  }
8117
+ .mint-sidebar--analysis.mint-sidebar--dense .mint-sidebar__sections {
8118
+ padding: 0.75rem;
8119
+ gap: 0.75rem;
8120
+ }
7772
8121
 
7773
8122
  /* Header / Footer slots */
7774
8123
  .mint-sidebar__header {
@@ -7884,6 +8233,91 @@ to { transform: rotate(360deg);
7884
8233
  align-items: center;
7885
8234
  gap: 0.5rem;
7886
8235
  }
8236
+ .mint-sidebar__collapsed--default {
8237
+ padding-top: 0.75rem;
8238
+ }
8239
+ .mint-sidebar__rail-item {
8240
+ position: relative;
8241
+ display: inline-flex;
8242
+ align-items: center;
8243
+ justify-content: center;
8244
+ width: 2rem;
8245
+ height: 2rem;
8246
+ border: 0;
8247
+ border-radius: var(--radius-md);
8248
+ color: var(--text-secondary);
8249
+ background: transparent;
8250
+ cursor: pointer;
8251
+ transition:
8252
+ background-color 150ms ease,
8253
+ transform 150ms ease;
8254
+ }
8255
+ .mint-sidebar__rail-item:hover {
8256
+ background: var(--bg-tertiary);
8257
+ transform: translateY(-1px);
8258
+ }
8259
+ .mint-sidebar__rail-item:focus-visible {
8260
+ outline: none;
8261
+ box-shadow: var(--focus-ring);
8262
+ }
8263
+ .mint-sidebar__rail-icon {
8264
+ display: inline-flex;
8265
+ align-items: center;
8266
+ justify-content: center;
8267
+ width: 1.75rem;
8268
+ height: 1.75rem;
8269
+ border-radius: var(--radius-md);
8270
+ transition: transform 150ms ease;
8271
+ }
8272
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
8273
+ transform: scale(1.04);
8274
+ }
8275
+ .mint-sidebar__rail-svg {
8276
+ width: 0.9375rem;
8277
+ height: 0.9375rem;
8278
+ }
8279
+ .mint-sidebar__rail-text-icon {
8280
+ font-size: 0.8125rem;
8281
+ font-weight: 700;
8282
+ line-height: 1;
8283
+ }
8284
+ .mint-sidebar__rail-badge {
8285
+ position: absolute;
8286
+ top: -0.25rem;
8287
+ right: -0.25rem;
8288
+ min-width: 1rem;
8289
+ height: 1rem;
8290
+ padding: 0 0.25rem;
8291
+ border-radius: 9999px;
8292
+ background: var(--mint-sidebar-rail-badge-color);
8293
+ color: white;
8294
+ font-size: 0.625rem;
8295
+ font-weight: 700;
8296
+ line-height: 1rem;
8297
+ text-align: center;
8298
+ font-variant-numeric: tabular-nums;
8299
+ }
8300
+ .mint-sidebar__rail-badge--primary {
8301
+ --mint-sidebar-rail-badge-color: var(--color-primary);
8302
+ }
8303
+ .mint-sidebar__rail-badge--cta {
8304
+ --mint-sidebar-rail-badge-color: var(--color-cta);
8305
+ }
8306
+ .mint-sidebar__rail-badge--success {
8307
+ --mint-sidebar-rail-badge-color: var(--mint-success);
8308
+ }
8309
+ .mint-sidebar__rail-badge--warning {
8310
+ --mint-sidebar-rail-badge-color: var(--mint-warning);
8311
+ }
8312
+ .mint-sidebar__rail-badge--error {
8313
+ --mint-sidebar-rail-badge-color: var(--mint-error);
8314
+ }
8315
+ .mint-sidebar__rail-badge--info {
8316
+ --mint-sidebar-rail-badge-color: var(--mint-info);
8317
+ }
8318
+ .mint-sidebar__rail-badge--neutral {
8319
+ --mint-sidebar-rail-badge-color: var(--text-secondary);
8320
+ }
7887
8321
 
7888
8322
  /* Dense sidebar variant — compact sections */
7889
8323
  .mint-sidebar--dense .mint-sidebar__sections {
@@ -7903,21 +8337,25 @@ to { transform: rotate(360deg);
7903
8337
  background-color: var(--bg-card);
7904
8338
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
7905
8339
  }
8340
+ .mint-sidebar--analysis .mint-sidebar__sections > .mint-collapsible-card {
8341
+ border-color: var(--border-color);
8342
+ border-radius: var(--radius-lg);
8343
+ }
7906
8344
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__header {
7907
8345
  padding: 0.625rem 0.75rem;
7908
8346
  min-height: auto;
7909
8347
  }
7910
8348
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-badge {
7911
- width: 2.25rem;
7912
- height: 2.25rem;
8349
+ width: 1.75rem;
8350
+ height: 1.75rem;
7913
8351
  border-radius: var(--radius-md);
7914
8352
  }
7915
8353
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon {
7916
- width: 1.125rem;
7917
- height: 1.125rem;
8354
+ width: 0.9375rem;
8355
+ height: 0.9375rem;
7918
8356
  }
7919
8357
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-text {
7920
- font-size: 1.125rem;
8358
+ font-size: 0.9375rem;
7921
8359
  }
7922
8360
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__title {
7923
8361
  font-size: 0.875rem;
@@ -7954,6 +8392,20 @@ to { transform: rotate(360deg);
7954
8392
  flex-direction: column;
7955
8393
  gap: 0.75rem;
7956
8394
  }
8395
+ .mint-sidebar__footer--collapsed {
8396
+ padding: 0.5rem;
8397
+ }
8398
+ @media (prefers-reduced-motion: reduce) {
8399
+ .mint-sidebar,
8400
+ .mint-sidebar__rail-item,
8401
+ .mint-sidebar__rail-icon {
8402
+ transition: none;
8403
+ }
8404
+ .mint-sidebar__rail-item:hover,
8405
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
8406
+ transform: none;
8407
+ }
8408
+ }
7957
8409
  /* AppLayout Component Styles */
7958
8410
  .mint-layout {
7959
8411
  display: flex;
@@ -10355,6 +10807,8 @@ to {
10355
10807
  display: flex;
10356
10808
  flex-direction: column;
10357
10809
  }
10810
+
10811
+ /* --- Paste: free-form textarea (the self-designed input path) --- */
10358
10812
  .mint-auto-group__paste {
10359
10813
  position: relative;
10360
10814
  }
@@ -10573,328 +11027,377 @@ to {
10573
11027
  flex-wrap: wrap;
10574
11028
  gap: 0.375rem;
10575
11029
  }
10576
-
10577
- /* --- Outlier step --- */
10578
- .mint-auto-group__outlier-step {
10579
- display: flex;
10580
- flex-direction: column;
10581
- gap: 0.75rem;
10582
- }
10583
- .mint-auto-group__outlier-banner {
10584
- padding: 0.75rem 1rem;
10585
- background: var(--mint-warning-bg);
10586
- border: 1px solid rgba(245, 158, 11, 0.3);
10587
- border-radius: var(--radius-md);
10588
- font-size: 0.8125rem;
10589
- color: var(--text-primary);
10590
- }
10591
- .mint-auto-group__outlier-banner code {
11030
+ .mint-auto-group__field-value {
10592
11031
  font-family: 'Fira Code', monospace;
10593
- background: var(--bg-tertiary);
10594
- padding: 0.125rem 0.375rem;
10595
- border-radius: var(--radius-sm);
10596
- font-size: 0.8125rem;
10597
- }
10598
- .mint-auto-group__outlier-batch {
10599
- display: flex;
10600
- gap: 0.5rem;
11032
+ font-size: 11.5px;
11033
+ background: var(--bg-primary);
11034
+ border: 1px solid var(--border);
11035
+ padding: 2px 8px;
11036
+ border-radius: 9999px;
11037
+ color: var(--text-secondary);
10601
11038
  }
10602
- .mint-auto-group__outlier-list {
11039
+
11040
+ /* --- Navigation --- */
11041
+ .mint-auto-group__nav {
10603
11042
  display: flex;
10604
- flex-direction: column;
11043
+ align-items: center;
10605
11044
  gap: 0.5rem;
10606
- max-height: 300px;
10607
- overflow-y: auto;
10608
11045
  }
10609
- .mint-auto-group__outlier-item {
10610
- display: flex;
10611
- align-items: center;
10612
- justify-content: space-between;
10613
- padding: 0.5rem 0.75rem;
10614
- background: var(--bg-secondary);
10615
- border: 1px solid var(--border-color);
10616
- border-radius: var(--radius);
11046
+ .mint-auto-group__nav-spacer {
11047
+ flex: 1;
10617
11048
  }
10618
- .mint-auto-group__outlier-info {
10619
- display: flex;
10620
- align-items: center;
10621
- gap: 0.5rem;
10622
- min-width: 0;
11049
+
11050
+ /* --- Workspace step --- */
11051
+ .mint-auto-group__workspace { display: grid; grid-template-columns: 220px 1fr; gap: 16px; min-height: 480px; position: relative;
10623
11052
  }
10624
- .mint-auto-group__outlier-name {
10625
- font-family: 'Fira Code', monospace;
10626
- font-size: 0.8125rem;
10627
- color: var(--text-primary);
10628
- overflow: hidden;
10629
- text-overflow: ellipsis;
10630
- white-space: nowrap;
11053
+ .mint-auto-group__classes { background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; display: flex; flex-direction: column; gap: 4px;
10631
11054
  }
10632
- .mint-auto-group__outlier-badge {
10633
- font-size: 0.6875rem;
10634
- padding: 0.125rem 0.375rem;
10635
- border-radius: var(--radius-sm);
10636
- background: var(--bg-tertiary);
10637
- color: var(--text-muted);
10638
- white-space: nowrap;
10639
- flex-shrink: 0;
11055
+ .mint-auto-group__classes h3 { font-size: 11px; letter-spacing: .08em; color: var(--text-muted); text-transform: uppercase; margin: 0 0 8px;
10640
11056
  }
10641
- .mint-auto-group__outlier-actions {
10642
- display: flex;
10643
- gap: 0.25rem;
10644
- flex-shrink: 0;
10645
- margin-left: 0.75rem;
11057
+ .mint-auto-group__class { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 8px; padding: 8px 10px; border-radius: var(--radius-sm); cursor: pointer; background: transparent; border: 1px solid transparent; font-size: 13px; color: var(--text-primary); text-align: left;
10646
11058
  }
10647
- .mint-auto-group__action-btn {
10648
- font-size: 0.6875rem;
10649
- padding: 0.25rem 0.5rem;
10650
- border: 1px solid var(--border-color);
10651
- border-radius: var(--radius-sm);
10652
- background: var(--bg-secondary);
10653
- color: var(--text-secondary);
10654
- cursor: pointer;
10655
- transition: all 0.1s;
11059
+ .mint-auto-group__class:hover { background: var(--bg-tertiary);
10656
11060
  }
10657
- .mint-auto-group__action-btn:hover {
10658
- background: var(--bg-hover);
11061
+ .mint-auto-group__class--active { background: var(--color-primary-soft); border-color: var(--color-primary); color: var(--color-primary); font-weight: 500;
10659
11062
  }
10660
- .mint-auto-group__action-btn:focus-visible {
10661
- outline: 2px solid var(--color-primary);
10662
- outline-offset: 1px;
11063
+ .mint-auto-group__class--qc .mint-auto-group__class-dot { background: var(--mint-warning);
10663
11064
  }
10664
- .mint-auto-group__action-btn--active {
10665
- background: var(--color-primary-soft);
10666
- border-color: var(--color-primary);
10667
- color: var(--color-primary);
10668
- font-weight: 500;
11065
+ .mint-auto-group__class-dot { width: 8px; height: 8px; border-radius: 9999px; background: var(--text-muted);
10669
11066
  }
10670
- .mint-auto-group__action-btn--active.mint-auto-group__action-btn--exclude {
10671
- background: var(--mint-error-bg);
10672
- border-color: var(--mint-error);
10673
- color: var(--mint-error);
11067
+ .mint-auto-group__class-count { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-secondary); background: var(--bg-secondary); padding: 2px 8px; border-radius: 9999px; border: 1px solid var(--border);
10674
11068
  }
10675
- .mint-auto-group__action-btn--active.mint-auto-group__action-btn--qc {
10676
- background: rgba(107, 114, 128, 0.12);
10677
- border-color: var(--text-secondary);
10678
- color: var(--text-secondary);
11069
+ .mint-auto-group__schema { display: flex; flex-direction: column; gap: 12px; min-width: 0;
10679
11070
  }
10680
11071
 
10681
- /* --- Field step --- */
10682
- .mint-auto-group__field-step {
10683
- display: flex;
10684
- flex-direction: column;
10685
- gap: 1rem;
11072
+ /* --- Suggestion banner --- */
11073
+ .mint-auto-group__suggest { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--radius); border: 1px dashed var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary); font-size: 12.5px;
10686
11074
  }
10687
- .mint-auto-group__field-grid {
10688
- display: grid;
10689
- grid-template-columns: repeat(2, 1fr);
10690
- gap: 0.75rem;
11075
+ .mint-auto-group__suggest-btn { margin-left: 8px; background: var(--bg-primary); border: 1px solid var(--color-primary); color: var(--color-primary); padding: 4px 10px; border-radius: var(--radius-sm); cursor: pointer; font-size: 12px;
10691
11076
  }
10692
- @media (max-width: 600px) {
10693
- .mint-auto-group__field-grid {
10694
- grid-template-columns: 1fr;
11077
+ .mint-auto-group__suggest-btn--ghost { border-color: var(--border); color: var(--text-secondary);
10695
11078
  }
11079
+
11080
+ /* --- 3-stat strip (Option B redesign) ---
11081
+ *
11082
+ * Three peer stats at the top of the schema panel:
11083
+ * Groups (primary, with factor-chip composition below)
11084
+ * Samples (active class size · class label · token count)
11085
+ * Avg / group (with min/max sub)
11086
+ *
11087
+ * Replaces the old schema header + group summary bar. The strip is a
11088
+ * single rounded card with 1px gap dividers so the three cells read as
11089
+ * a unit, not three floating panels. */
11090
+ .mint-auto-group__stats {
11091
+ display: grid;
11092
+ grid-template-columns: repeat(3, 1fr);
11093
+ gap: 1px;
11094
+ background: var(--border);
11095
+ border: 1px solid var(--border);
11096
+ border-radius: var(--radius);
11097
+ overflow: hidden;
10696
11098
  }
10697
- .mint-auto-group__field-card {
10698
- padding: 0.75rem;
10699
- border: 1px solid var(--border-color);
10700
- border-radius: var(--radius-md);
10701
- background: var(--bg-secondary);
10702
- transition: border-color 0.15s, box-shadow 0.15s;
11099
+ .mint-auto-group__stat {
11100
+ background: var(--bg-primary);
11101
+ padding: 12px 14px;
11102
+ min-width: 0;
10703
11103
  }
10704
- .mint-auto-group__field-card--enabled {
10705
- border-color: var(--color-primary);
10706
- box-shadow: 0 0 0 1px var(--color-primary-soft);
11104
+ .mint-auto-group__stat-v {
11105
+ font-size: 22px;
11106
+ font-weight: 700;
11107
+ color: var(--text-primary);
11108
+ line-height: 1;
11109
+ font-variant-numeric: tabular-nums;
10707
11110
  }
10708
- .mint-auto-group__field-header {
10709
- display: flex;
10710
- align-items: center;
10711
- justify-content: space-between;
10712
- margin-bottom: 0.5rem;
11111
+ .mint-auto-group__stat--primary .mint-auto-group__stat-v { color: var(--color-primary);
11112
+ }
11113
+ .mint-auto-group__stat-l {
11114
+ font-size: 11px;
11115
+ color: var(--text-muted);
11116
+ text-transform: uppercase;
11117
+ letter-spacing: 0.05em;
11118
+ margin-top: 4px;
11119
+ font-weight: 600;
10713
11120
  }
10714
- .mint-auto-group__field-toggle {
11121
+ .mint-auto-group__stat-sub {
11122
+ margin-top: 8px;
10715
11123
  display: flex;
11124
+ flex-wrap: wrap;
11125
+ gap: 4px;
10716
11126
  align-items: center;
10717
- gap: 0.375rem;
10718
- cursor: pointer;
10719
- font-size: 0.8125rem;
11127
+ font-size: 11.5px;
10720
11128
  color: var(--text-secondary);
11129
+ min-height: 22px;
10721
11130
  }
10722
- .mint-auto-group__field-toggle input {
10723
- accent-color: var(--color-primary);
10724
- }
10725
- .mint-auto-group__field-toggle-label {
10726
- user-select: none;
10727
- }
10728
- .mint-auto-group__field-cardinality {
10729
- font-size: 0.6875rem;
11131
+ .mint-auto-group__stat-sub--muted {
10730
11132
  color: var(--text-muted);
11133
+ font-size: 11.5px;
10731
11134
  }
10732
- .mint-auto-group__field-name-input {
10733
- margin-bottom: 0.5rem;
10734
- }
10735
- .mint-auto-group__field-values {
10736
- display: flex;
10737
- flex-wrap: wrap;
10738
- gap: 0.25rem;
10739
- max-height: 4.5rem;
10740
- overflow-y: auto;
11135
+ .mint-auto-group__stat-empty {
11136
+ color: var(--text-muted);
11137
+ font-style: italic;
10741
11138
  }
10742
- .mint-auto-group__field-value {
10743
- font-size: 0.6875rem;
10744
- padding: 0.125rem 0.375rem;
10745
- border-radius: var(--radius-sm);
10746
- background: var(--bg-tertiary);
11139
+ .mint-auto-group__stat-empty strong {
10747
11140
  color: var(--text-secondary);
11141
+ font-style: normal;
11142
+ font-weight: 600;
11143
+ }
11144
+ .mint-auto-group__group-chip {
11145
+ font-size: 10.5px;
10748
11146
  font-family: 'Fira Code', monospace;
10749
- max-width: 100%;
10750
- overflow: hidden;
10751
- text-overflow: ellipsis;
11147
+ padding: 2px 7px;
11148
+ border-radius: 9999px;
11149
+ background: var(--color-primary-soft);
11150
+ color: var(--color-primary);
10752
11151
  white-space: nowrap;
11152
+ line-height: 1.4;
10753
11153
  }
10754
- .mint-auto-group__field-more {
10755
- font-size: 0.6875rem;
10756
- padding: 0.125rem 0.375rem;
10757
- color: var(--text-muted);
10758
- font-style: italic;
11154
+
11155
+ /* --- QC routing radio group (replaces the two checkboxes) --- */
11156
+ .mint-auto-group__routing {
11157
+ margin-top: 14px;
11158
+ padding-top: 14px;
11159
+ border-top: 1px solid var(--border);
10759
11160
  }
10760
- .mint-auto-group__field-summary {
10761
- font-size: 0.8125rem;
10762
- color: var(--text-secondary);
10763
- padding: 0.5rem 0.75rem;
10764
- background: var(--bg-tertiary);
10765
- border-radius: var(--radius);
11161
+ .mint-auto-group__routing-head {
11162
+ margin: 0 0 8px;
11163
+ font-size: 11px;
11164
+ text-transform: uppercase;
11165
+ letter-spacing: 0.05em;
11166
+ color: var(--text-muted);
11167
+ font-weight: 600;
10766
11168
  }
10767
- .mint-auto-group__field-summary strong {
11169
+ .mint-auto-group__routing-radio {
11170
+ display: flex;
11171
+ align-items: flex-start;
11172
+ gap: 8px;
11173
+ font-size: 12.5px;
10768
11174
  color: var(--text-primary);
11175
+ padding: 5px 0;
11176
+ cursor: pointer;
11177
+ line-height: 1.4;
10769
11178
  }
10770
- .mint-auto-group__field-warning {
10771
- font-size: 0.8125rem;
10772
- color: var(--mint-warning);
10773
- padding: 0.5rem 0.75rem;
10774
- background: var(--mint-warning-bg);
10775
- border-radius: var(--radius);
11179
+ .mint-auto-group__routing-radio input {
11180
+ margin-top: 2px;
11181
+ accent-color: var(--color-primary);
11182
+ flex-shrink: 0;
11183
+ }
11184
+ .mint-auto-group__routing-radio small {
11185
+ display: block;
11186
+ color: var(--text-muted);
11187
+ font-size: 11px;
11188
+ margin-top: 1px;
10776
11189
  }
10777
11190
 
10778
- /* --- Preview step --- */
10779
- .mint-auto-group__preview-step {
11191
+ /* --- Compact token table (replaces the horizontal cards row) ---
11192
+ *
11193
+ * One row per token position. Lets users scan a 6+ token batch without
11194
+ * horizontal scrolling and without each row carrying redundant card chrome.
11195
+ * Click the row to open the popover (rename, role override, value ops).
11196
+ * The Use checkbox lives inline; @click.stop on the label prevents
11197
+ * accidental popover triggering when toggling Use. */
11198
+ .mint-auto-group__token-table {
11199
+ flex: 1;
11200
+ min-height: 0;
10780
11201
  display: flex;
10781
11202
  flex-direction: column;
10782
- gap: 1rem;
10783
- }
10784
- .mint-auto-group__preview-summary {
10785
- display: flex;
10786
- flex-wrap: wrap;
10787
- gap: 0.5rem 1rem;
10788
- padding: 0.75rem 1rem;
10789
- background: var(--bg-tertiary);
10790
- border-radius: var(--radius-md);
10791
- }
10792
- .mint-auto-group__preview-stat {
10793
- font-size: 0.8125rem;
10794
- color: var(--text-secondary);
11203
+ border: 1px solid var(--border);
11204
+ border-radius: var(--radius);
11205
+ background: var(--bg-primary);
11206
+ overflow: auto;
10795
11207
  }
10796
- .mint-auto-group__preview-stat strong {
11208
+ .mint-auto-group__token-row {
11209
+ display: grid;
11210
+ /* Column widths chosen to fit in the lg modal's ~440px schema panel.
11211
+ * Token# stays narrow (single digit), Name + Preview share remaining
11212
+ * flex space, Role pill is fixed for badge stability, # uses a glyph
11213
+ * header so 32px is enough, Use is the checkbox, then the ⋯ trigger. */
11214
+ grid-template-columns: 28px minmax(0, 1fr) 76px 48px minmax(0, 1.4fr) 28px 18px;
11215
+ align-items: center;
11216
+ gap: 8px;
11217
+ padding: 9px 12px;
11218
+ background: transparent;
11219
+ border: 0;
11220
+ border-bottom: 1px solid var(--border);
11221
+ font-size: 12.5px;
10797
11222
  color: var(--text-primary);
11223
+ text-align: left;
11224
+ cursor: pointer;
11225
+ width: 100%;
11226
+ font-family: inherit;
11227
+ transition: background-color 150ms ease;
10798
11228
  }
10799
- .mint-auto-group__preview-stat--excluded strong {
10800
- color: var(--mint-error);
11229
+ .mint-auto-group__token-row:last-child { border-bottom: 0;
10801
11230
  }
10802
- .mint-auto-group__preview-groups {
10803
- display: flex;
10804
- flex-direction: column;
10805
- gap: 0.5rem;
10806
- max-height: 20rem;
10807
- overflow-y: auto;
11231
+ .mint-auto-group__token-row:hover { background: var(--bg-secondary);
10808
11232
  }
10809
- .mint-auto-group__preview-group {
10810
- border: 1px solid var(--border-color);
10811
- border-radius: var(--radius);
10812
- overflow: hidden;
11233
+ .mint-auto-group__token-row:focus-visible {
11234
+ outline: 2px solid var(--color-primary);
11235
+ outline-offset: -2px;
10813
11236
  }
10814
- .mint-auto-group__preview-group[open] {
10815
- background: var(--bg-secondary);
11237
+ .mint-auto-group__token-row--active { background: var(--color-primary-soft);
10816
11238
  }
10817
- .mint-auto-group__preview-group-header {
10818
- display: flex;
10819
- align-items: center;
10820
- gap: 0.5rem;
10821
- padding: 0.5rem 0.75rem;
10822
- cursor: pointer;
10823
- font-size: 0.8125rem;
10824
- user-select: none;
10825
- min-width: 0;
11239
+ .mint-auto-group__token-row--head {
11240
+ cursor: default;
11241
+ background: var(--bg-secondary);
11242
+ font-size: 11px;
11243
+ font-weight: 600;
11244
+ text-transform: uppercase;
11245
+ letter-spacing: 0.05em;
11246
+ color: var(--text-muted);
11247
+ padding: 8px 14px;
10826
11248
  }
10827
- .mint-auto-group__preview-group-header:hover {
10828
- background: var(--bg-hover);
11249
+ .mint-auto-group__token-row--head:hover { background: var(--bg-secondary);
10829
11250
  }
10830
- .mint-auto-group__preview-dot {
10831
- width: 0.625rem;
10832
- height: 0.625rem;
10833
- border-radius: 50%;
10834
- flex-shrink: 0;
11251
+ .mint-auto-group__token-ix {
11252
+ font-family: 'Fira Code', monospace;
11253
+ font-size: 12px;
11254
+ color: var(--text-muted);
10835
11255
  }
10836
- .mint-auto-group__preview-group-name {
11256
+ .mint-auto-group__token-nm {
10837
11257
  font-weight: 500;
10838
- color: var(--text-primary);
10839
11258
  overflow: hidden;
10840
11259
  text-overflow: ellipsis;
10841
11260
  white-space: nowrap;
10842
11261
  min-width: 0;
10843
11262
  }
10844
- .mint-auto-group__preview-group-count {
10845
- font-size: 0.6875rem;
10846
- font-weight: 500;
10847
- padding: 0.0625rem 0.375rem;
10848
- border-radius: var(--radius-sm);
10849
- margin-left: auto;
11263
+ .mint-auto-group__token-unique {
11264
+ font-family: 'Fira Code', monospace;
11265
+ font-size: 12.5px;
11266
+ color: var(--text-secondary);
11267
+ text-align: right;
11268
+ font-variant-numeric: tabular-nums;
10850
11269
  }
10851
- .mint-auto-group__preview-samples {
10852
- display: flex;
10853
- flex-wrap: wrap;
10854
- gap: 0.25rem;
10855
- padding: 0.5rem 0.75rem;
10856
- border-top: 1px solid var(--border-light);
11270
+ .mint-auto-group__token-num { text-align: right;
10857
11271
  }
10858
- .mint-auto-group__preview-sample {
10859
- font-size: 0.75rem;
11272
+ .mint-auto-group__token-preview {
10860
11273
  font-family: 'Fira Code', monospace;
10861
- padding: 0.125rem 0.375rem;
10862
- border-radius: var(--radius-sm);
10863
- background: var(--bg-tertiary);
11274
+ font-size: 11.5px;
10864
11275
  color: var(--text-secondary);
11276
+ overflow: hidden;
11277
+ text-overflow: ellipsis;
11278
+ white-space: nowrap;
11279
+ min-width: 0;
10865
11280
  }
10866
- .mint-auto-group__preview-sample--excluded {
10867
- opacity: 0.5;
10868
- text-decoration: line-through;
11281
+ .mint-auto-group__token-more {
11282
+ color: var(--text-muted);
11283
+ font-style: italic;
10869
11284
  }
10870
-
10871
- /* --- Excluded section --- */
10872
- .mint-auto-group__preview-excluded {
10873
- border-top: 1px solid var(--border-color);
10874
- padding-top: 0.75rem;
11285
+ .mint-auto-group__token-use,
11286
+ .mint-auto-group__token-use-head { display: flex; justify-content: center;
10875
11287
  }
10876
- .mint-auto-group__preview-excluded-title {
10877
- font-size: 0.75rem;
10878
- font-weight: 500;
11288
+ .mint-auto-group__token-use { cursor: pointer;
11289
+ }
11290
+ .mint-auto-group__token-use input {
11291
+ width: 16px;
11292
+ height: 16px;
11293
+ cursor: pointer;
11294
+ accent-color: var(--color-primary);
11295
+ }
11296
+ .mint-auto-group__token-trigger {
10879
11297
  color: var(--text-muted);
10880
- text-transform: uppercase;
10881
- letter-spacing: 0.05em;
10882
- margin-bottom: 0.5rem;
11298
+ text-align: center;
11299
+ font-size: 14px;
11300
+ user-select: none;
10883
11301
  }
10884
- .mint-auto-group__preview-excluded-list {
10885
- display: flex;
10886
- flex-wrap: wrap;
10887
- gap: 0.25rem;
11302
+
11303
+ /* --- Role badge (used in token rows and inside the popover) --- */
11304
+ .mint-auto-group__role { align-self: flex-start; display: inline-flex; padding: 2px 8px; border-radius: 9999px; border: 1px solid var(--border); background: var(--bg-secondary); color: var(--text-secondary); font-size: 10.5px; text-transform: uppercase; cursor: pointer;
11305
+ }
11306
+ .mint-auto-group__role--factor { background: var(--color-primary-soft); color: var(--color-primary); border-color: transparent;
11307
+ }
11308
+ .mint-auto-group__role--constant { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent;
11309
+ }
11310
+ .mint-auto-group__role--replicate { background: var(--mint-info-bg); color: var(--mint-info); border-color: var(--mint-info-border);
11311
+ }
11312
+ .mint-auto-group__role--run-order { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent;
11313
+ }
11314
+ .mint-auto-group__role--numeric { background: rgba(249,115,22,.10); color: var(--color-cta); border-color: rgba(249,115,22,.30);
11315
+ }
11316
+ .mint-auto-group__role--class-tag { background: rgba(123,208,181,.16); color: #0F766E; border-color: transparent;
11317
+ }
11318
+ .mint-auto-group__role--ignore { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent;
10888
11319
  }
10889
11320
 
10890
- /* --- Navigation --- */
10891
- .mint-auto-group__nav {
10892
- display: flex;
10893
- align-items: center;
10894
- gap: 0.5rem;
11321
+ /* --- Column popover (token rename, role override, value ops) ---
11322
+ * - bg-primary so it reads brighter than the surrounding bg-secondary panels.
11323
+ * - Layered shadow (close + far) reads as elevated rather than recessed.
11324
+ * - z-index 20 sits above schema cards but stays scoped to the modal's
11325
+ * stacking context. */
11326
+ .mint-auto-group__popover { position: absolute; right: 20px; top: 60px; width: 320px; background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 12px 32px -8px rgba(15, 23, 42, .22); padding: 14px; z-index: 20; display: flex; flex-direction: column; gap: 12px;
10895
11327
  }
10896
- .mint-auto-group__nav-spacer {
10897
- flex: 1;
11328
+ .mint-auto-group__popover-head { display: flex; align-items: center; gap: 8px;
11329
+ }
11330
+ .mint-auto-group__popover-head .mono { font-family: 'Fira Code', monospace; font-size: 11px; color: var(--text-muted); margin-left: auto;
11331
+ }
11332
+ .mint-auto-group__popover-close { background: transparent; border: 0; cursor: pointer; color: var(--text-secondary); font-size: 16px;
11333
+ }
11334
+ .mint-auto-group__popover-section { display: flex; flex-direction: column; gap: 6px;
11335
+ }
11336
+ .mint-auto-group__popover-label { font-size: 12px; font-weight: 600; color: var(--text-primary);
11337
+ }
11338
+ .mint-auto-group__pills { display: flex; flex-wrap: wrap; gap: 6px;
11339
+ }
11340
+ .mint-auto-group__pill-btn { font-size: 11.5px; padding: 3px 10px; border-radius: 9999px; border: 1px solid var(--border); background: var(--bg-primary); color: var(--text-secondary); cursor: pointer;
11341
+ }
11342
+ .mint-auto-group__pill-btn--on { background: var(--color-primary-soft); border-color: var(--color-primary); color: var(--color-primary); font-weight: 600;
11343
+ }
11344
+ .mint-auto-group__values-list { display: flex; flex-direction: column; gap: 6px; max-height: 180px; overflow-y: auto;
11345
+ }
11346
+ .mint-auto-group__value-row { display: grid; grid-template-columns: 100px 1fr auto; gap: 8px; align-items: center;
11347
+ }
11348
+ .mint-auto-group__value-src { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-muted); text-align: right;
11349
+ }
11350
+ .mint-auto-group__value-input { border: 1px solid var(--border); background: var(--bg-secondary); padding: 4px 8px; border-radius: var(--radius-sm); font-family: 'Fira Code', monospace; font-size: 12px;
11351
+ }
11352
+ .mint-auto-group__value-excl { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-secondary);
11353
+ }
11354
+ .mint-auto-group__link { background: transparent; border: 0; color: var(--color-primary); font-size: 12.5px; cursor: pointer; text-align: left; padding: 0;
11355
+ }
11356
+
11357
+ /* --- CSV download templates (Input step) --- */
11358
+ .mint-auto-group__template { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); display: flex; align-items: center; gap: 12px;
11359
+ }
11360
+ .mint-auto-group__template-label { font-size: 12.5px; color: var(--text-secondary);
11361
+ }
11362
+ .mint-auto-group__template-actions { display: flex; gap: 8px;
11363
+ }
11364
+
11365
+ /* --- Preview step --- */
11366
+ .mint-auto-group__preview { display: flex; flex-direction: column; gap: 14px;
11367
+ }
11368
+ .mint-auto-group__preview-summary { background: var(--color-primary-soft); color: var(--color-primary); border: 1px solid var(--color-primary); border-radius: var(--radius); padding: 10px 14px; font-size: 13px;
11369
+ }
11370
+ .mint-auto-group__preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
11371
+ }
11372
+ .mint-auto-group__preview-panel { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px;
11373
+ }
11374
+ .mint-auto-group__preview-panel h4 { margin: 0 0 10px; font-size: 12px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em;
11375
+ }
11376
+ .mint-auto-group__preview-group { border: 1px solid var(--border-color); border-radius: var(--radius); overflow: hidden;
11377
+ }
11378
+ .mint-auto-group__preview-group[open] { background: var(--bg-secondary);
11379
+ }
11380
+ .mint-auto-group__preview-group summary { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 13px; padding: 0.5rem 0.875rem;
11381
+ }
11382
+ .mint-auto-group__preview-group[open] summary { border-bottom: 1px solid var(--border);
11383
+ }
11384
+ .mint-auto-group__preview-dot { width: 10px; height: 10px; border-radius: 9999px; flex-shrink: 0;
11385
+ }
11386
+ .mint-auto-group__preview-count { margin-left: auto; font-family: 'Fira Code', monospace; font-size: 12px; color: var(--text-secondary); background: var(--bg-primary); border: 1px solid var(--border); padding: 2px 8px; border-radius: 9999px;
11387
+ }
11388
+ .mint-auto-group__preview-samples { display: flex; flex-wrap: wrap; gap: 6px; padding: 0.5rem 0.875rem 0.625rem;
11389
+ }
11390
+ .mint-auto-group__preview-sample { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-primary); background: var(--bg-primary); border: 1px solid var(--border); padding: 3px 8px; border-radius: 9999px;
11391
+ }
11392
+ .mint-auto-group__qc-chips { display: flex; flex-wrap: wrap; gap: 6px;
11393
+ }
11394
+ .mint-auto-group__qc-chip { background: var(--mint-warning-bg); color: #92400E; border: 1px solid var(--mint-warning-border); padding: 4px 10px; border-radius: 9999px; font-size: 12px;
11395
+ }
11396
+ .mint-auto-group__fingerprint { margin-top: 14px;
11397
+ }
11398
+ .mint-auto-group__fingerprint summary { cursor: pointer; font-size: 12px; color: var(--text-muted);
11399
+ }
11400
+ .mint-auto-group__fingerprint pre { font-family: 'Fira Code', monospace; font-size: 11px; background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px; overflow-x: auto;
10898
11401
  }
10899
11402
  /* SampleSelector Component Styles - RFA Design */
10900
11403
  .mint-sample-selector {
@@ -12061,10 +12564,10 @@ to {
12061
12564
  }
12062
12565
  }
12063
12566
 
12064
- .mint-control-workspace-view[data-v-ec2a5a8a] {
12567
+ .mint-control-workspace-view[data-v-83e93e6c] {
12065
12568
  min-width: 0;
12066
12569
  }
12067
- .mint-control-workspace-view__content[data-v-ec2a5a8a] {
12570
+ .mint-control-workspace-view__content[data-v-83e93e6c] {
12068
12571
  min-width: 0;
12069
12572
  padding: 1rem;
12070
12573
  }
@@ -12488,90 +12991,6 @@ to {
12488
12991
  width: 0.875rem;
12489
12992
  height: 0.875rem;
12490
12993
  }
12491
- /* Tooltip — Dark Short */
12492
- .mint-tooltip {
12493
- display: inline-flex;
12494
- }
12495
- .mint-tooltip__content {
12496
- position: absolute;
12497
- z-index: 9999;
12498
- display: inline-flex;
12499
- align-items: center;
12500
- gap: 0.5rem;
12501
- padding: 0.375rem 0.625rem;
12502
- font-size: 0.75rem;
12503
- line-height: 1.2;
12504
- color: #FFFFFF;
12505
- background: #0F172A;
12506
- border-radius: var(--radius-sm);
12507
- white-space: nowrap;
12508
- pointer-events: none;
12509
- box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
12510
- }
12511
-
12512
- /* Multi-line opt-in via maxWidth prop */
12513
- .mint-tooltip__content--multiline {
12514
- white-space: normal;
12515
- line-height: 1.4;
12516
- }
12517
- .mint-tooltip__body {
12518
- display: inline;
12519
- }
12520
-
12521
- /* Keyboard shortcut chip */
12522
- .mint-tooltip__shortcut {
12523
- display: inline-flex;
12524
- align-items: center;
12525
- padding: 0.0625rem 0.375rem;
12526
- font-family: var(--font-mono, 'Fira Code', monospace);
12527
- font-size: 0.6875rem;
12528
- font-weight: 500;
12529
- color: rgba(255, 255, 255, 0.85);
12530
- background: rgba(255, 255, 255, 0.12);
12531
- border: 1px solid rgba(255, 255, 255, 0.18);
12532
- border-radius: 3px;
12533
- line-height: 1;
12534
- }
12535
-
12536
- /* Arrow — color matches the dark tooltip bg */
12537
- .mint-tooltip__content::after {
12538
- content: '';
12539
- position: absolute;
12540
- border-width: 4px;
12541
- border-style: solid;
12542
- }
12543
- .mint-tooltip__content--top::after,
12544
- .mint-tooltip__content--top-start::after,
12545
- .mint-tooltip__content--top-end::after {
12546
- top: 100%;
12547
- left: 50%;
12548
- transform: translateX(-50%);
12549
- border-color: #0F172A transparent transparent transparent;
12550
- }
12551
- .mint-tooltip__content--bottom::after,
12552
- .mint-tooltip__content--bottom-start::after,
12553
- .mint-tooltip__content--bottom-end::after {
12554
- bottom: 100%;
12555
- left: 50%;
12556
- transform: translateX(-50%);
12557
- border-color: transparent transparent #0F172A transparent;
12558
- }
12559
- .mint-tooltip__content--left::after,
12560
- .mint-tooltip__content--left-start::after,
12561
- .mint-tooltip__content--left-end::after {
12562
- left: 100%;
12563
- top: 50%;
12564
- transform: translateY(-50%);
12565
- border-color: transparent transparent transparent #0F172A;
12566
- }
12567
- .mint-tooltip__content--right::after,
12568
- .mint-tooltip__content--right-start::after,
12569
- .mint-tooltip__content--right-end::after {
12570
- right: 100%;
12571
- top: 50%;
12572
- transform: translateY(-50%);
12573
- border-color: transparent #0F172A transparent transparent;
12574
- }
12575
12994
  /* ChartContainer Component Styles */
12576
12995
  .mint-chart {
12577
12996
  background-color: var(--bg-card);
@@ -17946,7 +18365,7 @@ code, pre {
17946
18365
  height: 100%;
17947
18366
  overflow: hidden;
17948
18367
  background-color: var(--bg-secondary);
17949
- transition: width 180ms ease;
18368
+ transition: width 180ms ease, background-color 150ms ease;
17950
18369
  }
17951
18370
  .mint-sidebar--hidden {
17952
18371
  display: none;
@@ -17984,6 +18403,10 @@ code, pre {
17984
18403
  padding: 0.75rem;
17985
18404
  gap: 0.75rem;
17986
18405
  }
18406
+ .mint-sidebar--analysis.mint-sidebar--dense .mint-sidebar__sections {
18407
+ padding: 0.75rem;
18408
+ gap: 0.75rem;
18409
+ }
17987
18410
  /* Header / Footer slots */
17988
18411
  .mint-sidebar__header {
17989
18412
  padding: 0.75rem;
@@ -18097,7 +18520,92 @@ code, pre {
18097
18520
  align-items: center;
18098
18521
  gap: 0.5rem;
18099
18522
  }
18100
- /* Dense sidebar variant — compact sections */
18523
+ .mint-sidebar__collapsed--default {
18524
+ padding-top: 0.75rem;
18525
+ }
18526
+ .mint-sidebar__rail-item {
18527
+ position: relative;
18528
+ display: inline-flex;
18529
+ align-items: center;
18530
+ justify-content: center;
18531
+ width: 2rem;
18532
+ height: 2rem;
18533
+ border: 0;
18534
+ border-radius: var(--radius-md);
18535
+ color: var(--text-secondary);
18536
+ background: transparent;
18537
+ cursor: pointer;
18538
+ transition:
18539
+ background-color 150ms ease,
18540
+ transform 150ms ease;
18541
+ }
18542
+ .mint-sidebar__rail-item:hover {
18543
+ background: var(--bg-tertiary);
18544
+ transform: translateY(-1px);
18545
+ }
18546
+ .mint-sidebar__rail-item:focus-visible {
18547
+ outline: none;
18548
+ box-shadow: var(--focus-ring);
18549
+ }
18550
+ .mint-sidebar__rail-icon {
18551
+ display: inline-flex;
18552
+ align-items: center;
18553
+ justify-content: center;
18554
+ width: 1.75rem;
18555
+ height: 1.75rem;
18556
+ border-radius: var(--radius-md);
18557
+ transition: transform 150ms ease;
18558
+ }
18559
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
18560
+ transform: scale(1.04);
18561
+ }
18562
+ .mint-sidebar__rail-svg {
18563
+ width: 0.9375rem;
18564
+ height: 0.9375rem;
18565
+ }
18566
+ .mint-sidebar__rail-text-icon {
18567
+ font-size: 0.8125rem;
18568
+ font-weight: 700;
18569
+ line-height: 1;
18570
+ }
18571
+ .mint-sidebar__rail-badge {
18572
+ position: absolute;
18573
+ top: -0.25rem;
18574
+ right: -0.25rem;
18575
+ min-width: 1rem;
18576
+ height: 1rem;
18577
+ padding: 0 0.25rem;
18578
+ border-radius: 9999px;
18579
+ background: var(--mint-sidebar-rail-badge-color);
18580
+ color: white;
18581
+ font-size: 0.625rem;
18582
+ font-weight: 700;
18583
+ line-height: 1rem;
18584
+ text-align: center;
18585
+ font-variant-numeric: tabular-nums;
18586
+ }
18587
+ .mint-sidebar__rail-badge--primary {
18588
+ --mint-sidebar-rail-badge-color: var(--color-primary);
18589
+ }
18590
+ .mint-sidebar__rail-badge--cta {
18591
+ --mint-sidebar-rail-badge-color: var(--color-cta);
18592
+ }
18593
+ .mint-sidebar__rail-badge--success {
18594
+ --mint-sidebar-rail-badge-color: var(--mint-success);
18595
+ }
18596
+ .mint-sidebar__rail-badge--warning {
18597
+ --mint-sidebar-rail-badge-color: var(--mint-warning);
18598
+ }
18599
+ .mint-sidebar__rail-badge--error {
18600
+ --mint-sidebar-rail-badge-color: var(--mint-error);
18601
+ }
18602
+ .mint-sidebar__rail-badge--info {
18603
+ --mint-sidebar-rail-badge-color: var(--mint-info);
18604
+ }
18605
+ .mint-sidebar__rail-badge--neutral {
18606
+ --mint-sidebar-rail-badge-color: var(--text-secondary);
18607
+ }
18608
+ /* Dense sidebar variant — compact sections */
18101
18609
  .mint-sidebar--dense .mint-sidebar__sections {
18102
18610
  padding: 0.5rem;
18103
18611
  gap: 0.375rem;
@@ -18114,21 +18622,25 @@ code, pre {
18114
18622
  background-color: var(--bg-card);
18115
18623
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
18116
18624
  }
18625
+ .mint-sidebar--analysis .mint-sidebar__sections > .mint-collapsible-card {
18626
+ border-color: var(--border-color);
18627
+ border-radius: var(--radius-lg);
18628
+ }
18117
18629
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__header {
18118
18630
  padding: 0.625rem 0.75rem;
18119
18631
  min-height: auto;
18120
18632
  }
18121
18633
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-badge {
18122
- width: 2.25rem;
18123
- height: 2.25rem;
18634
+ width: 1.75rem;
18635
+ height: 1.75rem;
18124
18636
  border-radius: var(--radius-md);
18125
18637
  }
18126
18638
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon {
18127
- width: 1.125rem;
18128
- height: 1.125rem;
18639
+ width: 0.9375rem;
18640
+ height: 0.9375rem;
18129
18641
  }
18130
18642
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__icon-text {
18131
- font-size: 1.125rem;
18643
+ font-size: 0.9375rem;
18132
18644
  }
18133
18645
  .mint-sidebar__sections > .mint-collapsible-card .mint-collapsible-card__title {
18134
18646
  font-size: 0.875rem;
@@ -18164,6 +18676,21 @@ code, pre {
18164
18676
  flex-direction: column;
18165
18677
  gap: 0.75rem;
18166
18678
  }
18679
+ .mint-sidebar__footer--collapsed {
18680
+ padding: 0.5rem;
18681
+ }
18682
+ @media (prefers-reduced-motion: reduce) {
18683
+ .mint-sidebar,
18684
+ .mint-sidebar__rail-item,
18685
+ .mint-sidebar__rail-icon {
18686
+ transition: none;
18687
+ }
18688
+
18689
+ .mint-sidebar__rail-item:hover,
18690
+ .mint-sidebar__rail-item:hover .mint-sidebar__rail-icon {
18691
+ transform: none;
18692
+ }
18693
+ }
18167
18694
  /* AppTopBar - BEM-style naming for external package consumers */
18168
18695
  /* Motion tokens — shared across AppTopBar subcomponents */
18169
18696
  :root {
@@ -18585,15 +19112,77 @@ code, pre {
18585
19112
  cursor: pointer;
18586
19113
  user-select: none;
18587
19114
  }
19115
+ .mint-checkbox--default {
19116
+ width: fit-content;
19117
+ }
19118
+ .mint-checkbox--row {
19119
+ width: 100%;
19120
+ min-height: 2rem;
19121
+ gap: 0.5rem;
19122
+ padding: 0.375rem 0.5rem;
19123
+ border-radius: var(--radius-sm, 0.375rem);
19124
+ background: transparent;
19125
+ box-sizing: border-box;
19126
+ transition:
19127
+ background-color 0.15s ease,
19128
+ color 0.15s ease;
19129
+ }
19130
+ .mint-checkbox--row:hover {
19131
+ background: var(--bg-hover);
19132
+ }
18588
19133
  .mint-checkbox--disabled {
18589
19134
  opacity: var(--mint-disabled-opacity);
18590
19135
  cursor: not-allowed;
18591
19136
  }
19137
+ .mint-checkbox--disabled.mint-checkbox--row:hover {
19138
+ background: transparent;
19139
+ }
19140
+ .mint-checkbox__row-icon {
19141
+ display: inline-flex;
19142
+ align-items: center;
19143
+ justify-content: center;
19144
+ width: 0.875rem;
19145
+ height: 0.875rem;
19146
+ flex-shrink: 0;
19147
+ transition:
19148
+ color 0.15s ease,
19149
+ transform 0.15s ease;
19150
+ }
19151
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
19152
+ transform: scale(1.04);
19153
+ }
19154
+ .mint-checkbox__row-svg {
19155
+ width: 0.875rem;
19156
+ height: 0.875rem;
19157
+ }
19158
+ .mint-checkbox__row-text-icon {
19159
+ font-size: 0.75rem;
19160
+ font-weight: 700;
19161
+ line-height: 1;
19162
+ }
19163
+ .mint-checkbox__copy {
19164
+ display: block;
19165
+ flex: 1 1 auto;
19166
+ min-width: 0;
19167
+ }
19168
+ .mint-checkbox__copy .mint-tooltip {
19169
+ max-width: 100%;
19170
+ }
19171
+ .mint-checkbox--row .mint-checkbox__label {
19172
+ display: block;
19173
+ overflow: hidden;
19174
+ text-overflow: ellipsis;
19175
+ white-space: nowrap;
19176
+ }
19177
+ .mint-checkbox__label--tooltip {
19178
+ cursor: help;
19179
+ }
18592
19180
  .mint-checkbox__input-wrapper {
18593
19181
  position: relative;
18594
19182
  display: flex;
18595
19183
  align-items: center;
18596
19184
  justify-content: center;
19185
+ flex-shrink: 0;
18597
19186
  }
18598
19187
  .mint-checkbox__native {
18599
19188
  position: absolute;
@@ -18670,6 +19259,7 @@ code, pre {
18670
19259
  }
18671
19260
  .mint-checkbox__label {
18672
19261
  color: var(--text-primary);
19262
+ line-height: 1.25;
18673
19263
  }
18674
19264
  .mint-checkbox__label--sm {
18675
19265
  font-size: 0.875rem;
@@ -18680,30 +19270,60 @@ code, pre {
18680
19270
  .mint-checkbox__label--lg {
18681
19271
  font-size: 1rem;
18682
19272
  }
19273
+ @media (prefers-reduced-motion: reduce) {
19274
+ .mint-checkbox--row,
19275
+ .mint-checkbox__row-icon,
19276
+ .mint-checkbox__box {
19277
+ transition: none;
19278
+ }
19279
+
19280
+ .mint-checkbox--row:hover .mint-checkbox__row-icon {
19281
+ transform: none;
19282
+ }
19283
+ }
18683
19284
  /* CollapsibleCard Component Styles */
18684
19285
  .mint-collapsible-card {
18685
19286
  border: 1px solid var(--border-color);
18686
19287
  border-radius: var(--radius-lg);
18687
19288
  overflow: hidden;
18688
19289
  background-color: var(--bg-card);
19290
+ transition:
19291
+ border-color 150ms ease,
19292
+ box-shadow 150ms ease,
19293
+ transform 150ms ease;
18689
19294
  }
18690
- .mint-collapsible-card__header {
19295
+ .mint-collapsible-card:hover {
19296
+ border-color: color-mix(in srgb, var(--color-primary) 20%, var(--border-color));
19297
+ box-shadow: var(--shadow-sm);
19298
+ }
19299
+ .mint-collapsible-card__header-shell {
18691
19300
  display: flex;
18692
19301
  align-items: center;
18693
- justify-content: space-between;
18694
19302
  width: 100%;
19303
+ background-color: var(--bg-card);
19304
+ transition: background-color 0.15s ease;
19305
+ }
19306
+ .mint-collapsible-card__header-shell:hover {
19307
+ background-color: var(--bg-hover);
19308
+ }
19309
+ .mint-collapsible-card__header {
19310
+ display: flex;
19311
+ align-items: center;
19312
+ justify-content: flex-start;
19313
+ flex: 1;
19314
+ min-width: 0;
18695
19315
  padding: 0.75rem;
18696
19316
  text-align: left;
18697
- background-color: var(--bg-card);
19317
+ background-color: transparent;
18698
19318
  border: none;
18699
19319
  cursor: pointer;
18700
- transition: background-color 0.15s ease;
19320
+ transition: color 0.15s ease;
18701
19321
  gap: 0.75rem;
18702
19322
  font-family: inherit;
18703
19323
  min-height: 3rem;
18704
19324
  }
18705
19325
  .mint-collapsible-card__header:hover {
18706
- background-color: var(--bg-hover);
19326
+ background-color: transparent;
18707
19327
  }
18708
19328
  .mint-collapsible-card__header:focus-visible {
18709
19329
  outline: none;
@@ -18728,6 +19348,10 @@ code, pre {
18728
19348
  height: 2rem;
18729
19349
  border-radius: var(--radius-md);
18730
19350
  flex-shrink: 0;
19351
+ transition: transform 180ms ease, background-color 150ms ease;
19352
+ }
19353
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge {
19354
+ transform: scale(1.04);
18731
19355
  }
18732
19356
  .mint-collapsible-card__icon {
18733
19357
  width: 1rem;
@@ -18769,8 +19393,95 @@ code, pre {
18769
19393
  .mint-collapsible-card__actions {
18770
19394
  display: flex;
18771
19395
  align-items: center;
18772
- gap: 0.75rem;
19396
+ gap: 0.375rem;
18773
19397
  flex-shrink: 0;
19398
+ padding-right: 0.625rem;
19399
+ }
19400
+ .mint-collapsible-card__badge {
19401
+ display: inline-flex;
19402
+ align-items: center;
19403
+ justify-content: center;
19404
+ min-width: 1.25rem;
19405
+ height: 1.25rem;
19406
+ padding: 0 0.375rem;
19407
+ border-radius: 9999px;
19408
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color) 14%, transparent);
19409
+ color: var(--mint-sidebar-badge-color);
19410
+ font-size: 0.6875rem;
19411
+ font-weight: 700;
19412
+ line-height: 1;
19413
+ font-variant-numeric: tabular-nums;
19414
+ }
19415
+ .mint-collapsible-card__badge--primary,
19416
+ .mint-collapsible-card__action--primary {
19417
+ --mint-sidebar-badge-color: var(--color-primary);
19418
+ }
19419
+ .mint-collapsible-card__badge--cta,
19420
+ .mint-collapsible-card__action--cta {
19421
+ --mint-sidebar-badge-color: var(--color-cta);
19422
+ }
19423
+ .mint-collapsible-card__badge--success,
19424
+ .mint-collapsible-card__action--success {
19425
+ --mint-sidebar-badge-color: var(--mint-success);
19426
+ }
19427
+ .mint-collapsible-card__badge--warning,
19428
+ .mint-collapsible-card__action--warning {
19429
+ --mint-sidebar-badge-color: var(--mint-warning);
19430
+ }
19431
+ .mint-collapsible-card__badge--error,
19432
+ .mint-collapsible-card__action--error {
19433
+ --mint-sidebar-badge-color: var(--mint-error);
19434
+ }
19435
+ .mint-collapsible-card__badge--info,
19436
+ .mint-collapsible-card__action--info {
19437
+ --mint-sidebar-badge-color: var(--mint-info);
19438
+ }
19439
+ .mint-collapsible-card__badge--neutral,
19440
+ .mint-collapsible-card__action--neutral {
19441
+ --mint-sidebar-badge-color: var(--text-secondary);
19442
+ }
19443
+ .mint-collapsible-card__action,
19444
+ .mint-collapsible-card__chevron-button {
19445
+ display: inline-flex;
19446
+ align-items: center;
19447
+ justify-content: center;
19448
+ width: 1.75rem;
19449
+ height: 1.75rem;
19450
+ border: 0;
19451
+ border-radius: var(--radius-md);
19452
+ color: var(--mint-sidebar-badge-color, var(--text-muted));
19453
+ background: transparent;
19454
+ cursor: pointer;
19455
+ transition:
19456
+ color 150ms ease,
19457
+ background-color 150ms ease,
19458
+ transform 150ms ease;
19459
+ }
19460
+ .mint-collapsible-card__action:hover,
19461
+ .mint-collapsible-card__chevron-button:hover {
19462
+ color: var(--mint-sidebar-badge-color, var(--text-secondary));
19463
+ background: color-mix(in srgb, var(--mint-sidebar-badge-color, var(--text-secondary)) 10%, transparent);
19464
+ transform: translateY(-1px);
19465
+ }
19466
+ .mint-collapsible-card__action:focus-visible,
19467
+ .mint-collapsible-card__chevron-button:focus-visible {
19468
+ outline: none;
19469
+ box-shadow: var(--focus-ring);
19470
+ }
19471
+ .mint-collapsible-card__action:disabled,
19472
+ .mint-collapsible-card__action--disabled,
19473
+ .mint-collapsible-card__chevron-button:disabled {
19474
+ opacity: var(--mint-disabled-opacity);
19475
+ cursor: not-allowed;
19476
+ transform: none;
19477
+ }
19478
+ .mint-collapsible-card__action-icon {
19479
+ width: 0.875rem;
19480
+ height: 0.875rem;
19481
+ }
19482
+ .mint-collapsible-card__action-text-icon {
19483
+ font-size: 0.8125rem;
19484
+ line-height: 1;
18774
19485
  }
18775
19486
  .mint-collapsible-card__toggle {
18776
19487
  display: flex;
@@ -18808,8 +19519,8 @@ code, pre {
18808
19519
  left: 1.125rem;
18809
19520
  }
18810
19521
  .mint-collapsible-card__chevron {
18811
- width: 1.25rem;
18812
- height: 1.25rem;
19522
+ width: 1rem;
19523
+ height: 1rem;
18813
19524
  color: var(--text-muted);
18814
19525
  transition: transform 0.2s ease;
18815
19526
  flex-shrink: 0;
@@ -18817,7 +19528,7 @@ code, pre {
18817
19528
  .mint-collapsible-card__chevron--open {
18818
19529
  transform: rotate(180deg);
18819
19530
  }
18820
- .mint-collapsible-card__header:hover .mint-collapsible-card__chevron {
19531
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__chevron {
18821
19532
  color: var(--text-secondary);
18822
19533
  }
18823
19534
  .mint-collapsible-card__body {
@@ -18838,15 +19549,13 @@ code, pre {
18838
19549
  gap: 0.5rem;
18839
19550
  }
18840
19551
  .mint-collapsible-card--dense .mint-collapsible-card__icon-badge {
18841
- width: 1.5rem;
18842
- height: 1.5rem;
19552
+ width: 1.75rem;
19553
+ height: 1.75rem;
18843
19554
  border-radius: var(--radius);
18844
- background: transparent !important;
18845
19555
  }
18846
19556
  .mint-collapsible-card--dense .mint-collapsible-card__icon {
18847
19557
  width: 0.875rem;
18848
19558
  height: 0.875rem;
18849
- opacity: 0.5;
18850
19559
  }
18851
19560
  .mint-collapsible-card--dense .mint-collapsible-card__title {
18852
19561
  font-size: 0.8125rem;
@@ -18855,7 +19564,8 @@ code, pre {
18855
19564
  font-size: 0.6875rem;
18856
19565
  }
18857
19566
  .mint-collapsible-card--dense .mint-collapsible-card__actions {
18858
- gap: 0.5rem;
19567
+ gap: 0.25rem;
19568
+ padding-right: 0.5rem;
18859
19569
  }
18860
19570
  .mint-collapsible-card--dense .mint-collapsible-card__chevron {
18861
19571
  width: 0.875rem;
@@ -18886,6 +19596,20 @@ code, pre {
18886
19596
  transition: none;
18887
19597
  }
18888
19598
 
19599
+ .mint-collapsible-card,
19600
+ .mint-collapsible-card__icon-badge,
19601
+ .mint-collapsible-card__action,
19602
+ .mint-collapsible-card__chevron-button {
19603
+ transition: none;
19604
+ }
19605
+
19606
+ .mint-collapsible-card:hover,
19607
+ .mint-collapsible-card__header-shell:hover .mint-collapsible-card__icon-badge,
19608
+ .mint-collapsible-card__action:hover,
19609
+ .mint-collapsible-card__chevron-button:hover {
19610
+ transform: none;
19611
+ }
19612
+
18889
19613
  .mint-collapsible-card__toggle-knob {
18890
19614
  transition: none;
18891
19615
  }
@@ -22377,6 +23101,24 @@ html.dark .mint-toast__item .mint-toast__message {
22377
23101
  cursor: pointer;
22378
23102
  user-select: none;
22379
23103
  }
23104
+ .mint-toggle--default {
23105
+ width: fit-content;
23106
+ }
23107
+ .mint-toggle--row {
23108
+ width: 100%;
23109
+ min-height: 2rem;
23110
+ gap: 0.5rem;
23111
+ padding: 0.375rem 0.5rem;
23112
+ border-radius: var(--radius-sm, 0.375rem);
23113
+ background: transparent;
23114
+ box-sizing: border-box;
23115
+ transition:
23116
+ background-color 0.15s ease,
23117
+ color 0.15s ease;
23118
+ }
23119
+ .mint-toggle--row:hover {
23120
+ background: var(--bg-hover);
23121
+ }
22380
23122
  .mint-toggle--reverse {
22381
23123
  flex-direction: row-reverse;
22382
23124
  justify-content: space-between;
@@ -22394,27 +23136,70 @@ html.dark .mint-toast__item .mint-toast__message {
22394
23136
  opacity: var(--mint-disabled-opacity);
22395
23137
  cursor: not-allowed;
22396
23138
  }
22397
- .mint-toggle__track {
22398
- position: relative;
22399
- display: inline-block;
23139
+ .mint-toggle--disabled.mint-toggle--row:hover {
23140
+ background: transparent;
23141
+ }
23142
+ .mint-toggle__row-icon {
23143
+ display: inline-flex;
23144
+ align-items: center;
23145
+ justify-content: center;
23146
+ width: 0.875rem;
23147
+ height: 0.875rem;
22400
23148
  flex-shrink: 0;
22401
- padding: 2px;
22402
- border-radius: 9999px;
22403
- /* Explicit border-box — knob `left` math assumes the declared width/height
22404
- are the outer dimensions. Without this, a consumer without a global
22405
- box-sizing reset (e.g. raw Histoire) renders the track 4px too wide and
22406
- the on-state knob falls short of the right edge. */
22407
- box-sizing: border-box;
22408
- transition: background-color 0.15s ease, box-shadow 0.15s ease;
23149
+ transition:
23150
+ color 0.15s ease,
23151
+ transform 0.15s ease;
22409
23152
  }
22410
- .mint-toggle__track--off {
22411
- background-color: var(--bg-tertiary);
23153
+ .mint-toggle--row:hover .mint-toggle__row-icon {
23154
+ transform: scale(1.04);
22412
23155
  }
22413
- .mint-toggle__track--on {
22414
- background-color: var(--color-primary);
23156
+ .mint-toggle__row-svg {
23157
+ width: 0.875rem;
23158
+ height: 0.875rem;
22415
23159
  }
22416
- .mint-toggle:not(.mint-toggle--disabled):hover .mint-toggle__track {
22417
- box-shadow: var(--shadow-sm);
23160
+ .mint-toggle__row-text-icon {
23161
+ font-size: 0.75rem;
23162
+ font-weight: 700;
23163
+ line-height: 1;
23164
+ }
23165
+ .mint-toggle__copy {
23166
+ display: block;
23167
+ flex: 1 1 auto;
23168
+ min-width: 0;
23169
+ }
23170
+ .mint-toggle__copy .mint-tooltip {
23171
+ max-width: 100%;
23172
+ }
23173
+ .mint-toggle--row .mint-toggle__label {
23174
+ display: block;
23175
+ overflow: hidden;
23176
+ text-overflow: ellipsis;
23177
+ white-space: nowrap;
23178
+ }
23179
+ .mint-toggle__label--tooltip {
23180
+ cursor: help;
23181
+ }
23182
+ .mint-toggle__track {
23183
+ position: relative;
23184
+ display: inline-block;
23185
+ flex-shrink: 0;
23186
+ padding: 2px;
23187
+ border-radius: 9999px;
23188
+ /* Explicit border-box — knob `left` math assumes the declared width/height
23189
+ are the outer dimensions. Without this, a consumer without a global
23190
+ box-sizing reset (e.g. raw Histoire) renders the track 4px too wide and
23191
+ the on-state knob falls short of the right edge. */
23192
+ box-sizing: border-box;
23193
+ transition: background-color 0.15s ease, box-shadow 0.15s ease;
23194
+ }
23195
+ .mint-toggle__track--off {
23196
+ background-color: var(--bg-tertiary);
23197
+ }
23198
+ .mint-toggle__track--on {
23199
+ background-color: var(--color-primary);
23200
+ }
23201
+ .mint-toggle:not(.mint-toggle--disabled):hover .mint-toggle__track {
23202
+ box-shadow: var(--shadow-sm);
22418
23203
  }
22419
23204
  .mint-toggle__track:focus {
22420
23205
  outline: none;
@@ -22473,6 +23258,7 @@ html.dark .mint-toast__item .mint-toast__message {
22473
23258
  }
22474
23259
  .mint-toggle__label {
22475
23260
  color: var(--text-primary);
23261
+ line-height: 1.25;
22476
23262
  }
22477
23263
  .mint-toggle__label--sm {
22478
23264
  font-size: 0.875rem;
@@ -22484,9 +23270,15 @@ html.dark .mint-toast__item .mint-toast__message {
22484
23270
  font-size: 1rem;
22485
23271
  }
22486
23272
  @media (prefers-reduced-motion: reduce) {
23273
+ .mint-toggle--row,
23274
+ .mint-toggle__row-icon,
22487
23275
  .mint-toggle__knob {
22488
23276
  transition: none;
22489
23277
  }
23278
+
23279
+ .mint-toggle--row:hover .mint-toggle__row-icon {
23280
+ transform: none;
23281
+ }
22490
23282
  }
22491
23283
  /* WellPlate Component Styles */
22492
23284
  .mint-well-plate {
@@ -23414,6 +24206,7 @@ html.dark .mint-toast__item .mint-toast__message {
23414
24206
  display: flex;
23415
24207
  flex-direction: column;
23416
24208
  }
24209
+ /* --- Paste: free-form textarea (the self-designed input path) --- */
23417
24210
  .mint-auto-group__paste {
23418
24211
  position: relative;
23419
24212
  }
@@ -23630,324 +24423,303 @@ html.dark .mint-toast__item .mint-toast__message {
23630
24423
  flex-wrap: wrap;
23631
24424
  gap: 0.375rem;
23632
24425
  }
23633
- /* --- Outlier step --- */
23634
- .mint-auto-group__outlier-step {
23635
- display: flex;
23636
- flex-direction: column;
23637
- gap: 0.75rem;
23638
- }
23639
- .mint-auto-group__outlier-banner {
23640
- padding: 0.75rem 1rem;
23641
- background: var(--mint-warning-bg);
23642
- border: 1px solid rgba(245, 158, 11, 0.3);
23643
- border-radius: var(--radius-md);
23644
- font-size: 0.8125rem;
23645
- color: var(--text-primary);
23646
- }
23647
- .mint-auto-group__outlier-banner code {
24426
+ .mint-auto-group__field-value {
23648
24427
  font-family: 'Fira Code', monospace;
23649
- background: var(--bg-tertiary);
23650
- padding: 0.125rem 0.375rem;
23651
- border-radius: var(--radius-sm);
23652
- font-size: 0.8125rem;
24428
+ font-size: 11.5px;
24429
+ background: var(--bg-primary);
24430
+ border: 1px solid var(--border);
24431
+ padding: 2px 8px;
24432
+ border-radius: 9999px;
24433
+ color: var(--text-secondary);
23653
24434
  }
23654
- .mint-auto-group__outlier-batch {
24435
+ /* --- Navigation --- */
24436
+ .mint-auto-group__nav {
23655
24437
  display: flex;
24438
+ align-items: center;
23656
24439
  gap: 0.5rem;
23657
24440
  }
23658
- .mint-auto-group__outlier-list {
23659
- display: flex;
23660
- flex-direction: column;
23661
- gap: 0.5rem;
23662
- max-height: 300px;
23663
- overflow-y: auto;
24441
+ .mint-auto-group__nav-spacer {
24442
+ flex: 1;
23664
24443
  }
23665
- .mint-auto-group__outlier-item {
23666
- display: flex;
23667
- align-items: center;
23668
- justify-content: space-between;
23669
- padding: 0.5rem 0.75rem;
23670
- background: var(--bg-secondary);
23671
- border: 1px solid var(--border-color);
24444
+ /* --- Workspace step --- */
24445
+ .mint-auto-group__workspace { display: grid; grid-template-columns: 220px 1fr; gap: 16px; min-height: 480px; position: relative; }
24446
+ .mint-auto-group__classes { background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; display: flex; flex-direction: column; gap: 4px; }
24447
+ .mint-auto-group__classes h3 { font-size: 11px; letter-spacing: .08em; color: var(--text-muted); text-transform: uppercase; margin: 0 0 8px; }
24448
+ .mint-auto-group__class { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 8px; padding: 8px 10px; border-radius: var(--radius-sm); cursor: pointer; background: transparent; border: 1px solid transparent; font-size: 13px; color: var(--text-primary); text-align: left; }
24449
+ .mint-auto-group__class:hover { background: var(--bg-tertiary); }
24450
+ .mint-auto-group__class--active { background: var(--color-primary-soft); border-color: var(--color-primary); color: var(--color-primary); font-weight: 500; }
24451
+ .mint-auto-group__class--qc .mint-auto-group__class-dot { background: var(--mint-warning); }
24452
+ .mint-auto-group__class-dot { width: 8px; height: 8px; border-radius: 9999px; background: var(--text-muted); }
24453
+ .mint-auto-group__class-count { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-secondary); background: var(--bg-secondary); padding: 2px 8px; border-radius: 9999px; border: 1px solid var(--border); }
24454
+ .mint-auto-group__schema { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
24455
+ /* --- Suggestion banner --- */
24456
+ .mint-auto-group__suggest { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--radius); border: 1px dashed var(--color-primary); background: var(--color-primary-soft); color: var(--color-primary); font-size: 12.5px; }
24457
+ .mint-auto-group__suggest-btn { margin-left: 8px; background: var(--bg-primary); border: 1px solid var(--color-primary); color: var(--color-primary); padding: 4px 10px; border-radius: var(--radius-sm); cursor: pointer; font-size: 12px; }
24458
+ .mint-auto-group__suggest-btn--ghost { border-color: var(--border); color: var(--text-secondary); }
24459
+ /* --- 3-stat strip (Option B redesign) ---
24460
+ *
24461
+ * Three peer stats at the top of the schema panel:
24462
+ * Groups (primary, with factor-chip composition below)
24463
+ * Samples (active class size · class label · token count)
24464
+ * Avg / group (with min/max sub)
24465
+ *
24466
+ * Replaces the old schema header + group summary bar. The strip is a
24467
+ * single rounded card with 1px gap dividers so the three cells read as
24468
+ * a unit, not three floating panels. */
24469
+ .mint-auto-group__stats {
24470
+ display: grid;
24471
+ grid-template-columns: repeat(3, 1fr);
24472
+ gap: 1px;
24473
+ background: var(--border);
24474
+ border: 1px solid var(--border);
23672
24475
  border-radius: var(--radius);
24476
+ overflow: hidden;
23673
24477
  }
23674
- .mint-auto-group__outlier-info {
23675
- display: flex;
23676
- align-items: center;
23677
- gap: 0.5rem;
24478
+ .mint-auto-group__stat {
24479
+ background: var(--bg-primary);
24480
+ padding: 12px 14px;
23678
24481
  min-width: 0;
23679
24482
  }
23680
- .mint-auto-group__outlier-name {
23681
- font-family: 'Fira Code', monospace;
23682
- font-size: 0.8125rem;
24483
+ .mint-auto-group__stat-v {
24484
+ font-size: 22px;
24485
+ font-weight: 700;
23683
24486
  color: var(--text-primary);
23684
- overflow: hidden;
23685
- text-overflow: ellipsis;
23686
- white-space: nowrap;
24487
+ line-height: 1;
24488
+ font-variant-numeric: tabular-nums;
23687
24489
  }
23688
- .mint-auto-group__outlier-badge {
23689
- font-size: 0.6875rem;
23690
- padding: 0.125rem 0.375rem;
23691
- border-radius: var(--radius-sm);
23692
- background: var(--bg-tertiary);
24490
+ .mint-auto-group__stat--primary .mint-auto-group__stat-v { color: var(--color-primary); }
24491
+ .mint-auto-group__stat-l {
24492
+ font-size: 11px;
23693
24493
  color: var(--text-muted);
23694
- white-space: nowrap;
23695
- flex-shrink: 0;
23696
- }
23697
- .mint-auto-group__outlier-actions {
23698
- display: flex;
23699
- gap: 0.25rem;
23700
- flex-shrink: 0;
23701
- margin-left: 0.75rem;
23702
- }
23703
- .mint-auto-group__action-btn {
23704
- font-size: 0.6875rem;
23705
- padding: 0.25rem 0.5rem;
23706
- border: 1px solid var(--border-color);
23707
- border-radius: var(--radius-sm);
23708
- background: var(--bg-secondary);
23709
- color: var(--text-secondary);
23710
- cursor: pointer;
23711
- transition: all 0.1s;
23712
- }
23713
- .mint-auto-group__action-btn:hover {
23714
- background: var(--bg-hover);
23715
- }
23716
- .mint-auto-group__action-btn:focus-visible {
23717
- outline: 2px solid var(--color-primary);
23718
- outline-offset: 1px;
23719
- }
23720
- .mint-auto-group__action-btn--active {
23721
- background: var(--color-primary-soft);
23722
- border-color: var(--color-primary);
23723
- color: var(--color-primary);
23724
- font-weight: 500;
23725
- }
23726
- .mint-auto-group__action-btn--active.mint-auto-group__action-btn--exclude {
23727
- background: var(--mint-error-bg);
23728
- border-color: var(--mint-error);
23729
- color: var(--mint-error);
23730
- }
23731
- .mint-auto-group__action-btn--active.mint-auto-group__action-btn--qc {
23732
- background: rgba(107, 114, 128, 0.12);
23733
- border-color: var(--text-secondary);
23734
- color: var(--text-secondary);
23735
- }
23736
- /* --- Field step --- */
23737
- .mint-auto-group__field-step {
23738
- display: flex;
23739
- flex-direction: column;
23740
- gap: 1rem;
23741
- }
23742
- .mint-auto-group__field-grid {
23743
- display: grid;
23744
- grid-template-columns: repeat(2, 1fr);
23745
- gap: 0.75rem;
23746
- }
23747
- @media (max-width: 600px) {
23748
- .mint-auto-group__field-grid {
23749
- grid-template-columns: 1fr;
23750
- }
23751
- }
23752
- .mint-auto-group__field-card {
23753
- padding: 0.75rem;
23754
- border: 1px solid var(--border-color);
23755
- border-radius: var(--radius-md);
23756
- background: var(--bg-secondary);
23757
- transition: border-color 0.15s, box-shadow 0.15s;
23758
- }
23759
- .mint-auto-group__field-card--enabled {
23760
- border-color: var(--color-primary);
23761
- box-shadow: 0 0 0 1px var(--color-primary-soft);
23762
- }
23763
- .mint-auto-group__field-header {
23764
- display: flex;
23765
- align-items: center;
23766
- justify-content: space-between;
23767
- margin-bottom: 0.5rem;
24494
+ text-transform: uppercase;
24495
+ letter-spacing: 0.05em;
24496
+ margin-top: 4px;
24497
+ font-weight: 600;
23768
24498
  }
23769
- .mint-auto-group__field-toggle {
24499
+ .mint-auto-group__stat-sub {
24500
+ margin-top: 8px;
23770
24501
  display: flex;
24502
+ flex-wrap: wrap;
24503
+ gap: 4px;
23771
24504
  align-items: center;
23772
- gap: 0.375rem;
23773
- cursor: pointer;
23774
- font-size: 0.8125rem;
24505
+ font-size: 11.5px;
23775
24506
  color: var(--text-secondary);
24507
+ min-height: 22px;
23776
24508
  }
23777
- .mint-auto-group__field-toggle input {
23778
- accent-color: var(--color-primary);
23779
- }
23780
- .mint-auto-group__field-toggle-label {
23781
- user-select: none;
23782
- }
23783
- .mint-auto-group__field-cardinality {
23784
- font-size: 0.6875rem;
24509
+ .mint-auto-group__stat-sub--muted {
23785
24510
  color: var(--text-muted);
24511
+ font-size: 11.5px;
23786
24512
  }
23787
- .mint-auto-group__field-name-input {
23788
- margin-bottom: 0.5rem;
23789
- }
23790
- .mint-auto-group__field-values {
23791
- display: flex;
23792
- flex-wrap: wrap;
23793
- gap: 0.25rem;
23794
- max-height: 4.5rem;
23795
- overflow-y: auto;
23796
- }
23797
- .mint-auto-group__field-value {
23798
- font-size: 0.6875rem;
23799
- padding: 0.125rem 0.375rem;
23800
- border-radius: var(--radius-sm);
23801
- background: var(--bg-tertiary);
23802
- color: var(--text-secondary);
23803
- font-family: 'Fira Code', monospace;
23804
- max-width: 100%;
23805
- overflow: hidden;
23806
- text-overflow: ellipsis;
23807
- white-space: nowrap;
23808
- }
23809
- .mint-auto-group__field-more {
23810
- font-size: 0.6875rem;
23811
- padding: 0.125rem 0.375rem;
24513
+ .mint-auto-group__stat-empty {
23812
24514
  color: var(--text-muted);
23813
24515
  font-style: italic;
23814
24516
  }
23815
- .mint-auto-group__field-summary {
23816
- font-size: 0.8125rem;
24517
+ .mint-auto-group__stat-empty strong {
23817
24518
  color: var(--text-secondary);
23818
- padding: 0.5rem 0.75rem;
23819
- background: var(--bg-tertiary);
23820
- border-radius: var(--radius);
24519
+ font-style: normal;
24520
+ font-weight: 600;
23821
24521
  }
23822
- .mint-auto-group__field-summary strong {
23823
- color: var(--text-primary);
24522
+ .mint-auto-group__group-chip {
24523
+ font-size: 10.5px;
24524
+ font-family: 'Fira Code', monospace;
24525
+ padding: 2px 7px;
24526
+ border-radius: 9999px;
24527
+ background: var(--color-primary-soft);
24528
+ color: var(--color-primary);
24529
+ white-space: nowrap;
24530
+ line-height: 1.4;
23824
24531
  }
23825
- .mint-auto-group__field-warning {
23826
- font-size: 0.8125rem;
23827
- color: var(--mint-warning);
23828
- padding: 0.5rem 0.75rem;
23829
- background: var(--mint-warning-bg);
23830
- border-radius: var(--radius);
24532
+ /* --- QC routing radio group (replaces the two checkboxes) --- */
24533
+ .mint-auto-group__routing {
24534
+ margin-top: 14px;
24535
+ padding-top: 14px;
24536
+ border-top: 1px solid var(--border);
23831
24537
  }
23832
- /* --- Preview step --- */
23833
- .mint-auto-group__preview-step {
23834
- display: flex;
23835
- flex-direction: column;
23836
- gap: 1rem;
24538
+ .mint-auto-group__routing-head {
24539
+ margin: 0 0 8px;
24540
+ font-size: 11px;
24541
+ text-transform: uppercase;
24542
+ letter-spacing: 0.05em;
24543
+ color: var(--text-muted);
24544
+ font-weight: 600;
23837
24545
  }
23838
- .mint-auto-group__preview-summary {
24546
+ .mint-auto-group__routing-radio {
23839
24547
  display: flex;
23840
- flex-wrap: wrap;
23841
- gap: 0.5rem 1rem;
23842
- padding: 0.75rem 1rem;
23843
- background: var(--bg-tertiary);
23844
- border-radius: var(--radius-md);
23845
- }
23846
- .mint-auto-group__preview-stat {
23847
- font-size: 0.8125rem;
23848
- color: var(--text-secondary);
23849
- }
23850
- .mint-auto-group__preview-stat strong {
24548
+ align-items: flex-start;
24549
+ gap: 8px;
24550
+ font-size: 12.5px;
23851
24551
  color: var(--text-primary);
24552
+ padding: 5px 0;
24553
+ cursor: pointer;
24554
+ line-height: 1.4;
23852
24555
  }
23853
- .mint-auto-group__preview-stat--excluded strong {
23854
- color: var(--mint-error);
24556
+ .mint-auto-group__routing-radio input {
24557
+ margin-top: 2px;
24558
+ accent-color: var(--color-primary);
24559
+ flex-shrink: 0;
23855
24560
  }
23856
- .mint-auto-group__preview-groups {
24561
+ .mint-auto-group__routing-radio small {
24562
+ display: block;
24563
+ color: var(--text-muted);
24564
+ font-size: 11px;
24565
+ margin-top: 1px;
24566
+ }
24567
+ /* --- Compact token table (replaces the horizontal cards row) ---
24568
+ *
24569
+ * One row per token position. Lets users scan a 6+ token batch without
24570
+ * horizontal scrolling and without each row carrying redundant card chrome.
24571
+ * Click the row to open the popover (rename, role override, value ops).
24572
+ * The Use checkbox lives inline; @click.stop on the label prevents
24573
+ * accidental popover triggering when toggling Use. */
24574
+ .mint-auto-group__token-table {
24575
+ flex: 1;
24576
+ min-height: 0;
23857
24577
  display: flex;
23858
24578
  flex-direction: column;
23859
- gap: 0.5rem;
23860
- max-height: 20rem;
23861
- overflow-y: auto;
23862
- }
23863
- .mint-auto-group__preview-group {
23864
- border: 1px solid var(--border-color);
24579
+ border: 1px solid var(--border);
23865
24580
  border-radius: var(--radius);
23866
- overflow: hidden;
23867
- }
23868
- .mint-auto-group__preview-group[open] {
23869
- background: var(--bg-secondary);
24581
+ background: var(--bg-primary);
24582
+ overflow: auto;
23870
24583
  }
23871
- .mint-auto-group__preview-group-header {
23872
- display: flex;
24584
+ .mint-auto-group__token-row {
24585
+ display: grid;
24586
+ /* Column widths chosen to fit in the lg modal's ~440px schema panel.
24587
+ * Token# stays narrow (single digit), Name + Preview share remaining
24588
+ * flex space, Role pill is fixed for badge stability, # uses a glyph
24589
+ * header so 32px is enough, Use is the checkbox, then the ⋯ trigger. */
24590
+ grid-template-columns: 28px minmax(0, 1fr) 76px 48px minmax(0, 1.4fr) 28px 18px;
23873
24591
  align-items: center;
23874
- gap: 0.5rem;
23875
- padding: 0.5rem 0.75rem;
24592
+ gap: 8px;
24593
+ padding: 9px 12px;
24594
+ background: transparent;
24595
+ border: 0;
24596
+ border-bottom: 1px solid var(--border);
24597
+ font-size: 12.5px;
24598
+ color: var(--text-primary);
24599
+ text-align: left;
23876
24600
  cursor: pointer;
23877
- font-size: 0.8125rem;
23878
- user-select: none;
23879
- min-width: 0;
24601
+ width: 100%;
24602
+ font-family: inherit;
24603
+ transition: background-color 150ms ease;
23880
24604
  }
23881
- .mint-auto-group__preview-group-header:hover {
23882
- background: var(--bg-hover);
24605
+ .mint-auto-group__token-row:last-child { border-bottom: 0; }
24606
+ .mint-auto-group__token-row:hover { background: var(--bg-secondary); }
24607
+ .mint-auto-group__token-row:focus-visible {
24608
+ outline: 2px solid var(--color-primary);
24609
+ outline-offset: -2px;
23883
24610
  }
23884
- .mint-auto-group__preview-dot {
23885
- width: 0.625rem;
23886
- height: 0.625rem;
23887
- border-radius: 50%;
23888
- flex-shrink: 0;
24611
+ .mint-auto-group__token-row--active { background: var(--color-primary-soft); }
24612
+ .mint-auto-group__token-row--head {
24613
+ cursor: default;
24614
+ background: var(--bg-secondary);
24615
+ font-size: 11px;
24616
+ font-weight: 600;
24617
+ text-transform: uppercase;
24618
+ letter-spacing: 0.05em;
24619
+ color: var(--text-muted);
24620
+ padding: 8px 14px;
23889
24621
  }
23890
- .mint-auto-group__preview-group-name {
24622
+ .mint-auto-group__token-row--head:hover { background: var(--bg-secondary); }
24623
+ .mint-auto-group__token-ix {
24624
+ font-family: 'Fira Code', monospace;
24625
+ font-size: 12px;
24626
+ color: var(--text-muted);
24627
+ }
24628
+ .mint-auto-group__token-nm {
23891
24629
  font-weight: 500;
23892
- color: var(--text-primary);
23893
24630
  overflow: hidden;
23894
24631
  text-overflow: ellipsis;
23895
24632
  white-space: nowrap;
23896
24633
  min-width: 0;
23897
24634
  }
23898
- .mint-auto-group__preview-group-count {
23899
- font-size: 0.6875rem;
23900
- font-weight: 500;
23901
- padding: 0.0625rem 0.375rem;
23902
- border-radius: var(--radius-sm);
23903
- margin-left: auto;
23904
- }
23905
- .mint-auto-group__preview-samples {
23906
- display: flex;
23907
- flex-wrap: wrap;
23908
- gap: 0.25rem;
23909
- padding: 0.5rem 0.75rem;
23910
- border-top: 1px solid var(--border-light);
23911
- }
23912
- .mint-auto-group__preview-sample {
23913
- font-size: 0.75rem;
24635
+ .mint-auto-group__token-unique {
23914
24636
  font-family: 'Fira Code', monospace;
23915
- padding: 0.125rem 0.375rem;
23916
- border-radius: var(--radius-sm);
23917
- background: var(--bg-tertiary);
24637
+ font-size: 12.5px;
23918
24638
  color: var(--text-secondary);
24639
+ text-align: right;
24640
+ font-variant-numeric: tabular-nums;
23919
24641
  }
23920
- .mint-auto-group__preview-sample--excluded {
23921
- opacity: 0.5;
23922
- text-decoration: line-through;
23923
- }
23924
- /* --- Excluded section --- */
23925
- .mint-auto-group__preview-excluded {
23926
- border-top: 1px solid var(--border-color);
23927
- padding-top: 0.75rem;
24642
+ .mint-auto-group__token-num { text-align: right; }
24643
+ .mint-auto-group__token-preview {
24644
+ font-family: 'Fira Code', monospace;
24645
+ font-size: 11.5px;
24646
+ color: var(--text-secondary);
24647
+ overflow: hidden;
24648
+ text-overflow: ellipsis;
24649
+ white-space: nowrap;
24650
+ min-width: 0;
23928
24651
  }
23929
- .mint-auto-group__preview-excluded-title {
23930
- font-size: 0.75rem;
23931
- font-weight: 500;
24652
+ .mint-auto-group__token-more {
23932
24653
  color: var(--text-muted);
23933
- text-transform: uppercase;
23934
- letter-spacing: 0.05em;
23935
- margin-bottom: 0.5rem;
23936
- }
23937
- .mint-auto-group__preview-excluded-list {
23938
- display: flex;
23939
- flex-wrap: wrap;
23940
- gap: 0.25rem;
24654
+ font-style: italic;
23941
24655
  }
23942
- /* --- Navigation --- */
23943
- .mint-auto-group__nav {
23944
- display: flex;
23945
- align-items: center;
23946
- gap: 0.5rem;
24656
+ .mint-auto-group__token-use,
24657
+ .mint-auto-group__token-use-head { display: flex; justify-content: center; }
24658
+ .mint-auto-group__token-use { cursor: pointer; }
24659
+ .mint-auto-group__token-use input {
24660
+ width: 16px;
24661
+ height: 16px;
24662
+ cursor: pointer;
24663
+ accent-color: var(--color-primary);
23947
24664
  }
23948
- .mint-auto-group__nav-spacer {
23949
- flex: 1;
24665
+ .mint-auto-group__token-trigger {
24666
+ color: var(--text-muted);
24667
+ text-align: center;
24668
+ font-size: 14px;
24669
+ user-select: none;
23950
24670
  }
24671
+ /* --- Role badge (used in token rows and inside the popover) --- */
24672
+ .mint-auto-group__role { align-self: flex-start; display: inline-flex; padding: 2px 8px; border-radius: 9999px; border: 1px solid var(--border); background: var(--bg-secondary); color: var(--text-secondary); font-size: 10.5px; text-transform: uppercase; cursor: pointer; }
24673
+ .mint-auto-group__role--factor { background: var(--color-primary-soft); color: var(--color-primary); border-color: transparent; }
24674
+ .mint-auto-group__role--constant { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent; }
24675
+ .mint-auto-group__role--replicate { background: var(--mint-info-bg); color: var(--mint-info); border-color: var(--mint-info-border); }
24676
+ .mint-auto-group__role--run-order { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent; }
24677
+ .mint-auto-group__role--numeric { background: rgba(249,115,22,.10); color: var(--color-cta); border-color: rgba(249,115,22,.30); }
24678
+ .mint-auto-group__role--class-tag { background: rgba(123,208,181,.16); color: #0F766E; border-color: transparent; }
24679
+ .mint-auto-group__role--ignore { background: var(--bg-tertiary); color: var(--text-muted); border-color: transparent; }
24680
+ /* --- Column popover (token rename, role override, value ops) ---
24681
+ * - bg-primary so it reads brighter than the surrounding bg-secondary panels.
24682
+ * - Layered shadow (close + far) reads as elevated rather than recessed.
24683
+ * - z-index 20 sits above schema cards but stays scoped to the modal's
24684
+ * stacking context. */
24685
+ .mint-auto-group__popover { position: absolute; right: 20px; top: 60px; width: 320px; background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 12px 32px -8px rgba(15, 23, 42, .22); padding: 14px; z-index: 20; display: flex; flex-direction: column; gap: 12px; }
24686
+ .mint-auto-group__popover-head { display: flex; align-items: center; gap: 8px; }
24687
+ .mint-auto-group__popover-head .mono { font-family: 'Fira Code', monospace; font-size: 11px; color: var(--text-muted); margin-left: auto; }
24688
+ .mint-auto-group__popover-close { background: transparent; border: 0; cursor: pointer; color: var(--text-secondary); font-size: 16px; }
24689
+ .mint-auto-group__popover-section { display: flex; flex-direction: column; gap: 6px; }
24690
+ .mint-auto-group__popover-label { font-size: 12px; font-weight: 600; color: var(--text-primary); }
24691
+ .mint-auto-group__pills { display: flex; flex-wrap: wrap; gap: 6px; }
24692
+ .mint-auto-group__pill-btn { font-size: 11.5px; padding: 3px 10px; border-radius: 9999px; border: 1px solid var(--border); background: var(--bg-primary); color: var(--text-secondary); cursor: pointer; }
24693
+ .mint-auto-group__pill-btn--on { background: var(--color-primary-soft); border-color: var(--color-primary); color: var(--color-primary); font-weight: 600; }
24694
+ .mint-auto-group__values-list { display: flex; flex-direction: column; gap: 6px; max-height: 180px; overflow-y: auto; }
24695
+ .mint-auto-group__value-row { display: grid; grid-template-columns: 100px 1fr auto; gap: 8px; align-items: center; }
24696
+ .mint-auto-group__value-src { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-muted); text-align: right; }
24697
+ .mint-auto-group__value-input { border: 1px solid var(--border); background: var(--bg-secondary); padding: 4px 8px; border-radius: var(--radius-sm); font-family: 'Fira Code', monospace; font-size: 12px; }
24698
+ .mint-auto-group__value-excl { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-secondary); }
24699
+ .mint-auto-group__link { background: transparent; border: 0; color: var(--color-primary); font-size: 12.5px; cursor: pointer; text-align: left; padding: 0; }
24700
+ /* --- CSV download templates (Input step) --- */
24701
+ .mint-auto-group__template { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); display: flex; align-items: center; gap: 12px; }
24702
+ .mint-auto-group__template-label { font-size: 12.5px; color: var(--text-secondary); }
24703
+ .mint-auto-group__template-actions { display: flex; gap: 8px; }
24704
+ /* --- Preview step --- */
24705
+ .mint-auto-group__preview { display: flex; flex-direction: column; gap: 14px; }
24706
+ .mint-auto-group__preview-summary { background: var(--color-primary-soft); color: var(--color-primary); border: 1px solid var(--color-primary); border-radius: var(--radius); padding: 10px 14px; font-size: 13px; }
24707
+ .mint-auto-group__preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
24708
+ .mint-auto-group__preview-panel { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; }
24709
+ .mint-auto-group__preview-panel h4 { margin: 0 0 10px; font-size: 12px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
24710
+ .mint-auto-group__preview-group { border: 1px solid var(--border-color); border-radius: var(--radius); overflow: hidden; }
24711
+ .mint-auto-group__preview-group[open] { background: var(--bg-secondary); }
24712
+ .mint-auto-group__preview-group summary { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 13px; padding: 0.5rem 0.875rem; }
24713
+ .mint-auto-group__preview-group[open] summary { border-bottom: 1px solid var(--border); }
24714
+ .mint-auto-group__preview-dot { width: 10px; height: 10px; border-radius: 9999px; flex-shrink: 0; }
24715
+ .mint-auto-group__preview-count { margin-left: auto; font-family: 'Fira Code', monospace; font-size: 12px; color: var(--text-secondary); background: var(--bg-primary); border: 1px solid var(--border); padding: 2px 8px; border-radius: 9999px; }
24716
+ .mint-auto-group__preview-samples { display: flex; flex-wrap: wrap; gap: 6px; padding: 0.5rem 0.875rem 0.625rem; }
24717
+ .mint-auto-group__preview-sample { font-family: 'Fira Code', monospace; font-size: 11.5px; color: var(--text-primary); background: var(--bg-primary); border: 1px solid var(--border); padding: 3px 8px; border-radius: 9999px; }
24718
+ .mint-auto-group__qc-chips { display: flex; flex-wrap: wrap; gap: 6px; }
24719
+ .mint-auto-group__qc-chip { background: var(--mint-warning-bg); color: #92400E; border: 1px solid var(--mint-warning-border); padding: 4px 10px; border-radius: 9999px; font-size: 12px; }
24720
+ .mint-auto-group__fingerprint { margin-top: 14px; }
24721
+ .mint-auto-group__fingerprint summary { cursor: pointer; font-size: 12px; color: var(--text-muted); }
24722
+ .mint-auto-group__fingerprint pre { font-family: 'Fira Code', monospace; font-size: 11px; background: var(--bg-primary); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px; overflow-x: auto; }
23951
24723
  /* GroupAssigner Component Styles */
23952
24724
  .mint-group-assigner {
23953
24725
  display: flex;