@rookcom/monarch-react 0.0.0-stage → 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 (589) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +4 -2
  3. package/dist/components/actions/button/button.d.ts +40 -0
  4. package/dist/components/actions/button/button.d.ts.map +1 -0
  5. package/dist/components/actions/button/button.js +69 -0
  6. package/dist/components/actions/button/button.js.map +1 -0
  7. package/dist/components/actions/button/index.d.ts +2 -0
  8. package/dist/components/actions/button/index.d.ts.map +1 -0
  9. package/dist/components/actions/button/index.js +2 -0
  10. package/dist/components/actions/button/index.js.map +1 -0
  11. package/dist/components/actions/copy-button/copy-button.d.ts +71 -0
  12. package/dist/components/actions/copy-button/copy-button.d.ts.map +1 -0
  13. package/dist/components/actions/copy-button/copy-button.js +150 -0
  14. package/dist/components/actions/copy-button/copy-button.js.map +1 -0
  15. package/dist/components/actions/copy-button/index.d.ts +2 -0
  16. package/dist/components/actions/copy-button/index.d.ts.map +1 -0
  17. package/dist/components/actions/copy-button/index.js +2 -0
  18. package/dist/components/actions/copy-button/index.js.map +1 -0
  19. package/dist/components/actions/copy-field/copy-field.d.ts +47 -0
  20. package/dist/components/actions/copy-field/copy-field.d.ts.map +1 -0
  21. package/dist/components/actions/copy-field/copy-field.js +37 -0
  22. package/dist/components/actions/copy-field/copy-field.js.map +1 -0
  23. package/dist/components/actions/copy-field/index.d.ts +2 -0
  24. package/dist/components/actions/copy-field/index.d.ts.map +1 -0
  25. package/dist/components/actions/copy-field/index.js +2 -0
  26. package/dist/components/actions/copy-field/index.js.map +1 -0
  27. package/dist/components/billing/money/index.d.ts +2 -0
  28. package/dist/components/billing/money/index.d.ts.map +1 -0
  29. package/dist/components/billing/money/index.js +2 -0
  30. package/dist/components/billing/money/index.js.map +1 -0
  31. package/dist/components/billing/money/money.d.ts +44 -0
  32. package/dist/components/billing/money/money.d.ts.map +1 -0
  33. package/dist/components/billing/money/money.js +75 -0
  34. package/dist/components/billing/money/money.js.map +1 -0
  35. package/dist/components/data-display/accordion/accordion.d.ts +17 -0
  36. package/dist/components/data-display/accordion/accordion.d.ts.map +1 -0
  37. package/dist/components/data-display/accordion/accordion.js +23 -0
  38. package/dist/components/data-display/accordion/accordion.js.map +1 -0
  39. package/dist/components/data-display/accordion/index.d.ts +2 -0
  40. package/dist/components/data-display/accordion/index.d.ts.map +1 -0
  41. package/dist/components/data-display/accordion/index.js +2 -0
  42. package/dist/components/data-display/accordion/index.js.map +1 -0
  43. package/dist/components/data-display/badge/badge.d.ts +13 -0
  44. package/dist/components/data-display/badge/badge.d.ts.map +1 -0
  45. package/dist/components/data-display/badge/badge.js +7 -0
  46. package/dist/components/data-display/badge/badge.js.map +1 -0
  47. package/dist/components/data-display/badge/index.d.ts +2 -0
  48. package/dist/components/data-display/badge/index.d.ts.map +1 -0
  49. package/dist/components/data-display/badge/index.js +2 -0
  50. package/dist/components/data-display/badge/index.js.map +1 -0
  51. package/dist/components/data-display/card/card.d.ts +18 -0
  52. package/dist/components/data-display/card/card.d.ts.map +1 -0
  53. package/dist/components/data-display/card/card.js +21 -0
  54. package/dist/components/data-display/card/card.js.map +1 -0
  55. package/dist/components/data-display/card/index.d.ts +2 -0
  56. package/dist/components/data-display/card/index.d.ts.map +1 -0
  57. package/dist/components/data-display/card/index.js +2 -0
  58. package/dist/components/data-display/card/index.js.map +1 -0
  59. package/dist/components/data-display/description-list/description-list.d.ts +17 -0
  60. package/dist/components/data-display/description-list/description-list.d.ts.map +1 -0
  61. package/dist/components/data-display/description-list/description-list.js +10 -0
  62. package/dist/components/data-display/description-list/description-list.js.map +1 -0
  63. package/dist/components/data-display/description-list/index.d.ts +2 -0
  64. package/dist/components/data-display/description-list/index.d.ts.map +1 -0
  65. package/dist/components/data-display/description-list/index.js +2 -0
  66. package/dist/components/data-display/description-list/index.js.map +1 -0
  67. package/dist/components/data-display/progress-bar/index.d.ts +2 -0
  68. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  69. package/dist/components/data-display/progress-bar/index.js +2 -0
  70. package/dist/components/data-display/progress-bar/index.js.map +1 -0
  71. package/dist/components/data-display/progress-bar/progress-bar.d.ts +57 -0
  72. package/dist/components/data-display/progress-bar/progress-bar.d.ts.map +1 -0
  73. package/dist/components/data-display/progress-bar/progress-bar.js +57 -0
  74. package/dist/components/data-display/progress-bar/progress-bar.js.map +1 -0
  75. package/dist/components/data-display/relative-time/index.d.ts +2 -0
  76. package/dist/components/data-display/relative-time/index.d.ts.map +1 -0
  77. package/dist/components/data-display/relative-time/index.js +2 -0
  78. package/dist/components/data-display/relative-time/index.js.map +1 -0
  79. package/dist/components/data-display/relative-time/relative-time.d.ts +66 -0
  80. package/dist/components/data-display/relative-time/relative-time.d.ts.map +1 -0
  81. package/dist/components/data-display/relative-time/relative-time.js +102 -0
  82. package/dist/components/data-display/relative-time/relative-time.js.map +1 -0
  83. package/dist/components/data-display/stat-card/index.d.ts +2 -0
  84. package/dist/components/data-display/stat-card/index.d.ts.map +1 -0
  85. package/dist/components/data-display/stat-card/index.js +2 -0
  86. package/dist/components/data-display/stat-card/index.js.map +1 -0
  87. package/dist/components/data-display/stat-card/stat-card.d.ts +19 -0
  88. package/dist/components/data-display/stat-card/stat-card.d.ts.map +1 -0
  89. package/dist/components/data-display/stat-card/stat-card.js +11 -0
  90. package/dist/components/data-display/stat-card/stat-card.js.map +1 -0
  91. package/dist/components/data-display/status-badge/index.d.ts +2 -0
  92. package/dist/components/data-display/status-badge/index.d.ts.map +1 -0
  93. package/dist/components/data-display/status-badge/index.js +2 -0
  94. package/dist/components/data-display/status-badge/index.js.map +1 -0
  95. package/dist/components/data-display/status-badge/status-badge.d.ts +169 -0
  96. package/dist/components/data-display/status-badge/status-badge.d.ts.map +1 -0
  97. package/dist/components/data-display/status-badge/status-badge.js +139 -0
  98. package/dist/components/data-display/status-badge/status-badge.js.map +1 -0
  99. package/dist/components/data-grid/data-table/data-table.d.ts +53 -0
  100. package/dist/components/data-grid/data-table/data-table.d.ts.map +1 -0
  101. package/dist/components/data-grid/data-table/data-table.js +47 -0
  102. package/dist/components/data-grid/data-table/data-table.js.map +1 -0
  103. package/dist/components/data-grid/data-table/index.d.ts +2 -0
  104. package/dist/components/data-grid/data-table/index.d.ts.map +1 -0
  105. package/dist/components/data-grid/data-table/index.js +2 -0
  106. package/dist/components/data-grid/data-table/index.js.map +1 -0
  107. package/dist/components/data-grid/load-more/index.d.ts +2 -0
  108. package/dist/components/data-grid/load-more/index.d.ts.map +1 -0
  109. package/dist/components/data-grid/load-more/index.js +2 -0
  110. package/dist/components/data-grid/load-more/index.js.map +1 -0
  111. package/dist/components/data-grid/load-more/load-more.d.ts +97 -0
  112. package/dist/components/data-grid/load-more/load-more.d.ts.map +1 -0
  113. package/dist/components/data-grid/load-more/load-more.js +184 -0
  114. package/dist/components/data-grid/load-more/load-more.js.map +1 -0
  115. package/dist/components/feedback/alert/alert.d.ts +17 -0
  116. package/dist/components/feedback/alert/alert.d.ts.map +1 -0
  117. package/dist/components/feedback/alert/alert.js +17 -0
  118. package/dist/components/feedback/alert/alert.js.map +1 -0
  119. package/dist/components/feedback/alert/index.d.ts +2 -0
  120. package/dist/components/feedback/alert/index.d.ts.map +1 -0
  121. package/dist/components/feedback/alert/index.js +2 -0
  122. package/dist/components/feedback/alert/index.js.map +1 -0
  123. package/dist/components/feedback/callout-banner/callout-banner.d.ts +66 -0
  124. package/dist/components/feedback/callout-banner/callout-banner.d.ts.map +1 -0
  125. package/dist/components/feedback/callout-banner/callout-banner.js +35 -0
  126. package/dist/components/feedback/callout-banner/callout-banner.js.map +1 -0
  127. package/dist/components/feedback/callout-banner/index.d.ts +2 -0
  128. package/dist/components/feedback/callout-banner/index.d.ts.map +1 -0
  129. package/dist/components/feedback/callout-banner/index.js +2 -0
  130. package/dist/components/feedback/callout-banner/index.js.map +1 -0
  131. package/dist/components/feedback/empty-state/empty-state.d.ts +59 -0
  132. package/dist/components/feedback/empty-state/empty-state.d.ts.map +1 -0
  133. package/dist/components/feedback/empty-state/empty-state.js +16 -0
  134. package/dist/components/feedback/empty-state/empty-state.js.map +1 -0
  135. package/dist/components/feedback/empty-state/index.d.ts +2 -0
  136. package/dist/components/feedback/empty-state/index.d.ts.map +1 -0
  137. package/dist/components/feedback/empty-state/index.js +2 -0
  138. package/dist/components/feedback/empty-state/index.js.map +1 -0
  139. package/dist/components/feedback/error-page/error-page.d.ts +66 -0
  140. package/dist/components/feedback/error-page/error-page.d.ts.map +1 -0
  141. package/dist/components/feedback/error-page/error-page.js +43 -0
  142. package/dist/components/feedback/error-page/error-page.js.map +1 -0
  143. package/dist/components/feedback/error-page/index.d.ts +2 -0
  144. package/dist/components/feedback/error-page/index.d.ts.map +1 -0
  145. package/dist/components/feedback/error-page/index.js +2 -0
  146. package/dist/components/feedback/error-page/index.js.map +1 -0
  147. package/dist/components/feedback/error-state/error-state.boundary.d.ts +45 -0
  148. package/dist/components/feedback/error-state/error-state.boundary.d.ts.map +1 -0
  149. package/dist/components/feedback/error-state/error-state.boundary.js +40 -0
  150. package/dist/components/feedback/error-state/error-state.boundary.js.map +1 -0
  151. package/dist/components/feedback/error-state/error-state.d.ts +51 -0
  152. package/dist/components/feedback/error-state/error-state.d.ts.map +1 -0
  153. package/dist/components/feedback/error-state/error-state.js +47 -0
  154. package/dist/components/feedback/error-state/error-state.js.map +1 -0
  155. package/dist/components/feedback/error-state/index.d.ts +3 -0
  156. package/dist/components/feedback/error-state/index.d.ts.map +1 -0
  157. package/dist/components/feedback/error-state/index.js +3 -0
  158. package/dist/components/feedback/error-state/index.js.map +1 -0
  159. package/dist/components/feedback/inline-error-retry/index.d.ts +2 -0
  160. package/dist/components/feedback/inline-error-retry/index.d.ts.map +1 -0
  161. package/dist/components/feedback/inline-error-retry/index.js +2 -0
  162. package/dist/components/feedback/inline-error-retry/index.js.map +1 -0
  163. package/dist/components/feedback/inline-error-retry/inline-error-retry.d.ts +41 -0
  164. package/dist/components/feedback/inline-error-retry/inline-error-retry.d.ts.map +1 -0
  165. package/dist/components/feedback/inline-error-retry/inline-error-retry.js +75 -0
  166. package/dist/components/feedback/inline-error-retry/inline-error-retry.js.map +1 -0
  167. package/dist/components/feedback/inline-notice/index.d.ts +2 -0
  168. package/dist/components/feedback/inline-notice/index.d.ts.map +1 -0
  169. package/dist/components/feedback/inline-notice/index.js +2 -0
  170. package/dist/components/feedback/inline-notice/index.js.map +1 -0
  171. package/dist/components/feedback/inline-notice/inline-notice.d.ts +40 -0
  172. package/dist/components/feedback/inline-notice/inline-notice.d.ts.map +1 -0
  173. package/dist/components/feedback/inline-notice/inline-notice.js +29 -0
  174. package/dist/components/feedback/inline-notice/inline-notice.js.map +1 -0
  175. package/dist/components/feedback/loading-state/index.d.ts +2 -0
  176. package/dist/components/feedback/loading-state/index.d.ts.map +1 -0
  177. package/dist/components/feedback/loading-state/index.js +2 -0
  178. package/dist/components/feedback/loading-state/index.js.map +1 -0
  179. package/dist/components/feedback/loading-state/loading-state.d.ts +17 -0
  180. package/dist/components/feedback/loading-state/loading-state.d.ts.map +1 -0
  181. package/dist/components/feedback/loading-state/loading-state.js +12 -0
  182. package/dist/components/feedback/loading-state/loading-state.js.map +1 -0
  183. package/dist/components/feedback/skeleton/index.d.ts +2 -0
  184. package/dist/components/feedback/skeleton/index.d.ts.map +1 -0
  185. package/dist/components/feedback/skeleton/index.js +2 -0
  186. package/dist/components/feedback/skeleton/index.js.map +1 -0
  187. package/dist/components/feedback/skeleton/skeleton.d.ts +12 -0
  188. package/dist/components/feedback/skeleton/skeleton.d.ts.map +1 -0
  189. package/dist/components/feedback/skeleton/skeleton.js +10 -0
  190. package/dist/components/feedback/skeleton/skeleton.js.map +1 -0
  191. package/dist/components/feedback/spinner/index.d.ts +2 -0
  192. package/dist/components/feedback/spinner/index.d.ts.map +1 -0
  193. package/dist/components/feedback/spinner/index.js +2 -0
  194. package/dist/components/feedback/spinner/index.js.map +1 -0
  195. package/dist/components/feedback/spinner/spinner.d.ts +12 -0
  196. package/dist/components/feedback/spinner/spinner.d.ts.map +1 -0
  197. package/dist/components/feedback/spinner/spinner.js +10 -0
  198. package/dist/components/feedback/spinner/spinner.js.map +1 -0
  199. package/dist/components/feedback/toast/index.d.ts +2 -0
  200. package/dist/components/feedback/toast/index.d.ts.map +1 -0
  201. package/dist/components/feedback/toast/index.js +2 -0
  202. package/dist/components/feedback/toast/index.js.map +1 -0
  203. package/dist/components/feedback/toast/toast.d.ts +109 -0
  204. package/dist/components/feedback/toast/toast.d.ts.map +1 -0
  205. package/dist/components/feedback/toast/toast.js +187 -0
  206. package/dist/components/feedback/toast/toast.js.map +1 -0
  207. package/dist/components/forms/checkbox/checkbox.d.ts +15 -0
  208. package/dist/components/forms/checkbox/checkbox.d.ts.map +1 -0
  209. package/dist/components/forms/checkbox/checkbox.js +23 -0
  210. package/dist/components/forms/checkbox/checkbox.js.map +1 -0
  211. package/dist/components/forms/checkbox/index.d.ts +2 -0
  212. package/dist/components/forms/checkbox/index.d.ts.map +1 -0
  213. package/dist/components/forms/checkbox/index.js +2 -0
  214. package/dist/components/forms/checkbox/index.js.map +1 -0
  215. package/dist/components/forms/combobox/combobox.d.ts +35 -0
  216. package/dist/components/forms/combobox/combobox.d.ts.map +1 -0
  217. package/dist/components/forms/combobox/combobox.js +152 -0
  218. package/dist/components/forms/combobox/combobox.js.map +1 -0
  219. package/dist/components/forms/combobox/index.d.ts +2 -0
  220. package/dist/components/forms/combobox/index.d.ts.map +1 -0
  221. package/dist/components/forms/combobox/index.js +2 -0
  222. package/dist/components/forms/combobox/index.js.map +1 -0
  223. package/dist/components/forms/form-field/form-field.d.ts +104 -0
  224. package/dist/components/forms/form-field/form-field.d.ts.map +1 -0
  225. package/dist/components/forms/form-field/form-field.js +114 -0
  226. package/dist/components/forms/form-field/form-field.js.map +1 -0
  227. package/dist/components/forms/form-field/index.d.ts +2 -0
  228. package/dist/components/forms/form-field/index.d.ts.map +1 -0
  229. package/dist/components/forms/form-field/index.js +2 -0
  230. package/dist/components/forms/form-field/index.js.map +1 -0
  231. package/dist/components/forms/inline-edit-text/index.d.ts +2 -0
  232. package/dist/components/forms/inline-edit-text/index.d.ts.map +1 -0
  233. package/dist/components/forms/inline-edit-text/index.js +2 -0
  234. package/dist/components/forms/inline-edit-text/index.js.map +1 -0
  235. package/dist/components/forms/inline-edit-text/inline-edit-text.d.ts +63 -0
  236. package/dist/components/forms/inline-edit-text/inline-edit-text.d.ts.map +1 -0
  237. package/dist/components/forms/inline-edit-text/inline-edit-text.js +175 -0
  238. package/dist/components/forms/inline-edit-text/inline-edit-text.js.map +1 -0
  239. package/dist/components/forms/otp-pin-input/index.d.ts +2 -0
  240. package/dist/components/forms/otp-pin-input/index.d.ts.map +1 -0
  241. package/dist/components/forms/otp-pin-input/index.js +2 -0
  242. package/dist/components/forms/otp-pin-input/index.js.map +1 -0
  243. package/dist/components/forms/otp-pin-input/otp-pin-input.d.ts +32 -0
  244. package/dist/components/forms/otp-pin-input/otp-pin-input.d.ts.map +1 -0
  245. package/dist/components/forms/otp-pin-input/otp-pin-input.js +73 -0
  246. package/dist/components/forms/otp-pin-input/otp-pin-input.js.map +1 -0
  247. package/dist/components/forms/segmented-control/index.d.ts +2 -0
  248. package/dist/components/forms/segmented-control/index.d.ts.map +1 -0
  249. package/dist/components/forms/segmented-control/index.js +2 -0
  250. package/dist/components/forms/segmented-control/index.js.map +1 -0
  251. package/dist/components/forms/segmented-control/segmented-control.d.ts +62 -0
  252. package/dist/components/forms/segmented-control/segmented-control.d.ts.map +1 -0
  253. package/dist/components/forms/segmented-control/segmented-control.js +139 -0
  254. package/dist/components/forms/segmented-control/segmented-control.js.map +1 -0
  255. package/dist/components/forms/select/index.d.ts +2 -0
  256. package/dist/components/forms/select/index.d.ts.map +1 -0
  257. package/dist/components/forms/select/index.js +2 -0
  258. package/dist/components/forms/select/index.js.map +1 -0
  259. package/dist/components/forms/select/select.d.ts +27 -0
  260. package/dist/components/forms/select/select.d.ts.map +1 -0
  261. package/dist/components/forms/select/select.js +39 -0
  262. package/dist/components/forms/select/select.js.map +1 -0
  263. package/dist/components/forms/switch/index.d.ts +2 -0
  264. package/dist/components/forms/switch/index.d.ts.map +1 -0
  265. package/dist/components/forms/switch/index.js +2 -0
  266. package/dist/components/forms/switch/index.js.map +1 -0
  267. package/dist/components/forms/switch/switch.d.ts +13 -0
  268. package/dist/components/forms/switch/switch.d.ts.map +1 -0
  269. package/dist/components/forms/switch/switch.js +21 -0
  270. package/dist/components/forms/switch/switch.js.map +1 -0
  271. package/dist/components/forms/switch-settings-list/index.d.ts +2 -0
  272. package/dist/components/forms/switch-settings-list/index.d.ts.map +1 -0
  273. package/dist/components/forms/switch-settings-list/index.js +2 -0
  274. package/dist/components/forms/switch-settings-list/index.js.map +1 -0
  275. package/dist/components/forms/switch-settings-list/switch-settings-list.d.ts +58 -0
  276. package/dist/components/forms/switch-settings-list/switch-settings-list.d.ts.map +1 -0
  277. package/dist/components/forms/switch-settings-list/switch-settings-list.js +123 -0
  278. package/dist/components/forms/switch-settings-list/switch-settings-list.js.map +1 -0
  279. package/dist/components/forms/tag-input/index.d.ts +2 -0
  280. package/dist/components/forms/tag-input/index.d.ts.map +1 -0
  281. package/dist/components/forms/tag-input/index.js +2 -0
  282. package/dist/components/forms/tag-input/index.js.map +1 -0
  283. package/dist/components/forms/tag-input/tag-input.d.ts +60 -0
  284. package/dist/components/forms/tag-input/tag-input.d.ts.map +1 -0
  285. package/dist/components/forms/tag-input/tag-input.js +258 -0
  286. package/dist/components/forms/tag-input/tag-input.js.map +1 -0
  287. package/dist/components/forms/text-field/index.d.ts +2 -0
  288. package/dist/components/forms/text-field/index.d.ts.map +1 -0
  289. package/dist/components/forms/text-field/index.js +2 -0
  290. package/dist/components/forms/text-field/index.js.map +1 -0
  291. package/dist/components/forms/text-field/text-field.d.ts +15 -0
  292. package/dist/components/forms/text-field/text-field.d.ts.map +1 -0
  293. package/dist/components/forms/text-field/text-field.js +14 -0
  294. package/dist/components/forms/text-field/text-field.js.map +1 -0
  295. package/dist/components/geo/location-fields/index.d.ts +2 -0
  296. package/dist/components/geo/location-fields/index.d.ts.map +1 -0
  297. package/dist/components/geo/location-fields/index.js +2 -0
  298. package/dist/components/geo/location-fields/index.js.map +1 -0
  299. package/dist/components/geo/location-fields/location-fields.d.ts +104 -0
  300. package/dist/components/geo/location-fields/location-fields.d.ts.map +1 -0
  301. package/dist/components/geo/location-fields/location-fields.js +248 -0
  302. package/dist/components/geo/location-fields/location-fields.js.map +1 -0
  303. package/dist/components/identity/avatar/avatar.d.ts +68 -0
  304. package/dist/components/identity/avatar/avatar.d.ts.map +1 -0
  305. package/dist/components/identity/avatar/avatar.js +73 -0
  306. package/dist/components/identity/avatar/avatar.js.map +1 -0
  307. package/dist/components/identity/avatar/index.d.ts +2 -0
  308. package/dist/components/identity/avatar/index.d.ts.map +1 -0
  309. package/dist/components/identity/avatar/index.js +2 -0
  310. package/dist/components/identity/avatar/index.js.map +1 -0
  311. package/dist/components/identity/username-availability-input/index.d.ts +2 -0
  312. package/dist/components/identity/username-availability-input/index.d.ts.map +1 -0
  313. package/dist/components/identity/username-availability-input/index.js +2 -0
  314. package/dist/components/identity/username-availability-input/index.js.map +1 -0
  315. package/dist/components/identity/username-availability-input/username-availability-input.d.ts +71 -0
  316. package/dist/components/identity/username-availability-input/username-availability-input.d.ts.map +1 -0
  317. package/dist/components/identity/username-availability-input/username-availability-input.js +110 -0
  318. package/dist/components/identity/username-availability-input/username-availability-input.js.map +1 -0
  319. package/dist/components/layout/section-header/index.d.ts +2 -0
  320. package/dist/components/layout/section-header/index.d.ts.map +1 -0
  321. package/dist/components/layout/section-header/index.js +2 -0
  322. package/dist/components/layout/section-header/index.js.map +1 -0
  323. package/dist/components/layout/section-header/section-header.d.ts +49 -0
  324. package/dist/components/layout/section-header/section-header.d.ts.map +1 -0
  325. package/dist/components/layout/section-header/section-header.js +39 -0
  326. package/dist/components/layout/section-header/section-header.js.map +1 -0
  327. package/dist/components/layout/separator/index.d.ts +2 -0
  328. package/dist/components/layout/separator/index.d.ts.map +1 -0
  329. package/dist/components/layout/separator/index.js +2 -0
  330. package/dist/components/layout/separator/index.js.map +1 -0
  331. package/dist/components/layout/separator/separator.d.ts +4 -0
  332. package/dist/components/layout/separator/separator.d.ts.map +1 -0
  333. package/dist/components/layout/separator/separator.js +9 -0
  334. package/dist/components/layout/separator/separator.js.map +1 -0
  335. package/dist/components/layout/visually-hidden/index.d.ts +2 -0
  336. package/dist/components/layout/visually-hidden/index.d.ts.map +1 -0
  337. package/dist/components/layout/visually-hidden/index.js +2 -0
  338. package/dist/components/layout/visually-hidden/index.js.map +1 -0
  339. package/dist/components/layout/visually-hidden/visually-hidden.d.ts +4 -0
  340. package/dist/components/layout/visually-hidden/visually-hidden.d.ts.map +1 -0
  341. package/dist/components/layout/visually-hidden/visually-hidden.js +7 -0
  342. package/dist/components/layout/visually-hidden/visually-hidden.js.map +1 -0
  343. package/dist/components/navigation/back-link/back-link.d.ts +18 -0
  344. package/dist/components/navigation/back-link/back-link.d.ts.map +1 -0
  345. package/dist/components/navigation/back-link/back-link.js +16 -0
  346. package/dist/components/navigation/back-link/back-link.js.map +1 -0
  347. package/dist/components/navigation/back-link/index.d.ts +2 -0
  348. package/dist/components/navigation/back-link/index.d.ts.map +1 -0
  349. package/dist/components/navigation/back-link/index.js +2 -0
  350. package/dist/components/navigation/back-link/index.js.map +1 -0
  351. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +19 -0
  352. package/dist/components/navigation/breadcrumb/breadcrumb.d.ts.map +1 -0
  353. package/dist/components/navigation/breadcrumb/breadcrumb.js +19 -0
  354. package/dist/components/navigation/breadcrumb/breadcrumb.js.map +1 -0
  355. package/dist/components/navigation/breadcrumb/index.d.ts +2 -0
  356. package/dist/components/navigation/breadcrumb/index.d.ts.map +1 -0
  357. package/dist/components/navigation/breadcrumb/index.js +2 -0
  358. package/dist/components/navigation/breadcrumb/index.js.map +1 -0
  359. package/dist/components/navigation/link/index.d.ts +2 -0
  360. package/dist/components/navigation/link/index.d.ts.map +1 -0
  361. package/dist/components/navigation/link/index.js +2 -0
  362. package/dist/components/navigation/link/index.js.map +1 -0
  363. package/dist/components/navigation/link/link.d.ts +13 -0
  364. package/dist/components/navigation/link/link.d.ts.map +1 -0
  365. package/dist/components/navigation/link/link.js +18 -0
  366. package/dist/components/navigation/link/link.js.map +1 -0
  367. package/dist/components/navigation/pagination/index.d.ts +2 -0
  368. package/dist/components/navigation/pagination/index.d.ts.map +1 -0
  369. package/dist/components/navigation/pagination/index.js +2 -0
  370. package/dist/components/navigation/pagination/index.js.map +1 -0
  371. package/dist/components/navigation/pagination/pagination.d.ts +18 -0
  372. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -0
  373. package/dist/components/navigation/pagination/pagination.js +40 -0
  374. package/dist/components/navigation/pagination/pagination.js.map +1 -0
  375. package/dist/components/navigation/tabs/index.d.ts +2 -0
  376. package/dist/components/navigation/tabs/index.d.ts.map +1 -0
  377. package/dist/components/navigation/tabs/index.js +2 -0
  378. package/dist/components/navigation/tabs/index.js.map +1 -0
  379. package/dist/components/navigation/tabs/tabs.d.ts +121 -0
  380. package/dist/components/navigation/tabs/tabs.d.ts.map +1 -0
  381. package/dist/components/navigation/tabs/tabs.js +127 -0
  382. package/dist/components/navigation/tabs/tabs.js.map +1 -0
  383. package/dist/components/overlays/confirm-dialog/confirm-dialog.d.ts +107 -0
  384. package/dist/components/overlays/confirm-dialog/confirm-dialog.d.ts.map +1 -0
  385. package/dist/components/overlays/confirm-dialog/confirm-dialog.js +186 -0
  386. package/dist/components/overlays/confirm-dialog/confirm-dialog.js.map +1 -0
  387. package/dist/components/overlays/confirm-dialog/index.d.ts +2 -0
  388. package/dist/components/overlays/confirm-dialog/index.d.ts.map +1 -0
  389. package/dist/components/overlays/confirm-dialog/index.js +2 -0
  390. package/dist/components/overlays/confirm-dialog/index.js.map +1 -0
  391. package/dist/components/overlays/dialog/dialog.d.ts +48 -0
  392. package/dist/components/overlays/dialog/dialog.d.ts.map +1 -0
  393. package/dist/components/overlays/dialog/dialog.js +35 -0
  394. package/dist/components/overlays/dialog/dialog.js.map +1 -0
  395. package/dist/components/overlays/dialog/index.d.ts +2 -0
  396. package/dist/components/overlays/dialog/index.d.ts.map +1 -0
  397. package/dist/components/overlays/dialog/index.js +2 -0
  398. package/dist/components/overlays/dialog/index.js.map +1 -0
  399. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.ts +24 -0
  400. package/dist/components/overlays/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  401. package/dist/components/overlays/dropdown-menu/dropdown-menu.js +41 -0
  402. package/dist/components/overlays/dropdown-menu/dropdown-menu.js.map +1 -0
  403. package/dist/components/overlays/dropdown-menu/index.d.ts +2 -0
  404. package/dist/components/overlays/dropdown-menu/index.d.ts.map +1 -0
  405. package/dist/components/overlays/dropdown-menu/index.js +2 -0
  406. package/dist/components/overlays/dropdown-menu/index.js.map +1 -0
  407. package/dist/components/overlays/popover/index.d.ts +2 -0
  408. package/dist/components/overlays/popover/index.d.ts.map +1 -0
  409. package/dist/components/overlays/popover/index.js +2 -0
  410. package/dist/components/overlays/popover/index.js.map +1 -0
  411. package/dist/components/overlays/popover/popover.d.ts +8 -0
  412. package/dist/components/overlays/popover/popover.d.ts.map +1 -0
  413. package/dist/components/overlays/popover/popover.js +14 -0
  414. package/dist/components/overlays/popover/popover.js.map +1 -0
  415. package/dist/components/overlays/responsive-dialog/index.d.ts +2 -0
  416. package/dist/components/overlays/responsive-dialog/index.d.ts.map +1 -0
  417. package/dist/components/overlays/responsive-dialog/index.js +2 -0
  418. package/dist/components/overlays/responsive-dialog/index.js.map +1 -0
  419. package/dist/components/overlays/responsive-dialog/responsive-dialog.d.ts +25 -0
  420. package/dist/components/overlays/responsive-dialog/responsive-dialog.d.ts.map +1 -0
  421. package/dist/components/overlays/responsive-dialog/responsive-dialog.js +22 -0
  422. package/dist/components/overlays/responsive-dialog/responsive-dialog.js.map +1 -0
  423. package/dist/components/overlays/sheet/index.d.ts +2 -0
  424. package/dist/components/overlays/sheet/index.d.ts.map +1 -0
  425. package/dist/components/overlays/sheet/index.js +2 -0
  426. package/dist/components/overlays/sheet/index.js.map +1 -0
  427. package/dist/components/overlays/sheet/sheet.d.ts +53 -0
  428. package/dist/components/overlays/sheet/sheet.d.ts.map +1 -0
  429. package/dist/components/overlays/sheet/sheet.js +43 -0
  430. package/dist/components/overlays/sheet/sheet.js.map +1 -0
  431. package/dist/components/overlays/tooltip/index.d.ts +2 -0
  432. package/dist/components/overlays/tooltip/index.d.ts.map +1 -0
  433. package/dist/components/overlays/tooltip/index.js +2 -0
  434. package/dist/components/overlays/tooltip/index.js.map +1 -0
  435. package/dist/components/overlays/tooltip/tooltip.d.ts +20 -0
  436. package/dist/components/overlays/tooltip/tooltip.d.ts.map +1 -0
  437. package/dist/components/overlays/tooltip/tooltip.js +12 -0
  438. package/dist/components/overlays/tooltip/tooltip.js.map +1 -0
  439. package/dist/components/search/search-input/index.d.ts +2 -0
  440. package/dist/components/search/search-input/index.d.ts.map +1 -0
  441. package/dist/components/search/search-input/index.js +2 -0
  442. package/dist/components/search/search-input/index.js.map +1 -0
  443. package/dist/components/search/search-input/search-input.d.ts +48 -0
  444. package/dist/components/search/search-input/search-input.d.ts.map +1 -0
  445. package/dist/components/search/search-input/search-input.js +140 -0
  446. package/dist/components/search/search-input/search-input.js.map +1 -0
  447. package/dist/components/technical/secret-field/index.d.ts +2 -0
  448. package/dist/components/technical/secret-field/index.d.ts.map +1 -0
  449. package/dist/components/technical/secret-field/index.js +2 -0
  450. package/dist/components/technical/secret-field/index.js.map +1 -0
  451. package/dist/components/technical/secret-field/secret-field.d.ts +38 -0
  452. package/dist/components/technical/secret-field/secret-field.d.ts.map +1 -0
  453. package/dist/components/technical/secret-field/secret-field.js +42 -0
  454. package/dist/components/technical/secret-field/secret-field.js.map +1 -0
  455. package/dist/components/typography/kbd/index.d.ts +2 -0
  456. package/dist/components/typography/kbd/index.d.ts.map +1 -0
  457. package/dist/components/typography/kbd/index.js +2 -0
  458. package/dist/components/typography/kbd/index.js.map +1 -0
  459. package/dist/components/typography/kbd/kbd.d.ts +4 -0
  460. package/dist/components/typography/kbd/kbd.d.ts.map +1 -0
  461. package/dist/components/typography/kbd/kbd.js +7 -0
  462. package/dist/components/typography/kbd/kbd.js.map +1 -0
  463. package/dist/entries/marketing.d.ts +9 -0
  464. package/dist/entries/marketing.d.ts.map +1 -0
  465. package/dist/entries/marketing.js +9 -0
  466. package/dist/entries/marketing.js.map +1 -0
  467. package/dist/index.d.ts +64 -0
  468. package/dist/index.d.ts.map +1 -0
  469. package/dist/index.js +67 -0
  470. package/dist/index.js.map +1 -0
  471. package/dist/internal/cx.d.ts +3 -0
  472. package/dist/internal/cx.d.ts.map +1 -0
  473. package/dist/internal/cx.js +6 -0
  474. package/dist/internal/cx.js.map +1 -0
  475. package/dist/internal/dismiss.d.ts +23 -0
  476. package/dist/internal/dismiss.d.ts.map +1 -0
  477. package/dist/internal/dismiss.js +36 -0
  478. package/dist/internal/dismiss.js.map +1 -0
  479. package/dist/internal/dismissible.d.ts +26 -0
  480. package/dist/internal/dismissible.d.ts.map +1 -0
  481. package/dist/internal/dismissible.js +82 -0
  482. package/dist/internal/dismissible.js.map +1 -0
  483. package/dist/internal/icons.d.ts +26 -0
  484. package/dist/internal/icons.d.ts.map +1 -0
  485. package/dist/internal/icons.js +81 -0
  486. package/dist/internal/icons.js.map +1 -0
  487. package/dist/internal/inert.d.ts +7 -0
  488. package/dist/internal/inert.d.ts.map +1 -0
  489. package/dist/internal/inert.js +10 -0
  490. package/dist/internal/inert.js.map +1 -0
  491. package/dist/manifest.json +8532 -0
  492. package/dist/patterns/actions/toolbar/index.d.ts +2 -0
  493. package/dist/patterns/actions/toolbar/index.d.ts.map +1 -0
  494. package/dist/patterns/actions/toolbar/index.js +2 -0
  495. package/dist/patterns/actions/toolbar/index.js.map +1 -0
  496. package/dist/patterns/actions/toolbar/toolbar.d.ts +20 -0
  497. package/dist/patterns/actions/toolbar/toolbar.d.ts.map +1 -0
  498. package/dist/patterns/actions/toolbar/toolbar.js +46 -0
  499. package/dist/patterns/actions/toolbar/toolbar.js.map +1 -0
  500. package/dist/patterns/layout/marketing-hero/index.d.ts +2 -0
  501. package/dist/patterns/layout/marketing-hero/index.d.ts.map +1 -0
  502. package/dist/patterns/layout/marketing-hero/index.js +2 -0
  503. package/dist/patterns/layout/marketing-hero/index.js.map +1 -0
  504. package/dist/patterns/layout/marketing-hero/marketing-hero.d.ts +24 -0
  505. package/dist/patterns/layout/marketing-hero/marketing-hero.d.ts.map +1 -0
  506. package/dist/patterns/layout/marketing-hero/marketing-hero.js +7 -0
  507. package/dist/patterns/layout/marketing-hero/marketing-hero.js.map +1 -0
  508. package/dist/patterns/layout/marketing-section-blocks/index.d.ts +7 -0
  509. package/dist/patterns/layout/marketing-section-blocks/index.d.ts.map +1 -0
  510. package/dist/patterns/layout/marketing-section-blocks/index.js +7 -0
  511. package/dist/patterns/layout/marketing-section-blocks/index.js.map +1 -0
  512. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.d.ts +15 -0
  513. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.d.ts.map +1 -0
  514. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.js +7 -0
  515. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.cta-band.js.map +1 -0
  516. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.d.ts +37 -0
  517. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.d.ts.map +1 -0
  518. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.d.ts +23 -0
  519. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.d.ts.map +1 -0
  520. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.js +15 -0
  521. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.faq.js.map +1 -0
  522. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.d.ts +25 -0
  523. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.d.ts.map +1 -0
  524. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.js +10 -0
  525. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.feature-grid.js.map +1 -0
  526. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.js +14 -0
  527. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.js.map +1 -0
  528. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.d.ts +25 -0
  529. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.d.ts.map +1 -0
  530. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.js +12 -0
  531. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.product-frame.js.map +1 -0
  532. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.d.ts +14 -0
  533. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.d.ts.map +1 -0
  534. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.js +7 -0
  535. package/dist/patterns/layout/marketing-section-blocks/marketing-section-blocks.stat-strip.js.map +1 -0
  536. package/dist/patterns/layout/marketing-site-shell/index.d.ts +4 -0
  537. package/dist/patterns/layout/marketing-site-shell/index.d.ts.map +1 -0
  538. package/dist/patterns/layout/marketing-site-shell/index.js +3 -0
  539. package/dist/patterns/layout/marketing-site-shell/index.js.map +1 -0
  540. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.d.ts +31 -0
  541. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.d.ts.map +1 -0
  542. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.d.ts +33 -0
  543. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.d.ts.map +1 -0
  544. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.js +11 -0
  545. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.footer.js.map +1 -0
  546. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.js +32 -0
  547. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.js.map +1 -0
  548. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.d.ts +10 -0
  549. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.d.ts.map +1 -0
  550. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.js +8 -0
  551. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.link.js.map +1 -0
  552. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.d.ts +24 -0
  553. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.d.ts.map +1 -0
  554. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.js +4 -0
  555. package/dist/patterns/layout/marketing-site-shell/marketing-site-shell.types.js.map +1 -0
  556. package/dist/patterns/layout/page-header/index.d.ts +2 -0
  557. package/dist/patterns/layout/page-header/index.d.ts.map +1 -0
  558. package/dist/patterns/layout/page-header/index.js +2 -0
  559. package/dist/patterns/layout/page-header/index.js.map +1 -0
  560. package/dist/patterns/layout/page-header/page-header.d.ts +17 -0
  561. package/dist/patterns/layout/page-header/page-header.d.ts.map +1 -0
  562. package/dist/patterns/layout/page-header/page-header.js +7 -0
  563. package/dist/patterns/layout/page-header/page-header.js.map +1 -0
  564. package/dist/patterns/layout/settings-section/index.d.ts +2 -0
  565. package/dist/patterns/layout/settings-section/index.d.ts.map +1 -0
  566. package/dist/patterns/layout/settings-section/index.js +2 -0
  567. package/dist/patterns/layout/settings-section/index.js.map +1 -0
  568. package/dist/patterns/layout/settings-section/settings-section.d.ts +33 -0
  569. package/dist/patterns/layout/settings-section/settings-section.d.ts.map +1 -0
  570. package/dist/patterns/layout/settings-section/settings-section.js +15 -0
  571. package/dist/patterns/layout/settings-section/settings-section.js.map +1 -0
  572. package/dist/patterns/layout/split-layout/index.d.ts +2 -0
  573. package/dist/patterns/layout/split-layout/index.d.ts.map +1 -0
  574. package/dist/patterns/layout/split-layout/index.js +2 -0
  575. package/dist/patterns/layout/split-layout/index.js.map +1 -0
  576. package/dist/patterns/layout/split-layout/split-layout.d.ts +21 -0
  577. package/dist/patterns/layout/split-layout/split-layout.d.ts.map +1 -0
  578. package/dist/patterns/layout/split-layout/split-layout.js +10 -0
  579. package/dist/patterns/layout/split-layout/split-layout.js.map +1 -0
  580. package/dist/patterns/search/filter-bar/filter-bar.d.ts +25 -0
  581. package/dist/patterns/search/filter-bar/filter-bar.d.ts.map +1 -0
  582. package/dist/patterns/search/filter-bar/filter-bar.js +13 -0
  583. package/dist/patterns/search/filter-bar/filter-bar.js.map +1 -0
  584. package/dist/patterns/search/filter-bar/index.d.ts +2 -0
  585. package/dist/patterns/search/filter-bar/index.d.ts.map +1 -0
  586. package/dist/patterns/search/filter-bar/index.js +2 -0
  587. package/dist/patterns/search/filter-bar/index.js.map +1 -0
  588. package/dist/styles.css +5621 -0
  589. package/package.json +75 -4
@@ -0,0 +1,187 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, } from 'react';
4
+ import * as ToastPrimitive from '@radix-ui/react-toast';
5
+ import { cx } from '../../../internal/cx.js';
6
+ import { CloseGlyph, InfoGlyph, SuccessGlyph, WarningGlyph } from '../../../internal/icons.js';
7
+ const ToastContext = createContext(null);
8
+ /** Longer than the exit animation (--mn-duration-base). */
9
+ const EXIT_MS = 600;
10
+ const SHORT_MS = 5000;
11
+ const LONG_MS = 10000;
12
+ let counter = 0;
13
+ /**
14
+ * Mount once near the root. Provides `useToast()` and renders the viewport.
15
+ *
16
+ * Toasts never take focus. They pause while hovered or focused, can be reached
17
+ * with F8 (the `hotkey`), and close with Escape. Each one is announced once
18
+ * through a live region: assertively for `danger`, politely otherwise.
19
+ */
20
+ export function ToastProvider({ label = 'Notifications', position = 'bottom-right', hotkey = DEFAULT_HOTKEY, durationScale = 1, limit = 3, dismissLabel = 'Dismiss', children, }) {
21
+ const [toasts, setToasts] = useState([]);
22
+ const timers = useRef(new Set());
23
+ useEffect(() => {
24
+ const pending = timers.current;
25
+ return () => {
26
+ for (const t of pending)
27
+ clearTimeout(t);
28
+ pending.clear();
29
+ };
30
+ }, []);
31
+ /** Drops closed records once the exit animation has had time to run. */
32
+ const sweep = useCallback(() => {
33
+ const t = setTimeout(() => {
34
+ timers.current.delete(t);
35
+ setToasts((list) => list.filter((r) => r.open));
36
+ }, EXIT_MS);
37
+ timers.current.add(t);
38
+ }, []);
39
+ const dismiss = useCallback((id) => {
40
+ setToasts((list) => list.map((t) => (t.open && (id === undefined || t.id === id) ? { ...t, open: false } : t)));
41
+ sweep();
42
+ }, [sweep]);
43
+ const show = useCallback((options) => {
44
+ const id = `mn-toast-${++counter}`;
45
+ setToasts((list) => {
46
+ const next = [...list, { ...options, id, open: true }];
47
+ const openOnes = next.filter((t) => t.open);
48
+ const overflow = openOnes.length - Math.max(1, limit);
49
+ if (overflow > 0) {
50
+ const set = new Set(openOnes.slice(0, overflow).map((t) => t.id));
51
+ return next.map((t) => (set.has(t.id) ? { ...t, open: false } : t));
52
+ }
53
+ return next;
54
+ });
55
+ sweep();
56
+ return { id, dismiss: () => dismiss(id) };
57
+ }, [dismiss, sweep, limit]);
58
+ const toast = useMemo(() => {
59
+ const fn = ((options) => show(options));
60
+ const tone = (t) => (title, options) => show({ ...options, title, tone: t });
61
+ fn.success = tone('success');
62
+ fn.error = tone('danger');
63
+ fn.warning = tone('warning');
64
+ fn.info = tone('info');
65
+ return fn;
66
+ }, [show]);
67
+ const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);
68
+ return (_jsx(ToastContext.Provider, { value: value, children: _jsxs(ToastPrimitive.Provider, { swipeDirection: position.endsWith('right') ? 'right' : 'down', label: label, children: [children, toasts.map((t) => (_jsx(ToastItem, { record: t, durationScale: durationScale, dismissLabel: dismissLabel, onOpenChange: (open) => (open ? undefined : dismiss(t.id)) }, t.id))), _jsx(ToastPrimitive.Viewport, { className: "mn-toast-viewport", "data-position": position, hotkey: hotkey, label: hotkey.length ? `${label} ({hotkey})` : label })] }) }));
69
+ }
70
+ const DEFAULT_HOTKEY = ['F8'];
71
+ const toneIcon = {
72
+ neutral: null,
73
+ info: _jsx(InfoGlyph, {}),
74
+ success: _jsx(SuccessGlyph, {}),
75
+ warning: _jsx(WarningGlyph, {}),
76
+ danger: _jsx(WarningGlyph, {}),
77
+ };
78
+ /** The duration Radix should use: scaled, and Infinity when auto-dismiss is off. */
79
+ function toastDuration(record, scale) {
80
+ const base = record.duration ?? (record.tone === 'danger' || record.action ? LONG_MS : SHORT_MS);
81
+ const scaled = base * (scale > 0 ? scale : 1);
82
+ return Number.isFinite(scaled) ? Math.round(scaled) : Infinity;
83
+ }
84
+ function ToastItem({ record, durationScale, dismissLabel, onOpenChange, }) {
85
+ const titleId = useId();
86
+ const tone = record.tone ?? 'neutral';
87
+ const politeness = record.politeness ?? (tone === 'danger' ? 'assertive' : 'polite');
88
+ const icon = toneIcon[tone];
89
+ // onDismiss fires once, the first time the record closes.
90
+ const notified = useRef(false);
91
+ const onDismiss = record.onDismiss;
92
+ useEffect(() => {
93
+ if (!record.open && !notified.current) {
94
+ notified.current = true;
95
+ onDismiss?.();
96
+ }
97
+ }, [record.open, onDismiss]);
98
+ return (
99
+ // No role on the <li>: it must stay a list item of the viewport's <ol>.
100
+ // Radix announces the text through its own live region, whose politeness
101
+ // follows `type` (foreground = assertive, background = polite).
102
+ _jsxs(ToastPrimitive.Root, { open: record.open, onOpenChange: onOpenChange, duration: toastDuration(record, durationScale), type: politeness === 'assertive' ? 'foreground' : 'background', className: "mn-toast", "data-tone": tone, "data-politeness": politeness, "aria-labelledby": titleId, children: [icon ? (_jsx("span", { className: "mn-toast__icon", "aria-hidden": true, children: icon })) : null, _jsxs("div", { className: "mn-toast__body", children: [_jsx(ToastPrimitive.Title, { id: titleId, className: "mn-toast__title", children: record.title }), record.description ? (_jsx(ToastPrimitive.Description, { className: "mn-toast__description", children: record.description })) : null] }), record.action ? (_jsx(ToastPrimitive.Action, { asChild: true, altText: record.action.altText || record.action.label, children: _jsx("button", { type: "button", className: cx('mn-button', 'mn-toast__action'), "data-variant": "secondary", "data-size": "xs", onClick: record.action.onClick, children: record.action.label }) })) : null, _jsx(ToastPrimitive.Close, { className: "mn-toast__close", "aria-label": dismissLabel, "aria-describedby": titleId, children: _jsx(CloseGlyph, {}) })] }));
103
+ }
104
+ /**
105
+ * Returns `toast` (callable, with `.success`, `.error`, `.warning`, `.info`)
106
+ * and `dismiss(id?)`. Must be used inside ToastProvider.
107
+ */
108
+ export function useToast() {
109
+ const ctx = useContext(ToastContext);
110
+ if (!ctx)
111
+ throw new Error('useToast must be used inside <ToastProvider>');
112
+ return ctx;
113
+ }
114
+ /** Messages that describe the transport, not the problem; replaced by the fallback. */
115
+ const GENERIC = [
116
+ /^request failed with status code \d{3}$/i,
117
+ /^network ?error$/i,
118
+ /^failed to fetch$/i,
119
+ /^load failed$/i,
120
+ /^networkerror when attempting to fetch resource\.?$/i,
121
+ /^internal server error$/i,
122
+ /^\[object object\]$/i,
123
+ // An HTML error page from a proxy or gateway.
124
+ /^<(!doctype|html|head|body)\b/i,
125
+ ];
126
+ function text(value) {
127
+ if (typeof value === 'string') {
128
+ const t = value.trim();
129
+ return t && !GENERIC.some((re) => re.test(t)) ? t : undefined;
130
+ }
131
+ if (Array.isArray(value)) {
132
+ const parts = value
133
+ .map((v) => text(typeof v === 'object' && v
134
+ ? (v.message ?? v.detail)
135
+ : v))
136
+ .filter(Boolean);
137
+ return parts.length ? parts.join(' ') : undefined;
138
+ }
139
+ return undefined;
140
+ }
141
+ function fromBody(body) {
142
+ if (!body || typeof body !== 'object')
143
+ return text(body);
144
+ const b = body;
145
+ const details = b.details;
146
+ const fields = (details?.fields ?? b.fields ?? b.fieldErrors);
147
+ if (fields && typeof fields === 'object') {
148
+ const flat = Object.values(fields).flatMap((v) => (Array.isArray(v) ? v : [v]));
149
+ const joined = text(flat);
150
+ if (joined)
151
+ return joined;
152
+ }
153
+ return text(b.message) ?? text(b.errors) ?? text(b.detail) ?? text(b.error) ?? text(b.title);
154
+ }
155
+ /**
156
+ * Turns anything thrown or rejected into one sentence a person can read, for
157
+ * `toast.error()` or an inline error. Pure; it knows no product's API.
158
+ *
159
+ * Looks, in order, at: a string; field errors (`details.fields`, `fields`,
160
+ * `fieldErrors`, flattened); `message` (string or list); `errors[]`
161
+ * (`message`/`detail`); `detail`; `error`; `title`, on the response body
162
+ * (`error.response.data`, `error.data`, `error.body`) and then the error
163
+ * itself. Transport messages ("Request failed with status code 500",
164
+ * "Failed to fetch") are never shown; the fallback is.
165
+ */
166
+ export function getErrorMessage(error, options = {}) {
167
+ const fallback = options.fallback ?? 'Something went wrong. Try again.';
168
+ if (error == null)
169
+ return fallback;
170
+ if (typeof error === 'string')
171
+ return text(error) ?? fallback;
172
+ if (typeof error !== 'object')
173
+ return fallback;
174
+ const e = error;
175
+ const response = e.response;
176
+ const found = fromBody(response?.data) ?? fromBody(e.data) ?? fromBody(e.body) ?? fromBody(e);
177
+ if (found)
178
+ return found;
179
+ const raw = typeof e.message === 'string' ? e.message.trim() : '';
180
+ const isNetwork = e.name === 'TypeError' ||
181
+ e.code === 'ERR_NETWORK' ||
182
+ /^(network ?error|failed to fetch|load failed|networkerror)/i.test(raw);
183
+ if (isNetwork && options.network)
184
+ return options.network;
185
+ return fallback;
186
+ }
187
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../../src/components/feedback/toast/toast.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ export interface CheckboxProps extends ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
4
+ /** Inline label. Omit when the checkbox sits inside a Field with a FieldLabel. */
5
+ label?: ReactNode;
6
+ /** Secondary text under an inline label. */
7
+ description?: ReactNode;
8
+ invalid?: boolean;
9
+ }
10
+ /**
11
+ * A checkbox with optional inline label. Supports `checked="indeterminate"`.
12
+ * Space toggles it; it participates in native forms via `name`/`value`.
13
+ */
14
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLButtonElement>>;
15
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/checkbox/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAK9D,MAAM,WAAW,aAAc,SAAQ,wBAAwB,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;IAC5F,kFAAkF;IAClF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,6GAqCpB,CAAC"}
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useId, } from 'react';
4
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
5
+ import { cx } from '../../../internal/cx.js';
6
+ import { CheckGlyph, DashGlyph } from '../../../internal/icons.js';
7
+ import { useFieldControl } from '../form-field/index.js';
8
+ /**
9
+ * A checkbox with optional inline label. Supports `checked="indeterminate"`.
10
+ * Space toggles it; it participates in native forms via `name`/`value`.
11
+ */
12
+ export const Checkbox = forwardRef(function Checkbox({ label, description, invalid, className, ...rest }, ref) {
13
+ const auto = useId();
14
+ const props = useFieldControl(rest, { invalid });
15
+ const id = props.id ?? `mn-checkbox-${auto}`;
16
+ const descriptionId = description ? `${id}-description` : undefined;
17
+ const describedBy = cx(props['aria-describedby'], descriptionId);
18
+ const control = (_jsx(CheckboxPrimitive.Root, { ref: ref, ...props, id: id, "aria-describedby": describedBy, className: cx('mn-checkbox', label ? undefined : className), children: _jsx(CheckboxPrimitive.Indicator, { className: "mn-checkbox__indicator", children: props.checked === 'indeterminate' ? _jsx(DashGlyph, {}) : _jsx(CheckGlyph, {}) }) }));
19
+ if (!label)
20
+ return control;
21
+ return (_jsxs("div", { className: cx('mn-choice', className), "data-disabled": props.disabled || undefined, children: [control, _jsxs("div", { className: "mn-choice__text", children: [_jsx("label", { htmlFor: id, className: "mn-choice__label", children: label }), description ? (_jsx("p", { id: descriptionId, className: "mn-choice__description", children: description })) : null] })] }));
22
+ });
23
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../src/components/forms/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,UAAU,EACV,KAAK,GAIN,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAUzD;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IACxE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,CACd,KAAC,iBAAiB,CAAC,IAAI,IACrB,GAAG,EAAE,GAAG,KACJ,KAAK,EACT,EAAE,EAAE,EAAE,sBACY,WAAW,EAC7B,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,YAE3D,KAAC,iBAAiB,CAAC,SAAS,IAAC,SAAS,EAAC,wBAAwB,YAC5D,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GACvC,GACP,CAC1B,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAC3B,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,mBAAiB,KAAK,CAAC,QAAQ,IAAI,SAAS,aACnF,OAAO,EACR,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAC,kBAAkB,YAC7C,KAAK,GACA,EACP,WAAW,CAAC,CAAC,CAAC,CACb,YAAG,EAAE,EAAE,aAAa,EAAE,SAAS,EAAC,wBAAwB,YACrD,WAAW,GACV,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './checkbox.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/checkbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './checkbox.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/forms/checkbox/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from 'react';
2
+ export interface ComboboxOption {
3
+ value: string;
4
+ label: string;
5
+ /** Secondary text under the label. */
6
+ description?: string;
7
+ disabled?: boolean;
8
+ }
9
+ export interface ComboboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'type'> {
10
+ options: ComboboxOption[];
11
+ /** Selected option value (controlled). */
12
+ value?: string | null;
13
+ defaultValue?: string | null;
14
+ onValueChange?: (value: string | null) => void;
15
+ /** Text typed in the input (controlled). Use for server-side filtering. */
16
+ inputValue?: string;
17
+ onInputValueChange?: (text: string) => void;
18
+ /** Custom filter. Default: case-insensitive label match. Pass `() => true` for server-filtered lists. */
19
+ filter?: (option: ComboboxOption, query: string) => boolean;
20
+ /** Shown while options load. */
21
+ loading?: boolean;
22
+ /** Shown when no option matches. */
23
+ emptyMessage?: ReactNode;
24
+ invalid?: boolean;
25
+ size?: 'sm' | 'md' | 'lg';
26
+ /** Allow clearing the selection with the clear button / Backspace on empty input. */
27
+ clearable?: boolean;
28
+ }
29
+ /**
30
+ * Single-select with typeahead. The input is the combobox; the list is a
31
+ * listbox positioned by Radix Popover. Keyboard: Down/Up move, Home/End jump,
32
+ * Enter selects, Escape closes, typing filters.
33
+ */
34
+ export declare const Combobox: import("react").ForwardRefExoticComponent<ComboboxProps & import("react").RefAttributes<HTMLInputElement>>;
35
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/combobox/combobox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,mBAAmB,EAExB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CACxD;IACC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,yGAAyG;IACzG,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oCAAoC;IACpC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,4GAwPnB,CAAC"}
@@ -0,0 +1,152 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef, useEffect, useId, useMemo, useRef, useState, } from 'react';
4
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
5
+ import { cx } from '../../../internal/cx.js';
6
+ import { CheckGlyph, ChevronDownGlyph } from '../../../internal/icons.js';
7
+ import { useFieldControl } from '../form-field/index.js';
8
+ import { Spinner } from '../../feedback/spinner/index.js';
9
+ const defaultFilter = (o, q) => o.label.toLowerCase().includes(q.toLowerCase());
10
+ /**
11
+ * Single-select with typeahead. The input is the combobox; the list is a
12
+ * listbox positioned by Radix Popover. Keyboard: Down/Up move, Home/End jump,
13
+ * Enter selects, Escape closes, typing filters.
14
+ */
15
+ export const Combobox = forwardRef(function Combobox({ options, value: valueProp, defaultValue = null, onValueChange, inputValue: inputProp, onInputValueChange, filter = defaultFilter, loading = false, emptyMessage = 'No matches', invalid, size = 'md', clearable = true, placeholder, className, onKeyDown, onBlur, ...rest }, ref) {
16
+ const id = useId();
17
+ const listId = `mn-combobox-${id}-list`;
18
+ const [open, setOpen] = useState(false);
19
+ const [internalValue, setInternalValue] = useState(defaultValue);
20
+ const value = valueProp !== undefined ? valueProp : internalValue;
21
+ const selected = useMemo(() => options.find((o) => o.value === value) ?? null, [options, value]);
22
+ const [internalInput, setInternalInput] = useState(selected?.label ?? '');
23
+ const inputValue = inputProp !== undefined ? inputProp : internalInput;
24
+ const [active, setActive] = useState(0);
25
+ const inputRef = useRef(null);
26
+ const listRef = useRef(null);
27
+ const setInput = (text) => {
28
+ if (inputProp === undefined)
29
+ setInternalInput(text);
30
+ onInputValueChange?.(text);
31
+ };
32
+ const select = (next) => {
33
+ if (valueProp === undefined)
34
+ setInternalValue(next?.value ?? null);
35
+ onValueChange?.(next?.value ?? null);
36
+ setInput(next?.label ?? '');
37
+ setOpen(false);
38
+ };
39
+ // Keep the text in sync when the selection changes from outside.
40
+ useEffect(() => {
41
+ if (!open && inputProp === undefined)
42
+ setInternalInput(selected?.label ?? '');
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, [selected?.label]);
45
+ const visible = useMemo(() => {
46
+ const q = inputValue.trim();
47
+ const typedNew = q !== '' && q !== (selected?.label ?? '');
48
+ return typedNew ? options.filter((o) => filter(o, q)) : options;
49
+ }, [options, inputValue, selected?.label, filter]);
50
+ useEffect(() => {
51
+ setActive((a) => Math.min(a, Math.max(0, visible.length - 1)));
52
+ }, [visible.length]);
53
+ useEffect(() => {
54
+ if (!open)
55
+ return;
56
+ const el = listRef.current?.querySelector(`[data-index="${active}"]`);
57
+ el?.scrollIntoView?.({ block: 'nearest' });
58
+ }, [active, open]);
59
+ const activeId = open && visible[active] ? `${listId}-opt-${active}` : undefined;
60
+ const handleKey = (e) => {
61
+ // Radix's dismissable layer prevents default on Escape before this runs,
62
+ // so only a consumer's own preventDefault stops the built-in handling.
63
+ const preventedBefore = e.defaultPrevented;
64
+ onKeyDown?.(e);
65
+ if (e.defaultPrevented && !preventedBefore)
66
+ return;
67
+ switch (e.key) {
68
+ case 'ArrowDown':
69
+ e.preventDefault();
70
+ if (!open)
71
+ setOpen(true);
72
+ else
73
+ setActive((a) => Math.min(a + 1, visible.length - 1));
74
+ break;
75
+ case 'ArrowUp':
76
+ e.preventDefault();
77
+ if (!open)
78
+ setOpen(true);
79
+ else
80
+ setActive((a) => Math.max(a - 1, 0));
81
+ break;
82
+ case 'Home':
83
+ if (open) {
84
+ e.preventDefault();
85
+ setActive(0);
86
+ }
87
+ break;
88
+ case 'End':
89
+ if (open) {
90
+ e.preventDefault();
91
+ setActive(visible.length - 1);
92
+ }
93
+ break;
94
+ case 'Enter':
95
+ if (open) {
96
+ e.preventDefault();
97
+ const opt = visible[active];
98
+ if (opt && !opt.disabled)
99
+ select(opt);
100
+ }
101
+ break;
102
+ case 'Escape':
103
+ if (open) {
104
+ e.preventDefault();
105
+ setOpen(false);
106
+ setInput(selected?.label ?? '');
107
+ }
108
+ break;
109
+ case 'Backspace':
110
+ if (clearable && inputValue === '' && selected)
111
+ select(null);
112
+ break;
113
+ }
114
+ };
115
+ const fieldProps = useFieldControl(rest, { invalid });
116
+ return (_jsxs(PopoverPrimitive.Root, { open: open, onOpenChange: (next) => {
117
+ setOpen(next);
118
+ if (!next)
119
+ setInput(selected?.label ?? '');
120
+ }, children: [_jsx(PopoverPrimitive.Anchor, { asChild: true, children: _jsxs("div", { className: cx('mn-input', 'mn-combobox', className), "data-size": size, "data-disabled": fieldProps.disabled || undefined, children: [_jsx("input", { ref: (node) => {
121
+ inputRef.current = node;
122
+ if (typeof ref === 'function')
123
+ ref(node);
124
+ else if (ref)
125
+ ref.current = node;
126
+ }, ...fieldProps, type: "text", role: "combobox", autoComplete: "off", "aria-autocomplete": "list", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-activedescendant": activeId, className: "mn-combobox__input", placeholder: placeholder, value: inputValue, onChange: (e) => {
127
+ setInput(e.target.value);
128
+ setActive(0);
129
+ if (!open)
130
+ setOpen(true);
131
+ }, onKeyDown: handleKey, onBlur: (e) => {
132
+ onBlur?.(e);
133
+ // Revert unmatched text so the input always reflects the selection.
134
+ if (!listRef.current?.contains(e.relatedTarget))
135
+ setInput(selected?.label ?? '');
136
+ } }), loading ? _jsx(Spinner, { size: "sm", className: "mn-combobox__spinner" }) : null, _jsx("button", { type: "button", tabIndex: -1, "aria-label": open ? 'Close options' : 'Show options', className: "mn-combobox__toggle", disabled: fieldProps.disabled, onMouseDown: (e) => e.preventDefault(), onClick: () => {
137
+ setOpen((o) => !o);
138
+ inputRef.current?.focus();
139
+ }, children: _jsx(ChevronDownGlyph, {}) })] }) }), _jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { align: "start", sideOffset: 4, onOpenAutoFocus: (e) => e.preventDefault(), onCloseAutoFocus: (e) => e.preventDefault(), onInteractOutside: (e) => {
140
+ if (inputRef.current?.contains(e.target))
141
+ e.preventDefault();
142
+ }, className: "mn-menu mn-combobox__content", children: _jsx("div", { ref: listRef, id: listId, role: "listbox", "aria-label": rest['aria-label'] ?? 'Options', className: "mn-combobox__list", children: loading && visible.length === 0 ? (_jsx("div", { className: "mn-combobox__status", role: "status", children: "Loading\u2026" })) : visible.length === 0 ? (_jsx("div", { className: "mn-combobox__status", role: "status", children: emptyMessage })) : (visible.map((o, i) => (
143
+ // Options follow the aria-activedescendant pattern: the input keeps
144
+ // focus and handles every key, so options are deliberately not focusable.
145
+ // monarch-ignore-next-line a11y/click-without-key -- aria-activedescendant pattern: the input handles all keys
146
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus
147
+ _jsxs("div", { id: `${listId}-opt-${i}`, role: "option", "aria-selected": o.value === value, "aria-disabled": o.disabled || undefined, "data-index": i, "data-highlighted": i === active || undefined, className: "mn-menu__item", onMouseEnter: () => setActive(i), onMouseDown: (e) => e.preventDefault(), onClick: () => {
148
+ if (!o.disabled)
149
+ select(o);
150
+ }, children: [_jsxs("span", { className: "mn-menu__text", children: [o.label, o.description ? (_jsx("span", { className: "mn-combobox__description", children: o.description })) : null] }), o.value === value ? (_jsx("span", { className: "mn-menu__indicator", children: _jsx(CheckGlyph, {}) })) : null] }, o.value)))) }) }) })] }));
151
+ });
152
+ //# sourceMappingURL=combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/forms/combobox/combobox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './combobox.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/combobox/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './combobox.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/forms/combobox/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { type HTMLAttributes, type LabelHTMLAttributes, type ReactNode, type SelectHTMLAttributes } from 'react';
2
+ interface FieldContextValue {
3
+ controlId: string;
4
+ labelId: string;
5
+ descriptionId: string;
6
+ errorId: string;
7
+ invalid: boolean;
8
+ required: boolean;
9
+ disabled: boolean;
10
+ hasDescription: boolean;
11
+ hasError: boolean;
12
+ register: (part: 'description' | 'error', present: boolean) => void;
13
+ }
14
+ export interface FieldProps extends HTMLAttributes<HTMLDivElement> {
15
+ /** Override the generated control id (e.g. to match an existing label). */
16
+ id?: string;
17
+ invalid?: boolean;
18
+ required?: boolean;
19
+ disabled?: boolean;
20
+ /**
21
+ * `stack` (default): label, control, help and error in a column.
22
+ * `row`: label and help on the left, the control on the right, for a
23
+ * Switch (or Checkbox, or a compact NativeSelect) with a description.
24
+ * Exposed as `data-layout="row"`.
25
+ */
26
+ layout?: 'stack' | 'row';
27
+ children: ReactNode;
28
+ }
29
+ /**
30
+ * Groups a label, a control, help text and an error message, and wires their
31
+ * ids together: the control gets `id`, `aria-describedby`, `aria-invalid`,
32
+ * `aria-required` and `disabled` automatically. Descriptions and errors
33
+ * register themselves, so `aria-describedby` only names elements that exist.
34
+ *
35
+ * <Field invalid={!!error}>
36
+ * <FieldLabel>Email</FieldLabel>
37
+ * <Input type="email" />
38
+ * <FieldError>{error}</FieldError>
39
+ * </Field>
40
+ */
41
+ export declare function Field({ id, invalid, required, disabled, layout, className, children, ...rest }: FieldProps): import("react").JSX.Element;
42
+ export declare function useFieldContext(): FieldContextValue | null;
43
+ export interface FieldControlProps {
44
+ id?: string | undefined;
45
+ disabled?: boolean | undefined;
46
+ required?: boolean | undefined;
47
+ 'aria-describedby'?: string | undefined;
48
+ 'aria-invalid'?: boolean | 'true' | 'false' | 'grammar' | 'spelling' | undefined;
49
+ }
50
+ /**
51
+ * Merges Field context into a control's props. Explicit props win, so a
52
+ * control can still be used outside a Field.
53
+ */
54
+ export declare function useFieldControl<P extends FieldControlProps>(props: P, options?: {
55
+ invalid?: boolean | undefined;
56
+ }): P & {
57
+ 'aria-required'?: true;
58
+ 'aria-invalid'?: true;
59
+ };
60
+ export interface FieldLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
61
+ /** Text shown after the label for optional fields, e.g. "Optional". */
62
+ optionalText?: string;
63
+ }
64
+ export declare const FieldLabel: import("react").ForwardRefExoticComponent<FieldLabelProps & import("react").RefAttributes<HTMLLabelElement>>;
65
+ export declare function FieldDescription({ className, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
66
+ /**
67
+ * Renders nothing when empty, so it can always be present. Announced politely
68
+ * when it appears.
69
+ */
70
+ export declare function FieldError({ className, children, ...rest }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element | null;
71
+ export interface NativeSelectOption {
72
+ value: string;
73
+ label: string;
74
+ disabled?: boolean;
75
+ }
76
+ export interface NativeSelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
77
+ /** Control height. `sm` is the compact toolbar size (`--mn-control-sm`). Default `md`. */
78
+ size?: 'sm' | 'md' | 'lg';
79
+ /** Marks the value invalid. Inside a Field, the Field's `invalid` is used. */
80
+ invalid?: boolean;
81
+ /** Options as data. `children` (`<option>`, `<optgroup>`) are rendered after them. */
82
+ options?: readonly NativeSelectOption[];
83
+ /**
84
+ * First, empty option shown while no value is chosen. It is disabled once
85
+ * the control is `required`, so it cannot be submitted.
86
+ */
87
+ placeholder?: string;
88
+ /**
89
+ * Visible label rendered inline before the select, for toolbars and filter
90
+ * rows outside a Field ("Sort Newest ▾"). Inside a Field use FieldLabel.
91
+ */
92
+ label?: ReactNode;
93
+ /** Class for the wrapper `<span class="mn-native-select">`; `className` goes on the `<select>`. */
94
+ wrapperClassName?: string;
95
+ }
96
+ /**
97
+ * The platform `<select>`, styled like Input and wired to Field. Use it where
98
+ * the native picker is right: long option lists on mobile, forms that must
99
+ * work without JavaScript, compact toolbar filters. For a styled listbox use
100
+ * Select; for search use Combobox.
101
+ */
102
+ export declare const NativeSelect: import("react").ForwardRefExoticComponent<NativeSelectProps & import("react").RefAttributes<HTMLSelectElement>>;
103
+ export {};
104
+ //# sourceMappingURL=form-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/form-field/form-field.tsx"],"names":[],"mappings":"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"}