@rookcom/monarch-react 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/components/{button.d.ts → actions/button/button.d.ts} +9 -1
  3. package/dist/components/actions/button/button.d.ts.map +1 -0
  4. package/dist/components/actions/button/button.js +69 -0
  5. package/dist/components/actions/button/button.js.map +1 -0
  6. package/dist/components/actions/button/index.d.ts +2 -0
  7. package/dist/components/actions/button/index.d.ts.map +1 -0
  8. package/dist/components/actions/button/index.js +2 -0
  9. package/dist/components/actions/button/index.js.map +1 -0
  10. package/dist/components/actions/copy-button/copy-button.d.ts +71 -0
  11. package/dist/components/actions/copy-button/copy-button.d.ts.map +1 -0
  12. package/dist/components/actions/copy-button/copy-button.js +150 -0
  13. package/dist/components/actions/copy-button/copy-button.js.map +1 -0
  14. package/dist/components/actions/copy-button/index.d.ts +2 -0
  15. package/dist/components/actions/copy-button/index.d.ts.map +1 -0
  16. package/dist/components/actions/copy-button/index.js +2 -0
  17. package/dist/components/actions/copy-button/index.js.map +1 -0
  18. package/dist/components/actions/copy-field/copy-field.d.ts +47 -0
  19. package/dist/components/actions/copy-field/copy-field.d.ts.map +1 -0
  20. package/dist/components/actions/copy-field/copy-field.js +37 -0
  21. package/dist/components/actions/copy-field/copy-field.js.map +1 -0
  22. package/dist/components/actions/copy-field/index.d.ts +2 -0
  23. package/dist/components/actions/copy-field/index.d.ts.map +1 -0
  24. package/dist/components/actions/copy-field/index.js +2 -0
  25. package/dist/components/actions/copy-field/index.js.map +1 -0
  26. package/dist/components/billing/money/index.d.ts +2 -0
  27. package/dist/components/billing/money/index.d.ts.map +1 -0
  28. package/dist/components/billing/money/index.js +2 -0
  29. package/dist/components/billing/money/index.js.map +1 -0
  30. package/dist/components/billing/money/money.d.ts +44 -0
  31. package/dist/components/billing/money/money.d.ts.map +1 -0
  32. package/dist/components/billing/money/money.js +75 -0
  33. package/dist/components/billing/money/money.js.map +1 -0
  34. package/dist/components/data-display/accordion/accordion.d.ts +17 -0
  35. package/dist/components/data-display/accordion/accordion.d.ts.map +1 -0
  36. package/dist/components/data-display/accordion/accordion.js +23 -0
  37. package/dist/components/data-display/accordion/accordion.js.map +1 -0
  38. package/dist/components/data-display/accordion/index.d.ts +2 -0
  39. package/dist/components/data-display/accordion/index.d.ts.map +1 -0
  40. package/dist/components/data-display/accordion/index.js +2 -0
  41. package/dist/components/data-display/accordion/index.js.map +1 -0
  42. package/dist/components/data-display/badge/badge.d.ts.map +1 -0
  43. package/dist/components/{badge.js → data-display/badge/badge.js} +1 -1
  44. package/dist/components/data-display/badge/badge.js.map +1 -0
  45. package/dist/components/data-display/badge/index.d.ts +2 -0
  46. package/dist/components/data-display/badge/index.d.ts.map +1 -0
  47. package/dist/components/data-display/badge/index.js +2 -0
  48. package/dist/components/data-display/badge/index.js.map +1 -0
  49. package/dist/components/data-display/card/card.d.ts.map +1 -0
  50. package/dist/components/{card.js → data-display/card/card.js} +1 -1
  51. package/dist/components/data-display/card/card.js.map +1 -0
  52. package/dist/components/data-display/card/index.d.ts +2 -0
  53. package/dist/components/data-display/card/index.d.ts.map +1 -0
  54. package/dist/components/data-display/card/index.js +2 -0
  55. package/dist/components/data-display/card/index.js.map +1 -0
  56. package/dist/components/data-display/description-list/description-list.d.ts.map +1 -0
  57. package/dist/{patterns → components/data-display/description-list}/description-list.js +1 -1
  58. package/dist/components/data-display/description-list/description-list.js.map +1 -0
  59. package/dist/components/data-display/description-list/index.d.ts +2 -0
  60. package/dist/components/data-display/description-list/index.d.ts.map +1 -0
  61. package/dist/components/data-display/description-list/index.js +2 -0
  62. package/dist/components/data-display/description-list/index.js.map +1 -0
  63. package/dist/components/data-display/progress-bar/index.d.ts +2 -0
  64. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  65. package/dist/components/data-display/progress-bar/index.js +2 -0
  66. package/dist/components/data-display/progress-bar/index.js.map +1 -0
  67. package/dist/components/data-display/progress-bar/progress-bar.d.ts +57 -0
  68. package/dist/components/data-display/progress-bar/progress-bar.d.ts.map +1 -0
  69. package/dist/components/data-display/progress-bar/progress-bar.js +57 -0
  70. package/dist/components/data-display/progress-bar/progress-bar.js.map +1 -0
  71. package/dist/components/data-display/relative-time/index.d.ts +2 -0
  72. package/dist/components/data-display/relative-time/index.d.ts.map +1 -0
  73. package/dist/components/data-display/relative-time/index.js +2 -0
  74. package/dist/components/data-display/relative-time/index.js.map +1 -0
  75. package/dist/components/data-display/relative-time/relative-time.d.ts +66 -0
  76. package/dist/components/data-display/relative-time/relative-time.d.ts.map +1 -0
  77. package/dist/components/data-display/relative-time/relative-time.js +102 -0
  78. package/dist/components/data-display/relative-time/relative-time.js.map +1 -0
  79. package/dist/components/data-display/stat-card/index.d.ts +2 -0
  80. package/dist/components/data-display/stat-card/index.d.ts.map +1 -0
  81. package/dist/components/data-display/stat-card/index.js +2 -0
  82. package/dist/components/data-display/stat-card/index.js.map +1 -0
  83. package/dist/components/data-display/stat-card/stat-card.d.ts.map +1 -0
  84. package/dist/{patterns → components/data-display/stat-card}/stat-card.js +2 -2
  85. package/dist/components/data-display/stat-card/stat-card.js.map +1 -0
  86. package/dist/components/data-display/status-badge/index.d.ts +2 -0
  87. package/dist/components/data-display/status-badge/index.d.ts.map +1 -0
  88. package/dist/components/data-display/status-badge/index.js +2 -0
  89. package/dist/components/data-display/status-badge/index.js.map +1 -0
  90. package/dist/components/data-display/status-badge/status-badge.d.ts +169 -0
  91. package/dist/components/data-display/status-badge/status-badge.d.ts.map +1 -0
  92. package/dist/components/data-display/status-badge/status-badge.js +139 -0
  93. package/dist/components/data-display/status-badge/status-badge.js.map +1 -0
  94. package/dist/components/{table.d.ts → data-grid/data-table/data-table.d.ts} +2 -2
  95. package/dist/components/data-grid/data-table/data-table.d.ts.map +1 -0
  96. package/dist/components/{table.js → data-grid/data-table/data-table.js} +4 -4
  97. package/dist/components/data-grid/data-table/data-table.js.map +1 -0
  98. package/dist/components/data-grid/data-table/index.d.ts +2 -0
  99. package/dist/components/data-grid/data-table/index.d.ts.map +1 -0
  100. package/dist/components/data-grid/data-table/index.js +2 -0
  101. package/dist/components/data-grid/data-table/index.js.map +1 -0
  102. package/dist/components/data-grid/load-more/index.d.ts +2 -0
  103. package/dist/components/data-grid/load-more/index.d.ts.map +1 -0
  104. package/dist/components/data-grid/load-more/index.js +2 -0
  105. package/dist/components/data-grid/load-more/index.js.map +1 -0
  106. package/dist/components/data-grid/load-more/load-more.d.ts +97 -0
  107. package/dist/components/data-grid/load-more/load-more.d.ts.map +1 -0
  108. package/dist/components/data-grid/load-more/load-more.js +184 -0
  109. package/dist/components/data-grid/load-more/load-more.js.map +1 -0
  110. package/dist/components/feedback/alert/alert.d.ts.map +1 -0
  111. package/dist/components/{alert.js → feedback/alert/alert.js} +2 -2
  112. package/dist/components/feedback/alert/alert.js.map +1 -0
  113. package/dist/components/feedback/alert/index.d.ts +2 -0
  114. package/dist/components/feedback/alert/index.d.ts.map +1 -0
  115. package/dist/components/feedback/alert/index.js +2 -0
  116. package/dist/components/feedback/alert/index.js.map +1 -0
  117. package/dist/components/feedback/callout-banner/callout-banner.d.ts +66 -0
  118. package/dist/components/feedback/callout-banner/callout-banner.d.ts.map +1 -0
  119. package/dist/components/feedback/callout-banner/callout-banner.js +35 -0
  120. package/dist/components/feedback/callout-banner/callout-banner.js.map +1 -0
  121. package/dist/components/feedback/callout-banner/index.d.ts +2 -0
  122. package/dist/components/feedback/callout-banner/index.d.ts.map +1 -0
  123. package/dist/components/feedback/callout-banner/index.js +2 -0
  124. package/dist/components/feedback/callout-banner/index.js.map +1 -0
  125. package/dist/components/feedback/empty-state/empty-state.d.ts +59 -0
  126. package/dist/components/feedback/empty-state/empty-state.d.ts.map +1 -0
  127. package/dist/components/feedback/empty-state/empty-state.js +16 -0
  128. package/dist/components/feedback/empty-state/empty-state.js.map +1 -0
  129. package/dist/components/feedback/empty-state/index.d.ts +2 -0
  130. package/dist/components/feedback/empty-state/index.d.ts.map +1 -0
  131. package/dist/components/feedback/empty-state/index.js +2 -0
  132. package/dist/components/feedback/empty-state/index.js.map +1 -0
  133. package/dist/components/feedback/error-page/error-page.d.ts +66 -0
  134. package/dist/components/feedback/error-page/error-page.d.ts.map +1 -0
  135. package/dist/components/feedback/error-page/error-page.js +43 -0
  136. package/dist/components/feedback/error-page/error-page.js.map +1 -0
  137. package/dist/components/feedback/error-page/index.d.ts +2 -0
  138. package/dist/components/feedback/error-page/index.d.ts.map +1 -0
  139. package/dist/components/feedback/error-page/index.js +2 -0
  140. package/dist/components/feedback/error-page/index.js.map +1 -0
  141. package/dist/components/feedback/error-state/error-state.boundary.d.ts +45 -0
  142. package/dist/components/feedback/error-state/error-state.boundary.d.ts.map +1 -0
  143. package/dist/components/feedback/error-state/error-state.boundary.js +40 -0
  144. package/dist/components/feedback/error-state/error-state.boundary.js.map +1 -0
  145. package/dist/components/feedback/error-state/error-state.d.ts +51 -0
  146. package/dist/components/feedback/error-state/error-state.d.ts.map +1 -0
  147. package/dist/components/feedback/error-state/error-state.js +47 -0
  148. package/dist/components/feedback/error-state/error-state.js.map +1 -0
  149. package/dist/components/feedback/error-state/index.d.ts +3 -0
  150. package/dist/components/feedback/error-state/index.d.ts.map +1 -0
  151. package/dist/components/feedback/error-state/index.js +3 -0
  152. package/dist/components/feedback/error-state/index.js.map +1 -0
  153. package/dist/components/feedback/inline-error-retry/index.d.ts +2 -0
  154. package/dist/components/feedback/inline-error-retry/index.d.ts.map +1 -0
  155. package/dist/components/feedback/inline-error-retry/index.js +2 -0
  156. package/dist/components/feedback/inline-error-retry/index.js.map +1 -0
  157. package/dist/components/feedback/inline-error-retry/inline-error-retry.d.ts +41 -0
  158. package/dist/components/feedback/inline-error-retry/inline-error-retry.d.ts.map +1 -0
  159. package/dist/components/feedback/inline-error-retry/inline-error-retry.js +75 -0
  160. package/dist/components/feedback/inline-error-retry/inline-error-retry.js.map +1 -0
  161. package/dist/components/feedback/inline-notice/index.d.ts +2 -0
  162. package/dist/components/feedback/inline-notice/index.d.ts.map +1 -0
  163. package/dist/components/feedback/inline-notice/index.js +2 -0
  164. package/dist/components/feedback/inline-notice/index.js.map +1 -0
  165. package/dist/components/feedback/inline-notice/inline-notice.d.ts +40 -0
  166. package/dist/components/feedback/inline-notice/inline-notice.d.ts.map +1 -0
  167. package/dist/components/feedback/inline-notice/inline-notice.js +29 -0
  168. package/dist/components/feedback/inline-notice/inline-notice.js.map +1 -0
  169. package/dist/components/feedback/loading-state/index.d.ts +2 -0
  170. package/dist/components/feedback/loading-state/index.d.ts.map +1 -0
  171. package/dist/components/feedback/loading-state/index.js +2 -0
  172. package/dist/components/feedback/loading-state/index.js.map +1 -0
  173. package/dist/components/feedback/loading-state/loading-state.d.ts +17 -0
  174. package/dist/components/feedback/loading-state/loading-state.d.ts.map +1 -0
  175. package/dist/components/feedback/loading-state/loading-state.js +12 -0
  176. package/dist/components/feedback/loading-state/loading-state.js.map +1 -0
  177. package/dist/components/feedback/skeleton/index.d.ts +2 -0
  178. package/dist/components/feedback/skeleton/index.d.ts.map +1 -0
  179. package/dist/components/feedback/skeleton/index.js +2 -0
  180. package/dist/components/feedback/skeleton/index.js.map +1 -0
  181. package/dist/components/feedback/skeleton/skeleton.d.ts.map +1 -0
  182. package/dist/components/{skeleton.js → feedback/skeleton/skeleton.js} +1 -1
  183. package/dist/components/feedback/skeleton/skeleton.js.map +1 -0
  184. package/dist/components/feedback/spinner/index.d.ts +2 -0
  185. package/dist/components/feedback/spinner/index.d.ts.map +1 -0
  186. package/dist/components/feedback/spinner/index.js +2 -0
  187. package/dist/components/feedback/spinner/index.js.map +1 -0
  188. package/dist/components/feedback/spinner/spinner.d.ts.map +1 -0
  189. package/dist/components/{spinner.js → feedback/spinner/spinner.js} +1 -1
  190. package/dist/components/feedback/spinner/spinner.js.map +1 -0
  191. package/dist/components/feedback/toast/index.d.ts +2 -0
  192. package/dist/components/feedback/toast/index.d.ts.map +1 -0
  193. package/dist/components/feedback/toast/index.js +2 -0
  194. package/dist/components/feedback/toast/index.js.map +1 -0
  195. package/dist/components/feedback/toast/toast.d.ts +109 -0
  196. package/dist/components/feedback/toast/toast.d.ts.map +1 -0
  197. package/dist/components/feedback/toast/toast.js +187 -0
  198. package/dist/components/feedback/toast/toast.js.map +1 -0
  199. package/dist/components/forms/checkbox/checkbox.d.ts.map +1 -0
  200. package/dist/components/{checkbox.js → forms/checkbox/checkbox.js} +3 -3
  201. package/dist/components/forms/checkbox/checkbox.js.map +1 -0
  202. package/dist/components/forms/checkbox/index.d.ts +2 -0
  203. package/dist/components/forms/checkbox/index.d.ts.map +1 -0
  204. package/dist/components/forms/checkbox/index.js +2 -0
  205. package/dist/components/forms/checkbox/index.js.map +1 -0
  206. package/dist/components/forms/combobox/combobox.d.ts.map +1 -0
  207. package/dist/components/{combobox.js → forms/combobox/combobox.js} +4 -4
  208. package/dist/components/forms/combobox/combobox.js.map +1 -0
  209. package/dist/components/forms/combobox/index.d.ts +2 -0
  210. package/dist/components/forms/combobox/index.d.ts.map +1 -0
  211. package/dist/components/forms/combobox/index.js +2 -0
  212. package/dist/components/forms/combobox/index.js.map +1 -0
  213. package/dist/components/{field.d.ts → forms/form-field/form-field.d.ts} +42 -3
  214. package/dist/components/forms/form-field/form-field.d.ts.map +1 -0
  215. package/dist/components/{field.js → forms/form-field/form-field.js} +17 -4
  216. package/dist/components/forms/form-field/form-field.js.map +1 -0
  217. package/dist/components/forms/form-field/index.d.ts +2 -0
  218. package/dist/components/forms/form-field/index.d.ts.map +1 -0
  219. package/dist/components/forms/form-field/index.js +2 -0
  220. package/dist/components/forms/form-field/index.js.map +1 -0
  221. package/dist/components/forms/inline-edit-text/index.d.ts +2 -0
  222. package/dist/components/forms/inline-edit-text/index.d.ts.map +1 -0
  223. package/dist/components/forms/inline-edit-text/index.js +2 -0
  224. package/dist/components/forms/inline-edit-text/index.js.map +1 -0
  225. package/dist/components/forms/inline-edit-text/inline-edit-text.d.ts +63 -0
  226. package/dist/components/forms/inline-edit-text/inline-edit-text.d.ts.map +1 -0
  227. package/dist/components/forms/inline-edit-text/inline-edit-text.js +175 -0
  228. package/dist/components/forms/inline-edit-text/inline-edit-text.js.map +1 -0
  229. package/dist/components/forms/otp-pin-input/index.d.ts +2 -0
  230. package/dist/components/forms/otp-pin-input/index.d.ts.map +1 -0
  231. package/dist/components/forms/otp-pin-input/index.js +2 -0
  232. package/dist/components/forms/otp-pin-input/index.js.map +1 -0
  233. package/dist/components/forms/otp-pin-input/otp-pin-input.d.ts +32 -0
  234. package/dist/components/forms/otp-pin-input/otp-pin-input.d.ts.map +1 -0
  235. package/dist/components/forms/otp-pin-input/otp-pin-input.js +73 -0
  236. package/dist/components/forms/otp-pin-input/otp-pin-input.js.map +1 -0
  237. package/dist/components/forms/segmented-control/index.d.ts +2 -0
  238. package/dist/components/forms/segmented-control/index.d.ts.map +1 -0
  239. package/dist/components/forms/segmented-control/index.js +2 -0
  240. package/dist/components/forms/segmented-control/index.js.map +1 -0
  241. package/dist/components/forms/segmented-control/segmented-control.d.ts +62 -0
  242. package/dist/components/forms/segmented-control/segmented-control.d.ts.map +1 -0
  243. package/dist/components/forms/segmented-control/segmented-control.js +139 -0
  244. package/dist/components/forms/segmented-control/segmented-control.js.map +1 -0
  245. package/dist/components/forms/select/index.d.ts +2 -0
  246. package/dist/components/forms/select/index.d.ts.map +1 -0
  247. package/dist/components/forms/select/index.js +2 -0
  248. package/dist/components/forms/select/index.js.map +1 -0
  249. package/dist/components/forms/select/select.d.ts.map +1 -0
  250. package/dist/components/{select.js → forms/select/select.js} +3 -3
  251. package/dist/components/forms/select/select.js.map +1 -0
  252. package/dist/components/forms/switch/index.d.ts +2 -0
  253. package/dist/components/forms/switch/index.d.ts.map +1 -0
  254. package/dist/components/forms/switch/index.js +2 -0
  255. package/dist/components/forms/switch/index.js.map +1 -0
  256. package/dist/components/forms/switch/switch.d.ts.map +1 -0
  257. package/dist/components/{switch.js → forms/switch/switch.js} +2 -2
  258. package/dist/components/forms/switch/switch.js.map +1 -0
  259. package/dist/components/forms/switch-settings-list/index.d.ts +2 -0
  260. package/dist/components/forms/switch-settings-list/index.d.ts.map +1 -0
  261. package/dist/components/forms/switch-settings-list/index.js +2 -0
  262. package/dist/components/forms/switch-settings-list/index.js.map +1 -0
  263. package/dist/components/forms/switch-settings-list/switch-settings-list.d.ts +58 -0
  264. package/dist/components/forms/switch-settings-list/switch-settings-list.d.ts.map +1 -0
  265. package/dist/components/forms/switch-settings-list/switch-settings-list.js +123 -0
  266. package/dist/components/forms/switch-settings-list/switch-settings-list.js.map +1 -0
  267. package/dist/components/forms/tag-input/index.d.ts +2 -0
  268. package/dist/components/forms/tag-input/index.d.ts.map +1 -0
  269. package/dist/components/forms/tag-input/index.js +2 -0
  270. package/dist/components/forms/tag-input/index.js.map +1 -0
  271. package/dist/components/forms/tag-input/tag-input.d.ts +60 -0
  272. package/dist/components/forms/tag-input/tag-input.d.ts.map +1 -0
  273. package/dist/components/forms/tag-input/tag-input.js +258 -0
  274. package/dist/components/forms/tag-input/tag-input.js.map +1 -0
  275. package/dist/components/forms/text-field/index.d.ts +2 -0
  276. package/dist/components/forms/text-field/index.d.ts.map +1 -0
  277. package/dist/components/forms/text-field/index.js +2 -0
  278. package/dist/components/forms/text-field/index.js.map +1 -0
  279. package/dist/components/{input.d.ts → forms/text-field/text-field.d.ts} +1 -1
  280. package/dist/components/forms/text-field/text-field.d.ts.map +1 -0
  281. package/dist/components/{input.js → forms/text-field/text-field.js} +3 -3
  282. package/dist/components/forms/text-field/text-field.js.map +1 -0
  283. package/dist/components/geo/location-fields/index.d.ts +2 -0
  284. package/dist/components/geo/location-fields/index.d.ts.map +1 -0
  285. package/dist/components/geo/location-fields/index.js +2 -0
  286. package/dist/components/geo/location-fields/index.js.map +1 -0
  287. package/dist/components/geo/location-fields/location-fields.d.ts +104 -0
  288. package/dist/components/geo/location-fields/location-fields.d.ts.map +1 -0
  289. package/dist/components/geo/location-fields/location-fields.js +248 -0
  290. package/dist/components/geo/location-fields/location-fields.js.map +1 -0
  291. package/dist/components/identity/avatar/avatar.d.ts +68 -0
  292. package/dist/components/identity/avatar/avatar.d.ts.map +1 -0
  293. package/dist/components/identity/avatar/avatar.js +73 -0
  294. package/dist/components/identity/avatar/avatar.js.map +1 -0
  295. package/dist/components/identity/avatar/index.d.ts +2 -0
  296. package/dist/components/identity/avatar/index.d.ts.map +1 -0
  297. package/dist/components/identity/avatar/index.js +2 -0
  298. package/dist/components/identity/avatar/index.js.map +1 -0
  299. package/dist/components/identity/username-availability-input/index.d.ts +2 -0
  300. package/dist/components/identity/username-availability-input/index.d.ts.map +1 -0
  301. package/dist/components/identity/username-availability-input/index.js +2 -0
  302. package/dist/components/identity/username-availability-input/index.js.map +1 -0
  303. package/dist/components/identity/username-availability-input/username-availability-input.d.ts +71 -0
  304. package/dist/components/identity/username-availability-input/username-availability-input.d.ts.map +1 -0
  305. package/dist/components/identity/username-availability-input/username-availability-input.js +110 -0
  306. package/dist/components/identity/username-availability-input/username-availability-input.js.map +1 -0
  307. package/dist/components/layout/section-header/index.d.ts +2 -0
  308. package/dist/components/layout/section-header/index.d.ts.map +1 -0
  309. package/dist/components/layout/section-header/index.js +2 -0
  310. package/dist/components/layout/section-header/index.js.map +1 -0
  311. package/dist/components/layout/section-header/section-header.d.ts +49 -0
  312. package/dist/components/layout/section-header/section-header.d.ts.map +1 -0
  313. package/dist/components/layout/section-header/section-header.js +39 -0
  314. package/dist/components/layout/section-header/section-header.js.map +1 -0
  315. package/dist/components/layout/separator/index.d.ts +2 -0
  316. package/dist/components/layout/separator/index.d.ts.map +1 -0
  317. package/dist/components/layout/separator/index.js +2 -0
  318. package/dist/components/layout/separator/index.js.map +1 -0
  319. package/dist/components/layout/separator/separator.d.ts.map +1 -0
  320. package/dist/components/{separator.js → layout/separator/separator.js} +1 -1
  321. package/dist/components/layout/separator/separator.js.map +1 -0
  322. package/dist/components/layout/visually-hidden/index.d.ts +2 -0
  323. package/dist/components/layout/visually-hidden/index.d.ts.map +1 -0
  324. package/dist/components/layout/visually-hidden/index.js +2 -0
  325. package/dist/components/layout/visually-hidden/index.js.map +1 -0
  326. package/dist/components/layout/visually-hidden/visually-hidden.d.ts.map +1 -0
  327. package/dist/components/{visually-hidden.js → layout/visually-hidden/visually-hidden.js} +1 -1
  328. package/dist/components/layout/visually-hidden/visually-hidden.js.map +1 -0
  329. package/dist/components/navigation/back-link/back-link.d.ts +18 -0
  330. package/dist/components/navigation/back-link/back-link.d.ts.map +1 -0
  331. package/dist/components/navigation/back-link/back-link.js +16 -0
  332. package/dist/components/navigation/back-link/back-link.js.map +1 -0
  333. package/dist/components/navigation/back-link/index.d.ts +2 -0
  334. package/dist/components/navigation/back-link/index.d.ts.map +1 -0
  335. package/dist/components/navigation/back-link/index.js +2 -0
  336. package/dist/components/navigation/back-link/index.js.map +1 -0
  337. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts.map +1 -0
  338. package/dist/components/{breadcrumb.js → navigation/breadcrumb/breadcrumb.js} +3 -3
  339. package/dist/components/navigation/breadcrumb/breadcrumb.js.map +1 -0
  340. package/dist/components/navigation/breadcrumb/index.d.ts +2 -0
  341. package/dist/components/navigation/breadcrumb/index.d.ts.map +1 -0
  342. package/dist/components/navigation/breadcrumb/index.js +2 -0
  343. package/dist/components/navigation/breadcrumb/index.js.map +1 -0
  344. package/dist/components/navigation/link/index.d.ts +2 -0
  345. package/dist/components/navigation/link/index.d.ts.map +1 -0
  346. package/dist/components/navigation/link/index.js +2 -0
  347. package/dist/components/navigation/link/index.js.map +1 -0
  348. package/dist/components/navigation/link/link.d.ts.map +1 -0
  349. package/dist/components/{link.js → navigation/link/link.js} +2 -2
  350. package/dist/components/navigation/link/link.js.map +1 -0
  351. package/dist/components/navigation/pagination/index.d.ts +2 -0
  352. package/dist/components/navigation/pagination/index.d.ts.map +1 -0
  353. package/dist/components/navigation/pagination/index.js +2 -0
  354. package/dist/components/navigation/pagination/index.js.map +1 -0
  355. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -0
  356. package/dist/components/{pagination.js → navigation/pagination/pagination.js} +3 -3
  357. package/dist/components/navigation/pagination/pagination.js.map +1 -0
  358. package/dist/components/navigation/tabs/index.d.ts +2 -0
  359. package/dist/components/navigation/tabs/index.d.ts.map +1 -0
  360. package/dist/components/navigation/tabs/index.js +2 -0
  361. package/dist/components/navigation/tabs/index.js.map +1 -0
  362. package/dist/components/navigation/tabs/tabs.d.ts +121 -0
  363. package/dist/components/navigation/tabs/tabs.d.ts.map +1 -0
  364. package/dist/components/navigation/tabs/tabs.js +127 -0
  365. package/dist/components/navigation/tabs/tabs.js.map +1 -0
  366. package/dist/components/overlays/confirm-dialog/confirm-dialog.d.ts +107 -0
  367. package/dist/components/overlays/confirm-dialog/confirm-dialog.d.ts.map +1 -0
  368. package/dist/components/overlays/confirm-dialog/confirm-dialog.js +186 -0
  369. package/dist/components/overlays/confirm-dialog/confirm-dialog.js.map +1 -0
  370. package/dist/components/overlays/confirm-dialog/index.d.ts +2 -0
  371. package/dist/components/overlays/confirm-dialog/index.d.ts.map +1 -0
  372. package/dist/components/overlays/confirm-dialog/index.js +2 -0
  373. package/dist/components/overlays/confirm-dialog/index.js.map +1 -0
  374. package/dist/components/{dialog.d.ts → overlays/dialog/dialog.d.ts} +27 -1
  375. package/dist/components/overlays/dialog/dialog.d.ts.map +1 -0
  376. package/dist/components/{dialog.js → overlays/dialog/dialog.js} +6 -4
  377. package/dist/components/overlays/dialog/dialog.js.map +1 -0
  378. package/dist/components/overlays/dialog/index.d.ts +2 -0
  379. package/dist/components/overlays/dialog/index.d.ts.map +1 -0
  380. package/dist/components/overlays/dialog/index.js +2 -0
  381. package/dist/components/overlays/dialog/index.js.map +1 -0
  382. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  383. package/dist/components/{dropdown-menu.js → overlays/dropdown-menu/dropdown-menu.js} +2 -2
  384. package/dist/components/overlays/dropdown-menu/dropdown-menu.js.map +1 -0
  385. package/dist/components/overlays/dropdown-menu/index.d.ts +2 -0
  386. package/dist/components/overlays/dropdown-menu/index.d.ts.map +1 -0
  387. package/dist/components/overlays/dropdown-menu/index.js +2 -0
  388. package/dist/components/overlays/dropdown-menu/index.js.map +1 -0
  389. package/dist/components/overlays/popover/index.d.ts +2 -0
  390. package/dist/components/overlays/popover/index.d.ts.map +1 -0
  391. package/dist/components/overlays/popover/index.js +2 -0
  392. package/dist/components/overlays/popover/index.js.map +1 -0
  393. package/dist/components/overlays/popover/popover.d.ts.map +1 -0
  394. package/dist/components/{popover.js → overlays/popover/popover.js} +1 -1
  395. package/dist/components/overlays/popover/popover.js.map +1 -0
  396. package/dist/components/overlays/responsive-dialog/index.d.ts +2 -0
  397. package/dist/components/overlays/responsive-dialog/index.d.ts.map +1 -0
  398. package/dist/components/overlays/responsive-dialog/index.js +2 -0
  399. package/dist/components/overlays/responsive-dialog/index.js.map +1 -0
  400. package/dist/components/overlays/responsive-dialog/responsive-dialog.d.ts +25 -0
  401. package/dist/components/overlays/responsive-dialog/responsive-dialog.d.ts.map +1 -0
  402. package/dist/components/overlays/responsive-dialog/responsive-dialog.js +22 -0
  403. package/dist/components/overlays/responsive-dialog/responsive-dialog.js.map +1 -0
  404. package/dist/components/overlays/sheet/index.d.ts +2 -0
  405. package/dist/components/overlays/sheet/index.d.ts.map +1 -0
  406. package/dist/components/overlays/sheet/index.js +2 -0
  407. package/dist/components/overlays/sheet/index.js.map +1 -0
  408. package/dist/components/overlays/sheet/sheet.d.ts +53 -0
  409. package/dist/components/overlays/sheet/sheet.d.ts.map +1 -0
  410. package/dist/components/overlays/sheet/sheet.js +43 -0
  411. package/dist/components/overlays/sheet/sheet.js.map +1 -0
  412. package/dist/components/overlays/tooltip/index.d.ts +2 -0
  413. package/dist/components/overlays/tooltip/index.d.ts.map +1 -0
  414. package/dist/components/overlays/tooltip/index.js +2 -0
  415. package/dist/components/overlays/tooltip/index.js.map +1 -0
  416. package/dist/components/overlays/tooltip/tooltip.d.ts.map +1 -0
  417. package/dist/components/overlays/tooltip/tooltip.js.map +1 -0
  418. package/dist/components/search/search-input/index.d.ts +2 -0
  419. package/dist/components/search/search-input/index.d.ts.map +1 -0
  420. package/dist/components/search/search-input/index.js +2 -0
  421. package/dist/components/search/search-input/index.js.map +1 -0
  422. package/dist/components/search/search-input/search-input.d.ts +48 -0
  423. package/dist/components/search/search-input/search-input.d.ts.map +1 -0
  424. package/dist/components/search/search-input/search-input.js +140 -0
  425. package/dist/components/search/search-input/search-input.js.map +1 -0
  426. package/dist/components/technical/secret-field/index.d.ts +2 -0
  427. package/dist/components/technical/secret-field/index.d.ts.map +1 -0
  428. package/dist/components/technical/secret-field/index.js +2 -0
  429. package/dist/components/technical/secret-field/index.js.map +1 -0
  430. package/dist/components/technical/secret-field/secret-field.d.ts +38 -0
  431. package/dist/components/technical/secret-field/secret-field.d.ts.map +1 -0
  432. package/dist/components/technical/secret-field/secret-field.js +42 -0
  433. package/dist/components/technical/secret-field/secret-field.js.map +1 -0
  434. package/dist/components/typography/kbd/index.d.ts +2 -0
  435. package/dist/components/typography/kbd/index.d.ts.map +1 -0
  436. package/dist/components/typography/kbd/index.js +2 -0
  437. package/dist/components/typography/kbd/index.js.map +1 -0
  438. package/dist/components/typography/kbd/kbd.d.ts.map +1 -0
  439. package/dist/components/{kbd.js → typography/kbd/kbd.js} +1 -1
  440. package/dist/components/typography/kbd/kbd.js.map +1 -0
  441. package/dist/entries/marketing.d.ts +9 -0
  442. package/dist/entries/marketing.d.ts.map +1 -0
  443. package/dist/entries/marketing.js +9 -0
  444. package/dist/entries/marketing.js.map +1 -0
  445. package/dist/index.d.ts +62 -29
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +62 -29
  448. package/dist/index.js.map +1 -1
  449. package/dist/internal/dismiss.d.ts +23 -0
  450. package/dist/internal/dismiss.d.ts.map +1 -0
  451. package/dist/internal/dismiss.js +36 -0
  452. package/dist/internal/dismiss.js.map +1 -0
  453. package/dist/internal/dismissible.d.ts +26 -0
  454. package/dist/internal/dismissible.d.ts.map +1 -0
  455. package/dist/internal/dismissible.js +82 -0
  456. package/dist/internal/dismissible.js.map +1 -0
  457. package/dist/internal/icons.d.ts +14 -0
  458. package/dist/internal/icons.d.ts.map +1 -1
  459. package/dist/internal/icons.js +40 -0
  460. package/dist/internal/icons.js.map +1 -1
  461. package/dist/internal/inert.d.ts +7 -0
  462. package/dist/internal/inert.d.ts.map +1 -0
  463. package/dist/internal/inert.js +10 -0
  464. package/dist/internal/inert.js.map +1 -0
  465. package/dist/manifest.json +6003 -1285
  466. package/dist/patterns/actions/toolbar/index.d.ts +2 -0
  467. package/dist/patterns/actions/toolbar/index.d.ts.map +1 -0
  468. package/dist/patterns/actions/toolbar/index.js +2 -0
  469. package/dist/patterns/actions/toolbar/index.js.map +1 -0
  470. package/dist/patterns/actions/toolbar/toolbar.d.ts.map +1 -0
  471. package/dist/patterns/{toolbar.js → actions/toolbar/toolbar.js} +1 -1
  472. package/dist/patterns/actions/toolbar/toolbar.js.map +1 -0
  473. package/dist/patterns/layout/marketing-hero/index.d.ts +2 -0
  474. package/dist/patterns/layout/marketing-hero/index.d.ts.map +1 -0
  475. package/dist/patterns/layout/marketing-hero/index.js +2 -0
  476. package/dist/patterns/layout/marketing-hero/index.js.map +1 -0
  477. package/dist/patterns/layout/marketing-hero/marketing-hero.d.ts +24 -0
  478. package/dist/patterns/layout/marketing-hero/marketing-hero.d.ts.map +1 -0
  479. package/dist/patterns/layout/marketing-hero/marketing-hero.js +7 -0
  480. package/dist/patterns/layout/marketing-hero/marketing-hero.js.map +1 -0
  481. package/dist/patterns/layout/marketing-section-blocks/index.d.ts +7 -0
  482. package/dist/patterns/layout/marketing-section-blocks/index.d.ts.map +1 -0
  483. package/dist/patterns/layout/marketing-section-blocks/index.js +7 -0
  484. package/dist/patterns/layout/marketing-section-blocks/index.js.map +1 -0
  485. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.d.ts +15 -0
  486. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.d.ts.map +1 -0
  487. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.js +7 -0
  488. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.js.map +1 -0
  489. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.d.ts +37 -0
  490. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.d.ts.map +1 -0
  491. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.d.ts +23 -0
  492. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.d.ts.map +1 -0
  493. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.js +15 -0
  494. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.js.map +1 -0
  495. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.d.ts +25 -0
  496. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.d.ts.map +1 -0
  497. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.js +10 -0
  498. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.js.map +1 -0
  499. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.js +14 -0
  500. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.js.map +1 -0
  501. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.d.ts +25 -0
  502. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.d.ts.map +1 -0
  503. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.js +12 -0
  504. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.js.map +1 -0
  505. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.d.ts +14 -0
  506. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.d.ts.map +1 -0
  507. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.js +7 -0
  508. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.js.map +1 -0
  509. package/dist/patterns/layout/marketing-site-shell/index.d.ts +4 -0
  510. package/dist/patterns/layout/marketing-site-shell/index.d.ts.map +1 -0
  511. package/dist/patterns/layout/marketing-site-shell/index.js +3 -0
  512. package/dist/patterns/layout/marketing-site-shell/index.js.map +1 -0
  513. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.d.ts +31 -0
  514. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.d.ts.map +1 -0
  515. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.d.ts +33 -0
  516. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.d.ts.map +1 -0
  517. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.js +11 -0
  518. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.js.map +1 -0
  519. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.js +32 -0
  520. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.js.map +1 -0
  521. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.d.ts +10 -0
  522. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.d.ts.map +1 -0
  523. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.js +8 -0
  524. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.js.map +1 -0
  525. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.d.ts +24 -0
  526. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.d.ts.map +1 -0
  527. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.js +4 -0
  528. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.js.map +1 -0
  529. package/dist/patterns/layout/page-header/index.d.ts +2 -0
  530. package/dist/patterns/layout/page-header/index.d.ts.map +1 -0
  531. package/dist/patterns/layout/page-header/index.js +2 -0
  532. package/dist/patterns/layout/page-header/index.js.map +1 -0
  533. package/dist/patterns/layout/page-header/page-header.d.ts.map +1 -0
  534. package/dist/patterns/{page-header.js → layout/page-header/page-header.js} +1 -1
  535. package/dist/patterns/layout/page-header/page-header.js.map +1 -0
  536. package/dist/patterns/layout/settings-section/index.d.ts +2 -0
  537. package/dist/patterns/layout/settings-section/index.d.ts.map +1 -0
  538. package/dist/patterns/layout/settings-section/index.js +2 -0
  539. package/dist/patterns/layout/settings-section/index.js.map +1 -0
  540. package/dist/patterns/{settings.d.ts → layout/settings-section/settings-section.d.ts} +1 -1
  541. package/dist/patterns/layout/settings-section/settings-section.d.ts.map +1 -0
  542. package/dist/patterns/{settings.js → layout/settings-section/settings-section.js} +3 -3
  543. package/dist/patterns/layout/settings-section/settings-section.js.map +1 -0
  544. package/dist/patterns/layout/split-layout/index.d.ts +2 -0
  545. package/dist/patterns/layout/split-layout/index.d.ts.map +1 -0
  546. package/dist/patterns/layout/split-layout/index.js +2 -0
  547. package/dist/patterns/layout/split-layout/index.js.map +1 -0
  548. package/dist/patterns/layout/split-layout/split-layout.d.ts.map +1 -0
  549. package/dist/patterns/{split-layout.js → layout/split-layout/split-layout.js} +3 -3
  550. package/dist/patterns/layout/split-layout/split-layout.js.map +1 -0
  551. package/dist/patterns/search/filter-bar/filter-bar.d.ts.map +1 -0
  552. package/dist/patterns/{filter-bar.js → search/filter-bar/filter-bar.js} +2 -2
  553. package/dist/patterns/search/filter-bar/filter-bar.js.map +1 -0
  554. package/dist/patterns/search/filter-bar/index.d.ts +2 -0
  555. package/dist/patterns/search/filter-bar/index.d.ts.map +1 -0
  556. package/dist/patterns/search/filter-bar/index.js +2 -0
  557. package/dist/patterns/search/filter-bar/index.js.map +1 -0
  558. package/dist/styles.css +3648 -11
  559. package/package.json +7 -2
  560. package/dist/components/alert.d.ts.map +0 -1
  561. package/dist/components/alert.js.map +0 -1
  562. package/dist/components/avatar.d.ts +0 -16
  563. package/dist/components/avatar.d.ts.map +0 -1
  564. package/dist/components/avatar.js +0 -28
  565. package/dist/components/avatar.js.map +0 -1
  566. package/dist/components/badge.d.ts.map +0 -1
  567. package/dist/components/badge.js.map +0 -1
  568. package/dist/components/breadcrumb.d.ts.map +0 -1
  569. package/dist/components/breadcrumb.js.map +0 -1
  570. package/dist/components/button.d.ts.map +0 -1
  571. package/dist/components/button.js +0 -30
  572. package/dist/components/button.js.map +0 -1
  573. package/dist/components/card.d.ts.map +0 -1
  574. package/dist/components/card.js.map +0 -1
  575. package/dist/components/checkbox.d.ts.map +0 -1
  576. package/dist/components/checkbox.js.map +0 -1
  577. package/dist/components/combobox.d.ts.map +0 -1
  578. package/dist/components/combobox.js.map +0 -1
  579. package/dist/components/dialog.d.ts.map +0 -1
  580. package/dist/components/dialog.js.map +0 -1
  581. package/dist/components/dropdown-menu.d.ts.map +0 -1
  582. package/dist/components/dropdown-menu.js.map +0 -1
  583. package/dist/components/empty-state.d.ts +0 -17
  584. package/dist/components/empty-state.d.ts.map +0 -1
  585. package/dist/components/empty-state.js +0 -10
  586. package/dist/components/empty-state.js.map +0 -1
  587. package/dist/components/field.d.ts.map +0 -1
  588. package/dist/components/field.js.map +0 -1
  589. package/dist/components/input.d.ts.map +0 -1
  590. package/dist/components/input.js.map +0 -1
  591. package/dist/components/kbd.d.ts.map +0 -1
  592. package/dist/components/kbd.js.map +0 -1
  593. package/dist/components/link.d.ts.map +0 -1
  594. package/dist/components/link.js.map +0 -1
  595. package/dist/components/pagination.d.ts.map +0 -1
  596. package/dist/components/pagination.js.map +0 -1
  597. package/dist/components/popover.d.ts.map +0 -1
  598. package/dist/components/popover.js.map +0 -1
  599. package/dist/components/progress.d.ts +0 -14
  600. package/dist/components/progress.d.ts.map +0 -1
  601. package/dist/components/progress.js +0 -12
  602. package/dist/components/progress.js.map +0 -1
  603. package/dist/components/select.d.ts.map +0 -1
  604. package/dist/components/select.js.map +0 -1
  605. package/dist/components/separator.d.ts.map +0 -1
  606. package/dist/components/separator.js.map +0 -1
  607. package/dist/components/skeleton.d.ts.map +0 -1
  608. package/dist/components/skeleton.js.map +0 -1
  609. package/dist/components/spinner.d.ts.map +0 -1
  610. package/dist/components/spinner.js.map +0 -1
  611. package/dist/components/switch.d.ts.map +0 -1
  612. package/dist/components/switch.js.map +0 -1
  613. package/dist/components/table.d.ts.map +0 -1
  614. package/dist/components/table.js.map +0 -1
  615. package/dist/components/tabs.d.ts +0 -12
  616. package/dist/components/tabs.d.ts.map +0 -1
  617. package/dist/components/tabs.js +0 -17
  618. package/dist/components/tabs.js.map +0 -1
  619. package/dist/components/toast.d.ts +0 -40
  620. package/dist/components/toast.d.ts.map +0 -1
  621. package/dist/components/toast.js +0 -67
  622. package/dist/components/toast.js.map +0 -1
  623. package/dist/components/tooltip.d.ts.map +0 -1
  624. package/dist/components/tooltip.js.map +0 -1
  625. package/dist/components/visually-hidden.d.ts.map +0 -1
  626. package/dist/components/visually-hidden.js.map +0 -1
  627. package/dist/patterns/description-list.d.ts.map +0 -1
  628. package/dist/patterns/description-list.js.map +0 -1
  629. package/dist/patterns/filter-bar.d.ts.map +0 -1
  630. package/dist/patterns/filter-bar.js.map +0 -1
  631. package/dist/patterns/index.d.ts +0 -9
  632. package/dist/patterns/index.d.ts.map +0 -1
  633. package/dist/patterns/index.js +0 -9
  634. package/dist/patterns/index.js.map +0 -1
  635. package/dist/patterns/page-header.d.ts.map +0 -1
  636. package/dist/patterns/page-header.js.map +0 -1
  637. package/dist/patterns/settings.d.ts.map +0 -1
  638. package/dist/patterns/settings.js.map +0 -1
  639. package/dist/patterns/split-layout.d.ts.map +0 -1
  640. package/dist/patterns/split-layout.js.map +0 -1
  641. package/dist/patterns/stat-card.d.ts.map +0 -1
  642. package/dist/patterns/stat-card.js.map +0 -1
  643. package/dist/patterns/states.d.ts +0 -23
  644. package/dist/patterns/states.d.ts.map +0 -1
  645. package/dist/patterns/states.js +0 -15
  646. package/dist/patterns/states.js.map +0 -1
  647. package/dist/patterns/toolbar.d.ts.map +0 -1
  648. package/dist/patterns/toolbar.js.map +0 -1
  649. /package/dist/components/{badge.d.ts → data-display/badge/badge.d.ts} +0 -0
  650. /package/dist/components/{card.d.ts → data-display/card/card.d.ts} +0 -0
  651. /package/dist/{patterns → components/data-display/description-list}/description-list.d.ts +0 -0
  652. /package/dist/{patterns → components/data-display/stat-card}/stat-card.d.ts +0 -0
  653. /package/dist/components/{alert.d.ts → feedback/alert/alert.d.ts} +0 -0
  654. /package/dist/components/{skeleton.d.ts → feedback/skeleton/skeleton.d.ts} +0 -0
  655. /package/dist/components/{spinner.d.ts → feedback/spinner/spinner.d.ts} +0 -0
  656. /package/dist/components/{checkbox.d.ts → forms/checkbox/checkbox.d.ts} +0 -0
  657. /package/dist/components/{combobox.d.ts → forms/combobox/combobox.d.ts} +0 -0
  658. /package/dist/components/{select.d.ts → forms/select/select.d.ts} +0 -0
  659. /package/dist/components/{switch.d.ts → forms/switch/switch.d.ts} +0 -0
  660. /package/dist/components/{separator.d.ts → layout/separator/separator.d.ts} +0 -0
  661. /package/dist/components/{visually-hidden.d.ts → layout/visually-hidden/visually-hidden.d.ts} +0 -0
  662. /package/dist/components/{breadcrumb.d.ts → navigation/breadcrumb/breadcrumb.d.ts} +0 -0
  663. /package/dist/components/{link.d.ts → navigation/link/link.d.ts} +0 -0
  664. /package/dist/components/{pagination.d.ts → navigation/pagination/pagination.d.ts} +0 -0
  665. /package/dist/components/{dropdown-menu.d.ts → overlays/dropdown-menu/dropdown-menu.d.ts} +0 -0
  666. /package/dist/components/{popover.d.ts → overlays/popover/popover.d.ts} +0 -0
  667. /package/dist/components/{tooltip.d.ts → overlays/tooltip/tooltip.d.ts} +0 -0
  668. /package/dist/components/{tooltip.js → overlays/tooltip/tooltip.js} +0 -0
  669. /package/dist/components/{kbd.d.ts → typography/kbd/kbd.d.ts} +0 -0
  670. /package/dist/patterns/{toolbar.d.ts → actions/toolbar/toolbar.d.ts} +0 -0
  671. /package/dist/patterns/{page-header.d.ts → layout/page-header/page-header.d.ts} +0 -0
  672. /package/dist/patterns/{split-layout.d.ts → layout/split-layout/split-layout.d.ts} +0 -0
  673. /package/dist/patterns/{filter-bar.d.ts → search/filter-bar/filter-bar.d.ts} +0 -0
package/dist/styles.css CHANGED
@@ -2,7 +2,7 @@
2
2
  @layer monarch.tokens, monarch.base, monarch.components;
3
3
 
4
4
  @layer monarch.components {
5
- /* 00-foundation.css */
5
+ /* styles/foundation.css */
6
6
  /* Shared component foundations. */
7
7
  .mn-visually-hidden {
8
8
  position: absolute;
@@ -69,7 +69,7 @@
69
69
  }
70
70
  }
71
71
 
72
- /* 10-button.css */
72
+ /* components/actions/button/button.css */
73
73
  .mn-button {
74
74
  --_bg: var(--mn-color-bg-surface);
75
75
  --_bg-hover: var(--mn-color-bg-muted);
@@ -144,6 +144,65 @@
144
144
  --_border: var(--mn-color-danger-border);
145
145
  }
146
146
 
147
+ .mn-button[data-variant='success'] {
148
+ --_bg: var(--mn-color-success-solid);
149
+ --_bg-hover: var(--mn-color-success-solid-hover);
150
+ --_bg-active: var(--mn-color-success-solid-active);
151
+ --_fg: var(--mn-color-success-on-solid);
152
+ --_border: transparent;
153
+ box-shadow: var(--mn-shadow-xs);
154
+ }
155
+ .mn-button[data-variant='warning'] {
156
+ --_bg: var(--mn-color-warning-solid);
157
+ --_bg-hover: var(--mn-color-warning-solid-hover);
158
+ --_bg-active: var(--mn-color-warning-solid-active);
159
+ --_fg: var(--mn-color-warning-on-solid);
160
+ --_border: transparent;
161
+ box-shadow: var(--mn-shadow-xs);
162
+ }
163
+ /* Brand: per-theme colours derived in button.tsx (deriveIntent) arrive as
164
+ inline --_brand-<theme>-* properties; without a valid colour the variant
165
+ falls back to the product accent. Theme blocks follow the tokens' order. */
166
+ .mn-button[data-variant='brand'] {
167
+ --_bg: var(--mn-color-accent-solid);
168
+ --_bg-hover: var(--mn-color-accent-solid-hover);
169
+ --_bg-active: var(--mn-color-accent-solid-active);
170
+ --_fg: var(--mn-color-accent-on-solid);
171
+ --_border: transparent;
172
+ box-shadow: var(--mn-shadow-xs);
173
+ }
174
+ .mn-button[data-variant='brand'][data-brand] {
175
+ --_bg: var(--_brand-l-bg);
176
+ --_bg-hover: var(--_brand-l-bg-hover);
177
+ --_bg-active: var(--_brand-l-bg-active);
178
+ --_fg: var(--_brand-l-fg);
179
+ }
180
+ :is(.dark, [data-mn-theme='dark']) .mn-button[data-variant='brand'][data-brand] {
181
+ --_bg: var(--_brand-d-bg);
182
+ --_bg-hover: var(--_brand-d-bg-hover);
183
+ --_bg-active: var(--_brand-d-bg-active);
184
+ --_fg: var(--_brand-d-fg);
185
+ }
186
+ [data-mn-contrast='more'] .mn-button[data-variant='brand'][data-brand] {
187
+ --_bg: var(--_brand-hl-bg);
188
+ --_bg-hover: var(--_brand-hl-bg-hover);
189
+ --_bg-active: var(--_brand-hl-bg-active);
190
+ --_fg: var(--_brand-hl-fg);
191
+ }
192
+ :is(.dark, [data-mn-theme='dark'])[data-mn-contrast='more']
193
+ .mn-button[data-variant='brand'][data-brand],
194
+ :is(.dark, [data-mn-theme='dark'])
195
+ [data-mn-contrast='more']
196
+ .mn-button[data-variant='brand'][data-brand],
197
+ [data-mn-contrast='more']
198
+ :is(.dark, [data-mn-theme='dark'])
199
+ .mn-button[data-variant='brand'][data-brand] {
200
+ --_bg: var(--_brand-hd-bg);
201
+ --_bg-hover: var(--_brand-hd-bg-hover);
202
+ --_bg-active: var(--_brand-hd-bg-active);
203
+ --_fg: var(--_brand-hd-fg);
204
+ }
205
+
147
206
  .mn-button[data-size='xs'] {
148
207
  --_h: var(--mn-control-xs);
149
208
  --_px: var(--mn-space-2);
@@ -197,6 +256,7 @@
197
256
  margin: 0;
198
257
  }
199
258
 
259
+ /* components/feedback/spinner/spinner.css */
200
260
  .mn-spinner {
201
261
  --_size: 1rem;
202
262
  display: inline-block;
@@ -220,6 +280,7 @@
220
280
  }
221
281
  }
222
282
 
283
+ /* components/typography/kbd/kbd.css */
223
284
  .mn-kbd {
224
285
  display: inline-flex;
225
286
  align-items: center;
@@ -236,7 +297,7 @@
236
297
  line-height: 1;
237
298
  }
238
299
 
239
- /* 20-forms.css */
300
+ /* components/forms/form-field/form-field.css */
240
301
  .mn-field {
241
302
  display: flex;
242
303
  flex-direction: column;
@@ -275,8 +336,104 @@
275
336
  color: var(--mn-color-text-disabled);
276
337
  }
277
338
 
339
+ /* layout="row": text on the left, control on the right (switch rows). */
340
+ .mn-field[data-layout='row'] {
341
+ display: grid;
342
+ grid-template-columns: minmax(0, 1fr) auto;
343
+ column-gap: var(--mn-space-4);
344
+ row-gap: var(--mn-space-0-5);
345
+ align-items: start;
346
+ }
347
+ .mn-field[data-layout='row'] > * {
348
+ grid-column: 2;
349
+ grid-row: 1 / span 2;
350
+ align-self: center;
351
+ }
352
+ .mn-field[data-layout='row'] > .mn-field__label {
353
+ grid-column: 1;
354
+ grid-row: 1;
355
+ align-self: start;
356
+ }
357
+ .mn-field[data-layout='row'] > .mn-field__description {
358
+ grid-column: 1;
359
+ grid-row: 2;
360
+ align-self: start;
361
+ }
362
+ .mn-field[data-layout='row'] > .mn-field__error {
363
+ grid-column: 1 / -1;
364
+ grid-row: 3;
365
+ }
366
+
367
+ /* NativeSelect: the platform <select> styled as .mn-input with a chevron. */
368
+ .mn-native-select {
369
+ display: inline-flex;
370
+ align-items: center;
371
+ gap: var(--mn-space-2);
372
+ min-width: 0;
373
+ max-width: 100%;
374
+ }
375
+ .mn-field > .mn-native-select {
376
+ display: flex;
377
+ }
378
+ .mn-field[data-layout='row'] > .mn-native-select {
379
+ display: inline-flex;
380
+ }
381
+ .mn-native-select__label {
382
+ flex-shrink: 0;
383
+ color: var(--mn-color-text-muted);
384
+ font-size: var(--mn-text-sm);
385
+ font-weight: var(--mn-weight-medium);
386
+ white-space: nowrap;
387
+ cursor: pointer;
388
+ }
389
+ .mn-native-select[data-size='sm'] .mn-native-select__label {
390
+ font-size: var(--mn-text-xs);
391
+ }
392
+ .mn-native-select[data-disabled] .mn-native-select__label {
393
+ color: var(--mn-color-text-disabled);
394
+ cursor: not-allowed;
395
+ }
396
+ .mn-native-select__box {
397
+ position: relative;
398
+ display: flex;
399
+ flex: 1 1 auto;
400
+ min-width: 0;
401
+ }
402
+ /* .mn-input sets padding-inline later in the cascade; this wins on specificity. */
403
+ .mn-native-select__control.mn-input {
404
+ appearance: none;
405
+ padding-inline-end: var(--mn-space-8);
406
+ cursor: pointer;
407
+ text-overflow: ellipsis;
408
+ }
409
+ .mn-native-select__control:disabled {
410
+ cursor: not-allowed;
411
+ }
412
+ .mn-native-select__control.mn-input[data-size='sm'] {
413
+ padding-inline-end: var(--mn-space-6);
414
+ }
415
+ .mn-native-select__chevron {
416
+ position: absolute;
417
+ inset-inline-end: var(--mn-space-2-5);
418
+ top: 50%;
419
+ translate: 0 -50%;
420
+ color: var(--mn-color-text-muted);
421
+ pointer-events: none;
422
+ }
423
+ .mn-native-select[data-size='sm'] .mn-native-select__chevron {
424
+ inset-inline-end: var(--mn-space-2);
425
+ width: 0.875rem;
426
+ height: 0.875rem;
427
+ }
428
+ .mn-native-select[data-disabled] .mn-native-select__chevron {
429
+ color: var(--mn-color-text-disabled);
430
+ }
431
+
432
+ /* components/forms/text-field/text-field.css */
278
433
  .mn-input {
279
434
  --_h: var(--mn-control-md);
435
+ /* Fill the container exactly, whatever box-sizing the app sets globally. */
436
+ box-sizing: border-box;
280
437
  display: flex;
281
438
  align-items: center;
282
439
  width: 100%;
@@ -333,6 +490,7 @@
333
490
  resize: vertical;
334
491
  }
335
492
 
493
+ /* components/forms/select/select.css */
336
494
  .mn-select {
337
495
  justify-content: space-between;
338
496
  gap: var(--mn-space-2);
@@ -359,7 +517,8 @@
359
517
  padding: var(--mn-space-1);
360
518
  }
361
519
 
362
- /* Checkbox and switch */
520
+ /* components/forms/checkbox/checkbox.css */
521
+ /* Checkbox (the shared .mn-choice label wrapper is in styles/choice.css). */
363
522
  .mn-checkbox {
364
523
  display: inline-flex;
365
524
  align-items: center;
@@ -398,6 +557,7 @@
398
557
  stroke-width: 2.25;
399
558
  }
400
559
 
560
+ /* components/forms/switch/switch.css */
401
561
  .mn-switch {
402
562
  --_w: 2.25rem;
403
563
  --_h: 1.25rem;
@@ -441,6 +601,7 @@
441
601
  transform: translateX(calc(var(--_w) - var(--_thumb) - 5px));
442
602
  }
443
603
 
604
+ /* styles/choice.css */
444
605
  .mn-choice {
445
606
  display: flex;
446
607
  align-items: flex-start;
@@ -477,7 +638,7 @@
477
638
  cursor: not-allowed;
478
639
  }
479
640
 
480
- /* 30-display.css */
641
+ /* components/data-display/badge/badge.css */
481
642
  .mn-badge {
482
643
  --_bg: var(--mn-color-bg-muted);
483
644
  --_fg: var(--mn-color-text-muted);
@@ -579,6 +740,7 @@
579
740
  --_border: var(--mn-color-danger-border);
580
741
  }
581
742
 
743
+ /* components/identity/avatar/avatar.css */
582
744
  .mn-avatar {
583
745
  --_size: 2rem;
584
746
  position: relative;
@@ -621,7 +783,102 @@
621
783
  height: 100%;
622
784
  object-fit: cover;
623
785
  }
786
+ .mn-avatar[data-size='custom'] {
787
+ --_size: var(--mn-avatar-size, 2rem);
788
+ }
789
+
790
+ /* Fallback icon (entities without a logo, names without letters). */
791
+ .mn-avatar__icon {
792
+ display: inline-flex;
793
+ }
794
+ .mn-avatar__icon > svg {
795
+ width: calc(var(--_size) * 0.55);
796
+ height: calc(var(--_size) * 0.55);
797
+ }
798
+
799
+ /* palette="tokens": the five data tokens, tinted onto the surface; follows theme and contrast. */
800
+ .mn-avatar[data-palette] {
801
+ --_tint: var(--mn-color-data-1);
802
+ background: color-mix(in srgb, var(--_tint) 16%, var(--mn-color-bg-surface));
803
+ color: color-mix(in srgb, var(--_tint) 40%, var(--mn-color-text-default));
804
+ }
805
+ .mn-avatar[data-palette='2'] {
806
+ --_tint: var(--mn-color-data-2);
807
+ }
808
+ .mn-avatar[data-palette='3'] {
809
+ --_tint: var(--mn-color-data-3);
810
+ }
811
+ .mn-avatar[data-palette='4'] {
812
+ --_tint: var(--mn-color-data-4);
813
+ }
814
+ .mn-avatar[data-palette='5'] {
815
+ --_tint: var(--mn-color-data-5);
816
+ }
817
+ [data-mn-contrast='more'] .mn-avatar[data-palette] {
818
+ color: var(--mn-color-text-default);
819
+ }
820
+
821
+ /* Presence dot. The root stops clipping so the dot can sit on the edge; the image keeps the shape. */
822
+ .mn-avatar[data-status] {
823
+ overflow: visible;
824
+ }
825
+ .mn-avatar[data-status] .mn-avatar__image {
826
+ border-radius: inherit;
827
+ }
828
+ .mn-avatar__status {
829
+ position: absolute;
830
+ inset-inline-end: 0;
831
+ inset-block-end: 0;
832
+ width: max(0.5rem, calc(var(--_size) * 0.28));
833
+ height: max(0.5rem, calc(var(--_size) * 0.28));
834
+ border-radius: var(--mn-radius-full);
835
+ background: var(--mn-color-text-subtle);
836
+ box-shadow: 0 0 0 2px var(--mn-color-bg-surface);
837
+ }
838
+ .mn-avatar[data-shape='square'] .mn-avatar__status {
839
+ inset-inline-end: calc(var(--_size) * -0.08);
840
+ inset-block-end: calc(var(--_size) * -0.08);
841
+ }
842
+ .mn-avatar[data-status='online'] .mn-avatar__status {
843
+ background: var(--mn-color-success-solid);
844
+ }
845
+ .mn-avatar[data-status='away'] .mn-avatar__status {
846
+ background: var(--mn-color-warning-solid);
847
+ }
848
+ .mn-avatar[data-status='busy'] .mn-avatar__status {
849
+ background: var(--mn-color-danger-solid);
850
+ }
851
+ .mn-avatar[data-status='offline'] .mn-avatar__status {
852
+ background: var(--mn-color-bg-surface);
853
+ box-shadow:
854
+ inset 0 0 0 2px var(--mn-color-text-subtle),
855
+ 0 0 0 2px var(--mn-color-bg-surface);
856
+ }
857
+
858
+ /* AvatarGroup: overlapping stack with a ring so each face stays distinct. */
859
+ .mn-avatar-group {
860
+ display: inline-flex;
861
+ align-items: center;
862
+ padding-inline-start: 2px;
863
+ }
864
+ .mn-avatar-group > .mn-avatar {
865
+ box-shadow: 0 0 0 2px var(--mn-color-bg-surface);
866
+ }
867
+ .mn-avatar-group > .mn-avatar + .mn-avatar {
868
+ margin-inline-start: calc(var(--_size) * -0.25);
869
+ }
870
+ .mn-avatar-group__overflow {
871
+ background: var(--mn-color-bg-muted);
872
+ color: var(--mn-color-text-muted);
873
+ font-size: calc(var(--_size) * 0.36);
874
+ font-variant-numeric: tabular-nums;
875
+ }
876
+ :is(.dark, [data-mn-theme='dark']) .mn-avatar-group__overflow {
877
+ background: var(--mn-color-bg-muted);
878
+ color: var(--mn-color-text-muted);
879
+ }
624
880
 
881
+ /* components/data-display/card/card.css */
625
882
  .mn-card {
626
883
  display: flex;
627
884
  flex-direction: column;
@@ -673,6 +930,7 @@
673
930
  padding: 0;
674
931
  }
675
932
 
933
+ /* components/feedback/skeleton/skeleton.css */
676
934
  .mn-skeleton {
677
935
  display: block;
678
936
  border-radius: var(--mn-radius-md);
@@ -692,6 +950,7 @@
692
950
  }
693
951
  }
694
952
 
953
+ /* components/feedback/empty-state/empty-state.css */
695
954
  .mn-empty-state {
696
955
  display: flex;
697
956
  flex-direction: column;
@@ -739,7 +998,77 @@
739
998
  gap: var(--mn-space-2);
740
999
  margin-top: var(--mn-space-3);
741
1000
  }
1001
+ .mn-empty-state[data-size='compact'] {
1002
+ gap: var(--mn-space-1);
1003
+ padding: var(--mn-space-5) var(--mn-space-3);
1004
+ }
1005
+ .mn-empty-state[data-size='compact'] .mn-empty-state__icon {
1006
+ width: 2rem;
1007
+ height: 2rem;
1008
+ margin-bottom: var(--mn-space-1);
1009
+ border-radius: var(--mn-radius-md);
1010
+ }
1011
+ .mn-empty-state[data-size='compact'] .mn-empty-state__icon > svg {
1012
+ width: 1rem;
1013
+ height: 1rem;
1014
+ }
1015
+ .mn-empty-state[data-size='compact'] .mn-empty-state__title {
1016
+ font-size: var(--mn-text-sm);
1017
+ }
1018
+ .mn-empty-state[data-size='compact'] .mn-empty-state__actions {
1019
+ margin-top: var(--mn-space-2);
1020
+ }
1021
+ .mn-empty-state[data-kind='success'] .mn-empty-state__icon {
1022
+ background: var(--mn-color-success-subtle);
1023
+ color: var(--mn-color-success-strong);
1024
+ }
1025
+ .mn-empty-state__tip {
1026
+ margin: var(--mn-space-3) 0 0;
1027
+ color: var(--mn-color-text-muted);
1028
+ font-size: var(--mn-text-xs);
1029
+ line-height: var(--mn-leading-normal);
1030
+ }
1031
+ .mn-empty-state__text {
1032
+ display: flex;
1033
+ flex: 1 1 12rem;
1034
+ flex-direction: column;
1035
+ gap: var(--mn-space-0-5);
1036
+ min-width: 0;
1037
+ }
1038
+ .mn-empty-state[data-layout='line'] {
1039
+ flex-direction: row;
1040
+ flex-wrap: wrap;
1041
+ align-items: center;
1042
+ gap: var(--mn-space-2) var(--mn-space-3);
1043
+ max-width: none;
1044
+ margin-inline: 0;
1045
+ padding: var(--mn-space-3) var(--mn-space-4);
1046
+ text-align: start;
1047
+ }
1048
+ .mn-empty-state[data-layout='line'] .mn-empty-state__icon {
1049
+ width: 2rem;
1050
+ height: 2rem;
1051
+ margin: 0;
1052
+ border-radius: var(--mn-radius-md);
1053
+ }
1054
+ .mn-empty-state[data-layout='line'] .mn-empty-state__icon > svg {
1055
+ width: 1rem;
1056
+ height: 1rem;
1057
+ }
1058
+ .mn-empty-state[data-layout='line'] .mn-empty-state__title {
1059
+ font-size: var(--mn-text-sm);
1060
+ font-weight: var(--mn-weight-medium);
1061
+ }
1062
+ .mn-empty-state[data-layout='line'] .mn-empty-state__actions {
1063
+ justify-content: flex-start;
1064
+ margin-top: 0;
1065
+ }
1066
+ .mn-empty-state[data-layout='line'] .mn-empty-state__tip {
1067
+ flex-basis: 100%;
1068
+ margin-top: 0;
1069
+ }
742
1070
 
1071
+ /* components/feedback/alert/alert.css */
743
1072
  .mn-alert {
744
1073
  --_bg: var(--mn-color-bg-subtle);
745
1074
  --_fg: var(--mn-color-text-muted);
@@ -800,7 +1129,7 @@
800
1129
  --_border: var(--mn-color-danger-border);
801
1130
  }
802
1131
 
803
- /* 40-overlays.css */
1132
+ /* components/overlays/dialog/dialog.css */
804
1133
  .mn-overlay {
805
1134
  position: fixed;
806
1135
  inset: 0;
@@ -893,7 +1222,37 @@
893
1222
  background: var(--mn-color-bg-muted);
894
1223
  color: var(--mn-color-text-default);
895
1224
  }
1225
+ .mn-dialog__close:disabled {
1226
+ color: var(--mn-color-text-disabled);
1227
+ cursor: not-allowed;
1228
+ }
1229
+ .mn-dialog__close:disabled:hover {
1230
+ background: transparent;
1231
+ }
1232
+
1233
+ /* Phones: fill the screen when asked, keeping clear of notches and home bars. */
1234
+ @media (max-width: 639.98px) {
1235
+ .mn-dialog[data-fullscreen-phone] {
1236
+ box-sizing: border-box;
1237
+ top: 0;
1238
+ left: 0;
1239
+ width: 100%;
1240
+ height: 100dvh;
1241
+ max-height: none;
1242
+ padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom)
1243
+ env(safe-area-inset-left);
1244
+ border: 0;
1245
+ border-radius: 0;
1246
+ transform: none;
1247
+ animation: mn-fade-in var(--mn-duration-base) var(--mn-ease-enter);
1248
+ }
1249
+ .mn-dialog[data-fullscreen-phone] .mn-dialog__close {
1250
+ top: calc(var(--mn-space-3) + env(safe-area-inset-top));
1251
+ right: calc(var(--mn-space-3) + env(safe-area-inset-right));
1252
+ }
1253
+ }
896
1254
 
1255
+ /* styles/menu.css */
897
1256
  /* Menus: shared by DropdownMenu and Select. */
898
1257
  .mn-menu {
899
1258
  z-index: var(--mn-z-dropdown);
@@ -935,6 +1294,9 @@
935
1294
  .mn-menu__item[data-tone='danger'][data-highlighted] {
936
1295
  background: var(--mn-color-danger-subtle);
937
1296
  }
1297
+ .mn-menu__item[data-tone='danger'] .mn-menu__icon {
1298
+ color: inherit;
1299
+ }
938
1300
  .mn-menu__icon {
939
1301
  display: inline-flex;
940
1302
  color: var(--mn-color-text-muted);
@@ -969,6 +1331,7 @@
969
1331
  background: var(--mn-color-border-subtle);
970
1332
  }
971
1333
 
1334
+ /* components/overlays/popover/popover.css */
972
1335
  .mn-popover {
973
1336
  z-index: var(--mn-z-popover);
974
1337
  width: max-content;
@@ -985,6 +1348,7 @@
985
1348
  outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
986
1349
  }
987
1350
 
1351
+ /* components/overlays/tooltip/tooltip.css */
988
1352
  .mn-tooltip {
989
1353
  z-index: var(--mn-z-tooltip);
990
1354
  max-width: 18rem;
@@ -998,7 +1362,7 @@
998
1362
  animation: mn-fade-in var(--mn-duration-fast) var(--mn-ease-enter);
999
1363
  }
1000
1364
 
1001
- /* 50-navigation.css */
1365
+ /* components/navigation/tabs/tabs.css */
1002
1366
  .mn-tabs__list {
1003
1367
  display: flex;
1004
1368
  align-items: center;
@@ -1072,7 +1436,103 @@
1072
1436
  outline-offset: 2px;
1073
1437
  }
1074
1438
 
1075
- /* 60-data.css */
1439
+ /* Link tabs: anchors styled as triggers. */
1440
+ .mn-tabs__link {
1441
+ text-decoration: none;
1442
+ }
1443
+ .mn-tabs__link[aria-disabled='true'] {
1444
+ color: var(--mn-color-text-disabled);
1445
+ cursor: not-allowed;
1446
+ pointer-events: none;
1447
+ }
1448
+
1449
+ /* Count bubble after the label. */
1450
+ .mn-tabs__count {
1451
+ display: inline-flex;
1452
+ align-items: center;
1453
+ justify-content: center;
1454
+ min-width: 1.25rem;
1455
+ height: 1.125rem;
1456
+ padding-inline: var(--mn-space-1-5);
1457
+ border-radius: var(--mn-radius-full);
1458
+ background: var(--mn-color-bg-muted);
1459
+ color: var(--mn-color-text-muted);
1460
+ font-size: var(--mn-text-xs);
1461
+ font-weight: var(--mn-weight-semibold);
1462
+ font-variant-numeric: tabular-nums;
1463
+ line-height: 1;
1464
+ }
1465
+ [data-variant='pill'] > .mn-tabs__trigger .mn-tabs__count {
1466
+ background: var(--mn-color-bg-emphasis);
1467
+ }
1468
+ .mn-tabs__trigger[data-state='active'] .mn-tabs__count[data-tone='neutral'] {
1469
+ color: var(--mn-color-text-default);
1470
+ }
1471
+ .mn-tabs__count[data-tone='accent'] {
1472
+ background: var(--mn-color-accent-subtle);
1473
+ color: var(--mn-color-accent-strong);
1474
+ }
1475
+ .mn-tabs__count[data-tone='info'] {
1476
+ background: var(--mn-color-info-subtle);
1477
+ color: var(--mn-color-info-strong);
1478
+ }
1479
+ .mn-tabs__count[data-tone='success'] {
1480
+ background: var(--mn-color-success-subtle);
1481
+ color: var(--mn-color-success-strong);
1482
+ }
1483
+ .mn-tabs__count[data-tone='warning'] {
1484
+ background: var(--mn-color-warning-subtle);
1485
+ color: var(--mn-color-warning-strong);
1486
+ }
1487
+ .mn-tabs__count[data-tone='danger'] {
1488
+ background: var(--mn-color-danger-subtle);
1489
+ color: var(--mn-color-danger-strong);
1490
+ }
1491
+ [data-variant='pill'] > .mn-tabs__trigger .mn-tabs__count:not([data-tone='neutral']) {
1492
+ background: var(--mn-color-bg-surface);
1493
+ }
1494
+
1495
+ /* Scrollable list: scrolls sideways instead of overflowing the page. The
1496
+ line border moves to an inset shadow so the active underline is not
1497
+ clipped by the scroll container. */
1498
+ .mn-tabs__list[data-scrollable] {
1499
+ max-width: 100%;
1500
+ overflow-x: auto;
1501
+ overflow-y: hidden;
1502
+ overscroll-behavior-x: contain;
1503
+ scrollbar-width: thin;
1504
+ scroll-padding-inline: var(--mn-space-4);
1505
+ /* A scroll container should not widen its parent to fit every tab. */
1506
+ contain: inline-size;
1507
+ }
1508
+ .mn-tabs__list[data-scrollable][data-variant='line'] {
1509
+ border-bottom: 0;
1510
+ box-shadow: inset 0 -1px 0 var(--mn-color-border-default);
1511
+ }
1512
+ [data-variant='line'][data-scrollable] > .mn-tabs__trigger::after {
1513
+ bottom: 0;
1514
+ }
1515
+ .mn-tabs__list[data-scrollable] > .mn-tabs__trigger {
1516
+ flex-shrink: 0;
1517
+ }
1518
+ /* The scroll container clips outside outlines, so the ring sits inside. */
1519
+ .mn-tabs__list[data-scrollable] > .mn-tabs__trigger:focus-visible {
1520
+ outline-offset: calc(var(--mn-focus-ring-width) * -1);
1521
+ }
1522
+ [data-variant='line'][data-scrollable] > .mn-tabs__trigger {
1523
+ padding-inline: var(--mn-space-1);
1524
+ }
1525
+ .mn-tabs__list[data-scrollable][data-variant='pill'] {
1526
+ display: flex;
1527
+ }
1528
+
1529
+ /* Filter tabs share the list and trigger styles above. */
1530
+ .mn-tabs-filter {
1531
+ width: 100%;
1532
+ min-width: 0;
1533
+ }
1534
+
1535
+ /* components/data-grid/data-table/data-table.css */
1076
1536
  .mn-table-wrap {
1077
1537
  width: 100%;
1078
1538
  overflow: auto;
@@ -1170,6 +1630,7 @@
1170
1630
  opacity: 1;
1171
1631
  }
1172
1632
 
1633
+ /* components/navigation/pagination/pagination.css */
1173
1634
  .mn-pagination {
1174
1635
  display: flex;
1175
1636
  align-items: center;
@@ -1223,6 +1684,7 @@
1223
1684
  font-variant-numeric: tabular-nums;
1224
1685
  }
1225
1686
 
1687
+ /* components/navigation/breadcrumb/breadcrumb.css */
1226
1688
  .mn-breadcrumb__list {
1227
1689
  display: flex;
1228
1690
  flex-wrap: wrap;
@@ -1279,6 +1741,7 @@
1279
1741
  outline-offset: 2px;
1280
1742
  }
1281
1743
 
1744
+ /* components/forms/combobox/combobox.css */
1282
1745
  .mn-combobox {
1283
1746
  position: relative;
1284
1747
  padding-inline-end: var(--mn-space-1);
@@ -1354,7 +1817,7 @@
1354
1817
  text-align: center;
1355
1818
  }
1356
1819
 
1357
- /* 70-feedback.css */
1820
+ /* components/feedback/toast/toast.css */
1358
1821
  .mn-toast-viewport {
1359
1822
  position: fixed;
1360
1823
  z-index: var(--mn-z-toast);
@@ -1479,6 +1942,7 @@
1479
1942
  }
1480
1943
  }
1481
1944
 
1945
+ /* components/data-display/progress-bar/progress-bar.css */
1482
1946
  .mn-progress {
1483
1947
  --_h: 0.5rem;
1484
1948
  --_fill: var(--mn-color-accent-strong);
@@ -1501,6 +1965,9 @@
1501
1965
  .mn-progress[data-tone='danger'] {
1502
1966
  --_fill: var(--mn-color-danger-strong);
1503
1967
  }
1968
+ .mn-progress[data-tone='neutral'] {
1969
+ --_fill: var(--mn-color-text-muted);
1970
+ }
1504
1971
  .mn-progress__bar {
1505
1972
  height: 100%;
1506
1973
  border-radius: inherit;
@@ -1525,6 +1992,60 @@
1525
1992
  }
1526
1993
  }
1527
1994
 
1995
+ /* Meter (semantics="meter") and stacked segments. */
1996
+ .mn-progress__segment {
1997
+ position: absolute;
1998
+ inset-block: 0;
1999
+ box-sizing: border-box;
2000
+ background: var(--_seg, var(--mn-color-accent-strong));
2001
+ transition:
2002
+ width var(--mn-duration-slow) var(--mn-ease-standard),
2003
+ inset-inline-start var(--mn-duration-slow) var(--mn-ease-standard);
2004
+ }
2005
+ .mn-progress__segment + .mn-progress__segment {
2006
+ border-inline-start: 2px solid var(--mn-color-bg-surface);
2007
+ }
2008
+ .mn-progress__segment[data-tone='accent'] {
2009
+ --_seg: var(--mn-color-accent-strong);
2010
+ }
2011
+ .mn-progress__segment[data-tone='success'] {
2012
+ --_seg: var(--mn-color-success-strong);
2013
+ }
2014
+ .mn-progress__segment[data-tone='warning'] {
2015
+ --_seg: var(--mn-color-warning-strong);
2016
+ }
2017
+ .mn-progress__segment[data-tone='danger'] {
2018
+ --_seg: var(--mn-color-danger-strong);
2019
+ }
2020
+ .mn-progress__segment[data-tone='info'] {
2021
+ --_seg: var(--mn-color-info-strong);
2022
+ }
2023
+ .mn-progress__segment[data-tone='neutral'] {
2024
+ --_seg: var(--mn-color-text-subtle);
2025
+ }
2026
+ .mn-progress__segment[data-tone='data-1'] {
2027
+ --_seg: var(--mn-color-data-1);
2028
+ }
2029
+ .mn-progress__segment[data-tone='data-2'] {
2030
+ --_seg: var(--mn-color-data-2);
2031
+ }
2032
+ .mn-progress__segment[data-tone='data-3'] {
2033
+ --_seg: var(--mn-color-data-3);
2034
+ }
2035
+ .mn-progress__segment[data-tone='data-4'] {
2036
+ --_seg: var(--mn-color-data-4);
2037
+ }
2038
+ .mn-progress__segment[data-tone='data-5'] {
2039
+ --_seg: var(--mn-color-data-5);
2040
+ }
2041
+ @media (prefers-reduced-motion: reduce) {
2042
+ .mn-progress__bar,
2043
+ .mn-progress__segment {
2044
+ transition: none;
2045
+ }
2046
+ }
2047
+
2048
+ /* components/layout/separator/separator.css */
1528
2049
  .mn-separator {
1529
2050
  flex-shrink: 0;
1530
2051
  background: var(--mn-color-border-default);
@@ -1539,6 +2060,7 @@
1539
2060
  min-height: 1em;
1540
2061
  }
1541
2062
 
2063
+ /* components/navigation/link/link.css */
1542
2064
  .mn-link {
1543
2065
  display: inline;
1544
2066
  align-items: center;
@@ -1579,7 +2101,7 @@
1579
2101
  vertical-align: -0.05em;
1580
2102
  }
1581
2103
 
1582
- /* 80-patterns.css */
2104
+ /* patterns/layout/page-header/page-header.css */
1583
2105
  .mn-page-header {
1584
2106
  display: flex;
1585
2107
  flex-direction: column;
@@ -1633,6 +2155,7 @@
1633
2155
  margin-bottom: calc(var(--mn-space-4) * -1);
1634
2156
  }
1635
2157
 
2158
+ /* patterns/actions/toolbar/toolbar.css */
1636
2159
  .mn-toolbar-wrap {
1637
2160
  display: flex;
1638
2161
  flex-direction: column;
@@ -1661,6 +2184,7 @@
1661
2184
  margin-inline-start: auto;
1662
2185
  }
1663
2186
 
2187
+ /* patterns/search/filter-bar/filter-bar.css */
1664
2188
  .mn-filter-bar {
1665
2189
  display: flex;
1666
2190
  flex-wrap: wrap;
@@ -1735,6 +2259,7 @@
1735
2259
  outline-offset: 2px;
1736
2260
  }
1737
2261
 
2262
+ /* patterns/layout/settings-section/settings-section.css */
1738
2263
  .mn-settings-section {
1739
2264
  display: grid;
1740
2265
  gap: var(--mn-space-4);
@@ -1807,6 +2332,7 @@
1807
2332
  gap: var(--mn-space-1-5);
1808
2333
  }
1809
2334
 
2335
+ /* components/data-display/description-list/description-list.css */
1810
2336
  .mn-dl {
1811
2337
  display: grid;
1812
2338
  gap: var(--mn-space-4) var(--mn-space-6);
@@ -1852,6 +2378,7 @@
1852
2378
  overflow-wrap: anywhere;
1853
2379
  }
1854
2380
 
2381
+ /* patterns/layout/split-layout/split-layout.css */
1855
2382
  .mn-split {
1856
2383
  --_list: 22rem;
1857
2384
  display: grid;
@@ -1898,6 +2425,7 @@
1898
2425
  }
1899
2426
  }
1900
2427
 
2428
+ /* components/data-display/stat-card/stat-card.css */
1901
2429
  .mn-stat {
1902
2430
  display: flex;
1903
2431
  align-items: flex-start;
@@ -1956,11 +2484,39 @@
1956
2484
  color: var(--mn-color-accent-strong);
1957
2485
  }
1958
2486
 
2487
+ /* components/feedback/error-state/error-state.css */
1959
2488
  .mn-error-state .mn-empty-state__icon {
1960
2489
  background: var(--mn-color-danger-subtle);
1961
2490
  color: var(--mn-color-danger-strong);
1962
2491
  }
2492
+ .mn-error-state[data-kind='forbidden'] .mn-empty-state__icon,
2493
+ .mn-error-state[data-kind='not-found'] .mn-empty-state__icon,
2494
+ .mn-error-state[data-kind='maintenance'] .mn-empty-state__icon {
2495
+ background: var(--mn-color-bg-muted);
2496
+ color: var(--mn-color-text-muted);
2497
+ }
2498
+ .mn-error-state[data-kind='offline'] .mn-empty-state__icon {
2499
+ background: var(--mn-color-warning-subtle);
2500
+ color: var(--mn-color-warning-strong);
2501
+ }
2502
+ .mn-error-state__request-id {
2503
+ display: inline-flex;
2504
+ flex-wrap: wrap;
2505
+ align-items: center;
2506
+ justify-content: center;
2507
+ gap: var(--mn-space-1);
2508
+ margin: var(--mn-space-2) 0 0;
2509
+ color: var(--mn-color-text-muted);
2510
+ font-size: var(--mn-text-xs);
2511
+ }
2512
+ .mn-error-state__request-id code {
2513
+ font-family: var(--mn-font-mono);
2514
+ color: var(--mn-color-text-default);
2515
+ user-select: all;
2516
+ overflow-wrap: anywhere;
2517
+ }
1963
2518
 
2519
+ /* components/feedback/loading-state/loading-state.css */
1964
2520
  .mn-loading-state {
1965
2521
  display: flex;
1966
2522
  flex-direction: column;
@@ -1968,7 +2524,7 @@
1968
2524
  }
1969
2525
  .mn-loading-state[data-variant='cards'] {
1970
2526
  display: grid;
1971
- grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
2527
+ grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr));
1972
2528
  }
1973
2529
  .mn-loading-state__row {
1974
2530
  display: flex;
@@ -1981,4 +2537,3085 @@
1981
2537
  flex-direction: column;
1982
2538
  gap: var(--mn-space-2);
1983
2539
  }
2540
+ .mn-loading-state[data-variant='rows'] {
2541
+ gap: 0;
2542
+ }
2543
+ .mn-loading-state[data-variant='rows'] .mn-loading-state__row {
2544
+ justify-content: space-between;
2545
+ min-height: var(--mn-control-lg);
2546
+ padding-block: var(--mn-space-2);
2547
+ border-bottom: 1px solid var(--mn-color-border-subtle);
2548
+ }
2549
+ .mn-loading-state__meta {
2550
+ flex: none;
2551
+ }
2552
+ .mn-loading-state[data-variant='spinner'] {
2553
+ align-items: center;
2554
+ justify-content: center;
2555
+ padding: var(--mn-space-8) var(--mn-space-4);
2556
+ }
2557
+ .mn-loading-state__spinner {
2558
+ display: inline-flex;
2559
+ align-items: center;
2560
+ gap: var(--mn-space-2);
2561
+ color: var(--mn-color-text-muted);
2562
+ font-size: var(--mn-text-sm);
2563
+ }
2564
+
2565
+ /* components/actions/copy-button/copy-button.css */
2566
+ /* Copy Button: a Button (.mn-button) with an icon that confirms the result. */
2567
+ .mn-copy-button[data-icon-only] {
2568
+ width: var(--_h);
2569
+ padding: 0;
2570
+ }
2571
+ .mn-copy-button__icon {
2572
+ display: inline-flex;
2573
+ flex-shrink: 0;
2574
+ margin-inline: calc(var(--mn-space-0-5) * -1);
2575
+ transition: color var(--mn-duration-fast) var(--mn-ease-standard);
2576
+ }
2577
+ .mn-copy-button[data-icon-only] .mn-copy-button__icon {
2578
+ margin: 0;
2579
+ }
2580
+ .mn-copy-button__icon > svg {
2581
+ width: 1rem;
2582
+ height: 1rem;
2583
+ }
2584
+ .mn-copy-button[data-state='copied'] .mn-copy-button__icon {
2585
+ color: var(--mn-color-success-strong);
2586
+ }
2587
+ .mn-copy-button[data-state='error'] .mn-copy-button__icon {
2588
+ color: var(--mn-color-danger-strong);
2589
+ }
2590
+ .mn-copy-button[data-variant='primary'] .mn-copy-button__icon,
2591
+ .mn-copy-button[data-variant='danger'] .mn-copy-button__icon {
2592
+ color: inherit;
2593
+ }
2594
+ @media (prefers-reduced-motion: reduce) {
2595
+ .mn-copy-button__icon {
2596
+ transition: none;
2597
+ }
2598
+ }
2599
+ .mn-copy-button__label {
2600
+ display: inline-grid;
2601
+ justify-items: center;
2602
+ }
2603
+ .mn-copy-button__label > span {
2604
+ grid-area: 1 / 1;
2605
+ }
2606
+ .mn-copy-button__label > span:not([data-active]) {
2607
+ visibility: hidden;
2608
+ }
2609
+
2610
+ /* components/actions/copy-field/copy-field.css */
2611
+ /* Copy Field: a read-only Input or Textarea with a CopyButton beside it. */
2612
+ .mn-copy-field {
2613
+ display: flex;
2614
+ align-items: center;
2615
+ gap: var(--mn-space-2);
2616
+ width: 100%;
2617
+ min-width: 0;
2618
+ }
2619
+ .mn-copy-field[data-multiline] {
2620
+ align-items: flex-start;
2621
+ }
2622
+ .mn-copy-field__control {
2623
+ flex: 1 1 auto;
2624
+ min-width: 0;
2625
+ background: var(--mn-color-bg-subtle);
2626
+ text-overflow: ellipsis;
2627
+ }
2628
+ .mn-copy-field[data-mono] .mn-copy-field__control {
2629
+ font-family: var(--mn-font-mono);
2630
+ }
2631
+ .mn-copy-field[data-multiline] .mn-copy-field__control {
2632
+ white-space: pre;
2633
+ overflow: auto;
2634
+ }
2635
+ .mn-copy-field__button {
2636
+ flex-shrink: 0;
2637
+ }
2638
+
2639
+ /* components/technical/secret-field/secret-field.css */
2640
+ /* Secret Field: a masked Input with reveal and copy buttons inside its end edge. */
2641
+ .mn-secret-field {
2642
+ --_inset: var(--mn-space-1);
2643
+ --_btn: var(--mn-control-xs);
2644
+ position: relative;
2645
+ display: flex;
2646
+ align-items: center;
2647
+ width: 100%;
2648
+ min-width: 0;
2649
+ }
2650
+ .mn-secret-field[data-size='lg'] {
2651
+ --_btn: var(--mn-control-sm);
2652
+ }
2653
+ .mn-secret-field[data-size='sm'] {
2654
+ --_inset: var(--mn-space-0-5);
2655
+ --_btn: var(--mn-control-xs);
2656
+ }
2657
+ .mn-secret-field__control {
2658
+ font-family: var(--mn-font-mono);
2659
+ letter-spacing: 0.01em;
2660
+ }
2661
+ .mn-secret-field[data-actions='1'] .mn-secret-field__control {
2662
+ padding-inline-end: calc(var(--_btn) + var(--_inset) * 2);
2663
+ }
2664
+ .mn-secret-field[data-actions='2'] .mn-secret-field__control {
2665
+ padding-inline-end: calc(var(--_btn) * 2 + var(--_inset) * 3);
2666
+ }
2667
+ .mn-secret-field__control::placeholder {
2668
+ font-family: var(--mn-font-sans);
2669
+ letter-spacing: normal;
2670
+ }
2671
+ .mn-secret-field__actions {
2672
+ position: absolute;
2673
+ inset-block: 0;
2674
+ inset-inline-end: var(--_inset);
2675
+ display: flex;
2676
+ align-items: center;
2677
+ gap: var(--_inset);
2678
+ }
2679
+ .mn-secret-field__actions:empty {
2680
+ display: none;
2681
+ }
2682
+ .mn-secret-field__toggle[aria-pressed='true'] {
2683
+ color: var(--mn-color-text-default);
2684
+ }
2685
+ .mn-secret-field__actions .mn-button {
2686
+ color: var(--mn-color-text-muted);
2687
+ }
2688
+ .mn-secret-field__actions .mn-button:hover:not(:disabled) {
2689
+ color: var(--mn-color-text-default);
2690
+ }
2691
+
2692
+ /* components/data-display/status-badge/status-badge.css */
2693
+ /* Status Badge: text + tone + a distinct icon or dot. Colour is never the only signal. */
2694
+ .mn-status-badge {
2695
+ --_bg: var(--mn-color-bg-muted);
2696
+ --_fg: var(--mn-color-text-default);
2697
+ --_mark: var(--mn-color-text-muted);
2698
+ --_border: transparent;
2699
+ display: inline-flex;
2700
+ align-items: center;
2701
+ gap: var(--mn-space-1);
2702
+ max-width: 100%;
2703
+ height: 1.375rem;
2704
+ padding-inline: var(--mn-space-2);
2705
+ border: 1px solid var(--_border);
2706
+ border-radius: var(--mn-radius-full);
2707
+ background: var(--_bg);
2708
+ color: var(--_fg);
2709
+ font-family: var(--mn-font-sans);
2710
+ font-size: var(--mn-text-xs);
2711
+ font-weight: var(--mn-weight-medium);
2712
+ line-height: 1;
2713
+ white-space: nowrap;
2714
+ vertical-align: middle;
2715
+ }
2716
+ .mn-status-badge[data-size='sm'] {
2717
+ height: 1.125rem;
2718
+ padding-inline: var(--mn-space-1-5);
2719
+ font-size: var(--mn-text-2xs);
2720
+ }
2721
+ .mn-status-badge__label {
2722
+ min-width: 0;
2723
+ overflow: hidden;
2724
+ text-overflow: ellipsis;
2725
+ }
2726
+ .mn-status-badge__icon {
2727
+ display: inline-flex;
2728
+ flex-shrink: 0;
2729
+ color: var(--_mark);
2730
+ }
2731
+ .mn-status-badge__icon > svg {
2732
+ width: 0.75rem;
2733
+ height: 0.75rem;
2734
+ }
2735
+ .mn-status-badge[data-size='md'] .mn-status-badge__icon > svg {
2736
+ width: 0.875rem;
2737
+ height: 0.875rem;
2738
+ }
2739
+ .mn-status-badge__dot {
2740
+ flex-shrink: 0;
2741
+ width: 0.5rem;
2742
+ height: 0.5rem;
2743
+ border-radius: var(--mn-radius-full);
2744
+ background: var(--_mark);
2745
+ }
2746
+
2747
+ /* Tones. Subtle: tinted fill, strong text. */
2748
+ .mn-status-badge[data-tone='accent'] {
2749
+ --_bg: var(--mn-color-accent-subtle);
2750
+ --_fg: var(--mn-color-accent-strong);
2751
+ --_mark: var(--mn-color-accent-strong);
2752
+ --_border-tone: var(--mn-color-accent-border);
2753
+ --_solid: var(--mn-color-accent-solid);
2754
+ --_on-solid: var(--mn-color-accent-on-solid);
2755
+ }
2756
+ .mn-status-badge[data-tone='info'] {
2757
+ --_bg: var(--mn-color-info-subtle);
2758
+ --_fg: var(--mn-color-info-strong);
2759
+ --_mark: var(--mn-color-info-strong);
2760
+ --_border-tone: var(--mn-color-info-border);
2761
+ --_solid: var(--mn-color-info-solid);
2762
+ --_on-solid: var(--mn-color-info-on-solid);
2763
+ }
2764
+ .mn-status-badge[data-tone='success'] {
2765
+ --_bg: var(--mn-color-success-subtle);
2766
+ --_fg: var(--mn-color-success-strong);
2767
+ --_mark: var(--mn-color-success-strong);
2768
+ --_border-tone: var(--mn-color-success-border);
2769
+ --_solid: var(--mn-color-success-solid);
2770
+ --_on-solid: var(--mn-color-success-on-solid);
2771
+ }
2772
+ .mn-status-badge[data-tone='warning'] {
2773
+ --_bg: var(--mn-color-warning-subtle);
2774
+ --_fg: var(--mn-color-warning-strong);
2775
+ --_mark: var(--mn-color-warning-strong);
2776
+ --_border-tone: var(--mn-color-warning-border);
2777
+ --_solid: var(--mn-color-warning-solid);
2778
+ --_on-solid: var(--mn-color-warning-on-solid);
2779
+ }
2780
+ .mn-status-badge[data-tone='danger'] {
2781
+ --_bg: var(--mn-color-danger-subtle);
2782
+ --_fg: var(--mn-color-danger-strong);
2783
+ --_mark: var(--mn-color-danger-strong);
2784
+ --_border-tone: var(--mn-color-danger-border);
2785
+ --_solid: var(--mn-color-danger-solid);
2786
+ --_on-solid: var(--mn-color-danger-on-solid);
2787
+ }
2788
+ .mn-status-badge[data-tone='neutral'] {
2789
+ --_fg: var(--mn-color-text-muted);
2790
+ --_border-tone: var(--mn-color-border-default);
2791
+ --_solid: var(--mn-color-bg-inverse);
2792
+ --_on-solid: var(--mn-color-text-inverse);
2793
+ }
2794
+
2795
+ /* Outline: no fill, tone border. */
2796
+ .mn-status-badge[data-variant='outline'] {
2797
+ --_bg: transparent;
2798
+ --_border: var(--_border-tone);
2799
+ }
2800
+ /* Solid: one prominent status. */
2801
+ .mn-status-badge[data-variant='solid'] {
2802
+ --_bg: var(--_solid);
2803
+ --_fg: var(--_on-solid);
2804
+ --_mark: var(--_on-solid);
2805
+ }
2806
+ /* Dot: quiet. Default text colour, the tone lives in the dot only. */
2807
+ .mn-status-badge[data-variant='dot'] {
2808
+ --_bg: transparent;
2809
+ --_fg: var(--mn-color-text-default);
2810
+ height: auto;
2811
+ padding-inline: 0;
2812
+ gap: var(--mn-space-1-5);
2813
+ border-radius: 0;
2814
+ }
2815
+
2816
+ /*
2817
+ * Custom colours (already contrast-guarded in JS per scheme). The colour marks
2818
+ * the dot, icon and border; the text stays a theme token so it always reads.
2819
+ */
2820
+ .mn-status-badge[data-custom-color] {
2821
+ --_custom: var(--mn-status-light);
2822
+ --_custom-on: var(--mn-status-on-light);
2823
+ --_mark: var(--_custom);
2824
+ --_bg: var(--mn-color-bg-surface);
2825
+ --_fg: var(--mn-color-text-default);
2826
+ --_border: var(--mn-color-border-default);
2827
+ }
2828
+ :is(.dark, [data-mn-theme='dark']) .mn-status-badge[data-custom-color] {
2829
+ --_custom: var(--mn-status-dark);
2830
+ --_custom-on: var(--mn-status-on-dark);
2831
+ }
2832
+ .mn-status-badge[data-custom-color][data-variant='outline'] {
2833
+ --_bg: transparent;
2834
+ --_border: var(--_custom);
2835
+ }
2836
+ .mn-status-badge[data-custom-color][data-variant='solid'] {
2837
+ --_bg: var(--_custom);
2838
+ --_fg: var(--_custom-on);
2839
+ --_mark: var(--_custom-on);
2840
+ --_border: transparent;
2841
+ }
2842
+ .mn-status-badge[data-custom-color][data-variant='dot'] {
2843
+ --_bg: transparent;
2844
+ --_border: transparent;
2845
+ }
2846
+
2847
+ @media (forced-colors: active) {
2848
+ .mn-status-badge {
2849
+ border-color: CanvasText;
2850
+ }
2851
+ .mn-status-badge__dot {
2852
+ background: CanvasText;
2853
+ }
2854
+ }
2855
+
2856
+ /* components/forms/segmented-control/segmented-control.css */
2857
+ /* Segmented Control and Toggle Group: one connected track of options. */
2858
+ .mn-segmented-control {
2859
+ --_h: var(--mn-control-md);
2860
+ --_pad: var(--mn-space-0-5);
2861
+ --_px: var(--mn-space-3);
2862
+ --_fs: var(--mn-text-sm);
2863
+ display: inline-flex;
2864
+ align-items: stretch;
2865
+ gap: var(--mn-space-0-5);
2866
+ max-width: 100%;
2867
+ padding: var(--_pad);
2868
+ border-radius: var(--mn-radius-md);
2869
+ background: var(--mn-color-bg-muted);
2870
+ overflow-x: auto;
2871
+ scrollbar-width: none;
2872
+ vertical-align: middle;
2873
+ }
2874
+ .mn-segmented-control::-webkit-scrollbar {
2875
+ display: none;
2876
+ }
2877
+ .mn-segmented-control[data-size='sm'] {
2878
+ --_h: var(--mn-control-sm);
2879
+ --_px: var(--mn-space-2-5);
2880
+ --_fs: var(--mn-text-xs);
2881
+ }
2882
+ .mn-segmented-control[data-size='lg'] {
2883
+ --_h: var(--mn-control-lg);
2884
+ --_px: var(--mn-space-4);
2885
+ }
2886
+ .mn-segmented-control[data-block] {
2887
+ display: flex;
2888
+ width: 100%;
2889
+ }
2890
+ .mn-segmented-control[data-block] > .mn-segmented-control__item {
2891
+ flex: 1 1 0;
2892
+ }
2893
+
2894
+ .mn-segmented-control__item {
2895
+ display: inline-flex;
2896
+ flex-shrink: 0;
2897
+ align-items: center;
2898
+ justify-content: center;
2899
+ gap: var(--mn-space-1-5);
2900
+ height: calc(var(--_h) - var(--_pad) * 2);
2901
+ padding-inline: var(--_px);
2902
+ border: 1px solid transparent;
2903
+ border-radius: var(--mn-radius-sm);
2904
+ background: transparent;
2905
+ color: var(--mn-color-text-muted);
2906
+ font: inherit;
2907
+ font-family: var(--mn-font-sans);
2908
+ font-size: var(--_fs);
2909
+ font-weight: var(--mn-weight-medium);
2910
+ line-height: 1;
2911
+ white-space: nowrap;
2912
+ cursor: pointer;
2913
+ user-select: none;
2914
+ touch-action: manipulation;
2915
+ -webkit-tap-highlight-color: transparent;
2916
+ transition:
2917
+ background-color var(--mn-duration-fast) var(--mn-ease-standard),
2918
+ color var(--mn-duration-fast) var(--mn-ease-standard),
2919
+ box-shadow var(--mn-duration-fast) var(--mn-ease-standard);
2920
+ }
2921
+ .mn-segmented-control__item:hover:not(:disabled) {
2922
+ color: var(--mn-color-text-default);
2923
+ }
2924
+ .mn-segmented-control__item:focus-visible {
2925
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
2926
+ outline-offset: 0;
2927
+ }
2928
+ .mn-segmented-control__item[data-state='on'] {
2929
+ border-color: var(--mn-color-border-subtle);
2930
+ background: var(--mn-color-bg-surface);
2931
+ color: var(--mn-color-text-default);
2932
+ box-shadow: var(--mn-shadow-xs);
2933
+ }
2934
+ .mn-segmented-control__item:disabled {
2935
+ color: var(--mn-color-text-disabled);
2936
+ cursor: not-allowed;
2937
+ }
2938
+ .mn-segmented-control__item[data-icon-only] {
2939
+ width: calc(var(--_h) - var(--_pad) * 2);
2940
+ padding: 0;
2941
+ }
2942
+ .mn-segmented-control__icon {
2943
+ display: inline-flex;
2944
+ flex-shrink: 0;
2945
+ }
2946
+ .mn-segmented-control__icon > svg {
2947
+ width: 1rem;
2948
+ height: 1rem;
2949
+ }
2950
+ .mn-segmented-control__count {
2951
+ min-width: 1.25rem;
2952
+ padding: var(--mn-space-0-5) var(--mn-space-1-5);
2953
+ border-radius: var(--mn-radius-full);
2954
+ background: var(--mn-color-bg-emphasis);
2955
+ color: var(--mn-color-text-muted);
2956
+ font-size: var(--mn-text-2xs);
2957
+ font-variant-numeric: tabular-nums;
2958
+ text-align: center;
2959
+ }
2960
+ .mn-segmented-control__item[data-state='on'] .mn-segmented-control__count {
2961
+ background: var(--mn-color-bg-muted);
2962
+ color: var(--mn-color-text-default);
2963
+ }
2964
+ .mn-segmented-control__suffix {
2965
+ color: var(--mn-color-success-strong);
2966
+ font-size: var(--mn-text-2xs);
2967
+ font-weight: var(--mn-weight-semibold);
2968
+ }
2969
+
2970
+ @media (pointer: coarse) {
2971
+ .mn-segmented-control__item {
2972
+ min-height: 2.75rem;
2973
+ }
2974
+ .mn-segmented-control {
2975
+ --_pad: var(--mn-space-1);
2976
+ }
2977
+ }
2978
+ @media (prefers-reduced-motion: reduce) {
2979
+ .mn-segmented-control__item {
2980
+ transition: none;
2981
+ }
2982
+ }
2983
+ @media (forced-colors: active) {
2984
+ .mn-segmented-control__item[data-state='on'] {
2985
+ border-color: Highlight;
2986
+ outline: 2px solid Highlight;
2987
+ }
2988
+ }
2989
+
2990
+ /* components/data-display/relative-time/relative-time.css */
2991
+ .mn-relative-time {
2992
+ position: relative;
2993
+ display: inline-block;
2994
+ white-space: nowrap;
2995
+ }
2996
+ .mn-relative-time__text {
2997
+ border-radius: var(--mn-radius-xs);
2998
+ font-variant-numeric: tabular-nums;
2999
+ }
3000
+ .mn-relative-time__text[tabindex] {
3001
+ cursor: default;
3002
+ text-decoration: underline dotted;
3003
+ text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
3004
+ text-underline-offset: 0.2em;
3005
+ }
3006
+ .mn-relative-time__text:focus-visible {
3007
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3008
+ outline-offset: 2px;
3009
+ }
3010
+ .mn-relative-time__tip {
3011
+ position: absolute;
3012
+ inset-block-end: calc(100% + var(--mn-space-1-5));
3013
+ inset-inline-start: 50%;
3014
+ z-index: var(--mn-z-tooltip);
3015
+ width: max-content;
3016
+ max-width: min(18rem, calc(100vw - 2rem));
3017
+ padding: var(--mn-space-1) var(--mn-space-2);
3018
+ border-radius: var(--mn-radius-sm);
3019
+ background: var(--mn-color-bg-inverse);
3020
+ color: var(--mn-color-text-inverse);
3021
+ font-size: var(--mn-text-xs);
3022
+ font-weight: var(--mn-weight-regular);
3023
+ line-height: var(--mn-leading-snug);
3024
+ white-space: normal;
3025
+ box-shadow: var(--mn-shadow-md);
3026
+ transform: translateX(-50%);
3027
+ visibility: hidden;
3028
+ opacity: 0;
3029
+ pointer-events: none;
3030
+ transition:
3031
+ opacity var(--mn-duration-fast) var(--mn-ease-standard),
3032
+ visibility 0s linear var(--mn-duration-fast);
3033
+ }
3034
+ /* Bridges the gap so the pointer can move onto the tip without it closing (WCAG 1.4.13). */
3035
+ .mn-relative-time__tip::after {
3036
+ content: '';
3037
+ position: absolute;
3038
+ inset-inline: 0;
3039
+ inset-block-start: 100%;
3040
+ height: var(--mn-space-1-5);
3041
+ }
3042
+ [dir='rtl'] .mn-relative-time__tip {
3043
+ transform: translateX(50%);
3044
+ }
3045
+ .mn-relative-time:hover .mn-relative-time__tip,
3046
+ .mn-relative-time:has(.mn-relative-time__text:focus-visible) .mn-relative-time__tip {
3047
+ visibility: visible;
3048
+ opacity: 1;
3049
+ pointer-events: auto;
3050
+ transition-delay: 0s;
3051
+ }
3052
+ .mn-relative-time[data-dismissed] .mn-relative-time__tip {
3053
+ visibility: hidden;
3054
+ opacity: 0;
3055
+ }
3056
+ @media (prefers-reduced-motion: reduce) {
3057
+ .mn-relative-time__tip {
3058
+ transition: none;
3059
+ }
3060
+ }
3061
+
3062
+ /* components/billing/money/money.css */
3063
+ .mn-money {
3064
+ font-variant-numeric: tabular-nums;
3065
+ white-space: nowrap;
3066
+ }
3067
+ .mn-money[data-tone='danger'] {
3068
+ color: var(--mn-color-danger-strong);
3069
+ }
3070
+ .mn-money[data-empty] {
3071
+ color: var(--mn-color-text-muted);
3072
+ }
3073
+
3074
+ /* components/data-grid/load-more/load-more.css */
3075
+ .mn-load-more {
3076
+ display: flex;
3077
+ flex-wrap: wrap;
3078
+ align-items: center;
3079
+ justify-content: center;
3080
+ gap: var(--mn-space-2) var(--mn-space-3);
3081
+ padding-block: var(--mn-space-3);
3082
+ color: var(--mn-color-text-muted);
3083
+ font-size: var(--mn-text-xs);
3084
+ line-height: var(--mn-leading-snug);
3085
+ text-align: center;
3086
+ }
3087
+ .mn-load-more:focus {
3088
+ outline: none;
3089
+ }
3090
+ .mn-load-more__count,
3091
+ .mn-load-more__error,
3092
+ .mn-load-more__end {
3093
+ margin: 0;
3094
+ font-variant-numeric: tabular-nums;
3095
+ }
3096
+ .mn-load-more__error {
3097
+ color: var(--mn-color-danger-strong);
3098
+ }
3099
+ .mn-load-more__end:focus-visible {
3100
+ border-radius: var(--mn-radius-xs);
3101
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3102
+ outline-offset: 2px;
3103
+ }
3104
+
3105
+ /* components/navigation/back-link/back-link.css */
3106
+ .mn-back-link {
3107
+ display: inline-flex;
3108
+ align-items: center;
3109
+ gap: var(--mn-space-1);
3110
+ min-height: 1.5rem;
3111
+ padding-inline-end: var(--mn-space-1);
3112
+ border-radius: var(--mn-radius-xs);
3113
+ color: var(--mn-color-text-muted);
3114
+ font-size: var(--mn-text-sm);
3115
+ font-weight: var(--mn-weight-medium);
3116
+ line-height: var(--mn-leading-snug);
3117
+ text-decoration: none;
3118
+ transition: color var(--mn-duration-fast) var(--mn-ease-standard);
3119
+ }
3120
+ .mn-back-link:hover {
3121
+ color: var(--mn-color-text-default);
3122
+ }
3123
+ .mn-back-link[data-variant='standalone'] {
3124
+ color: var(--mn-color-text-link);
3125
+ }
3126
+ .mn-back-link[data-variant='standalone']:hover {
3127
+ text-decoration: underline;
3128
+ text-underline-offset: 0.15em;
3129
+ }
3130
+ .mn-back-link:focus-visible {
3131
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3132
+ outline-offset: 2px;
3133
+ }
3134
+ .mn-back-link__icon {
3135
+ display: inline-flex;
3136
+ flex-shrink: 0;
3137
+ margin-inline-start: calc(var(--mn-space-1) * -1);
3138
+ transition: transform var(--mn-duration-fast) var(--mn-ease-standard);
3139
+ }
3140
+ .mn-back-link:hover .mn-back-link__icon {
3141
+ transform: translateX(-2px);
3142
+ }
3143
+ [dir='rtl'] .mn-back-link__icon {
3144
+ transform: scaleX(-1);
3145
+ }
3146
+ [dir='rtl'] .mn-back-link:hover .mn-back-link__icon {
3147
+ transform: scaleX(-1) translateX(-2px);
3148
+ }
3149
+ @media (prefers-reduced-motion: reduce) {
3150
+ .mn-back-link__icon,
3151
+ .mn-back-link:hover .mn-back-link__icon,
3152
+ [dir='rtl'] .mn-back-link:hover .mn-back-link__icon {
3153
+ transition: none;
3154
+ }
3155
+ .mn-back-link:hover .mn-back-link__icon {
3156
+ transform: none;
3157
+ }
3158
+ [dir='rtl'] .mn-back-link:hover .mn-back-link__icon {
3159
+ transform: scaleX(-1);
3160
+ }
3161
+ }
3162
+
3163
+ /* components/search/search-input/search-input.css */
3164
+ /* Search Input. The wrapper is an .mn-input; the native input inside is borderless. */
3165
+ .mn-search-input {
3166
+ box-sizing: border-box;
3167
+ position: relative;
3168
+ gap: var(--mn-space-2);
3169
+ padding-inline-end: var(--mn-space-1);
3170
+ cursor: text;
3171
+ }
3172
+ .mn-search-input:focus-within {
3173
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3174
+ outline-offset: 0;
3175
+ border-color: var(--mn-color-focus-ring);
3176
+ }
3177
+ .mn-search-input[data-invalid] {
3178
+ border-color: var(--mn-color-danger-strong);
3179
+ }
3180
+ .mn-search-input[data-disabled] {
3181
+ background: var(--mn-color-bg-subtle);
3182
+ color: var(--mn-color-text-disabled);
3183
+ cursor: not-allowed;
3184
+ }
3185
+ .mn-search-input__icon {
3186
+ display: inline-flex;
3187
+ flex-shrink: 0;
3188
+ align-items: center;
3189
+ justify-content: center;
3190
+ width: 1rem;
3191
+ color: var(--mn-color-text-subtle);
3192
+ }
3193
+ .mn-search-input[data-pending] .mn-search-input__icon {
3194
+ color: var(--mn-color-text-muted);
3195
+ }
3196
+ .mn-search-input__input {
3197
+ flex: 1;
3198
+ min-width: 0;
3199
+ width: 0;
3200
+ height: 100%;
3201
+ padding: 0;
3202
+ border: 0;
3203
+ background: transparent;
3204
+ color: inherit;
3205
+ font: inherit;
3206
+ outline: none;
3207
+ appearance: none;
3208
+ }
3209
+ .mn-search-input__input::placeholder {
3210
+ color: var(--mn-color-text-subtle);
3211
+ }
3212
+ .mn-search-input__input::-webkit-search-cancel-button,
3213
+ .mn-search-input__input::-webkit-search-decoration {
3214
+ appearance: none;
3215
+ }
3216
+ .mn-search-input__input:disabled {
3217
+ cursor: not-allowed;
3218
+ }
3219
+ .mn-search-input__clear {
3220
+ display: inline-flex;
3221
+ flex-shrink: 0;
3222
+ align-items: center;
3223
+ justify-content: center;
3224
+ width: var(--mn-control-xs);
3225
+ height: var(--mn-control-xs);
3226
+ padding: 0;
3227
+ border: 0;
3228
+ border-radius: var(--mn-radius-sm);
3229
+ background: transparent;
3230
+ color: var(--mn-color-text-muted);
3231
+ cursor: pointer;
3232
+ -webkit-tap-highlight-color: transparent;
3233
+ transition: background-color var(--mn-duration-fast) var(--mn-ease-standard);
3234
+ }
3235
+ .mn-search-input__clear:hover {
3236
+ background: var(--mn-color-bg-muted);
3237
+ color: var(--mn-color-text-default);
3238
+ }
3239
+ .mn-search-input__clear:focus-visible {
3240
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3241
+ outline-offset: 0;
3242
+ }
3243
+ .mn-search-input__shortcut {
3244
+ flex-shrink: 0;
3245
+ margin-inline-end: var(--mn-space-1);
3246
+ pointer-events: none;
3247
+ }
3248
+ .mn-search-input[data-size='sm'] {
3249
+ gap: var(--mn-space-1-5);
3250
+ }
3251
+ .mn-search-input[data-size='sm'] .mn-search-input__clear {
3252
+ width: calc(var(--mn-control-xs) - var(--mn-space-1));
3253
+ height: calc(var(--mn-control-xs) - var(--mn-space-1));
3254
+ }
3255
+ @media (prefers-reduced-motion: reduce) {
3256
+ .mn-search-input__clear {
3257
+ transition: none;
3258
+ }
3259
+ }
3260
+
3261
+ /* components/forms/tag-input/tag-input.css */
3262
+ /* Tag Input. The control is an .mn-input that grows to fit wrapped chips. */
3263
+ .mn-tag-input {
3264
+ display: flex;
3265
+ flex-direction: column;
3266
+ gap: var(--mn-space-1-5);
3267
+ min-width: 0;
3268
+ }
3269
+ .mn-tag-input__control {
3270
+ box-sizing: border-box;
3271
+ flex-wrap: wrap;
3272
+ gap: var(--mn-space-1);
3273
+ height: auto;
3274
+ min-height: var(--_h);
3275
+ padding-block: var(--mn-space-1);
3276
+ padding-inline: var(--mn-space-1-5);
3277
+ cursor: text;
3278
+ }
3279
+ .mn-tag-input__control:focus-within {
3280
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3281
+ outline-offset: 0;
3282
+ border-color: var(--mn-color-focus-ring);
3283
+ }
3284
+ .mn-tag-input__control[data-invalid] {
3285
+ border-color: var(--mn-color-danger-strong);
3286
+ }
3287
+ .mn-tag-input__control[data-disabled] {
3288
+ background: var(--mn-color-bg-subtle);
3289
+ color: var(--mn-color-text-disabled);
3290
+ cursor: not-allowed;
3291
+ }
3292
+ .mn-tag-input__list {
3293
+ display: flex;
3294
+ flex-wrap: wrap;
3295
+ gap: var(--mn-space-1);
3296
+ min-width: 0;
3297
+ margin: 0;
3298
+ padding: 0;
3299
+ list-style: none;
3300
+ }
3301
+ .mn-tag-input__tag {
3302
+ display: inline-flex;
3303
+ align-items: center;
3304
+ gap: var(--mn-space-0-5);
3305
+ max-width: 100%;
3306
+ min-height: calc(var(--_h) - var(--mn-space-2) - 2px);
3307
+ padding-inline: var(--mn-space-2) var(--mn-space-0-5);
3308
+ border: 1px solid var(--mn-color-border-subtle);
3309
+ border-radius: var(--mn-radius-sm);
3310
+ background: var(--mn-color-bg-muted);
3311
+ color: var(--mn-color-text-default);
3312
+ font-size: var(--mn-text-xs);
3313
+ font-weight: var(--mn-weight-medium);
3314
+ line-height: var(--mn-leading-snug);
3315
+ }
3316
+ .mn-tag-input__control[data-disabled] .mn-tag-input__tag {
3317
+ color: var(--mn-color-text-disabled);
3318
+ }
3319
+ .mn-tag-input__tag:not(:has(.mn-tag-input__remove)) {
3320
+ padding-inline-end: var(--mn-space-2);
3321
+ }
3322
+ .mn-tag-input__label {
3323
+ overflow: hidden;
3324
+ text-overflow: ellipsis;
3325
+ white-space: nowrap;
3326
+ }
3327
+ .mn-tag-input__remove {
3328
+ display: inline-flex;
3329
+ flex-shrink: 0;
3330
+ align-items: center;
3331
+ justify-content: center;
3332
+ width: 1.25rem;
3333
+ height: 1.25rem;
3334
+ padding: 0;
3335
+ border: 0;
3336
+ border-radius: var(--mn-radius-xs);
3337
+ background: transparent;
3338
+ color: var(--mn-color-text-muted);
3339
+ cursor: pointer;
3340
+ -webkit-tap-highlight-color: transparent;
3341
+ transition: background-color var(--mn-duration-fast) var(--mn-ease-standard);
3342
+ }
3343
+ .mn-tag-input__remove svg {
3344
+ width: 0.75rem;
3345
+ height: 0.75rem;
3346
+ }
3347
+ .mn-tag-input__remove:hover {
3348
+ background: var(--mn-color-bg-emphasis);
3349
+ color: var(--mn-color-text-default);
3350
+ }
3351
+ .mn-tag-input__remove:focus-visible {
3352
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3353
+ outline-offset: 0;
3354
+ }
3355
+ .mn-tag-input__input {
3356
+ flex: 1 1 6rem;
3357
+ min-width: 6rem;
3358
+ height: calc(var(--_h) - var(--mn-space-2) - 2px);
3359
+ padding: 0 var(--mn-space-1);
3360
+ border: 0;
3361
+ background: transparent;
3362
+ color: inherit;
3363
+ font: inherit;
3364
+ outline: none;
3365
+ }
3366
+ .mn-tag-input__input::placeholder {
3367
+ color: var(--mn-color-text-subtle);
3368
+ }
3369
+ .mn-tag-input__input:disabled {
3370
+ cursor: not-allowed;
3371
+ }
3372
+ .mn-tag-input__message {
3373
+ margin: 0;
3374
+ color: var(--mn-color-danger-strong);
3375
+ font-size: var(--mn-text-xs);
3376
+ font-weight: var(--mn-weight-medium);
3377
+ line-height: var(--mn-leading-normal);
3378
+ }
3379
+ .mn-tag-input__content {
3380
+ width: var(--radix-popover-trigger-width, auto);
3381
+ min-width: 12rem;
3382
+ padding: var(--mn-space-1);
3383
+ }
3384
+ .mn-tag-input__listbox {
3385
+ max-height: min(var(--radix-popover-content-available-height, 16rem), 16rem);
3386
+ overflow: auto;
3387
+ }
3388
+ .mn-tag-input__listbox .mn-menu__item {
3389
+ cursor: pointer;
3390
+ }
3391
+ @media (prefers-reduced-motion: reduce) {
3392
+ .mn-tag-input__remove {
3393
+ transition: none;
3394
+ }
3395
+ }
3396
+
3397
+ /* components/identity/username-availability-input/username-availability-input.css */
3398
+ /* Username Availability Input: an .mn-input with a prefix, a status icon and a message. */
3399
+ .mn-username-availability-input {
3400
+ display: flex;
3401
+ flex-direction: column;
3402
+ gap: var(--mn-space-1-5);
3403
+ min-width: 0;
3404
+ }
3405
+ .mn-username-availability-input__control {
3406
+ box-sizing: border-box;
3407
+ gap: var(--mn-space-2);
3408
+ }
3409
+ .mn-username-availability-input__control:focus-within {
3410
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3411
+ outline-offset: 0;
3412
+ border-color: var(--mn-color-focus-ring);
3413
+ }
3414
+ .mn-username-availability-input__control[data-invalid] {
3415
+ border-color: var(--mn-color-danger-strong);
3416
+ }
3417
+ .mn-username-availability-input[data-status='valid'] .mn-username-availability-input__control {
3418
+ border-color: var(--mn-color-success-border);
3419
+ }
3420
+ .mn-username-availability-input__control[data-disabled] {
3421
+ background: var(--mn-color-bg-subtle);
3422
+ color: var(--mn-color-text-disabled);
3423
+ cursor: not-allowed;
3424
+ }
3425
+ .mn-username-availability-input__prefix {
3426
+ flex-shrink: 1;
3427
+ min-width: 0;
3428
+ max-width: 50%;
3429
+ overflow: hidden;
3430
+ color: var(--mn-color-text-muted);
3431
+ text-overflow: ellipsis;
3432
+ white-space: nowrap;
3433
+ }
3434
+ .mn-username-availability-input__input {
3435
+ flex: 1;
3436
+ min-width: 0;
3437
+ width: 0;
3438
+ height: 100%;
3439
+ padding: 0;
3440
+ border: 0;
3441
+ background: transparent;
3442
+ color: inherit;
3443
+ font: inherit;
3444
+ outline: none;
3445
+ }
3446
+ .mn-username-availability-input__input::placeholder {
3447
+ color: var(--mn-color-text-subtle);
3448
+ }
3449
+ .mn-username-availability-input__input:disabled {
3450
+ cursor: not-allowed;
3451
+ }
3452
+ .mn-username-availability-input__icon {
3453
+ display: inline-flex;
3454
+ flex-shrink: 0;
3455
+ align-items: center;
3456
+ color: var(--mn-color-text-muted);
3457
+ }
3458
+ .mn-username-availability-input[data-status='valid'] .mn-username-availability-input__icon {
3459
+ color: var(--mn-color-success-strong);
3460
+ }
3461
+ .mn-username-availability-input[data-status='invalid'] .mn-username-availability-input__icon {
3462
+ color: var(--mn-color-danger-strong);
3463
+ }
3464
+ .mn-username-availability-input[data-status='error'] .mn-username-availability-input__icon {
3465
+ color: var(--mn-color-warning-strong);
3466
+ }
3467
+ .mn-username-availability-input__message {
3468
+ display: flex;
3469
+ flex-wrap: wrap;
3470
+ align-items: baseline;
3471
+ gap: var(--mn-space-1) var(--mn-space-2);
3472
+ margin: 0;
3473
+ color: var(--mn-color-text-muted);
3474
+ font-size: var(--mn-text-xs);
3475
+ line-height: var(--mn-leading-normal);
3476
+ }
3477
+ .mn-username-availability-input[data-status='valid'] .mn-username-availability-input__message {
3478
+ color: var(--mn-color-success-strong);
3479
+ font-weight: var(--mn-weight-medium);
3480
+ }
3481
+ .mn-username-availability-input[data-status='invalid'] .mn-username-availability-input__message {
3482
+ color: var(--mn-color-danger-strong);
3483
+ font-weight: var(--mn-weight-medium);
3484
+ }
3485
+ .mn-username-availability-input__retry {
3486
+ padding: 0;
3487
+ border: 0;
3488
+ border-radius: var(--mn-radius-xs);
3489
+ background: transparent;
3490
+ color: var(--mn-color-text-link);
3491
+ font: inherit;
3492
+ font-weight: var(--mn-weight-medium);
3493
+ text-decoration: underline;
3494
+ text-underline-offset: 2px;
3495
+ cursor: pointer;
3496
+ }
3497
+ .mn-username-availability-input__retry:focus-visible {
3498
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3499
+ outline-offset: 2px;
3500
+ }
3501
+
3502
+ /* components/forms/otp-pin-input/otp-pin-input.css */
3503
+ /* OTP Pin Input: visual slots with one transparent input laid over them. */
3504
+ .mn-otp-pin-input {
3505
+ --_slot: 2.75rem;
3506
+ --_slot-h: var(--mn-control-lg);
3507
+ --_gap: var(--mn-space-2);
3508
+ position: relative;
3509
+ display: flex;
3510
+ /* Full natural width, but never wider than the container: boxes shrink evenly instead of overflowing. */
3511
+ width: 100%;
3512
+ max-width: calc(
3513
+ var(--_n, 6) * var(--_slot) + (var(--_n, 6) - 1 + 2 * var(--_seps, 0)) * var(--_gap)
3514
+ );
3515
+ font-family: var(--mn-font-mono);
3516
+ }
3517
+ .mn-otp-pin-input[data-size='lg'] {
3518
+ --_slot: 3.25rem;
3519
+ --_slot-h: var(--mn-control-xl);
3520
+ }
3521
+ .mn-otp-pin-input__slots {
3522
+ display: flex;
3523
+ flex: 1;
3524
+ gap: var(--_gap);
3525
+ }
3526
+ .mn-otp-pin-input__slot {
3527
+ box-sizing: border-box;
3528
+ display: inline-flex;
3529
+ flex: 1 1 0;
3530
+ align-items: center;
3531
+ justify-content: center;
3532
+ /* A floor, so the boxes stay usable inside shrink-to-fit containers too. */
3533
+ min-width: 1.5rem;
3534
+ height: var(--_slot-h);
3535
+ border: 1px solid var(--mn-color-border-input);
3536
+ border-radius: var(--mn-radius-md);
3537
+ background: var(--mn-color-bg-surface);
3538
+ color: var(--mn-color-text-default);
3539
+ font-size: var(--mn-text-lg);
3540
+ font-weight: var(--mn-weight-semibold);
3541
+ line-height: 1;
3542
+ transition:
3543
+ border-color var(--mn-duration-fast) var(--mn-ease-standard),
3544
+ box-shadow var(--mn-duration-fast) var(--mn-ease-standard);
3545
+ }
3546
+ .mn-otp-pin-input[data-size='lg'] .mn-otp-pin-input__slot {
3547
+ font-size: var(--mn-text-xl);
3548
+ }
3549
+ .mn-otp-pin-input:hover:not([data-disabled]) .mn-otp-pin-input__slot {
3550
+ border-color: var(--mn-color-text-subtle);
3551
+ }
3552
+ .mn-otp-pin-input__slot[data-active] {
3553
+ border-color: var(--mn-color-focus-ring);
3554
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
3555
+ outline-offset: 0;
3556
+ }
3557
+ .mn-otp-pin-input[data-invalid] .mn-otp-pin-input__slot {
3558
+ border-color: var(--mn-color-danger-strong);
3559
+ }
3560
+ .mn-otp-pin-input[data-disabled] .mn-otp-pin-input__slot {
3561
+ background: var(--mn-color-bg-subtle);
3562
+ color: var(--mn-color-text-disabled);
3563
+ }
3564
+ .mn-otp-pin-input__separator {
3565
+ flex: 0 1 var(--_gap);
3566
+ }
3567
+ .mn-otp-pin-input__dot {
3568
+ width: 0.5rem;
3569
+ height: 0.5rem;
3570
+ border-radius: var(--mn-radius-full);
3571
+ background: currentColor;
3572
+ }
3573
+ .mn-otp-pin-input__caret {
3574
+ width: 1px;
3575
+ height: 1.25em;
3576
+ background: var(--mn-color-text-default);
3577
+ animation: mn-otp-pin-input-caret 1s steps(1) infinite;
3578
+ }
3579
+ @keyframes mn-otp-pin-input-caret {
3580
+ 50% {
3581
+ opacity: 0;
3582
+ }
3583
+ }
3584
+ .mn-otp-pin-input__input {
3585
+ position: absolute;
3586
+ inset: 0;
3587
+ width: 100%;
3588
+ height: 100%;
3589
+ margin: 0;
3590
+ padding: 0;
3591
+ border: 0;
3592
+ background: transparent;
3593
+ color: transparent;
3594
+ caret-color: transparent;
3595
+ font-size: var(--mn-text-base);
3596
+ letter-spacing: -0.5em;
3597
+ outline: none;
3598
+ cursor: text;
3599
+ -webkit-tap-highlight-color: transparent;
3600
+ }
3601
+ .mn-otp-pin-input__input::selection {
3602
+ background: transparent;
3603
+ }
3604
+ .mn-otp-pin-input__input:disabled {
3605
+ cursor: not-allowed;
3606
+ }
3607
+ @media (prefers-reduced-motion: reduce) {
3608
+ .mn-otp-pin-input__caret {
3609
+ animation: none;
3610
+ }
3611
+ .mn-otp-pin-input__slot {
3612
+ transition: none;
3613
+ }
3614
+ }
3615
+
3616
+ /* components/geo/location-fields/location-fields.css */
3617
+ /* Location Fields: a fieldset laying out country, region, city and postal code. */
3618
+ .mn-location-fields {
3619
+ min-width: 0;
3620
+ margin: 0;
3621
+ padding: 0;
3622
+ border: 0;
3623
+ }
3624
+ .mn-location-fields__legend {
3625
+ margin-bottom: var(--mn-space-3);
3626
+ padding: 0;
3627
+ color: var(--mn-color-text-default);
3628
+ font-size: var(--mn-text-sm);
3629
+ font-weight: var(--mn-weight-semibold);
3630
+ line-height: var(--mn-leading-snug);
3631
+ }
3632
+ .mn-location-fields__grid {
3633
+ display: grid;
3634
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
3635
+ gap: var(--mn-space-4);
3636
+ }
3637
+ .mn-location-fields__field {
3638
+ min-width: 0;
3639
+ }
3640
+ .mn-location-fields__failed {
3641
+ box-sizing: border-box;
3642
+ display: flex;
3643
+ flex-wrap: wrap;
3644
+ align-items: center;
3645
+ justify-content: space-between;
3646
+ gap: var(--mn-space-2);
3647
+ min-height: var(--mn-control-md);
3648
+ padding: var(--mn-space-1) var(--mn-space-1) var(--mn-space-1) var(--mn-space-3);
3649
+ border: 1px solid var(--mn-color-danger-border);
3650
+ border-radius: var(--mn-radius-md);
3651
+ background: var(--mn-color-danger-subtle);
3652
+ color: var(--mn-color-danger-strong);
3653
+ font-size: var(--mn-text-xs);
3654
+ }
3655
+
3656
+ /* components/feedback/error-page/error-page.css */
3657
+ .mn-error-page {
3658
+ position: relative;
3659
+ display: flex;
3660
+ flex-direction: column;
3661
+ align-items: center;
3662
+ justify-content: center;
3663
+ gap: var(--mn-space-8);
3664
+ min-height: 60vh;
3665
+ padding: var(--mn-space-16) var(--mn-space-4);
3666
+ overflow: hidden;
3667
+ text-align: center;
3668
+ }
3669
+ .mn-error-page[data-full-screen] {
3670
+ min-height: 100vh;
3671
+ min-height: 100dvh;
3672
+ background: var(--mn-color-bg-canvas);
3673
+ color: var(--mn-color-text-default);
3674
+ font-family: var(--mn-font-sans);
3675
+ }
3676
+ .mn-error-page__brand {
3677
+ display: flex;
3678
+ align-items: center;
3679
+ justify-content: center;
3680
+ color: var(--mn-color-text-default);
3681
+ }
3682
+ .mn-error-page__body {
3683
+ display: flex;
3684
+ flex-direction: column;
3685
+ align-items: center;
3686
+ width: 100%;
3687
+ max-width: 30rem;
3688
+ }
3689
+ .mn-error-page__numeral {
3690
+ margin: 0;
3691
+ color: var(--mn-color-text-default);
3692
+ font-size: clamp(5rem, 22vw, 10rem);
3693
+ font-weight: var(--mn-weight-bold);
3694
+ letter-spacing: var(--mn-tracking-tight);
3695
+ line-height: 1;
3696
+ opacity: 0.06;
3697
+ pointer-events: none;
3698
+ user-select: none;
3699
+ font-variant-numeric: tabular-nums;
3700
+ }
3701
+ .mn-error-page__numeral::before {
3702
+ content: attr(data-numeral);
3703
+ }
3704
+ .mn-error-page__content {
3705
+ display: flex;
3706
+ flex-direction: column;
3707
+ align-items: center;
3708
+ width: 100%;
3709
+ }
3710
+ .mn-error-page__content[data-numeral] {
3711
+ margin-top: clamp(-4rem, -6vw, -2rem);
3712
+ }
3713
+ .mn-error-page__icon {
3714
+ display: inline-flex;
3715
+ align-items: center;
3716
+ justify-content: center;
3717
+ width: 3.5rem;
3718
+ height: 3.5rem;
3719
+ margin-bottom: var(--mn-space-5);
3720
+ border-radius: var(--mn-radius-xl);
3721
+ background: var(--mn-color-accent-subtle);
3722
+ color: var(--mn-color-accent-strong);
3723
+ }
3724
+ .mn-error-page__icon > svg {
3725
+ width: 1.75rem;
3726
+ height: 1.75rem;
3727
+ }
3728
+ .mn-error-page[data-kind='server'] .mn-error-page__icon {
3729
+ background: var(--mn-color-danger-subtle);
3730
+ color: var(--mn-color-danger-strong);
3731
+ }
3732
+ .mn-error-page[data-kind='offline'] .mn-error-page__icon {
3733
+ background: var(--mn-color-warning-subtle);
3734
+ color: var(--mn-color-warning-strong);
3735
+ }
3736
+ .mn-error-page[data-kind='forbidden'] .mn-error-page__icon,
3737
+ .mn-error-page[data-kind='maintenance'] .mn-error-page__icon {
3738
+ background: var(--mn-color-bg-muted);
3739
+ color: var(--mn-color-text-muted);
3740
+ }
3741
+ .mn-error-page__title {
3742
+ margin: 0;
3743
+ font-size: var(--mn-text-2xl);
3744
+ font-weight: var(--mn-weight-semibold);
3745
+ letter-spacing: var(--mn-tracking-tight);
3746
+ line-height: var(--mn-leading-tight);
3747
+ text-wrap: balance;
3748
+ }
3749
+ .mn-error-page__title:focus {
3750
+ outline: none;
3751
+ }
3752
+ .mn-error-page__description {
3753
+ max-width: 24rem;
3754
+ margin: var(--mn-space-2) 0 0;
3755
+ color: var(--mn-color-text-muted);
3756
+ font-size: var(--mn-text-sm);
3757
+ line-height: var(--mn-leading-relaxed);
3758
+ text-wrap: pretty;
3759
+ }
3760
+ .mn-error-page__actions {
3761
+ display: flex;
3762
+ flex-wrap: wrap;
3763
+ align-items: center;
3764
+ justify-content: center;
3765
+ gap: var(--mn-space-2);
3766
+ margin-top: var(--mn-space-6);
3767
+ }
3768
+ .mn-error-page__request-id {
3769
+ display: inline-flex;
3770
+ flex-wrap: wrap;
3771
+ align-items: center;
3772
+ justify-content: center;
3773
+ gap: var(--mn-space-1);
3774
+ margin: var(--mn-space-5) 0 0;
3775
+ color: var(--mn-color-text-muted);
3776
+ font-size: var(--mn-text-xs);
3777
+ }
3778
+ .mn-error-page__request-id code {
3779
+ font-family: var(--mn-font-mono);
3780
+ color: var(--mn-color-text-default);
3781
+ user-select: all;
3782
+ overflow-wrap: anywhere;
3783
+ }
3784
+ .mn-error-page__support {
3785
+ margin-top: var(--mn-space-6);
3786
+ color: var(--mn-color-text-muted);
3787
+ font-size: var(--mn-text-sm);
3788
+ }
3789
+ @media (max-width: 30rem) {
3790
+ .mn-error-page {
3791
+ padding-block: var(--mn-space-10);
3792
+ }
3793
+ .mn-error-page__title {
3794
+ font-size: var(--mn-text-xl);
3795
+ }
3796
+ .mn-error-page__actions {
3797
+ flex-direction: column;
3798
+ align-self: stretch;
3799
+ }
3800
+ .mn-error-page__actions > * {
3801
+ width: 100%;
3802
+ }
3803
+ }
3804
+
3805
+ /* components/feedback/inline-error-retry/inline-error-retry.css */
3806
+ .mn-inline-error-retry {
3807
+ display: flex;
3808
+ flex-wrap: wrap;
3809
+ align-items: center;
3810
+ gap: var(--mn-space-2) var(--mn-space-3);
3811
+ color: var(--mn-color-text-default);
3812
+ font-size: var(--mn-text-sm);
3813
+ line-height: var(--mn-leading-snug);
3814
+ }
3815
+ .mn-inline-error-retry[data-variant='banner'] {
3816
+ padding: var(--mn-space-2-5) var(--mn-space-3) var(--mn-space-2-5) var(--mn-space-4);
3817
+ border: 1px solid var(--mn-color-danger-border);
3818
+ border-radius: var(--mn-radius-lg);
3819
+ background: var(--mn-color-danger-subtle);
3820
+ }
3821
+ .mn-inline-error-retry[data-variant='banner'][data-tone='warning'] {
3822
+ border-color: var(--mn-color-warning-border);
3823
+ background: var(--mn-color-warning-subtle);
3824
+ }
3825
+ .mn-inline-error-retry__icon {
3826
+ display: inline-flex;
3827
+ flex: none;
3828
+ color: var(--mn-color-danger-strong);
3829
+ }
3830
+ .mn-inline-error-retry[data-tone='warning'] .mn-inline-error-retry__icon {
3831
+ color: var(--mn-color-warning-strong);
3832
+ }
3833
+ .mn-inline-error-retry__icon > svg {
3834
+ width: 1rem;
3835
+ height: 1rem;
3836
+ }
3837
+ .mn-inline-error-retry__message {
3838
+ flex: 1 1 12rem;
3839
+ min-width: 0;
3840
+ }
3841
+ .mn-inline-error-retry__actions {
3842
+ display: inline-flex;
3843
+ flex-wrap: wrap;
3844
+ align-items: center;
3845
+ gap: var(--mn-space-2);
3846
+ }
3847
+
3848
+ /* components/overlays/confirm-dialog/confirm-dialog.css */
3849
+ .mn-confirm-dialog__form {
3850
+ display: flex;
3851
+ flex: 1;
3852
+ flex-direction: column;
3853
+ min-height: 0;
3854
+ }
3855
+ .mn-confirm-dialog__icon {
3856
+ display: inline-flex;
3857
+ align-items: center;
3858
+ justify-content: center;
3859
+ width: var(--mn-control-md);
3860
+ height: var(--mn-control-md);
3861
+ margin-bottom: var(--mn-space-2);
3862
+ border-radius: var(--mn-radius-full);
3863
+ background: var(--mn-color-danger-subtle);
3864
+ color: var(--mn-color-danger-strong);
3865
+ }
3866
+ .mn-confirm-dialog__icon > svg {
3867
+ width: 1.125rem;
3868
+ height: 1.125rem;
3869
+ }
3870
+ .mn-confirm-dialog__body {
3871
+ display: flex;
3872
+ flex-direction: column;
3873
+ gap: var(--mn-space-4);
3874
+ font-size: var(--mn-text-sm);
3875
+ line-height: var(--mn-leading-normal);
3876
+ }
3877
+ .mn-confirm-dialog__consequences {
3878
+ display: flex;
3879
+ flex-direction: column;
3880
+ gap: var(--mn-space-1);
3881
+ margin: 0;
3882
+ padding-inline-start: var(--mn-space-5);
3883
+ color: var(--mn-color-text-default);
3884
+ }
3885
+ .mn-confirm-dialog__phrase {
3886
+ padding: 0 var(--mn-space-1);
3887
+ border-radius: var(--mn-radius-xs);
3888
+ background: var(--mn-color-bg-muted);
3889
+ font-family: var(--mn-font-mono);
3890
+ font-weight: var(--mn-weight-semibold);
3891
+ overflow-wrap: anywhere;
3892
+ }
3893
+ .mn-confirm-dialog__error {
3894
+ padding: 0 var(--mn-space-5) var(--mn-space-4);
3895
+ }
3896
+ .mn-confirm-dialog__header {
3897
+ padding-bottom: var(--mn-space-5);
3898
+ }
3899
+ .mn-confirm-dialog__body {
3900
+ padding-top: 0;
3901
+ }
3902
+ .mn-confirm-dialog:not(:has(> .mn-dialog__close)) .mn-confirm-dialog__header {
3903
+ padding-right: var(--mn-space-5);
3904
+ }
3905
+
3906
+ /* components/overlays/sheet/sheet.css */
3907
+ .mn-sheet {
3908
+ --_size: 28rem;
3909
+ --_block: 60dvh;
3910
+ position: fixed;
3911
+ z-index: var(--mn-z-modal);
3912
+ box-sizing: border-box;
3913
+ display: flex;
3914
+ flex-direction: column;
3915
+ overflow: hidden;
3916
+ border: 0 solid var(--mn-color-border-subtle);
3917
+ background: var(--mn-color-bg-raised);
3918
+ color: var(--mn-color-text-default);
3919
+ box-shadow: var(--mn-shadow-xl);
3920
+ }
3921
+ .mn-sheet:focus-visible {
3922
+ outline: none;
3923
+ }
3924
+ .mn-sheet[data-size='sm'] {
3925
+ --_size: 20rem;
3926
+ --_block: 40dvh;
3927
+ }
3928
+ .mn-sheet[data-size='lg'] {
3929
+ --_size: 36rem;
3930
+ --_block: 80dvh;
3931
+ }
3932
+ .mn-sheet[data-size='xl'] {
3933
+ --_size: 48rem;
3934
+ --_block: 92dvh;
3935
+ }
3936
+ .mn-sheet[data-size='full'] {
3937
+ --_size: 100vw;
3938
+ --_block: 100dvh;
3939
+ }
3940
+
3941
+ /* Side sheets: full height, capped at the screen width, clear of notches. */
3942
+ .mn-sheet[data-side='right'],
3943
+ .mn-sheet[data-side='left'] {
3944
+ top: 0;
3945
+ bottom: 0;
3946
+ width: min(var(--_size), 100vw);
3947
+ padding-top: env(safe-area-inset-top);
3948
+ padding-bottom: env(safe-area-inset-bottom);
3949
+ }
3950
+ .mn-sheet[data-side='right'] {
3951
+ right: 0;
3952
+ padding-right: env(safe-area-inset-right);
3953
+ border-left-width: 1px;
3954
+ animation: mn-sheet-in-right var(--mn-duration-slow) var(--mn-ease-enter);
3955
+ }
3956
+ .mn-sheet[data-side='left'] {
3957
+ left: 0;
3958
+ padding-left: env(safe-area-inset-left);
3959
+ border-right-width: 1px;
3960
+ animation: mn-sheet-in-left var(--mn-duration-slow) var(--mn-ease-enter);
3961
+ }
3962
+
3963
+ /* Top and bottom sheets: full width, height from content up to the size cap. */
3964
+ .mn-sheet[data-side='top'],
3965
+ .mn-sheet[data-side='bottom'] {
3966
+ left: 0;
3967
+ right: 0;
3968
+ max-height: var(--_block);
3969
+ padding-left: env(safe-area-inset-left);
3970
+ padding-right: env(safe-area-inset-right);
3971
+ }
3972
+ .mn-sheet[data-side='bottom'] {
3973
+ bottom: 0;
3974
+ padding-bottom: env(safe-area-inset-bottom);
3975
+ border-top-width: 1px;
3976
+ border-radius: var(--mn-radius-xl) var(--mn-radius-xl) 0 0;
3977
+ animation: mn-sheet-in-bottom var(--mn-duration-slow) var(--mn-ease-enter);
3978
+ }
3979
+ .mn-sheet[data-side='top'] {
3980
+ top: 0;
3981
+ padding-top: env(safe-area-inset-top);
3982
+ border-bottom-width: 1px;
3983
+ border-radius: 0 0 var(--mn-radius-xl) var(--mn-radius-xl);
3984
+ animation: mn-sheet-in-top var(--mn-duration-slow) var(--mn-ease-enter);
3985
+ }
3986
+ .mn-sheet[data-size='full'] {
3987
+ border-radius: 0;
3988
+ }
3989
+
3990
+ .mn-sheet__handle {
3991
+ flex: none;
3992
+ width: 2.25rem;
3993
+ height: 0.25rem;
3994
+ margin: var(--mn-space-2) auto 0;
3995
+ border-radius: var(--mn-radius-full);
3996
+ background: var(--mn-color-border-strong);
3997
+ }
3998
+ .mn-sheet__handle + .mn-sheet__header {
3999
+ padding-top: var(--mn-space-3);
4000
+ }
4001
+ .mn-sheet[data-side='right'] .mn-sheet__close,
4002
+ .mn-sheet[data-side='top'] .mn-sheet__close {
4003
+ top: calc(var(--mn-space-3) + env(safe-area-inset-top));
4004
+ }
4005
+ .mn-sheet[data-side='right'] .mn-sheet__close {
4006
+ right: calc(var(--mn-space-3) + env(safe-area-inset-right));
4007
+ }
4008
+ .mn-sheet__footer {
4009
+ flex: none;
4010
+ }
4011
+
4012
+ @keyframes mn-sheet-in-right {
4013
+ from {
4014
+ transform: translateX(100%);
4015
+ }
4016
+ }
4017
+ @keyframes mn-sheet-in-left {
4018
+ from {
4019
+ transform: translateX(-100%);
4020
+ }
4021
+ }
4022
+ @keyframes mn-sheet-in-bottom {
4023
+ from {
4024
+ transform: translateY(100%);
4025
+ }
4026
+ }
4027
+ @keyframes mn-sheet-in-top {
4028
+ from {
4029
+ transform: translateY(-100%);
4030
+ }
4031
+ }
4032
+
4033
+ /* components/overlays/responsive-dialog/responsive-dialog.css */
4034
+ /*
4035
+ * Builds on .mn-dialog (dialog.css, earlier in the cascade). Wide screens get
4036
+ * the centred dialog unchanged; below the breakpoint the same element becomes
4037
+ * a bottom sheet. CSS only, so server and client render the same markup.
4038
+ */
4039
+ .mn-responsive-dialog__handle {
4040
+ display: none;
4041
+ flex: none;
4042
+ width: 2.25rem;
4043
+ height: 0.25rem;
4044
+ margin: var(--mn-space-2) auto 0;
4045
+ border-radius: var(--mn-radius-full);
4046
+ background: var(--mn-color-border-strong);
4047
+ }
4048
+
4049
+ @media (max-width: 639.98px) {
4050
+ .mn-responsive-dialog[data-sheet-below] {
4051
+ box-sizing: border-box;
4052
+ top: auto;
4053
+ bottom: 0;
4054
+ left: 0;
4055
+ width: 100%;
4056
+ max-height: calc(100dvh - var(--mn-space-8) - env(safe-area-inset-top));
4057
+ padding: 0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
4058
+ border-width: 1px 0 0;
4059
+ border-radius: var(--mn-radius-xl) var(--mn-radius-xl) 0 0;
4060
+ transform: none;
4061
+ animation: mn-responsive-dialog-up var(--mn-duration-slow) var(--mn-ease-enter);
4062
+ }
4063
+ .mn-responsive-dialog[data-sheet-below] .mn-responsive-dialog__handle {
4064
+ display: block;
4065
+ }
4066
+ .mn-responsive-dialog[data-sheet-below] .mn-responsive-dialog__handle + .mn-dialog__header {
4067
+ padding-top: var(--mn-space-3);
4068
+ }
4069
+ }
4070
+ @media (min-width: 640px) and (max-width: 767.98px) {
4071
+ .mn-responsive-dialog[data-sheet-below='md'] {
4072
+ box-sizing: border-box;
4073
+ top: auto;
4074
+ bottom: 0;
4075
+ left: 0;
4076
+ width: 100%;
4077
+ max-height: calc(100dvh - var(--mn-space-8) - env(safe-area-inset-top));
4078
+ padding: 0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
4079
+ border-width: 1px 0 0;
4080
+ border-radius: var(--mn-radius-xl) var(--mn-radius-xl) 0 0;
4081
+ transform: none;
4082
+ animation: mn-responsive-dialog-up var(--mn-duration-slow) var(--mn-ease-enter);
4083
+ }
4084
+ .mn-responsive-dialog[data-sheet-below='md'] .mn-responsive-dialog__handle {
4085
+ display: block;
4086
+ }
4087
+ .mn-responsive-dialog[data-sheet-below='md'] .mn-responsive-dialog__handle + .mn-dialog__header {
4088
+ padding-top: var(--mn-space-3);
4089
+ }
4090
+ }
4091
+
4092
+ @keyframes mn-responsive-dialog-up {
4093
+ from {
4094
+ transform: translateY(100%);
4095
+ }
4096
+ }
4097
+
4098
+ /* components/forms/inline-edit-text/inline-edit-text.css */
4099
+ /* Inherits font size and weight from its context, so it can sit in a page
4100
+ title or a table cell. View and edit share padding and a 1px border, so
4101
+ switching modes does not move the text. */
4102
+ .mn-inline-edit-text {
4103
+ --_pad-y: var(--mn-space-1);
4104
+ --_pad-x: var(--mn-space-1-5);
4105
+ display: flex;
4106
+ flex-direction: column;
4107
+ gap: var(--mn-space-1-5);
4108
+ min-width: 0;
4109
+ max-width: 100%;
4110
+ }
4111
+ .mn-inline-edit-text__view,
4112
+ .mn-inline-edit-text__input {
4113
+ box-sizing: border-box;
4114
+ width: 100%;
4115
+ min-width: 0;
4116
+ margin: 0;
4117
+ padding: var(--_pad-y) var(--_pad-x);
4118
+ border: 1px solid transparent;
4119
+ border-radius: var(--mn-radius-sm);
4120
+ background: transparent;
4121
+ color: inherit;
4122
+ font: inherit;
4123
+ letter-spacing: inherit;
4124
+ line-height: var(--mn-leading-snug);
4125
+ text-align: start;
4126
+ }
4127
+ .mn-inline-edit-text__view {
4128
+ display: flex;
4129
+ align-items: flex-start;
4130
+ gap: var(--mn-space-1-5);
4131
+ cursor: text;
4132
+ transition:
4133
+ background-color var(--mn-duration-fast) var(--mn-ease-standard),
4134
+ border-color var(--mn-duration-fast) var(--mn-ease-standard);
4135
+ }
4136
+ button.mn-inline-edit-text__view:hover {
4137
+ background: var(--mn-color-bg-muted);
4138
+ }
4139
+ button.mn-inline-edit-text__view:focus-visible {
4140
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4141
+ outline-offset: 0;
4142
+ }
4143
+ .mn-inline-edit-text__value {
4144
+ flex: 1 1 auto;
4145
+ min-width: 0;
4146
+ overflow-wrap: anywhere;
4147
+ white-space: pre-wrap;
4148
+ }
4149
+ .mn-inline-edit-text[data-empty] .mn-inline-edit-text__value {
4150
+ color: var(--mn-color-text-subtle);
4151
+ }
4152
+ .mn-inline-edit-text__icon {
4153
+ flex-shrink: 0;
4154
+ width: 0.875rem;
4155
+ height: 0.875rem;
4156
+ margin-top: 0.2em;
4157
+ color: var(--mn-color-text-subtle);
4158
+ opacity: 0;
4159
+ transition: opacity var(--mn-duration-fast) var(--mn-ease-standard);
4160
+ }
4161
+ .mn-inline-edit-text__view:hover .mn-inline-edit-text__icon,
4162
+ .mn-inline-edit-text__view:focus-visible .mn-inline-edit-text__icon {
4163
+ opacity: 1;
4164
+ }
4165
+ @media (hover: none) {
4166
+ .mn-inline-edit-text__icon {
4167
+ opacity: 1;
4168
+ }
4169
+ }
4170
+ .mn-inline-edit-text[data-disabled] .mn-inline-edit-text__view {
4171
+ cursor: default;
4172
+ }
4173
+
4174
+ .mn-inline-edit-text__editor {
4175
+ position: relative;
4176
+ display: flex;
4177
+ min-width: 0;
4178
+ }
4179
+ .mn-inline-edit-text__input {
4180
+ border-color: var(--mn-color-border-input);
4181
+ background: var(--mn-color-bg-surface);
4182
+ color: var(--mn-color-text-default);
4183
+ transition:
4184
+ border-color var(--mn-duration-fast) var(--mn-ease-standard),
4185
+ box-shadow var(--mn-duration-fast) var(--mn-ease-standard);
4186
+ }
4187
+ .mn-inline-edit-text__input::placeholder {
4188
+ color: var(--mn-color-text-subtle);
4189
+ }
4190
+ .mn-inline-edit-text__input:focus-visible {
4191
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4192
+ outline-offset: 0;
4193
+ border-color: var(--mn-color-focus-ring);
4194
+ }
4195
+ textarea.mn-inline-edit-text__input {
4196
+ resize: vertical;
4197
+ field-sizing: content;
4198
+ min-height: calc(var(--mn-control-md) * 2);
4199
+ }
4200
+ .mn-inline-edit-text[data-saving] .mn-inline-edit-text__input {
4201
+ color: var(--mn-color-text-muted);
4202
+ cursor: progress;
4203
+ }
4204
+ .mn-inline-edit-text[data-saving]:not([data-multiline]) .mn-inline-edit-text__input {
4205
+ padding-inline-end: calc(var(--_pad-x) + 1.5rem);
4206
+ }
4207
+ .mn-inline-edit-text[data-invalid] .mn-inline-edit-text__input {
4208
+ border-color: var(--mn-color-danger-strong);
4209
+ }
4210
+ .mn-inline-edit-text__spinner {
4211
+ position: absolute;
4212
+ inset-inline-end: var(--_pad-x);
4213
+ top: 50%;
4214
+ translate: 0 -50%;
4215
+ }
4216
+ .mn-inline-edit-text__error {
4217
+ margin: 0;
4218
+ padding-inline: calc(var(--_pad-x) + 1px);
4219
+ color: var(--mn-color-danger-strong);
4220
+ font-size: var(--mn-text-xs);
4221
+ font-weight: var(--mn-weight-medium);
4222
+ line-height: var(--mn-leading-normal);
4223
+ }
4224
+ .mn-inline-edit-text__actions {
4225
+ display: flex;
4226
+ flex-wrap: wrap;
4227
+ gap: var(--mn-space-2);
4228
+ padding-inline: 1px;
4229
+ }
4230
+
4231
+ /* components/layout/section-header/section-header.css */
4232
+ .mn-section-header {
4233
+ width: 100%;
4234
+ min-width: 0;
4235
+ }
4236
+ .mn-section-header__bar {
4237
+ display: flex;
4238
+ flex-wrap: wrap;
4239
+ align-items: flex-start;
4240
+ justify-content: space-between;
4241
+ gap: var(--mn-space-2) var(--mn-space-3);
4242
+ }
4243
+ section.mn-section-header > .mn-section-header__bar {
4244
+ margin-bottom: var(--mn-space-3);
4245
+ }
4246
+ .mn-section-header__text {
4247
+ display: flex;
4248
+ flex: 1 1 12rem;
4249
+ flex-direction: column;
4250
+ gap: var(--mn-space-0-5);
4251
+ min-width: 0;
4252
+ }
4253
+ .mn-section-header__heading {
4254
+ display: flex;
4255
+ align-items: center;
4256
+ gap: var(--mn-space-2);
4257
+ min-width: 0;
4258
+ }
4259
+ .mn-section-header__title {
4260
+ margin: 0;
4261
+ min-width: 0;
4262
+ overflow-wrap: anywhere;
4263
+ color: var(--mn-color-text-default);
4264
+ font-size: var(--mn-text-sm);
4265
+ font-weight: var(--mn-weight-semibold);
4266
+ line-height: var(--mn-leading-snug);
4267
+ }
4268
+ .mn-section-header[data-size='md'] .mn-section-header__title {
4269
+ font-size: var(--mn-text-base);
4270
+ letter-spacing: var(--mn-tracking-snug);
4271
+ }
4272
+ .mn-section-header__description {
4273
+ margin: 0;
4274
+ color: var(--mn-color-text-muted);
4275
+ font-size: var(--mn-text-sm);
4276
+ line-height: var(--mn-leading-normal);
4277
+ }
4278
+ .mn-section-header__meta {
4279
+ margin: 0;
4280
+ color: var(--mn-color-text-muted);
4281
+ font-size: var(--mn-text-xs);
4282
+ line-height: var(--mn-leading-normal);
4283
+ }
4284
+ .mn-section-header__trailing {
4285
+ display: flex;
4286
+ flex-shrink: 0;
4287
+ align-items: center;
4288
+ gap: var(--mn-space-2);
4289
+ }
4290
+ .mn-section-header__link {
4291
+ display: inline-flex;
4292
+ align-items: center;
4293
+ gap: var(--mn-space-1);
4294
+ border-radius: var(--mn-radius-xs);
4295
+ color: var(--mn-color-text-muted);
4296
+ font-size: var(--mn-text-xs);
4297
+ font-weight: var(--mn-weight-medium);
4298
+ line-height: var(--mn-leading-snug);
4299
+ text-decoration: none;
4300
+ white-space: nowrap;
4301
+ transition: color var(--mn-duration-fast) var(--mn-ease-standard);
4302
+ }
4303
+ .mn-section-header__link:hover {
4304
+ color: var(--mn-color-text-default);
4305
+ text-decoration: underline;
4306
+ text-underline-offset: 2px;
4307
+ }
4308
+ .mn-section-header__link:focus-visible {
4309
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4310
+ outline-offset: 2px;
4311
+ }
4312
+ .mn-section-header__arrow {
4313
+ flex-shrink: 0;
4314
+ width: 0.75rem;
4315
+ height: 0.75rem;
4316
+ }
4317
+ .mn-section-header__body {
4318
+ min-width: 0;
4319
+ transition: opacity var(--mn-duration-base) var(--mn-ease-standard);
4320
+ }
4321
+ .mn-section-header[data-busy] > .mn-section-header__body {
4322
+ opacity: 0.6;
4323
+ }
4324
+
4325
+ /* components/forms/switch-settings-list/switch-settings-list.css */
4326
+ .mn-switch-settings-list {
4327
+ display: flex;
4328
+ flex-direction: column;
4329
+ gap: var(--mn-space-3);
4330
+ min-width: 0;
4331
+ }
4332
+ .mn-switch-settings-list__header {
4333
+ display: flex;
4334
+ flex-direction: column;
4335
+ gap: var(--mn-space-0-5);
4336
+ }
4337
+ .mn-switch-settings-list__title {
4338
+ margin: 0;
4339
+ color: var(--mn-color-text-default);
4340
+ font-size: var(--mn-text-sm);
4341
+ font-weight: var(--mn-weight-semibold);
4342
+ line-height: var(--mn-leading-snug);
4343
+ }
4344
+ .mn-switch-settings-list__description {
4345
+ margin: 0;
4346
+ color: var(--mn-color-text-muted);
4347
+ font-size: var(--mn-text-sm);
4348
+ line-height: var(--mn-leading-normal);
4349
+ }
4350
+ .mn-switch-settings-list__rows {
4351
+ display: flex;
4352
+ flex-direction: column;
4353
+ margin: 0;
4354
+ padding: 0;
4355
+ border: 1px solid var(--mn-color-border-default);
4356
+ border-radius: var(--mn-radius-lg);
4357
+ background: var(--mn-color-bg-surface);
4358
+ list-style: none;
4359
+ }
4360
+ .mn-switch-settings-list__row {
4361
+ display: flex;
4362
+ align-items: center;
4363
+ justify-content: space-between;
4364
+ gap: var(--mn-space-4);
4365
+ padding: var(--mn-space-3) var(--mn-space-4);
4366
+ }
4367
+ .mn-switch-settings-list__row + .mn-switch-settings-list__row {
4368
+ border-top: 1px solid var(--mn-color-border-subtle);
4369
+ }
4370
+ .mn-switch-settings-list__text {
4371
+ display: flex;
4372
+ flex: 1 1 auto;
4373
+ flex-direction: column;
4374
+ gap: var(--mn-space-0-5);
4375
+ min-width: 0;
4376
+ }
4377
+ .mn-switch-settings-list__label {
4378
+ color: var(--mn-color-text-default);
4379
+ font-size: var(--mn-text-sm);
4380
+ font-weight: var(--mn-weight-medium);
4381
+ line-height: var(--mn-leading-snug);
4382
+ overflow-wrap: anywhere;
4383
+ cursor: pointer;
4384
+ }
4385
+ .mn-switch-settings-list__row[data-disabled] .mn-switch-settings-list__label {
4386
+ color: var(--mn-color-text-disabled);
4387
+ cursor: not-allowed;
4388
+ }
4389
+ .mn-switch-settings-list__item-description {
4390
+ margin: 0;
4391
+ color: var(--mn-color-text-muted);
4392
+ font-size: var(--mn-text-xs);
4393
+ line-height: var(--mn-leading-normal);
4394
+ }
4395
+ .mn-switch-settings-list__error {
4396
+ margin: 0;
4397
+ color: var(--mn-color-danger-strong);
4398
+ font-size: var(--mn-text-xs);
4399
+ font-weight: var(--mn-weight-medium);
4400
+ line-height: var(--mn-leading-normal);
4401
+ }
4402
+ .mn-switch-settings-list__control {
4403
+ display: flex;
4404
+ flex-shrink: 0;
4405
+ align-items: center;
4406
+ gap: var(--mn-space-2);
4407
+ }
4408
+ .mn-switch-settings-list__saved {
4409
+ display: inline-flex;
4410
+ align-items: center;
4411
+ gap: var(--mn-space-1);
4412
+ color: var(--mn-color-success-strong);
4413
+ font-size: var(--mn-text-xs);
4414
+ font-weight: var(--mn-weight-medium);
4415
+ animation: mn-fade-in var(--mn-duration-base) var(--mn-ease-standard);
4416
+ }
4417
+ .mn-switch-settings-list__saved > svg {
4418
+ width: 0.875rem;
4419
+ height: 0.875rem;
4420
+ }
4421
+ .mn-switch-settings-list__retry {
4422
+ display: inline-flex;
4423
+ align-items: center;
4424
+ gap: var(--mn-space-1);
4425
+ height: var(--mn-control-xs);
4426
+ padding-inline: var(--mn-space-2);
4427
+ border: 1px solid var(--mn-color-border-default);
4428
+ border-radius: var(--mn-radius-sm);
4429
+ background: var(--mn-color-bg-surface);
4430
+ color: var(--mn-color-text-default);
4431
+ font: inherit;
4432
+ font-size: var(--mn-text-xs);
4433
+ font-weight: var(--mn-weight-medium);
4434
+ cursor: pointer;
4435
+ transition: background-color var(--mn-duration-fast) var(--mn-ease-standard);
4436
+ }
4437
+ .mn-switch-settings-list__retry:hover {
4438
+ background: var(--mn-color-bg-muted);
4439
+ }
4440
+ .mn-switch-settings-list__retry:focus-visible {
4441
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4442
+ outline-offset: 2px;
4443
+ }
4444
+ .mn-switch-settings-list__retry > svg {
4445
+ width: 0.875rem;
4446
+ height: 0.875rem;
4447
+ }
4448
+ @media (max-width: 479px) {
4449
+ .mn-switch-settings-list__row {
4450
+ flex-wrap: wrap;
4451
+ padding-inline: var(--mn-space-3);
4452
+ }
4453
+ .mn-switch-settings-list__text {
4454
+ flex-basis: 60%;
4455
+ }
4456
+ }
4457
+
4458
+ /* components/feedback/callout-banner/callout-banner.css */
4459
+ /* Callout Banner. Only --mn-* variables; state goes in data-* attributes. */
4460
+ .mn-callout-banner {
4461
+ --_bg: var(--mn-color-info-subtle);
4462
+ --_fg: var(--mn-color-info-strong);
4463
+ --_border: var(--mn-color-info-border);
4464
+ display: flex;
4465
+ align-items: flex-start;
4466
+ gap: var(--mn-space-3);
4467
+ box-sizing: border-box;
4468
+ width: 100%;
4469
+ margin: 0;
4470
+ padding: var(--mn-space-3) var(--mn-space-4);
4471
+ border: 1px solid var(--_border);
4472
+ border-radius: var(--mn-radius-lg);
4473
+ background: var(--_bg);
4474
+ color: var(--mn-color-text-default);
4475
+ font-size: var(--mn-text-sm);
4476
+ line-height: var(--mn-leading-normal);
4477
+ }
4478
+ .mn-callout-banner[data-tone='neutral'] {
4479
+ --_bg: var(--mn-color-bg-subtle);
4480
+ --_fg: var(--mn-color-text-muted);
4481
+ --_border: var(--mn-color-border-default);
4482
+ }
4483
+ .mn-callout-banner[data-tone='accent'] {
4484
+ --_bg: var(--mn-color-accent-subtle);
4485
+ --_fg: var(--mn-color-accent-strong);
4486
+ --_border: var(--mn-color-accent-border);
4487
+ }
4488
+ .mn-callout-banner[data-tone='success'] {
4489
+ --_bg: var(--mn-color-success-subtle);
4490
+ --_fg: var(--mn-color-success-strong);
4491
+ --_border: var(--mn-color-success-border);
4492
+ }
4493
+ .mn-callout-banner[data-tone='warning'] {
4494
+ --_bg: var(--mn-color-warning-subtle);
4495
+ --_fg: var(--mn-color-warning-strong);
4496
+ --_border: var(--mn-color-warning-border);
4497
+ }
4498
+ .mn-callout-banner[data-tone='danger'] {
4499
+ --_bg: var(--mn-color-danger-subtle);
4500
+ --_fg: var(--mn-color-danger-strong);
4501
+ --_border: var(--mn-color-danger-border);
4502
+ }
4503
+
4504
+ /* Page: a full-width strip at the top of the app or page. */
4505
+ .mn-callout-banner[data-placement='page'] {
4506
+ align-items: center;
4507
+ padding: var(--mn-space-2-5) var(--mn-layout-gutter);
4508
+ border-width: 0 0 1px;
4509
+ border-radius: 0;
4510
+ }
4511
+
4512
+ /* Scope: a compact notice that the view is filtered. */
4513
+ .mn-callout-banner[data-variant='scope'] {
4514
+ align-items: center;
4515
+ gap: var(--mn-space-2);
4516
+ padding: var(--mn-space-1-5) var(--mn-space-3);
4517
+ border-radius: var(--mn-radius-md);
4518
+ color: var(--mn-color-text-muted);
4519
+ font-size: var(--mn-text-xs);
4520
+ }
4521
+ .mn-callout-banner[data-variant='scope'][data-placement='page'] {
4522
+ border-radius: 0;
4523
+ }
4524
+
4525
+ .mn-callout-banner__icon {
4526
+ display: inline-flex;
4527
+ flex: none;
4528
+ margin-top: 0.125rem;
4529
+ color: var(--_fg);
4530
+ }
4531
+ .mn-callout-banner[data-placement='page'] .mn-callout-banner__icon,
4532
+ .mn-callout-banner[data-variant='scope'] .mn-callout-banner__icon {
4533
+ margin-top: 0;
4534
+ }
4535
+ .mn-callout-banner__main {
4536
+ display: flex;
4537
+ flex: 1;
4538
+ flex-wrap: wrap;
4539
+ align-items: baseline;
4540
+ column-gap: var(--mn-space-3);
4541
+ row-gap: var(--mn-space-2);
4542
+ min-width: 0;
4543
+ }
4544
+ .mn-callout-banner__text {
4545
+ min-width: 0;
4546
+ }
4547
+ .mn-callout-banner[data-action-placement='end'] .mn-callout-banner__text {
4548
+ flex: 1;
4549
+ }
4550
+ .mn-callout-banner__title {
4551
+ margin: 0;
4552
+ font-weight: var(--mn-weight-semibold);
4553
+ }
4554
+ .mn-callout-banner__body {
4555
+ color: var(--mn-color-text-muted);
4556
+ }
4557
+ .mn-callout-banner__title + .mn-callout-banner__body {
4558
+ margin-top: var(--mn-space-0-5);
4559
+ }
4560
+ .mn-callout-banner__body > :first-child {
4561
+ margin-top: 0;
4562
+ }
4563
+ .mn-callout-banner__body > :last-child {
4564
+ margin-bottom: 0;
4565
+ }
4566
+ .mn-callout-banner[data-variant='scope'] .mn-callout-banner__body {
4567
+ color: inherit;
4568
+ }
4569
+ .mn-callout-banner__actions {
4570
+ display: flex;
4571
+ flex-wrap: wrap;
4572
+ flex: none;
4573
+ align-items: center;
4574
+ gap: var(--mn-space-2);
4575
+ align-self: center;
4576
+ }
4577
+ .mn-callout-banner__dismiss {
4578
+ flex: none;
4579
+ align-self: flex-start;
4580
+ margin: calc(var(--mn-space-1) * -1) calc(var(--mn-space-2) * -1) calc(var(--mn-space-1) * -1) 0;
4581
+ }
4582
+ .mn-callout-banner[data-placement='page'] .mn-callout-banner__dismiss,
4583
+ .mn-callout-banner[data-variant='scope'] .mn-callout-banner__dismiss {
4584
+ align-self: center;
4585
+ }
4586
+
4587
+ /* Narrow screens: trailing actions get their own row, under the text. */
4588
+ @media (max-width: 40rem) {
4589
+ .mn-callout-banner[data-action-placement='end'] {
4590
+ flex-wrap: wrap;
4591
+ }
4592
+ .mn-callout-banner[data-action-placement='end'] .mn-callout-banner__main {
4593
+ flex-basis: 0;
4594
+ }
4595
+ .mn-callout-banner[data-action-placement='end'] .mn-callout-banner__actions {
4596
+ order: 3;
4597
+ flex-basis: 100%;
4598
+ }
4599
+ .mn-callout-banner[data-action-placement='end']:has(> .mn-callout-banner__icon)
4600
+ .mn-callout-banner__actions {
4601
+ flex-basis: calc(100% - 1rem - var(--mn-space-3));
4602
+ margin-inline-start: calc(1rem + var(--mn-space-3));
4603
+ }
4604
+ }
4605
+
4606
+ /* components/feedback/inline-notice/inline-notice.css */
4607
+ /* Inline Notice. Only --mn-* variables; state goes in data-* attributes. */
4608
+ .mn-inline-notice {
4609
+ --_bg: var(--mn-color-info-subtle);
4610
+ --_fg: var(--mn-color-info-strong);
4611
+ display: flex;
4612
+ align-items: flex-start;
4613
+ gap: var(--mn-space-2);
4614
+ box-sizing: border-box;
4615
+ max-width: 100%;
4616
+ padding: var(--mn-space-1-5) var(--mn-space-2-5);
4617
+ border-radius: var(--mn-radius-md);
4618
+ background: var(--_bg);
4619
+ color: var(--mn-color-text-default);
4620
+ font-size: var(--mn-text-sm);
4621
+ line-height: var(--mn-leading-normal);
4622
+ }
4623
+ .mn-inline-notice[data-tone='neutral'] {
4624
+ --_bg: var(--mn-color-bg-muted);
4625
+ --_fg: var(--mn-color-text-muted);
4626
+ }
4627
+ .mn-inline-notice[data-tone='success'] {
4628
+ --_bg: var(--mn-color-success-subtle);
4629
+ --_fg: var(--mn-color-success-strong);
4630
+ }
4631
+ .mn-inline-notice[data-tone='warning'] {
4632
+ --_bg: var(--mn-color-warning-subtle);
4633
+ --_fg: var(--mn-color-warning-strong);
4634
+ }
4635
+ .mn-inline-notice[data-tone='danger'] {
4636
+ --_bg: var(--mn-color-danger-subtle);
4637
+ --_fg: var(--mn-color-danger-strong);
4638
+ }
4639
+ /* Plain: no fill; the text takes the tone's strong colour (4.5:1 on every surface). */
4640
+ .mn-inline-notice[data-variant='plain'] {
4641
+ padding: 0;
4642
+ background: none;
4643
+ color: var(--_fg);
4644
+ }
4645
+ .mn-inline-notice[data-variant='plain'][data-tone='neutral'] {
4646
+ color: var(--mn-color-text-muted);
4647
+ }
4648
+ .mn-inline-notice__icon {
4649
+ display: inline-flex;
4650
+ flex: none;
4651
+ /* Centre the 16px glyph on the first line of text. */
4652
+ margin-top: calc((1em * var(--mn-leading-normal) - 1rem) / 2);
4653
+ color: var(--_fg);
4654
+ }
4655
+ .mn-inline-notice__message {
4656
+ flex: 1;
4657
+ min-width: 0;
4658
+ margin: 0;
4659
+ }
4660
+ .mn-inline-notice__title {
4661
+ font-weight: var(--mn-weight-semibold);
4662
+ }
4663
+ .mn-inline-notice__action {
4664
+ display: inline-flex;
4665
+ flex: none;
4666
+ align-items: center;
4667
+ align-self: center;
4668
+ margin-inline-start: var(--mn-space-1);
4669
+ }
4670
+ .mn-inline-notice__dismiss {
4671
+ flex: none;
4672
+ align-self: center;
4673
+ margin-block: calc(var(--mn-space-1) * -1);
4674
+ margin-inline-end: calc(var(--mn-space-1) * -1);
4675
+ }
4676
+ .mn-inline-notice[data-variant='plain'] .mn-inline-notice__dismiss {
4677
+ margin: 0;
4678
+ }
4679
+
4680
+ /* components/data-display/accordion/accordion.css */
4681
+ /* Accordion -------------------------------------------------------- */
4682
+ .mn-accordion {
4683
+ border-top: 1px solid var(--mn-color-border-default);
4684
+ }
4685
+ .mn-accordion__item {
4686
+ border-bottom: 1px solid var(--mn-color-border-default);
4687
+ }
4688
+ .mn-accordion__header {
4689
+ margin: 0;
4690
+ font-size: inherit;
4691
+ }
4692
+ .mn-accordion__trigger {
4693
+ display: flex;
4694
+ align-items: center;
4695
+ justify-content: space-between;
4696
+ gap: var(--mn-space-4);
4697
+ width: 100%;
4698
+ min-height: 3.5rem;
4699
+ padding: var(--mn-space-4) 0;
4700
+ border: 0;
4701
+ background: transparent;
4702
+ color: var(--mn-color-text-default);
4703
+ font: inherit;
4704
+ font-family: var(--mn-font-sans);
4705
+ font-size: var(--mn-text-base);
4706
+ font-weight: var(--mn-weight-medium);
4707
+ line-height: var(--mn-leading-snug);
4708
+ text-align: start;
4709
+ cursor: pointer;
4710
+ }
4711
+ .mn-accordion__trigger:focus-visible {
4712
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4713
+ outline-offset: 2px;
4714
+ border-radius: var(--mn-radius-sm);
4715
+ }
4716
+ .mn-accordion__chevron {
4717
+ flex-shrink: 0;
4718
+ width: 1.125rem;
4719
+ height: 1.125rem;
4720
+ color: var(--mn-color-text-muted);
4721
+ transition: transform var(--mn-duration-base) var(--mn-ease-standard);
4722
+ }
4723
+ .mn-accordion__trigger[data-state='open'] .mn-accordion__chevron {
4724
+ transform: rotate(180deg);
4725
+ }
4726
+ .mn-accordion__content {
4727
+ overflow: hidden;
4728
+ }
4729
+ .mn-accordion__content[data-state='open'] {
4730
+ animation: mn-accordion-open var(--mn-duration-base) var(--mn-ease-standard);
4731
+ }
4732
+ .mn-accordion__content[data-state='closed'] {
4733
+ animation: mn-accordion-close var(--mn-duration-base) var(--mn-ease-standard);
4734
+ }
4735
+ .mn-accordion__body {
4736
+ max-width: var(--mn-width-narrow);
4737
+ padding-bottom: var(--mn-space-5);
4738
+ color: var(--mn-color-text-muted);
4739
+ font-size: var(--mn-text-sm);
4740
+ line-height: var(--mn-leading-relaxed);
4741
+ }
4742
+ @keyframes mn-accordion-open {
4743
+ from {
4744
+ height: 0;
4745
+ }
4746
+ to {
4747
+ height: var(--radix-accordion-content-height);
4748
+ }
4749
+ }
4750
+ @keyframes mn-accordion-close {
4751
+ from {
4752
+ height: var(--radix-accordion-content-height);
4753
+ }
4754
+ to {
4755
+ height: 0;
4756
+ }
4757
+ }
4758
+
4759
+ /* patterns/layout/marketing-site-shell/marketing-site-shell.css */
4760
+ /* SiteHeader and SiteFooter. */
4761
+ /* Site header -------------------------------------------------------------- */
4762
+ .mn-site-header {
4763
+ position: relative;
4764
+ z-index: var(--mn-z-sticky);
4765
+ border-bottom: 1px solid var(--mn-color-border-subtle);
4766
+ background: color-mix(in srgb, var(--mn-color-bg-canvas) 86%, transparent);
4767
+ -webkit-backdrop-filter: saturate(1.4) blur(14px);
4768
+ backdrop-filter: saturate(1.4) blur(14px);
4769
+ }
4770
+ .mn-site-header[data-sticky] {
4771
+ position: sticky;
4772
+ top: 0;
4773
+ }
4774
+ .mn-site-header__inner {
4775
+ display: flex;
4776
+ align-items: center;
4777
+ gap: var(--mn-space-8);
4778
+ max-width: var(--mn-width-wide);
4779
+ height: 4rem;
4780
+ margin-inline: auto;
4781
+ padding-inline: var(--mn-width-gutter);
4782
+ }
4783
+ .mn-site-header__brand {
4784
+ display: flex;
4785
+ flex-shrink: 0;
4786
+ align-items: center;
4787
+ }
4788
+ .mn-site-header__brand a {
4789
+ display: inline-flex;
4790
+ align-items: center;
4791
+ gap: var(--mn-space-2);
4792
+ min-height: 2.75rem;
4793
+ color: var(--mn-color-text-default);
4794
+ text-decoration: none;
4795
+ }
4796
+ .mn-site-header__nav {
4797
+ display: none;
4798
+ flex: 1;
4799
+ min-width: 0;
4800
+ }
4801
+ .mn-site-header__list {
4802
+ display: flex;
4803
+ align-items: center;
4804
+ gap: var(--mn-space-1);
4805
+ margin: 0;
4806
+ padding: 0;
4807
+ list-style: none;
4808
+ }
4809
+ .mn-site-header__link {
4810
+ display: inline-flex;
4811
+ align-items: center;
4812
+ gap: var(--mn-space-1);
4813
+ min-height: 2.25rem;
4814
+ padding-inline: var(--mn-space-3);
4815
+ border: 0;
4816
+ border-radius: var(--mn-radius-md);
4817
+ background: transparent;
4818
+ color: var(--mn-color-text-muted);
4819
+ font: inherit;
4820
+ font-family: var(--mn-font-sans);
4821
+ font-size: var(--mn-text-sm);
4822
+ font-weight: var(--mn-weight-medium);
4823
+ text-decoration: none;
4824
+ cursor: pointer;
4825
+ transition:
4826
+ color var(--mn-duration-fast) var(--mn-ease-standard),
4827
+ background-color var(--mn-duration-fast) var(--mn-ease-standard);
4828
+ }
4829
+ .mn-site-header__link:hover,
4830
+ .mn-site-header__link[aria-expanded='true'],
4831
+ .mn-site-header__link[aria-current='page'] {
4832
+ color: var(--mn-color-text-default);
4833
+ }
4834
+ .mn-site-header__link:hover,
4835
+ .mn-site-header__link[aria-expanded='true'] {
4836
+ background: var(--mn-color-bg-muted);
4837
+ }
4838
+ .mn-site-header__chevron {
4839
+ width: 0.875rem;
4840
+ height: 0.875rem;
4841
+ transition: transform var(--mn-duration-base) var(--mn-ease-standard);
4842
+ }
4843
+ .mn-site-header__trigger[aria-expanded='true'] .mn-site-header__chevron {
4844
+ transform: rotate(180deg);
4845
+ }
4846
+ .mn-site-header__end {
4847
+ display: flex;
4848
+ align-items: center;
4849
+ gap: var(--mn-space-2);
4850
+ margin-inline-start: auto;
4851
+ }
4852
+ .mn-site-header__actions {
4853
+ display: none;
4854
+ align-items: center;
4855
+ gap: var(--mn-space-2);
4856
+ }
4857
+ .mn-site-header__toggle {
4858
+ display: inline-flex;
4859
+ align-items: center;
4860
+ justify-content: center;
4861
+ width: 2.75rem;
4862
+ height: 2.75rem;
4863
+ padding: 0;
4864
+ border: 0;
4865
+ border-radius: var(--mn-radius-md);
4866
+ background: transparent;
4867
+ color: var(--mn-color-text-default);
4868
+ cursor: pointer;
4869
+ }
4870
+ .mn-site-header__toggle svg {
4871
+ width: 1.25rem;
4872
+ height: 1.25rem;
4873
+ }
4874
+ .mn-site-header__toggle:hover {
4875
+ background: var(--mn-color-bg-muted);
4876
+ }
4877
+ .mn-site-header__link:focus-visible,
4878
+ .mn-site-header__toggle:focus-visible {
4879
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4880
+ outline-offset: 2px;
4881
+ }
4882
+ .mn-site-header__panel {
4883
+ padding: var(--mn-space-2) var(--mn-width-gutter) var(--mn-space-6);
4884
+ border-top: 1px solid var(--mn-color-border-subtle);
4885
+ background: var(--mn-color-bg-canvas);
4886
+ }
4887
+ .mn-site-header__panel ul {
4888
+ margin: 0;
4889
+ padding: 0;
4890
+ list-style: none;
4891
+ }
4892
+ .mn-site-header__panel-list > li + li {
4893
+ border-top: 1px solid var(--mn-color-border-subtle);
4894
+ }
4895
+ .mn-site-header__panel-group {
4896
+ padding-block: var(--mn-space-3);
4897
+ }
4898
+ .mn-site-header__panel-heading {
4899
+ margin: 0;
4900
+ padding-block: var(--mn-space-1);
4901
+ color: var(--mn-color-text-subtle);
4902
+ font-size: var(--mn-text-xs);
4903
+ font-weight: var(--mn-weight-semibold);
4904
+ letter-spacing: var(--mn-tracking-wide);
4905
+ }
4906
+ .mn-site-header__panel-link {
4907
+ display: flex;
4908
+ align-items: center;
4909
+ min-height: 2.75rem;
4910
+ color: var(--mn-color-text-default);
4911
+ font-size: var(--mn-text-base);
4912
+ font-weight: var(--mn-weight-medium);
4913
+ text-decoration: none;
4914
+ }
4915
+ .mn-site-header__panel-actions {
4916
+ display: flex;
4917
+ flex-wrap: wrap;
4918
+ gap: var(--mn-space-2);
4919
+ padding-top: var(--mn-space-4);
4920
+ }
4921
+ .mn-site-header__panel-actions > * {
4922
+ flex: 1;
4923
+ }
4924
+ @media (min-width: 768px) {
4925
+ .mn-site-header__nav,
4926
+ .mn-site-header__actions {
4927
+ display: flex;
4928
+ }
4929
+ .mn-site-header__toggle,
4930
+ .mn-site-header__panel {
4931
+ display: none;
4932
+ }
4933
+ }
4934
+
4935
+ .mn-site-menu {
4936
+ z-index: var(--mn-z-popover);
4937
+ width: min(22rem, calc(100vw - 2rem));
4938
+ padding: var(--mn-space-2);
4939
+ border: 1px solid var(--mn-color-border-subtle);
4940
+ border-radius: var(--mn-radius-xl);
4941
+ background: var(--mn-color-bg-raised);
4942
+ box-shadow: var(--mn-shadow-lg);
4943
+ animation: mn-pop-in var(--mn-duration-fast) var(--mn-ease-enter);
4944
+ }
4945
+ .mn-site-menu__list {
4946
+ display: flex;
4947
+ flex-direction: column;
4948
+ margin: 0;
4949
+ padding: 0;
4950
+ list-style: none;
4951
+ }
4952
+ .mn-site-menu__item {
4953
+ display: flex;
4954
+ flex-direction: column;
4955
+ gap: var(--mn-space-0-5);
4956
+ padding: var(--mn-space-2-5) var(--mn-space-3);
4957
+ border-radius: var(--mn-radius-md);
4958
+ color: var(--mn-color-text-default);
4959
+ text-decoration: none;
4960
+ }
4961
+ .mn-site-menu__item:hover,
4962
+ .mn-site-menu__item:focus-visible {
4963
+ background: var(--mn-color-bg-muted);
4964
+ }
4965
+ .mn-site-menu__item:focus-visible {
4966
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
4967
+ outline-offset: -2px;
4968
+ }
4969
+ .mn-site-menu__label {
4970
+ font-size: var(--mn-text-sm);
4971
+ font-weight: var(--mn-weight-medium);
4972
+ }
4973
+ .mn-site-menu__description {
4974
+ color: var(--mn-color-text-muted);
4975
+ font-size: var(--mn-text-xs);
4976
+ line-height: var(--mn-leading-normal);
4977
+ }
4978
+
4979
+ /* Site footer -------------------------------------------------------------- */
4980
+ .mn-site-footer {
4981
+ border-top: 1px solid var(--mn-color-border-subtle);
4982
+ background: var(--mn-color-bg-canvas);
4983
+ color: var(--mn-color-text-default);
4984
+ }
4985
+ .mn-site-footer__inner {
4986
+ display: flex;
4987
+ flex-direction: column;
4988
+ gap: var(--mn-space-12);
4989
+ max-width: var(--mn-width-wide);
4990
+ margin-inline: auto;
4991
+ padding: var(--mn-section-sm) var(--mn-width-gutter) var(--mn-space-8);
4992
+ }
4993
+ .mn-site-footer__top {
4994
+ display: grid;
4995
+ gap: var(--mn-space-10);
4996
+ }
4997
+ @media (min-width: 1024px) {
4998
+ .mn-site-footer__top {
4999
+ grid-template-columns: minmax(0, 18rem) minmax(0, 1fr);
5000
+ gap: var(--mn-space-16);
5001
+ }
5002
+ }
5003
+ .mn-site-footer__about {
5004
+ display: flex;
5005
+ flex-direction: column;
5006
+ gap: var(--mn-space-4);
5007
+ }
5008
+ .mn-site-footer__brand a {
5009
+ display: inline-flex;
5010
+ align-items: center;
5011
+ gap: var(--mn-space-2);
5012
+ min-height: 2.75rem;
5013
+ color: var(--mn-color-text-default);
5014
+ text-decoration: none;
5015
+ }
5016
+ .mn-site-footer__description {
5017
+ margin: 0;
5018
+ color: var(--mn-color-text-muted);
5019
+ font-size: var(--mn-text-sm);
5020
+ line-height: var(--mn-leading-relaxed);
5021
+ }
5022
+ .mn-site-footer__nav {
5023
+ display: grid;
5024
+ grid-template-columns: repeat(2, minmax(0, 1fr));
5025
+ gap: var(--mn-space-8) var(--mn-space-6);
5026
+ }
5027
+ @media (min-width: 768px) {
5028
+ .mn-site-footer__nav {
5029
+ grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
5030
+ }
5031
+ }
5032
+ .mn-site-footer__heading {
5033
+ margin: 0 0 var(--mn-space-3);
5034
+ color: var(--mn-color-text-default);
5035
+ font-size: var(--mn-text-sm);
5036
+ font-weight: var(--mn-weight-semibold);
5037
+ }
5038
+ .mn-site-footer ul {
5039
+ display: flex;
5040
+ flex-direction: column;
5041
+ margin: 0;
5042
+ padding: 0;
5043
+ list-style: none;
5044
+ }
5045
+ .mn-site-footer__link {
5046
+ display: inline-flex;
5047
+ align-items: center;
5048
+ min-height: 2rem;
5049
+ color: var(--mn-color-text-muted);
5050
+ font-size: var(--mn-text-sm);
5051
+ text-decoration: none;
5052
+ transition: color var(--mn-duration-fast) var(--mn-ease-standard);
5053
+ }
5054
+ .mn-site-footer__link:hover {
5055
+ color: var(--mn-color-text-default);
5056
+ }
5057
+ .mn-site-footer__link:focus-visible {
5058
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
5059
+ outline-offset: 2px;
5060
+ border-radius: var(--mn-radius-xs);
5061
+ }
5062
+ .mn-site-footer__bottom {
5063
+ display: flex;
5064
+ flex-wrap: wrap;
5065
+ align-items: center;
5066
+ gap: var(--mn-space-2) var(--mn-space-6);
5067
+ padding-top: var(--mn-space-6);
5068
+ border-top: 1px solid var(--mn-color-border-subtle);
5069
+ }
5070
+ .mn-site-footer__legal {
5071
+ margin: 0;
5072
+ color: var(--mn-color-text-subtle);
5073
+ font-size: var(--mn-text-xs);
5074
+ }
5075
+ .mn-site-footer ul.mn-site-footer__legal-links {
5076
+ flex-direction: row;
5077
+ flex-wrap: wrap;
5078
+ gap: 0 var(--mn-space-5);
5079
+ }
5080
+ .mn-site-footer__legal-links .mn-site-footer__link {
5081
+ font-size: var(--mn-text-xs);
5082
+ }
5083
+ .mn-site-footer__meta {
5084
+ margin-inline-start: auto;
5085
+ }
5086
+
5087
+ /* patterns/layout/marketing-hero/marketing-hero.css */
5088
+ /* Shared text roles ------------------------------------------------------- */
5089
+ .mn-eyebrow {
5090
+ margin: 0;
5091
+ color: var(--mn-color-accent-strong);
5092
+ font-size: var(--mn-text-sm);
5093
+ font-weight: var(--mn-weight-semibold);
5094
+ letter-spacing: var(--mn-tracking-snug);
5095
+ line-height: var(--mn-leading-snug);
5096
+ }
5097
+
5098
+ /* Hero --------------------------------------------------------------------- */
5099
+ .mn-hero {
5100
+ padding-block: var(--mn-section-md) var(--mn-section-sm);
5101
+ color: var(--mn-color-text-default);
5102
+ }
5103
+ .mn-hero[data-background='wash'] {
5104
+ background: var(--mn-gradient-wash);
5105
+ }
5106
+ .mn-hero__inner {
5107
+ display: grid;
5108
+ gap: var(--mn-space-16);
5109
+ max-width: var(--mn-width-wide);
5110
+ margin-inline: auto;
5111
+ padding-inline: var(--mn-width-gutter);
5112
+ }
5113
+ .mn-hero__copy {
5114
+ display: flex;
5115
+ flex-direction: column;
5116
+ align-items: flex-start;
5117
+ gap: var(--mn-space-5);
5118
+ }
5119
+ .mn-hero[data-layout='centered'] .mn-hero__copy {
5120
+ align-items: center;
5121
+ max-width: var(--mn-width-narrow);
5122
+ margin-inline: auto;
5123
+ text-align: center;
5124
+ }
5125
+ .mn-hero__title {
5126
+ margin: 0;
5127
+ font-size: var(--mn-display-xl);
5128
+ font-weight: var(--mn-display-xl-weight);
5129
+ letter-spacing: var(--mn-display-xl-tracking);
5130
+ line-height: var(--mn-display-xl-leading);
5131
+ text-wrap: balance;
5132
+ }
5133
+ .mn-hero__lead {
5134
+ max-width: 38rem;
5135
+ margin: 0;
5136
+ color: var(--mn-color-text-muted);
5137
+ font-size: var(--mn-lead);
5138
+ line-height: var(--mn-lead-leading);
5139
+ text-wrap: pretty;
5140
+ }
5141
+ .mn-hero__actions {
5142
+ display: flex;
5143
+ flex-wrap: wrap;
5144
+ gap: var(--mn-space-3);
5145
+ margin-top: var(--mn-space-3);
5146
+ }
5147
+ .mn-hero[data-layout='centered'] .mn-hero__actions {
5148
+ justify-content: center;
5149
+ }
5150
+ @media (max-width: 639px) {
5151
+ .mn-hero__actions {
5152
+ flex-direction: column;
5153
+ align-self: stretch;
5154
+ }
5155
+ .mn-hero__actions .mn-button {
5156
+ width: 100%;
5157
+ }
5158
+ }
5159
+ .mn-hero__actions .mn-button {
5160
+ --_h: var(--mn-control-xl);
5161
+ --_px: var(--mn-space-6);
5162
+ --_fs: var(--mn-text-base);
5163
+ border-radius: var(--mn-radius-full);
5164
+ }
5165
+ .mn-hero__note {
5166
+ margin: 0;
5167
+ color: var(--mn-color-text-muted);
5168
+ font-size: var(--mn-text-sm);
5169
+ }
5170
+ @media (min-width: 1024px) {
5171
+ .mn-hero[data-layout='split'] .mn-hero__inner {
5172
+ grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
5173
+ align-items: center;
5174
+ }
5175
+ }
5176
+
5177
+ /* patterns/layout/marketing-section-blocks/marketing-section-blocks.css */
5178
+ /* Inverse scope: remap semantic roles so nested components stay readable. */
5179
+ .mn-msection[data-tone='inverse'],
5180
+ .mn-cta[data-tone='inverse'] {
5181
+ --mn-color-text-default: var(--mn-color-text-inverse);
5182
+ --mn-color-text-muted: var(--mn-color-text-inverse-muted);
5183
+ --mn-color-text-subtle: var(--mn-color-text-inverse-muted);
5184
+ --mn-color-border-subtle: var(--mn-color-border-inverse);
5185
+ --mn-color-border-default: var(--mn-color-border-inverse);
5186
+ --mn-color-bg-surface: color-mix(
5187
+ in srgb,
5188
+ var(--mn-color-text-inverse) 5%,
5189
+ var(--mn-color-bg-inverse)
5190
+ );
5191
+ --mn-color-bg-raised: color-mix(
5192
+ in srgb,
5193
+ var(--mn-color-text-inverse) 7%,
5194
+ var(--mn-color-bg-inverse)
5195
+ );
5196
+ --mn-color-bg-subtle: color-mix(
5197
+ in srgb,
5198
+ var(--mn-color-text-inverse) 4%,
5199
+ var(--mn-color-bg-inverse)
5200
+ );
5201
+ --mn-color-bg-muted: color-mix(
5202
+ in srgb,
5203
+ var(--mn-color-text-inverse) 9%,
5204
+ var(--mn-color-bg-inverse)
5205
+ );
5206
+ --mn-color-accent-strong: var(--mn-color-accent-strong-inverse);
5207
+ --mn-color-accent-subtle: color-mix(
5208
+ in srgb,
5209
+ var(--mn-color-accent-strong-inverse) 14%,
5210
+ var(--mn-color-bg-inverse)
5211
+ );
5212
+ --mn-color-text-link: var(--mn-color-accent-strong-inverse);
5213
+ --mn-color-focus-ring: var(--mn-color-accent-strong-inverse);
5214
+ color: var(--mn-color-text-default);
5215
+ }
5216
+
5217
+ /*
5218
+ * In dark themes an inverse band would flip to a bright light slab. Instead it
5219
+ * becomes an elevated dark surface with a soft accent glow, using the regular
5220
+ * (already contrast-tested) dark roles: `inherit` undoes the remap above.
5221
+ */
5222
+ :is(.dark, [data-mn-theme='dark']) .mn-msection[data-tone='inverse'],
5223
+ :is(.dark, [data-mn-theme='dark']) .mn-cta[data-tone='inverse'] {
5224
+ --mn-color-text-default: inherit;
5225
+ --mn-color-text-muted: inherit;
5226
+ --mn-color-text-subtle: inherit;
5227
+ --mn-color-border-subtle: inherit;
5228
+ --mn-color-border-default: inherit;
5229
+ --mn-color-bg-surface: inherit;
5230
+ --mn-color-bg-raised: inherit;
5231
+ --mn-color-bg-subtle: inherit;
5232
+ --mn-color-bg-muted: inherit;
5233
+ --mn-color-accent-strong: inherit;
5234
+ --mn-color-accent-subtle: inherit;
5235
+ --mn-color-text-link: inherit;
5236
+ --mn-color-focus-ring: inherit;
5237
+ }
5238
+
5239
+ /* Sections ----------------------------------------------------------------- */
5240
+ .mn-msection {
5241
+ color: var(--mn-color-text-default);
5242
+ }
5243
+ .mn-msection[data-spacing='sm'] {
5244
+ padding-block: var(--mn-section-sm);
5245
+ }
5246
+ .mn-msection[data-spacing='md'] {
5247
+ padding-block: var(--mn-section-md);
5248
+ }
5249
+ .mn-msection[data-spacing='lg'] {
5250
+ padding-block: var(--mn-section-lg);
5251
+ }
5252
+ .mn-msection[data-tone='subtle'] {
5253
+ background: var(--mn-color-bg-subtle);
5254
+ }
5255
+ .mn-msection[data-tone='inverse'] {
5256
+ background: var(--mn-gradient-inverse);
5257
+ }
5258
+ :is(.dark, [data-mn-theme='dark']) .mn-msection[data-tone='inverse'],
5259
+ :is(.dark, [data-mn-theme='dark']) .mn-cta[data-tone='inverse'] {
5260
+ border-block: 1px solid var(--mn-color-border-subtle);
5261
+ background:
5262
+ radial-gradient(55% 80% at 100% 0%, var(--mn-color-accent-subtle) 0%, transparent 100%),
5263
+ var(--mn-color-bg-surface);
5264
+ }
5265
+ .mn-msection__inner {
5266
+ display: flex;
5267
+ flex-direction: column;
5268
+ gap: var(--mn-space-12);
5269
+ margin-inline: auto;
5270
+ padding-inline: var(--mn-width-gutter);
5271
+ }
5272
+ .mn-msection__inner[data-width='narrow'] {
5273
+ max-width: calc(var(--mn-width-narrow) + 2 * var(--mn-width-gutter));
5274
+ }
5275
+ .mn-msection__inner[data-width='content'] {
5276
+ max-width: calc(var(--mn-width-content) + 2 * var(--mn-width-gutter));
5277
+ }
5278
+ .mn-msection__inner[data-width='wide'] {
5279
+ max-width: calc(var(--mn-width-wide) + 2 * var(--mn-width-gutter));
5280
+ }
5281
+
5282
+ .mn-msection-header {
5283
+ display: flex;
5284
+ flex-wrap: wrap;
5285
+ align-items: flex-end;
5286
+ justify-content: space-between;
5287
+ gap: var(--mn-space-6);
5288
+ }
5289
+ .mn-msection-header__text {
5290
+ display: flex;
5291
+ flex-direction: column;
5292
+ gap: var(--mn-space-4);
5293
+ max-width: var(--mn-width-narrow);
5294
+ }
5295
+ .mn-msection-header[data-align='center'] {
5296
+ justify-content: center;
5297
+ text-align: center;
5298
+ }
5299
+ .mn-msection-header[data-align='center'] .mn-msection-header__text {
5300
+ align-items: center;
5301
+ margin-inline: auto;
5302
+ }
5303
+ .mn-msection-header__title {
5304
+ margin: 0;
5305
+ font-size: var(--mn-display-md);
5306
+ font-weight: var(--mn-display-md-weight);
5307
+ letter-spacing: var(--mn-display-md-tracking);
5308
+ line-height: var(--mn-display-md-leading);
5309
+ text-wrap: balance;
5310
+ }
5311
+ .mn-msection-header[data-size='lg'] .mn-msection-header__title {
5312
+ font-size: var(--mn-display-lg);
5313
+ font-weight: var(--mn-display-lg-weight);
5314
+ letter-spacing: var(--mn-display-lg-tracking);
5315
+ line-height: var(--mn-display-lg-leading);
5316
+ }
5317
+ .mn-msection-header__description {
5318
+ margin: 0;
5319
+ color: var(--mn-color-text-muted);
5320
+ font-size: var(--mn-lead);
5321
+ line-height: var(--mn-lead-leading);
5322
+ text-wrap: pretty;
5323
+ }
5324
+
5325
+ /* Feature grid ------------------------------------------------------------- */
5326
+ .mn-feature-grid {
5327
+ display: grid;
5328
+ grid-template-columns: minmax(0, 1fr);
5329
+ gap: var(--mn-space-4);
5330
+ margin: 0;
5331
+ padding: 0;
5332
+ list-style: none;
5333
+ }
5334
+ @media (min-width: 640px) {
5335
+ .mn-feature-grid:not([data-columns='2']) {
5336
+ grid-template-columns: repeat(2, minmax(0, 1fr));
5337
+ }
5338
+ .mn-feature-grid[data-columns='2'] {
5339
+ grid-template-columns: repeat(2, minmax(0, 1fr));
5340
+ }
5341
+ }
5342
+ @media (min-width: 1024px) {
5343
+ .mn-feature-grid[data-columns='3'] {
5344
+ grid-template-columns: repeat(3, minmax(0, 1fr));
5345
+ }
5346
+ .mn-feature-grid[data-columns='4'] {
5347
+ grid-template-columns: repeat(4, minmax(0, 1fr));
5348
+ }
5349
+ }
5350
+ .mn-feature {
5351
+ position: relative;
5352
+ display: flex;
5353
+ flex-direction: column;
5354
+ gap: var(--mn-space-2);
5355
+ }
5356
+ .mn-feature-grid[data-variant='card'] .mn-feature {
5357
+ padding: var(--mn-space-6);
5358
+ border: 1px solid var(--mn-color-border-subtle);
5359
+ border-radius: var(--mn-radius-xl);
5360
+ background: var(--mn-color-bg-surface);
5361
+ transition:
5362
+ border-color var(--mn-duration-base) var(--mn-ease-standard),
5363
+ box-shadow var(--mn-duration-base) var(--mn-ease-standard);
5364
+ }
5365
+ .mn-feature-grid[data-variant='card'] .mn-feature[data-linked]:hover {
5366
+ border-color: var(--mn-color-border-strong);
5367
+ box-shadow: var(--mn-shadow-md);
5368
+ }
5369
+ .mn-feature__icon {
5370
+ display: inline-flex;
5371
+ align-items: center;
5372
+ justify-content: center;
5373
+ width: 2.5rem;
5374
+ height: 2.5rem;
5375
+ margin-bottom: var(--mn-space-3);
5376
+ border-radius: var(--mn-radius-lg);
5377
+ background: var(--mn-color-accent-subtle);
5378
+ color: var(--mn-color-accent-strong);
5379
+ }
5380
+ .mn-feature__icon svg {
5381
+ width: 1.25rem;
5382
+ height: 1.25rem;
5383
+ }
5384
+ .mn-feature__title {
5385
+ margin: 0;
5386
+ color: var(--mn-color-text-default);
5387
+ font-size: var(--mn-text-base);
5388
+ font-weight: var(--mn-weight-semibold);
5389
+ letter-spacing: var(--mn-tracking-snug);
5390
+ line-height: var(--mn-leading-snug);
5391
+ }
5392
+ .mn-feature__link {
5393
+ color: inherit;
5394
+ text-decoration: none;
5395
+ }
5396
+ .mn-feature__link::after {
5397
+ content: '';
5398
+ position: absolute;
5399
+ inset: 0;
5400
+ border-radius: inherit;
5401
+ }
5402
+ .mn-feature__link:focus-visible {
5403
+ outline: none;
5404
+ }
5405
+ .mn-feature:has(.mn-feature__link:focus-visible) {
5406
+ outline: var(--mn-focus-ring-width) solid var(--mn-color-focus-ring);
5407
+ outline-offset: 2px;
5408
+ }
5409
+ .mn-feature__description {
5410
+ margin: 0;
5411
+ color: var(--mn-color-text-muted);
5412
+ font-size: var(--mn-text-sm);
5413
+ line-height: var(--mn-leading-relaxed);
5414
+ }
5415
+
5416
+ /* Product frame ------------------------------------------------------------ */
5417
+ .mn-product-frame {
5418
+ margin: 0;
5419
+ }
5420
+ .mn-product-frame[data-backdrop] {
5421
+ padding: clamp(1rem, 0.25rem + 3vw, 3rem);
5422
+ border-radius: calc(var(--mn-radius-2xl) + 0.75rem);
5423
+ border: 1px solid var(--mn-color-border-subtle);
5424
+ background:
5425
+ radial-gradient(90% 70% at 50% 0%, var(--mn-color-accent-subtle) 0%, transparent 100%),
5426
+ var(--mn-color-bg-subtle);
5427
+ }
5428
+ .mn-product-frame__window {
5429
+ overflow: hidden;
5430
+ border: 1px solid var(--mn-color-border-subtle);
5431
+ border-radius: var(--mn-radius-2xl);
5432
+ background: var(--mn-color-bg-surface);
5433
+ box-shadow: var(--mn-shadow-xl);
5434
+ }
5435
+ .mn-product-frame__chrome {
5436
+ display: flex;
5437
+ align-items: center;
5438
+ gap: var(--mn-space-3);
5439
+ height: 2.5rem;
5440
+ padding-inline: var(--mn-space-4);
5441
+ border-bottom: 1px solid var(--mn-color-border-subtle);
5442
+ background: var(--mn-color-bg-subtle);
5443
+ }
5444
+ .mn-product-frame__dots {
5445
+ display: inline-flex;
5446
+ flex: 1;
5447
+ gap: 0.375rem;
5448
+ }
5449
+ .mn-product-frame__dots i {
5450
+ width: 0.625rem;
5451
+ height: 0.625rem;
5452
+ border-radius: var(--mn-radius-full);
5453
+ background: var(--mn-color-bg-emphasis);
5454
+ }
5455
+ .mn-product-frame__title {
5456
+ color: var(--mn-color-text-muted);
5457
+ font-size: var(--mn-text-xs);
5458
+ font-weight: var(--mn-weight-medium);
5459
+ }
5460
+ .mn-product-frame__url {
5461
+ min-width: 0;
5462
+ max-width: 60%;
5463
+ padding: var(--mn-space-1) var(--mn-space-4);
5464
+ overflow: hidden;
5465
+ border-radius: var(--mn-radius-full);
5466
+ background: var(--mn-color-bg-surface);
5467
+ color: var(--mn-color-text-muted);
5468
+ font-size: var(--mn-text-xs);
5469
+ text-overflow: ellipsis;
5470
+ white-space: nowrap;
5471
+ }
5472
+ .mn-product-frame__spacer {
5473
+ flex: 1;
5474
+ }
5475
+ .mn-product-frame__caption {
5476
+ margin-top: var(--mn-space-4);
5477
+ color: var(--mn-color-text-muted);
5478
+ font-size: var(--mn-text-sm);
5479
+ text-align: center;
5480
+ }
5481
+
5482
+ /* Stat strip --------------------------------------------------------------- */
5483
+ .mn-stat-strip {
5484
+ display: grid;
5485
+ grid-template-columns: repeat(2, minmax(0, 1fr));
5486
+ margin: 0;
5487
+ border-block: 1px solid var(--mn-color-border-subtle);
5488
+ }
5489
+ @media (min-width: 1024px) {
5490
+ .mn-stat-strip[data-count='3'] {
5491
+ grid-template-columns: repeat(3, minmax(0, 1fr));
5492
+ }
5493
+ .mn-stat-strip[data-count='4'] {
5494
+ grid-template-columns: repeat(4, minmax(0, 1fr));
5495
+ }
5496
+ }
5497
+ .mn-stat-strip__item {
5498
+ display: flex;
5499
+ flex-direction: column;
5500
+ gap: var(--mn-space-1);
5501
+ padding: var(--mn-space-6) var(--mn-space-6) var(--mn-space-6) 0;
5502
+ }
5503
+ .mn-stat-strip__item + .mn-stat-strip__item {
5504
+ padding-inline-start: var(--mn-space-6);
5505
+ border-inline-start: 1px solid var(--mn-color-border-subtle);
5506
+ }
5507
+ @media (max-width: 1023px) {
5508
+ .mn-stat-strip__item:nth-child(odd) {
5509
+ padding-inline-start: 0;
5510
+ border-inline-start: 0;
5511
+ }
5512
+ .mn-stat-strip__item:nth-child(n + 3) {
5513
+ border-top: 1px solid var(--mn-color-border-subtle);
5514
+ }
5515
+ }
5516
+ .mn-stat-strip__label {
5517
+ order: 2;
5518
+ color: var(--mn-color-text-muted);
5519
+ font-size: var(--mn-text-sm);
5520
+ }
5521
+ .mn-stat-strip__value {
5522
+ order: 1;
5523
+ margin: 0;
5524
+ color: var(--mn-color-text-default);
5525
+ font-size: var(--mn-display-md);
5526
+ font-weight: var(--mn-display-md-weight);
5527
+ letter-spacing: var(--mn-display-md-tracking);
5528
+ line-height: var(--mn-display-md-leading);
5529
+ font-variant-numeric: tabular-nums;
5530
+ }
5531
+ .mn-stat-strip__description {
5532
+ order: 3;
5533
+ margin: 0;
5534
+ color: var(--mn-color-text-subtle);
5535
+ font-size: var(--mn-text-xs);
5536
+ }
5537
+
5538
+ /* CTA band ----------------------------------------------------------------- */
5539
+ .mn-cta {
5540
+ display: flex;
5541
+ flex-direction: column;
5542
+ align-items: flex-start;
5543
+ gap: var(--mn-space-8);
5544
+ padding: clamp(2rem, 1rem + 4vw, 4rem);
5545
+ border-radius: var(--mn-radius-2xl);
5546
+ color: var(--mn-color-text-default);
5547
+ }
5548
+ @media (min-width: 1024px) {
5549
+ .mn-cta {
5550
+ flex-direction: row;
5551
+ align-items: center;
5552
+ justify-content: space-between;
5553
+ }
5554
+ }
5555
+ .mn-cta[data-tone='subtle'] {
5556
+ border: 1px solid var(--mn-color-border-subtle);
5557
+ background: var(--mn-color-bg-subtle);
5558
+ }
5559
+ .mn-cta[data-tone='inverse'] {
5560
+ background: var(--mn-gradient-inverse);
5561
+ }
5562
+ .mn-cta[data-tone='accent'] {
5563
+ background: var(--mn-gradient-accent);
5564
+ color: var(--mn-color-accent-on-solid);
5565
+ --mn-color-focus-ring: var(--mn-color-accent-on-solid);
5566
+ }
5567
+ .mn-cta__text {
5568
+ display: flex;
5569
+ flex-direction: column;
5570
+ gap: var(--mn-space-3);
5571
+ max-width: 38rem;
5572
+ }
5573
+ .mn-cta__title {
5574
+ margin: 0;
5575
+ font-size: var(--mn-display-md);
5576
+ font-weight: var(--mn-display-md-weight);
5577
+ letter-spacing: var(--mn-display-md-tracking);
5578
+ line-height: var(--mn-display-md-leading);
5579
+ text-wrap: balance;
5580
+ }
5581
+ .mn-cta__description {
5582
+ margin: 0;
5583
+ color: var(--mn-color-text-muted);
5584
+ font-size: var(--mn-lead);
5585
+ line-height: var(--mn-lead-leading);
5586
+ }
5587
+ .mn-cta[data-tone='accent'] .mn-cta__description {
5588
+ color: inherit;
5589
+ }
5590
+ .mn-cta__actions {
5591
+ display: flex;
5592
+ flex-wrap: wrap;
5593
+ flex-shrink: 0;
5594
+ gap: var(--mn-space-3);
5595
+ }
5596
+ .mn-cta__actions .mn-button {
5597
+ --_h: var(--mn-control-xl);
5598
+ --_px: var(--mn-space-6);
5599
+ --_fs: var(--mn-text-base);
5600
+ border-radius: var(--mn-radius-full);
5601
+ }
5602
+ /* On the accent band, buttons invert: the pair solid/on-solid is guaranteed. */
5603
+ .mn-cta[data-tone='accent'] .mn-button[data-variant='primary'] {
5604
+ --_bg: var(--mn-color-accent-on-solid);
5605
+ --_bg-hover: var(--mn-color-accent-on-solid);
5606
+ --_bg-active: var(--mn-color-accent-on-solid);
5607
+ --_fg: var(--mn-color-accent-solid);
5608
+ }
5609
+ .mn-cta[data-tone='accent'] .mn-button[data-variant='primary']:hover {
5610
+ box-shadow: var(--mn-shadow-md);
5611
+ }
5612
+ .mn-cta[data-tone='accent'] .mn-button[data-variant='secondary'],
5613
+ .mn-cta[data-tone='accent'] .mn-button[data-variant='ghost'] {
5614
+ --_bg: transparent;
5615
+ --_bg-hover: color-mix(in srgb, var(--mn-color-accent-on-solid) 12%, transparent);
5616
+ --_bg-active: color-mix(in srgb, var(--mn-color-accent-on-solid) 18%, transparent);
5617
+ --_fg: var(--mn-color-accent-on-solid);
5618
+ --_border: color-mix(in srgb, var(--mn-color-accent-on-solid) 45%, transparent);
5619
+ box-shadow: none;
5620
+ }
1984
5621
  }