@lucasbernardosn/react-ui 0.3.0 → 0.5.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 (613) hide show
  1. package/README.md +2 -1
  2. package/dist/components/buttons/button/button-variants.d.ts +1 -1
  3. package/dist/components/buttons/button/button-variants.js +119 -119
  4. package/dist/components/buttons/button/button-variants.js.map +1 -1
  5. package/dist/components/buttons/button/button.d.ts +1 -1
  6. package/dist/components/buttons/button/button.js +1 -1
  7. package/dist/components/buttons/button/button.js.map +1 -1
  8. package/dist/components/buttons/icon-button/icon-button-variants.d.ts +3 -0
  9. package/dist/components/buttons/icon-button/icon-button-variants.js +3 -0
  10. package/dist/components/buttons/icon-button/icon-button-variants.js.map +1 -1
  11. package/dist/components/buttons/responsive-button/responsive-button.d.ts +2 -1
  12. package/dist/components/buttons/responsive-button/responsive-button.js +2 -1
  13. package/dist/components/buttons/responsive-button/responsive-button.js.map +1 -1
  14. package/dist/components/buttons/toggle/index.d.ts +3 -0
  15. package/dist/components/buttons/toggle/index.js +2 -0
  16. package/dist/components/buttons/toggle/toggle-variants.d.ts +47 -0
  17. package/dist/components/buttons/toggle/toggle-variants.js +97 -0
  18. package/dist/components/buttons/toggle/toggle-variants.js.map +1 -0
  19. package/dist/components/buttons/toggle/toggle.d.ts +61 -0
  20. package/dist/components/buttons/toggle/toggle.js +69 -0
  21. package/dist/components/buttons/toggle/toggle.js.map +1 -0
  22. package/dist/components/collections/async-select/async-select-variants.js +7 -8
  23. package/dist/components/collections/async-select/async-select-variants.js.map +1 -1
  24. package/dist/components/collections/autocomplete/autocomplete-backdrop.d.ts +1 -2
  25. package/dist/components/collections/autocomplete/autocomplete-backdrop.js +1 -2
  26. package/dist/components/collections/autocomplete/autocomplete-backdrop.js.map +1 -1
  27. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.d.ts +4 -4
  28. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js +4 -4
  29. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js.map +1 -1
  30. package/dist/components/collections/autocomplete/autocomplete-input-variants.d.ts +5 -5
  31. package/dist/components/collections/autocomplete/autocomplete-input-variants.js +8 -8
  32. package/dist/components/collections/autocomplete/autocomplete-input-variants.js.map +1 -1
  33. package/dist/components/collections/autocomplete/autocomplete-item-variants.d.ts +1 -1
  34. package/dist/components/collections/autocomplete/autocomplete-item-variants.js +1 -1
  35. package/dist/components/collections/autocomplete/autocomplete-item-variants.js.map +1 -1
  36. package/dist/components/collections/autocomplete/autocomplete-popup-variants.d.ts +4 -2
  37. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js +4 -2
  38. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js.map +1 -1
  39. package/dist/components/collections/autocomplete/autocomplete-separator.d.ts +1 -2
  40. package/dist/components/collections/autocomplete/autocomplete-separator.js +1 -2
  41. package/dist/components/collections/autocomplete/autocomplete-separator.js.map +1 -1
  42. package/dist/components/collections/command/command-collection.d.ts +14 -0
  43. package/dist/components/collections/command/command-collection.js +15 -0
  44. package/dist/components/collections/command/command-collection.js.map +1 -0
  45. package/dist/components/collections/command/command-empty.d.ts +14 -0
  46. package/dist/components/collections/command/command-empty.js +28 -0
  47. package/dist/components/collections/command/command-empty.js.map +1 -0
  48. package/dist/components/collections/command/command-footer.d.ts +12 -0
  49. package/dist/components/collections/command/command-footer.js +33 -0
  50. package/dist/components/collections/command/command-footer.js.map +1 -0
  51. package/dist/components/collections/command/command-group-label.d.ts +15 -0
  52. package/dist/components/collections/command/command-group-label.js +31 -0
  53. package/dist/components/collections/command/command-group-label.js.map +1 -0
  54. package/dist/components/collections/command/command-group.d.ts +15 -0
  55. package/dist/components/collections/command/command-group.js +19 -0
  56. package/dist/components/collections/command/command-group.js.map +1 -0
  57. package/dist/components/collections/command/command-input.d.ts +20 -0
  58. package/dist/components/collections/command/command-input.js +75 -0
  59. package/dist/components/collections/command/command-input.js.map +1 -0
  60. package/dist/components/collections/command/command-item-text.d.ts +19 -0
  61. package/dist/components/collections/command/command-item-text.js +32 -0
  62. package/dist/components/collections/command/command-item-text.js.map +1 -0
  63. package/dist/components/collections/command/command-item-variants.d.ts +12 -0
  64. package/dist/components/collections/command/command-item-variants.js +39 -0
  65. package/dist/components/collections/command/command-item-variants.js.map +1 -0
  66. package/dist/components/collections/command/command-item.d.ts +17 -0
  67. package/dist/components/collections/command/command-item.js +25 -0
  68. package/dist/components/collections/command/command-item.js.map +1 -0
  69. package/dist/components/collections/command/command-list.d.ts +14 -0
  70. package/dist/components/collections/command/command-list.js +31 -0
  71. package/dist/components/collections/command/command-list.js.map +1 -0
  72. package/dist/components/collections/command/command-loading.d.ts +17 -0
  73. package/dist/components/collections/command/command-loading.js +30 -0
  74. package/dist/components/collections/command/command-loading.js.map +1 -0
  75. package/dist/components/collections/command/command-root.d.ts +91 -0
  76. package/dist/components/collections/command/command-root.js +50 -0
  77. package/dist/components/collections/command/command-root.js.map +1 -0
  78. package/dist/components/collections/command/command-separator.d.ts +15 -0
  79. package/dist/components/collections/command/command-separator.js +27 -0
  80. package/dist/components/collections/command/command-separator.js.map +1 -0
  81. package/dist/components/collections/command/index.d.ts +2 -0
  82. package/dist/components/collections/command/index.js +2 -0
  83. package/dist/components/collections/command/index.parts.d.ts +19 -0
  84. package/dist/components/collections/command/index.parts.js +35 -0
  85. package/dist/components/collections/command/index.parts.js.map +1 -0
  86. package/dist/components/collections/command/use-command-context.d.ts +10 -0
  87. package/dist/components/collections/command/use-command-context.js +10 -0
  88. package/dist/components/collections/command/use-command-context.js.map +1 -0
  89. package/dist/components/collections/command/use-command-filter.d.ts +27 -0
  90. package/dist/components/collections/command/use-command-filter.js +32 -0
  91. package/dist/components/collections/command/use-command-filter.js.map +1 -0
  92. package/dist/components/collections/select/select-backdrop.d.ts +1 -2
  93. package/dist/components/collections/select/select-backdrop.js +1 -2
  94. package/dist/components/collections/select/select-backdrop.js.map +1 -1
  95. package/dist/components/collections/select/select-group-label-variants.d.ts +2 -2
  96. package/dist/components/collections/select/select-group-label-variants.js +2 -2
  97. package/dist/components/collections/select/select-group-label-variants.js.map +1 -1
  98. package/dist/components/collections/select/select-item-variants.d.ts +3 -2
  99. package/dist/components/collections/select/select-item-variants.js +3 -2
  100. package/dist/components/collections/select/select-item-variants.js.map +1 -1
  101. package/dist/components/collections/select/select-popup-variants.d.ts +1 -1
  102. package/dist/components/collections/select/select-popup-variants.js +1 -1
  103. package/dist/components/collections/select/select-popup-variants.js.map +1 -1
  104. package/dist/components/collections/select/select-separator.d.ts +1 -1
  105. package/dist/components/collections/select/select-separator.js +1 -1
  106. package/dist/components/collections/select/select-separator.js.map +1 -1
  107. package/dist/components/collections/select/select-trigger-variants.d.ts +2 -2
  108. package/dist/components/collections/select/select-trigger-variants.js +5 -5
  109. package/dist/components/collections/select/select-trigger-variants.js.map +1 -1
  110. package/dist/components/collections/tree-view/tree-view-node-checkbox.js +1 -1
  111. package/dist/components/collections/tree-view/tree-view-node-checkbox.js.map +1 -1
  112. package/dist/components/collections/tree-view/tree-view-node-variants.d.ts +1 -1
  113. package/dist/components/collections/tree-view/tree-view-node-variants.js +6 -6
  114. package/dist/components/collections/tree-view/tree-view-node-variants.js.map +1 -1
  115. package/dist/components/collections/tree-view/tree-view-root.d.ts +1 -1
  116. package/dist/components/collections/tree-view/tree-view-root.js +1 -1
  117. package/dist/components/collections/tree-view/tree-view-root.js.map +1 -1
  118. package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts +1 -1
  119. package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +5 -0
  120. package/dist/components/disclosure/tabs/tabs-indicator-variants.js +7 -2
  121. package/dist/components/disclosure/tabs/tabs-indicator-variants.js.map +1 -1
  122. package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +5 -0
  123. package/dist/components/disclosure/tabs/tabs-list-variants.js +7 -2
  124. package/dist/components/disclosure/tabs/tabs-list-variants.js.map +1 -1
  125. package/dist/components/disclosure/tabs/tabs-root-variants.d.ts +1 -1
  126. package/dist/components/disclosure/tabs/tabs-root-variants.js +10 -8
  127. package/dist/components/disclosure/tabs/tabs-root-variants.js.map +1 -1
  128. package/dist/components/disclosure/tabs/tabs-root.d.ts +1 -1
  129. package/dist/components/disclosure/tabs/tabs-root.js +1 -1
  130. package/dist/components/disclosure/tabs/tabs-root.js.map +1 -1
  131. package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +4 -0
  132. package/dist/components/disclosure/tabs/tabs-tab-variants.js +6 -2
  133. package/dist/components/disclosure/tabs/tabs-tab-variants.js.map +1 -1
  134. package/dist/components/display/avatar/avatar-root-variants.d.ts +1 -1
  135. package/dist/components/display/avatar/avatar-root-variants.js +162 -162
  136. package/dist/components/display/avatar/avatar-root-variants.js.map +1 -1
  137. package/dist/components/display/badge/badge-variants.d.ts +8 -5
  138. package/dist/components/display/badge/badge-variants.js +171 -166
  139. package/dist/components/display/badge/badge-variants.js.map +1 -1
  140. package/dist/components/display/badge/badge.d.ts +10 -1
  141. package/dist/components/display/badge/badge.js +40 -2
  142. package/dist/components/display/badge/badge.js.map +1 -1
  143. package/dist/components/display/card/card-body.d.ts +2 -2
  144. package/dist/components/display/card/card-body.js +3 -2
  145. package/dist/components/display/card/card-body.js.map +1 -1
  146. package/dist/components/display/card/card-description.d.ts +1 -2
  147. package/dist/components/display/card/card-description.js +1 -2
  148. package/dist/components/display/card/card-description.js.map +1 -1
  149. package/dist/components/display/card/card-footer.d.ts +1 -1
  150. package/dist/components/display/card/card-footer.js +1 -1
  151. package/dist/components/display/card/card-footer.js.map +1 -1
  152. package/dist/components/display/card/card-header.d.ts +1 -2
  153. package/dist/components/display/card/card-header.js +1 -2
  154. package/dist/components/display/card/card-header.js.map +1 -1
  155. package/dist/components/display/card/card-title.d.ts +1 -2
  156. package/dist/components/display/card/card-title.js +1 -2
  157. package/dist/components/display/card/card-title.js.map +1 -1
  158. package/dist/components/display/clipboard/clipboard-indicator.js +2 -2
  159. package/dist/components/display/clipboard/clipboard-indicator.js.map +1 -1
  160. package/dist/components/display/data-list/data-list-item-label-variants.d.ts +7 -0
  161. package/dist/components/display/data-list/data-list-item-label-variants.js +27 -0
  162. package/dist/components/display/data-list/data-list-item-label-variants.js.map +1 -0
  163. package/dist/components/display/data-list/data-list-item-label.d.ts +2 -1
  164. package/dist/components/display/data-list/data-list-item-label.js +9 -2
  165. package/dist/components/display/data-list/data-list-item-label.js.map +1 -1
  166. package/dist/components/display/data-list/data-list-item-value-variants.d.ts +1 -1
  167. package/dist/components/display/data-list/data-list-item-value-variants.js +9 -5
  168. package/dist/components/display/data-list/data-list-item-value-variants.js.map +1 -1
  169. package/dist/components/display/data-list/data-list-item-value.d.ts +2 -1
  170. package/dist/components/display/data-list/data-list-item-value.js +4 -3
  171. package/dist/components/display/data-list/data-list-item-value.js.map +1 -1
  172. package/dist/components/display/data-list/data-list-item-variants.d.ts +2 -6
  173. package/dist/components/display/data-list/data-list-item-variants.js +24 -26
  174. package/dist/components/display/data-list/data-list-item-variants.js.map +1 -1
  175. package/dist/components/display/data-list/data-list-item.d.ts +2 -1
  176. package/dist/components/display/data-list/data-list-item.js +7 -3
  177. package/dist/components/display/data-list/data-list-item.js.map +1 -1
  178. package/dist/components/display/data-list/data-list-root-variants.d.ts +1 -2
  179. package/dist/components/display/data-list/data-list-root-variants.js +7 -24
  180. package/dist/components/display/data-list/data-list-root-variants.js.map +1 -1
  181. package/dist/components/display/data-list/data-list-root.d.ts +3 -2
  182. package/dist/components/display/data-list/data-list-root.js +8 -3
  183. package/dist/components/display/data-list/data-list-root.js.map +1 -1
  184. package/dist/components/display/data-list/use-data-list-context.d.ts +18 -7
  185. package/dist/components/display/data-list/use-data-list-context.js +3 -2
  186. package/dist/components/display/data-list/use-data-list-context.js.map +1 -1
  187. package/dist/components/display/status/status-variants.d.ts +2 -2
  188. package/dist/components/display/status/status-variants.js +6 -6
  189. package/dist/components/display/status/status-variants.js.map +1 -1
  190. package/dist/components/display/tag/tag-root-variants.d.ts +2 -3
  191. package/dist/components/display/tag/tag-root-variants.js +163 -164
  192. package/dist/components/display/tag/tag-root-variants.js.map +1 -1
  193. package/dist/components/feedback/alert/alert-description.d.ts +1 -2
  194. package/dist/components/feedback/alert/alert-description.js +2 -3
  195. package/dist/components/feedback/alert/alert-description.js.map +1 -1
  196. package/dist/components/feedback/alert/alert-indicator.d.ts +2 -2
  197. package/dist/components/feedback/alert/alert-indicator.js +2 -2
  198. package/dist/components/feedback/alert/alert-indicator.js.map +1 -1
  199. package/dist/components/feedback/alert/alert-root-variants.d.ts +3 -3
  200. package/dist/components/feedback/alert/alert-root-variants.js +28 -28
  201. package/dist/components/feedback/alert/alert-root-variants.js.map +1 -1
  202. package/dist/components/feedback/alert/alert-title.d.ts +1 -2
  203. package/dist/components/feedback/alert/alert-title.js +2 -3
  204. package/dist/components/feedback/alert/alert-title.js.map +1 -1
  205. package/dist/components/feedback/meter/index.d.ts +2 -0
  206. package/dist/components/feedback/meter/index.js +2 -0
  207. package/dist/components/feedback/meter/index.parts.d.ts +12 -0
  208. package/dist/components/feedback/meter/index.parts.js +18 -0
  209. package/dist/components/feedback/meter/index.parts.js.map +1 -0
  210. package/dist/components/feedback/meter/meter-indicator.d.ts +17 -0
  211. package/dist/components/feedback/meter/meter-indicator.js +31 -0
  212. package/dist/components/feedback/meter/meter-indicator.js.map +1 -0
  213. package/dist/components/feedback/meter/meter-label.d.ts +13 -0
  214. package/dist/components/feedback/meter/meter-label.js +20 -0
  215. package/dist/components/feedback/meter/meter-label.js.map +1 -0
  216. package/dist/components/feedback/meter/meter-root-variants.d.ts +14 -0
  217. package/dist/components/feedback/meter/meter-root-variants.js +42 -0
  218. package/dist/components/feedback/meter/meter-root-variants.js.map +1 -0
  219. package/dist/components/feedback/meter/meter-root.d.ts +37 -0
  220. package/dist/components/feedback/meter/meter-root.js +51 -0
  221. package/dist/components/feedback/meter/meter-root.js.map +1 -0
  222. package/dist/components/feedback/meter/meter-track-variants.d.ts +6 -0
  223. package/dist/components/feedback/meter/meter-track-variants.js +22 -0
  224. package/dist/components/feedback/meter/meter-track-variants.js.map +1 -0
  225. package/dist/components/feedback/meter/meter-track.d.ts +13 -0
  226. package/dist/components/feedback/meter/meter-track.js +23 -0
  227. package/dist/components/feedback/meter/meter-track.js.map +1 -0
  228. package/dist/components/feedback/meter/meter-value.d.ts +14 -0
  229. package/dist/components/feedback/meter/meter-value.js +25 -0
  230. package/dist/components/feedback/meter/meter-value.js.map +1 -0
  231. package/dist/components/feedback/meter/use-meter-context.d.ts +23 -0
  232. package/dist/components/feedback/meter/use-meter-context.js +14 -0
  233. package/dist/components/feedback/meter/use-meter-context.js.map +1 -0
  234. package/dist/components/feedback/progress/index.d.ts +2 -0
  235. package/dist/components/feedback/progress/index.js +2 -0
  236. package/dist/components/feedback/progress/index.parts.d.ts +12 -0
  237. package/dist/components/feedback/progress/index.parts.js +18 -0
  238. package/dist/components/feedback/progress/index.parts.js.map +1 -0
  239. package/dist/components/feedback/progress/progress-indicator.d.ts +16 -0
  240. package/dist/components/feedback/progress/progress-indicator.js +34 -0
  241. package/dist/components/feedback/progress/progress-indicator.js.map +1 -0
  242. package/dist/components/feedback/progress/progress-label.d.ts +13 -0
  243. package/dist/components/feedback/progress/progress-label.js +20 -0
  244. package/dist/components/feedback/progress/progress-label.js.map +1 -0
  245. package/dist/components/feedback/progress/progress-root-variants.d.ts +15 -0
  246. package/dist/components/feedback/progress/progress-root-variants.js +43 -0
  247. package/dist/components/feedback/progress/progress-root-variants.js.map +1 -0
  248. package/dist/components/feedback/progress/progress-root.d.ts +34 -0
  249. package/dist/components/feedback/progress/progress-root.js +48 -0
  250. package/dist/components/feedback/progress/progress-root.js.map +1 -0
  251. package/dist/components/feedback/progress/progress-track-variants.d.ts +6 -0
  252. package/dist/components/feedback/progress/progress-track-variants.js +22 -0
  253. package/dist/components/feedback/progress/progress-track-variants.js.map +1 -0
  254. package/dist/components/feedback/progress/progress-track.d.ts +13 -0
  255. package/dist/components/feedback/progress/progress-track.js +23 -0
  256. package/dist/components/feedback/progress/progress-track.js.map +1 -0
  257. package/dist/components/feedback/progress/progress-value.d.ts +14 -0
  258. package/dist/components/feedback/progress/progress-value.js +25 -0
  259. package/dist/components/feedback/progress/progress-value.js.map +1 -0
  260. package/dist/components/feedback/progress/use-progress-context.d.ts +23 -0
  261. package/dist/components/feedback/progress/use-progress-context.js +14 -0
  262. package/dist/components/feedback/progress/use-progress-context.js.map +1 -0
  263. package/dist/components/feedback/spinner/spinner-variants.d.ts +1 -1
  264. package/dist/components/feedback/spinner/spinner-variants.js +1 -1
  265. package/dist/components/feedback/spinner/spinner-variants.js.map +1 -1
  266. package/dist/components/feedback/spinner/spinner.d.ts +1 -1
  267. package/dist/components/feedback/spinner/spinner.js +1 -1
  268. package/dist/components/feedback/spinner/spinner.js.map +1 -1
  269. package/dist/components/feedback/toast/toast-description.d.ts +2 -2
  270. package/dist/components/feedback/toast/toast-description.js +3 -3
  271. package/dist/components/feedback/toast/toast-description.js.map +1 -1
  272. package/dist/components/feedback/toast/toast-indicator.d.ts +4 -4
  273. package/dist/components/feedback/toast/toast-indicator.js +4 -4
  274. package/dist/components/feedback/toast/toast-indicator.js.map +1 -1
  275. package/dist/components/feedback/toast/toast-root-variants.d.ts +1 -1
  276. package/dist/components/feedback/toast/toast-root-variants.js +15 -15
  277. package/dist/components/feedback/toast/toast-root-variants.js.map +1 -1
  278. package/dist/components/feedback/toast/toast-title.d.ts +3 -3
  279. package/dist/components/feedback/toast/toast-title.js +4 -4
  280. package/dist/components/feedback/toast/toast-title.js.map +1 -1
  281. package/dist/components/feedback/toast/toast-viewport-variants.d.ts +1 -1
  282. package/dist/components/fields/checkbox/checkbox-root-variants.d.ts +3 -1
  283. package/dist/components/fields/checkbox/checkbox-root-variants.js +11 -9
  284. package/dist/components/fields/checkbox/checkbox-root-variants.js.map +1 -1
  285. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js +3 -3
  286. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js.map +1 -1
  287. package/dist/components/fields/field/field-root.d.ts +2 -1
  288. package/dist/components/fields/field/field-root.js +2 -1
  289. package/dist/components/fields/field/field-root.js.map +1 -1
  290. package/dist/components/fields/input/input-variants.d.ts +4 -3
  291. package/dist/components/fields/input/input-variants.js +7 -6
  292. package/dist/components/fields/input/input-variants.js.map +1 -1
  293. package/dist/components/fields/input-group/index.d.ts +3 -0
  294. package/dist/components/fields/input-group/index.js +2 -0
  295. package/dist/components/fields/input-group/input-group-variants.d.ts +81 -0
  296. package/dist/components/fields/input-group/input-group-variants.js +212 -0
  297. package/dist/components/fields/input-group/input-group-variants.js.map +1 -0
  298. package/dist/components/fields/input-group/input-group.d.ts +88 -0
  299. package/dist/components/fields/input-group/input-group.js +164 -0
  300. package/dist/components/fields/input-group/input-group.js.map +1 -0
  301. package/dist/components/fields/number-input/number-input-variants.js +3 -3
  302. package/dist/components/fields/number-input/number-input-variants.js.map +1 -1
  303. package/dist/components/fields/pattern-input/pattern-input-variants.js +3 -3
  304. package/dist/components/fields/pattern-input/pattern-input-variants.js.map +1 -1
  305. package/dist/components/fields/radio/index.d.ts +2 -0
  306. package/dist/components/fields/radio/index.js +2 -0
  307. package/dist/components/fields/radio/index.parts.d.ts +10 -0
  308. package/dist/components/fields/radio/index.parts.js +14 -0
  309. package/dist/components/fields/radio/index.parts.js.map +1 -0
  310. package/dist/components/fields/radio/radio-group.d.ts +40 -0
  311. package/dist/components/fields/radio/radio-group.js +45 -0
  312. package/dist/components/fields/radio/radio-group.js.map +1 -0
  313. package/dist/components/fields/radio/radio-indicator.d.ts +14 -0
  314. package/dist/components/fields/radio/radio-indicator.js +33 -0
  315. package/dist/components/fields/radio/radio-indicator.js.map +1 -0
  316. package/dist/components/fields/radio/radio-root-variants.d.ts +41 -0
  317. package/dist/components/fields/radio/radio-root-variants.js +93 -0
  318. package/dist/components/fields/radio/radio-root-variants.js.map +1 -0
  319. package/dist/components/fields/radio/radio-root.d.ts +27 -0
  320. package/dist/components/fields/radio/radio-root.js +40 -0
  321. package/dist/components/fields/radio/radio-root.js.map +1 -0
  322. package/dist/components/fields/radio-card/index.d.ts +2 -0
  323. package/dist/components/fields/radio-card/index.js +2 -0
  324. package/dist/components/fields/radio-card/index.parts.d.ts +12 -0
  325. package/dist/components/fields/radio-card/index.parts.js +18 -0
  326. package/dist/components/fields/radio-card/index.parts.js.map +1 -0
  327. package/dist/components/fields/radio-card/radio-card-description.d.ts +14 -0
  328. package/dist/components/fields/radio-card/radio-card-description.js +34 -0
  329. package/dist/components/fields/radio-card/radio-card-description.js.map +1 -0
  330. package/dist/components/fields/radio-card/radio-card-group.d.ts +41 -0
  331. package/dist/components/fields/radio-card/radio-card-group.js +51 -0
  332. package/dist/components/fields/radio-card/radio-card-group.js.map +1 -0
  333. package/dist/components/fields/radio-card/radio-card-indicator.d.ts +24 -0
  334. package/dist/components/fields/radio-card/radio-card-indicator.js +67 -0
  335. package/dist/components/fields/radio-card/radio-card-indicator.js.map +1 -0
  336. package/dist/components/fields/radio-card/radio-card-item-variants.d.ts +25 -0
  337. package/dist/components/fields/radio-card/radio-card-item-variants.js +83 -0
  338. package/dist/components/fields/radio-card/radio-card-item-variants.js.map +1 -0
  339. package/dist/components/fields/radio-card/radio-card-item.d.ts +33 -0
  340. package/dist/components/fields/radio-card/radio-card-item.js +60 -0
  341. package/dist/components/fields/radio-card/radio-card-item.js.map +1 -0
  342. package/dist/components/fields/radio-card/radio-card-title.d.ts +14 -0
  343. package/dist/components/fields/radio-card/radio-card-title.js +34 -0
  344. package/dist/components/fields/radio-card/radio-card-title.js.map +1 -0
  345. package/dist/components/fields/radio-card/use-radio-card-context.d.ts +25 -0
  346. package/dist/components/fields/radio-card/use-radio-card-context.js +14 -0
  347. package/dist/components/fields/radio-card/use-radio-card-context.js.map +1 -0
  348. package/dist/components/fields/radio-card/use-radio-card-item-context.d.ts +12 -0
  349. package/dist/components/fields/radio-card/use-radio-card-item-context.js +10 -0
  350. package/dist/components/fields/radio-card/use-radio-card-item-context.js.map +1 -0
  351. package/dist/components/fields/segmented-control/index.d.ts +2 -0
  352. package/dist/components/fields/segmented-control/index.js +2 -0
  353. package/dist/components/fields/segmented-control/index.parts.d.ts +10 -0
  354. package/dist/components/fields/segmented-control/index.parts.js +14 -0
  355. package/dist/components/fields/segmented-control/index.parts.js.map +1 -0
  356. package/dist/components/fields/segmented-control/segmented-control-indicator.d.ts +21 -0
  357. package/dist/components/fields/segmented-control/segmented-control-indicator.js +50 -0
  358. package/dist/components/fields/segmented-control/segmented-control-indicator.js.map +1 -0
  359. package/dist/components/fields/segmented-control/segmented-control-item-variants.d.ts +16 -0
  360. package/dist/components/fields/segmented-control/segmented-control-item-variants.js +72 -0
  361. package/dist/components/fields/segmented-control/segmented-control-item-variants.js.map +1 -0
  362. package/dist/components/fields/segmented-control/segmented-control-item.d.ts +17 -0
  363. package/dist/components/fields/segmented-control/segmented-control-item.js +29 -0
  364. package/dist/components/fields/segmented-control/segmented-control-item.js.map +1 -0
  365. package/dist/components/fields/segmented-control/segmented-control-root-variants.d.ts +21 -0
  366. package/dist/components/fields/segmented-control/segmented-control-root-variants.js +66 -0
  367. package/dist/components/fields/segmented-control/segmented-control-root-variants.js.map +1 -0
  368. package/dist/components/fields/segmented-control/segmented-control-root.d.ts +41 -0
  369. package/dist/components/fields/segmented-control/segmented-control-root.js +65 -0
  370. package/dist/components/fields/segmented-control/segmented-control-root.js.map +1 -0
  371. package/dist/components/fields/segmented-control/use-segmented-control-context.d.ts +33 -0
  372. package/dist/components/fields/segmented-control/use-segmented-control-context.js +15 -0
  373. package/dist/components/fields/segmented-control/use-segmented-control-context.js.map +1 -0
  374. package/dist/components/fields/segmented-control/use-segmented-control-indicator.d.ts +22 -0
  375. package/dist/components/fields/segmented-control/use-segmented-control-indicator.js +67 -0
  376. package/dist/components/fields/segmented-control/use-segmented-control-indicator.js.map +1 -0
  377. package/dist/components/fields/switch/switch-root-variants.d.ts +1 -1
  378. package/dist/components/fields/switch/switch-root-variants.js +3 -3
  379. package/dist/components/fields/switch/switch-root-variants.js.map +1 -1
  380. package/dist/components/fields/textarea/textarea-variants.js +3 -3
  381. package/dist/components/fields/textarea/textarea-variants.js.map +1 -1
  382. package/dist/components/layout/center-absolute/center-absolute-variants.d.ts +1 -1
  383. package/dist/components/layout/group/group-variants.d.ts +43 -0
  384. package/dist/components/layout/group/group-variants.js +72 -0
  385. package/dist/components/layout/group/group-variants.js.map +1 -0
  386. package/dist/components/layout/group/group.d.ts +38 -0
  387. package/dist/components/layout/group/group.js +55 -0
  388. package/dist/components/layout/group/group.js.map +1 -0
  389. package/dist/components/layout/group/index.d.ts +3 -0
  390. package/dist/components/layout/group/index.js +2 -0
  391. package/dist/components/layout/scroll-area/scroll-area-root.d.ts +16 -3
  392. package/dist/components/layout/scroll-area/scroll-area-root.js +6 -3
  393. package/dist/components/layout/scroll-area/scroll-area-root.js.map +1 -1
  394. package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts +3 -0
  395. package/dist/components/layout/scroll-area/scroll-area-scrollbar.js +9 -2
  396. package/dist/components/layout/scroll-area/scroll-area-scrollbar.js.map +1 -1
  397. package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts +5 -1
  398. package/dist/components/layout/scroll-area/scroll-area-thumb.js +15 -5
  399. package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +1 -1
  400. package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts +1 -1
  401. package/dist/components/layout/separator/separator-variants.d.ts +1 -1
  402. package/dist/components/layout/separator/separator-variants.js +1 -1
  403. package/dist/components/layout/separator/separator-variants.js.map +1 -1
  404. package/dist/components/overlays/action-bar/action-bar-selection-trigger.js +2 -2
  405. package/dist/components/overlays/action-bar/action-bar-selection-trigger.js.map +1 -1
  406. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.d.ts +1 -2
  407. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js +1 -2
  408. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js.map +1 -1
  409. package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts +5 -2
  410. package/dist/components/overlays/alert-dialog/alert-dialog-body.js +8 -3
  411. package/dist/components/overlays/alert-dialog/alert-dialog-body.js.map +1 -1
  412. package/dist/components/overlays/alert-dialog/alert-dialog-description.d.ts +1 -2
  413. package/dist/components/overlays/alert-dialog/alert-dialog-description.js +1 -2
  414. package/dist/components/overlays/alert-dialog/alert-dialog-description.js.map +1 -1
  415. package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts +6 -3
  416. package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +9 -5
  417. package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
  418. package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +9 -2
  419. package/dist/components/overlays/alert-dialog/alert-dialog-header.js +19 -5
  420. package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
  421. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +87 -28
  422. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +120 -55
  423. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
  424. package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts +24 -0
  425. package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js +31 -0
  426. package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js.map +1 -0
  427. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +25 -0
  428. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +51 -0
  429. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -0
  430. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +4 -0
  431. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +13 -2
  432. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -1
  433. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -2
  434. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +7 -6
  435. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
  436. package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts +2 -1
  437. package/dist/components/overlays/alert-dialog/alert-dialog-popup.js +2 -1
  438. package/dist/components/overlays/alert-dialog/alert-dialog-popup.js.map +1 -1
  439. package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -4
  440. package/dist/components/overlays/alert-dialog/alert-dialog-store.js +48 -5
  441. package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -1
  442. package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +3 -2
  443. package/dist/components/overlays/alert-dialog/alert-dialog-title.js +4 -3
  444. package/dist/components/overlays/alert-dialog/alert-dialog-title.js.map +1 -1
  445. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.d.ts +1 -2
  446. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js +1 -2
  447. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js.map +1 -1
  448. package/dist/components/overlays/alert-dialog/index.parts.d.ts +4 -3
  449. package/dist/components/overlays/alert-dialog/index.parts.js +3 -1
  450. package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
  451. package/dist/components/overlays/dialog/dialog-backdrop.d.ts +1 -2
  452. package/dist/components/overlays/dialog/dialog-backdrop.js +1 -2
  453. package/dist/components/overlays/dialog/dialog-backdrop.js.map +1 -1
  454. package/dist/components/overlays/dialog/dialog-body.d.ts +5 -5
  455. package/dist/components/overlays/dialog/dialog-body.js +6 -5
  456. package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
  457. package/dist/components/overlays/dialog/dialog-description.d.ts +4 -4
  458. package/dist/components/overlays/dialog/dialog-description.js +4 -4
  459. package/dist/components/overlays/dialog/dialog-description.js.map +1 -1
  460. package/dist/components/overlays/dialog/dialog-footer.d.ts +5 -6
  461. package/dist/components/overlays/dialog/dialog-footer.js +5 -6
  462. package/dist/components/overlays/dialog/dialog-footer.js.map +1 -1
  463. package/dist/components/overlays/dialog/dialog-header.d.ts +5 -6
  464. package/dist/components/overlays/dialog/dialog-header.js +5 -6
  465. package/dist/components/overlays/dialog/dialog-header.js.map +1 -1
  466. package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +5 -5
  467. package/dist/components/overlays/dialog/dialog-popup-variants.js +6 -7
  468. package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
  469. package/dist/components/overlays/dialog/dialog-title.d.ts +5 -5
  470. package/dist/components/overlays/dialog/dialog-title.js +5 -5
  471. package/dist/components/overlays/dialog/dialog-title.js.map +1 -1
  472. package/dist/components/overlays/dialog/dialog-viewport.d.ts +2 -2
  473. package/dist/components/overlays/dialog/dialog-viewport.js +2 -2
  474. package/dist/components/overlays/dialog/dialog-viewport.js.map +1 -1
  475. package/dist/components/overlays/drawer/drawer-backdrop.d.ts +1 -1
  476. package/dist/components/overlays/drawer/drawer-backdrop.js +1 -1
  477. package/dist/components/overlays/drawer/drawer-backdrop.js.map +1 -1
  478. package/dist/components/overlays/drawer/drawer-body.d.ts +3 -3
  479. package/dist/components/overlays/drawer/drawer-body.js +4 -3
  480. package/dist/components/overlays/drawer/drawer-body.js.map +1 -1
  481. package/dist/components/overlays/drawer/drawer-description.d.ts +1 -2
  482. package/dist/components/overlays/drawer/drawer-description.js +1 -2
  483. package/dist/components/overlays/drawer/drawer-description.js.map +1 -1
  484. package/dist/components/overlays/drawer/drawer-footer.d.ts +1 -2
  485. package/dist/components/overlays/drawer/drawer-footer.js +1 -2
  486. package/dist/components/overlays/drawer/drawer-footer.js.map +1 -1
  487. package/dist/components/overlays/drawer/drawer-header.d.ts +1 -2
  488. package/dist/components/overlays/drawer/drawer-header.js +1 -2
  489. package/dist/components/overlays/drawer/drawer-header.js.map +1 -1
  490. package/dist/components/overlays/drawer/drawer-popup-variants.d.ts +1 -1
  491. package/dist/components/overlays/drawer/drawer-popup-variants.js +1 -2
  492. package/dist/components/overlays/drawer/drawer-popup-variants.js.map +1 -1
  493. package/dist/components/overlays/drawer/drawer-title.d.ts +1 -2
  494. package/dist/components/overlays/drawer/drawer-title.js +1 -2
  495. package/dist/components/overlays/drawer/drawer-title.js.map +1 -1
  496. package/dist/components/overlays/menu/create-handle.d.ts +10 -0
  497. package/dist/components/overlays/menu/create-handle.js +11 -0
  498. package/dist/components/overlays/menu/create-handle.js.map +1 -0
  499. package/dist/components/overlays/menu/index.parts.d.ts +21 -3
  500. package/dist/components/overlays/menu/index.parts.js +38 -2
  501. package/dist/components/overlays/menu/index.parts.js.map +1 -1
  502. package/dist/components/overlays/menu/menu-arrow.d.ts +17 -0
  503. package/dist/components/overlays/menu/menu-arrow.js +48 -0
  504. package/dist/components/overlays/menu/menu-arrow.js.map +1 -0
  505. package/dist/components/overlays/menu/menu-backdrop.d.ts +16 -0
  506. package/dist/components/overlays/menu/menu-backdrop.js +36 -0
  507. package/dist/components/overlays/menu/menu-backdrop.js.map +1 -0
  508. package/dist/components/overlays/menu/menu-checkbox-item-indicator.d.ts +16 -0
  509. package/dist/components/overlays/menu/menu-checkbox-item-indicator.js +27 -0
  510. package/dist/components/overlays/menu/menu-checkbox-item-indicator.js.map +1 -0
  511. package/dist/components/overlays/menu/menu-checkbox-item.d.ts +24 -0
  512. package/dist/components/overlays/menu/menu-checkbox-item.js +31 -0
  513. package/dist/components/overlays/menu/menu-checkbox-item.js.map +1 -0
  514. package/dist/components/overlays/menu/menu-clear.d.ts +20 -0
  515. package/dist/components/overlays/menu/menu-clear.js +45 -0
  516. package/dist/components/overlays/menu/menu-clear.js.map +1 -0
  517. package/dist/components/overlays/menu/menu-empty.d.ts +18 -0
  518. package/dist/components/overlays/menu/menu-empty.js +32 -0
  519. package/dist/components/overlays/menu/menu-empty.js.map +1 -0
  520. package/dist/components/overlays/menu/menu-filter-provider.d.ts +43 -0
  521. package/dist/components/overlays/menu/menu-filter-provider.js +42 -0
  522. package/dist/components/overlays/menu/menu-filter-provider.js.map +1 -0
  523. package/dist/components/overlays/menu/menu-group-label.d.ts +1 -1
  524. package/dist/components/overlays/menu/menu-group-label.js +1 -1
  525. package/dist/components/overlays/menu/menu-group-label.js.map +1 -1
  526. package/dist/components/overlays/menu/menu-input.d.ts +22 -0
  527. package/dist/components/overlays/menu/menu-input.js +58 -0
  528. package/dist/components/overlays/menu/menu-input.js.map +1 -0
  529. package/dist/components/overlays/menu/menu-item-variants.d.ts +2 -2
  530. package/dist/components/overlays/menu/menu-item-variants.js +7 -7
  531. package/dist/components/overlays/menu/menu-item-variants.js.map +1 -1
  532. package/dist/components/overlays/menu/menu-link-item.d.ts +19 -0
  533. package/dist/components/overlays/menu/menu-link-item.js +28 -0
  534. package/dist/components/overlays/menu/menu-link-item.js.map +1 -0
  535. package/dist/components/overlays/menu/menu-list.d.ts +25 -0
  536. package/dist/components/overlays/menu/menu-list.js +43 -0
  537. package/dist/components/overlays/menu/menu-list.js.map +1 -0
  538. package/dist/components/overlays/menu/menu-popup.d.ts +7 -6
  539. package/dist/components/overlays/menu/menu-popup.js +9 -9
  540. package/dist/components/overlays/menu/menu-popup.js.map +1 -1
  541. package/dist/components/overlays/menu/menu-positioner.d.ts +5 -1
  542. package/dist/components/overlays/menu/menu-positioner.js +11 -2
  543. package/dist/components/overlays/menu/menu-positioner.js.map +1 -1
  544. package/dist/components/overlays/menu/menu-radio-group.d.ts +17 -0
  545. package/dist/components/overlays/menu/menu-radio-group.js +22 -0
  546. package/dist/components/overlays/menu/menu-radio-group.js.map +1 -0
  547. package/dist/components/overlays/menu/menu-radio-item-indicator.d.ts +16 -0
  548. package/dist/components/overlays/menu/menu-radio-item-indicator.js +34 -0
  549. package/dist/components/overlays/menu/menu-radio-item-indicator.js.map +1 -0
  550. package/dist/components/overlays/menu/menu-radio-item.d.ts +21 -0
  551. package/dist/components/overlays/menu/menu-radio-item.js +30 -0
  552. package/dist/components/overlays/menu/menu-radio-item.js.map +1 -0
  553. package/dist/components/overlays/menu/menu-root.d.ts +15 -6
  554. package/dist/components/overlays/menu/menu-root.js +15 -6
  555. package/dist/components/overlays/menu/menu-root.js.map +1 -1
  556. package/dist/components/overlays/menu/menu-separator.d.ts +6 -1
  557. package/dist/components/overlays/menu/menu-separator.js +6 -1
  558. package/dist/components/overlays/menu/menu-separator.js.map +1 -1
  559. package/dist/components/overlays/menu/menu-submenu-root.d.ts +39 -0
  560. package/dist/components/overlays/menu/menu-submenu-root.js +42 -0
  561. package/dist/components/overlays/menu/menu-submenu-root.js.map +1 -0
  562. package/dist/components/overlays/menu/menu-submenu-trigger.d.ts +21 -0
  563. package/dist/components/overlays/menu/menu-submenu-trigger.js +40 -0
  564. package/dist/components/overlays/menu/menu-submenu-trigger.js.map +1 -0
  565. package/dist/components/overlays/menu/menu-viewport.d.ts +19 -0
  566. package/dist/components/overlays/menu/menu-viewport.js +51 -0
  567. package/dist/components/overlays/menu/menu-viewport.js.map +1 -0
  568. package/dist/components/overlays/menu/use-filter.d.ts +19 -0
  569. package/dist/components/overlays/menu/use-filter.js +19 -0
  570. package/dist/components/overlays/menu/use-filter.js.map +1 -0
  571. package/dist/components/overlays/menu/use-menu-submenu-context.d.ts +9 -0
  572. package/dist/components/overlays/menu/use-menu-submenu-context.js +12 -0
  573. package/dist/components/overlays/menu/use-menu-submenu-context.js.map +1 -0
  574. package/dist/components/overlays/popover/popover-arrow.d.ts +2 -2
  575. package/dist/components/overlays/popover/popover-arrow.js +2 -2
  576. package/dist/components/overlays/popover/popover-arrow.js.map +1 -1
  577. package/dist/components/overlays/popover/popover-backdrop.d.ts +5 -4
  578. package/dist/components/overlays/popover/popover-backdrop.js +5 -4
  579. package/dist/components/overlays/popover/popover-backdrop.js.map +1 -1
  580. package/dist/components/overlays/popover/popover-popup-variants.d.ts +3 -2
  581. package/dist/components/overlays/popover/popover-popup-variants.js +3 -2
  582. package/dist/components/overlays/popover/popover-popup-variants.js.map +1 -1
  583. package/dist/components/overlays/popover/popover-positioner.d.ts +4 -3
  584. package/dist/components/overlays/popover/popover-positioner.js +4 -3
  585. package/dist/components/overlays/popover/popover-positioner.js.map +1 -1
  586. package/dist/components/overlays/popover/popover-viewport.d.ts +4 -4
  587. package/dist/components/overlays/popover/popover-viewport.js +4 -4
  588. package/dist/components/overlays/popover/popover-viewport.js.map +1 -1
  589. package/dist/components/typography/highlight/highlight.d.ts +35 -0
  590. package/dist/components/typography/highlight/highlight.js +43 -0
  591. package/dist/components/typography/highlight/highlight.js.map +1 -0
  592. package/dist/components/typography/highlight/index.d.ts +2 -0
  593. package/dist/components/typography/highlight/index.js +2 -0
  594. package/dist/components/typography/kbd/kbd-variants.d.ts +1 -1
  595. package/dist/components/typography/kbd/kbd-variants.js +9 -9
  596. package/dist/components/typography/kbd/kbd-variants.js.map +1 -1
  597. package/dist/components/typography/link/index.d.ts +3 -0
  598. package/dist/components/typography/link/index.js +2 -0
  599. package/dist/components/typography/link/link-variants.d.ts +33 -0
  600. package/dist/components/typography/link/link-variants.js +91 -0
  601. package/dist/components/typography/link/link-variants.js.map +1 -0
  602. package/dist/components/typography/link/link.d.ts +50 -0
  603. package/dist/components/typography/link/link.js +74 -0
  604. package/dist/components/typography/link/link.js.map +1 -0
  605. package/dist/components/typography/mark/mark-variants.d.ts +8 -2
  606. package/dist/components/typography/mark/mark-variants.js +25 -21
  607. package/dist/components/typography/mark/mark-variants.js.map +1 -1
  608. package/dist/components/typography/pre/pre-variants.d.ts +1 -1
  609. package/dist/components/typography/pre/pre-variants.js +25 -25
  610. package/dist/components/typography/pre/pre-variants.js.map +1 -1
  611. package/dist/types/color-scheme.d.ts +2 -2
  612. package/package.json +17 -5
  613. package/src/theme/theme.css +1268 -1228
@@ -1,64 +1,117 @@
1
- import { ButtonProps } from "../../buttons/button/button.js";
2
- import "../../buttons/button/index.js";
1
+ import { AlertVariants } from "../../feedback/alert/use-alert-context.js";
2
+ import { index_parts_d_exports } from "../../feedback/alert/index.parts.js";
3
+ import "../../feedback/alert/index.js";
3
4
  import { AlertDialogVariants } from "./use-alert-dialog-context.js";
4
5
  import React from "react";
5
6
  //#region src/components/overlays/alert-dialog/alert-dialog-imperative.d.ts
6
- /**
7
- * Rótulo e visual de um botão do alerta, no vocabulário do `Button`. Clique, `loading` e
8
- * `disabled` ficam com o alerta.
9
- */
10
- export type AlertDialogButtonOptions = Pick<ButtonProps, 'children' | 'colorScheme' | 'variant'>;
11
7
  export type AlertDialogAlertOptions = {
12
- /** Título do alerta. */
8
+ /**
9
+ * O que aconteceu, no vocabulário do `Alert`: decide a cor e o ícone padrão do indicador, e só
10
+ * eles.
11
+ *
12
+ * @default 'info'
13
+ */
14
+ status?: NonNullable<AlertVariants['status']>;
15
+ /** Diz o que aconteceu ("Não foi possível emitir a nota"). */
13
16
  title: React.ReactNode;
14
17
  /**
15
- * Texto de apoio. Só para exibição: renderiza no `AlertDialog.Outlet`, sem o contexto de quem
16
- * abriu, e não muda depois de aberto.
18
+ * O motivo ou o que fazer em seguida. Só para exibição: renderiza no `AlertDialog.Outlet`, sem
19
+ * o contexto de quem abriu, e não muda depois de aberto.
17
20
  */
18
21
  description?: React.ReactNode;
22
+ /**
23
+ * Informação técnica (código de erro, resposta do servidor), num bloco "Detalhes técnicos"
24
+ * recolhido abaixo da descrição.
25
+ */
26
+ details?: React.ReactNode;
27
+ /**
28
+ * Troca só o desenho do indicador; a cor continua a do `status`. Um ícone próprio entra pelo
29
+ * `Icon` da lib, para ter o mesmo traço (`<Icon render={<TruckIcon />} />`).
30
+ */
31
+ icon?: React.ReactNode;
32
+ /**
33
+ * Rótulo do botão que fecha o alerta.
34
+ *
35
+ * @default 'OK'
36
+ */
37
+ okLabel?: React.ReactNode;
19
38
  /**
20
39
  * Largura do popup, repassada ao `AlertDialog.Root`.
21
40
  *
22
41
  * @default 'md'
23
42
  */
24
43
  size?: AlertDialogVariants['size'];
44
+ };
45
+ export type AlertDialogConfirmOptions = {
46
+ /** A pergunta ("Excluir a nota 4821?"). */
47
+ title: React.ReactNode;
25
48
  /**
26
- * Botão que fecha o alerta: no `alert`, o único; no `confirm`, o de confirmar.
49
+ * A consequência da ação ("A exclusão não pode ser desfeita."). Quase sempre deve estar
50
+ * presente: sem ela, o título é a única informação para decidir. Só para exibição: renderiza no
51
+ * `AlertDialog.Outlet`, sem o contexto de quem abriu, e não muda depois de aberto.
52
+ */
53
+ description?: React.ReactNode;
54
+ /**
55
+ * Ação que destrói ou não se desfaz. O botão de confirmar fica vermelho (`red`, e não `accent`) e
56
+ * o foco abre no "Cancelar", para um `Enter` dado sem ler não confirmar.
27
57
  *
28
- * @default { children: 'OK' } no `alert`, { children: 'Confirmar' } no `confirm`
58
+ * @default false
29
59
  */
30
- confirmButton?: AlertDialogButtonOptions;
31
- };
32
- export type AlertDialogConfirmOptions = AlertDialogAlertOptions & {
60
+ destructive?: boolean;
33
61
  /**
34
- * Botão de cancelar, antes do de confirmar: é o que recebe o foco ao abrir.
62
+ * Rótulo do botão de confirmar: o verbo da ação ("Excluir", "Cancelar a nota"), não
63
+ * "Confirmar" nem "Sim". Sem destrutiva, o foco abre nele.
64
+ */
65
+ confirmLabel: React.ReactNode;
66
+ /**
67
+ * Rótulo do botão de cancelar, antes do de confirmar.
35
68
  *
36
- * @default { children: 'Cancelar', variant: 'outline' }
69
+ * @default 'Cancelar'
37
70
  */
38
- cancelButton?: AlertDialogButtonOptions;
71
+ cancelLabel?: React.ReactNode;
39
72
  /**
40
73
  * Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o
41
74
  * alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se
42
- * ela lançar, o alerta continua aberto com o erro (o `message`, quando é um `Error`), para tentar
43
- * de novo ou cancelar. Sem ela, o alerta só pergunta.
75
+ * ela lançar, o alerta continua aberto, com os botões de volta ao normal e sem mensagem, para
76
+ * tentar de novo ou cancelar. Sem ela, o alerta só pergunta.
44
77
  */
45
78
  onConfirm?: () => unknown;
79
+ /**
80
+ * Chamada com o que o `onConfirm` lançou, com o alerta ainda aberto. A lib não mostra o erro:
81
+ * mostrá-lo é com quem chama, por um handler global (o `onError` de um cliente de queries) ou por
82
+ * esta opção. Um `try/catch` dentro do `onConfirm` que não relança faz o alerta fechar como
83
+ * sucesso. Sem `onError` e sem handler global, a falha não aparece para o usuário.
84
+ */
85
+ onError?: (error: unknown) => void;
86
+ /**
87
+ * Largura do popup, repassada ao `AlertDialog.Root`.
88
+ *
89
+ * @default 'md'
90
+ */
91
+ size?: AlertDialogVariants['size'];
46
92
  };
47
93
  /**
48
- * Abre um alerta com um botão só e resolve quando ele fecha, por esse botão ou pelo `Esc`. Pode
49
- * ser chamado de qualquer lugar, inclusive de fora do React, mas só aparece com um
50
- * `AlertDialog.Outlet` montado.
94
+ * Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele
95
+ * fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os
96
+ * "Detalhes técnicos" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,
97
+ * mas só aparece com um `AlertDialog.Outlet` montado.
51
98
  *
52
99
  * @example
53
100
  * ```ts
54
- * await AlertDialog.alert({ title: 'Sessão expirada', description: 'Entre de novo para continuar.' });
101
+ * await AlertDialog.alert({
102
+ * status: 'error',
103
+ * title: 'Não foi possível emitir a nota',
104
+ * description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',
105
+ * details: 'Rejeição 108: serviço paralisado momentaneamente.',
106
+ * });
55
107
  * ```
56
108
  */
57
109
  export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Promise<void>;
58
110
  /**
59
- * Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se cancelar ou
60
- * fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. Pode ser chamado de qualquer
61
- * lugar, inclusive de fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
111
+ * Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se
112
+ * cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na
113
+ * ação; com `destructive`, abre no "Cancelar". Pode ser chamado de qualquer lugar, inclusive de
114
+ * fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
62
115
  *
63
116
  * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o
64
117
  * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.
@@ -68,8 +121,14 @@ export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Pro
68
121
  * const confirmed = await AlertDialog.confirm({
69
122
  * title: 'Excluir a nota 4821?',
70
123
  * description: 'A exclusão não pode ser desfeita.',
71
- * confirmButton: { children: 'Excluir', colorScheme: 'red' },
124
+ * confirmLabel: 'Excluir',
125
+ * destructive: true,
72
126
  * onConfirm: () => deleteInvoice(4821),
127
+ * onError: () =>
128
+ * AlertDialog.alert({
129
+ * status: 'error',
130
+ * title: 'Não foi possível excluir a nota',
131
+ * }),
73
132
  * });
74
133
  * ```
75
134
  */
@@ -1,48 +1,58 @@
1
+ import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
1
2
  import { Button } from "../../buttons/button/button.js";
2
- import { AlertContent } from "../../feedback/alert/alert-content.js";
3
- import { AlertDescription } from "../../feedback/alert/alert-description.js";
4
- import { AlertIndicator } from "../../feedback/alert/alert-indicator.js";
5
- import { AlertRoot } from "../../feedback/alert/alert-root.js";
6
- import { AlertTitle } from "../../feedback/alert/alert-title.js";
3
+ import { CollapsibleIndicator } from "../../disclosure/collapsible/collapsible-indicator.js";
4
+ import { CollapsiblePanel } from "../../disclosure/collapsible/collapsible-panel.js";
5
+ import { CollapsibleRoot } from "../../disclosure/collapsible/collapsible-root.js";
6
+ import { CollapsibleTrigger } from "../../disclosure/collapsible/collapsible-trigger.js";
7
7
  import { AlertDialogBackdrop } from "./alert-dialog-backdrop.js";
8
8
  import { AlertDialogBody } from "./alert-dialog-body.js";
9
9
  import { AlertDialogClose } from "./alert-dialog-close.js";
10
10
  import { AlertDialogDescription } from "./alert-dialog-description.js";
11
11
  import { AlertDialogFooter } from "./alert-dialog-footer.js";
12
12
  import { AlertDialogHeader } from "./alert-dialog-header.js";
13
+ import { AlertDialogIndicator } from "./alert-dialog-indicator.js";
13
14
  import { AlertDialogPopup } from "./alert-dialog-popup.js";
14
15
  import { AlertDialogPortal } from "./alert-dialog-portal.js";
15
16
  import { AlertDialogRoot } from "./alert-dialog-root.js";
16
17
  import { alertDialogStore } from "./alert-dialog-store.js";
17
18
  import { AlertDialogTitle } from "./alert-dialog-title.js";
18
19
  import { AlertDialogViewport } from "./alert-dialog-viewport.js";
19
- import { useState } from "react";
20
+ import { useRef, useState } from "react";
20
21
  import { jsx, jsxs } from "react/jsx-runtime";
21
22
  import { useIsoLayoutEffect } from "@base-ui/utils/useIsoLayoutEffect";
22
23
  //#region src/components/overlays/alert-dialog/alert-dialog-imperative.tsx
23
24
  /**
24
- * Abre um alerta com um botão só e resolve quando ele fecha, por esse botão ou pelo `Esc`. Pode
25
- * ser chamado de qualquer lugar, inclusive de fora do React, mas só aparece com um
26
- * `AlertDialog.Outlet` montado.
25
+ * Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele
26
+ * fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os
27
+ * "Detalhes técnicos" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,
28
+ * mas só aparece com um `AlertDialog.Outlet` montado.
27
29
  *
28
30
  * @example
29
31
  * ```ts
30
- * await AlertDialog.alert({ title: 'Sessão expirada', description: 'Entre de novo para continuar.' });
32
+ * await AlertDialog.alert({
33
+ * status: 'error',
34
+ * title: 'Não foi possível emitir a nota',
35
+ * description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',
36
+ * details: 'Rejeição 108: serviço paralisado momentaneamente.',
37
+ * });
31
38
  * ```
32
39
  */
33
40
  const alertDialogAlert = (options) => {
34
41
  const { promise, resolve } = Promise.withResolvers();
35
42
  open({
36
- options,
37
- hasCancel: false,
43
+ request: {
44
+ type: "alert",
45
+ options
46
+ },
38
47
  onSettle: () => resolve()
39
48
  });
40
49
  return promise;
41
50
  };
42
51
  /**
43
- * Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se cancelar ou
44
- * fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. Pode ser chamado de qualquer
45
- * lugar, inclusive de fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
52
+ * Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se
53
+ * cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na
54
+ * ação; com `destructive`, abre no "Cancelar". Pode ser chamado de qualquer lugar, inclusive de
55
+ * fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
46
56
  *
47
57
  * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o
48
58
  * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.
@@ -52,16 +62,24 @@ const alertDialogAlert = (options) => {
52
62
  * const confirmed = await AlertDialog.confirm({
53
63
  * title: 'Excluir a nota 4821?',
54
64
  * description: 'A exclusão não pode ser desfeita.',
55
- * confirmButton: { children: 'Excluir', colorScheme: 'red' },
65
+ * confirmLabel: 'Excluir',
66
+ * destructive: true,
56
67
  * onConfirm: () => deleteInvoice(4821),
68
+ * onError: () =>
69
+ * AlertDialog.alert({
70
+ * status: 'error',
71
+ * title: 'Não foi possível excluir a nota',
72
+ * }),
57
73
  * });
58
74
  * ```
59
75
  */
60
76
  const alertDialogConfirm = (options) => {
61
77
  const { promise, resolve } = Promise.withResolvers();
62
78
  open({
63
- options,
64
- hasCancel: true,
79
+ request: {
80
+ type: "confirm",
81
+ options
82
+ },
65
83
  onSettle: resolve
66
84
  });
67
85
  return promise;
@@ -71,7 +89,7 @@ const alertDialogConfirm = (options) => {
71
89
  * alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.
72
90
  */
73
91
  const open = (args) => {
74
- const { options, hasCancel, onSettle } = args;
92
+ const { request, onSettle } = args;
75
93
  const id = alertDialogStore.createId();
76
94
  let isSettled = false;
77
95
  const settle = (confirmed) => {
@@ -81,24 +99,30 @@ const open = (args) => {
81
99
  };
82
100
  alertDialogStore.add({
83
101
  id,
84
- element: /* @__PURE__ */ jsx(ImperativeAlertDialog, {
85
- options,
86
- hasCancel,
102
+ render: (nested, isParentOpen) => /* @__PURE__ */ jsx(ImperativeAlertDialog, {
103
+ request,
104
+ isParentOpen,
87
105
  onSettle: settle,
88
- onExited: () => alertDialogStore.remove(id)
89
- }, id),
106
+ onClosing: () => alertDialogStore.markClosing(id),
107
+ onExited: () => alertDialogStore.remove(id),
108
+ children: nested
109
+ }),
90
110
  dismiss: () => settle(false)
91
111
  });
92
112
  };
93
113
  const ImperativeAlertDialog = (props) => {
94
- const { options, hasCancel, onSettle, onExited } = props;
95
- const { title, description, size, confirmButton, cancelButton, onConfirm } = options;
96
- const { children: confirmLabel, ...confirmButtonProps } = confirmButton ?? {};
97
- const { children: cancelLabel = "Cancelar", ...cancelButtonProps } = cancelButton ?? {};
114
+ const { request, children, isParentOpen, onSettle, onClosing, onExited } = props;
115
+ const { size } = request.options;
116
+ const onConfirm = request.type === "confirm" ? request.options.onConfirm : void 0;
117
+ const onError = request.type === "confirm" ? request.options.onError : void 0;
118
+ /**
119
+ * O Base UI foca o primeiro elemento focável ao abrir, e no `alert` ele seria o "Detalhes
120
+ * técnicos". O botão que deve receber o `Enter` (o OK, a ação ou, na destrutiva, o Cancelar)
121
+ * leva este ref, e o `initialFocus` do `Popup` aponta para ele.
122
+ */
123
+ const initialFocusRef = useRef(null);
98
124
  const [isOpen, setIsOpen] = useState(false);
99
125
  const [isPending, setIsPending] = useState(false);
100
- const [hasFailed, setHasFailed] = useState(false);
101
- const [errorMessage, setErrorMessage] = useState();
102
126
  /**
103
127
  * Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar
104
128
  * de `false` para `true`, e montar já aberto pularia a transição.
@@ -108,6 +132,7 @@ const ImperativeAlertDialog = (props) => {
108
132
  }, []);
109
133
  const close = (confirmed) => {
110
134
  onSettle(confirmed);
135
+ onClosing();
111
136
  setIsOpen(false);
112
137
  };
113
138
  const handleOpenChange = (open, eventDetails) => {
@@ -126,44 +151,84 @@ const ImperativeAlertDialog = (props) => {
126
151
  close(true);
127
152
  return;
128
153
  }
129
- setHasFailed(false);
130
154
  setIsPending(true);
131
155
  try {
132
156
  await onConfirm();
133
157
  close(true);
134
158
  } catch (caught) {
135
- setHasFailed(true);
136
- setErrorMessage(caught instanceof Error && caught.message !== "" ? caught.message : void 0);
159
+ onError?.(caught);
137
160
  } finally {
138
161
  setIsPending(false);
139
162
  }
140
163
  };
141
- return /* @__PURE__ */ jsx(AlertDialogRoot, {
164
+ return /* @__PURE__ */ jsxs(AlertDialogRoot, {
142
165
  open: isOpen,
143
166
  onOpenChange: handleOpenChange,
144
167
  onOpenChangeComplete: handleOpenChangeComplete,
145
168
  size,
146
- children: /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogBackdrop, {}), /* @__PURE__ */ jsx(AlertDialogViewport, { children: /* @__PURE__ */ jsxs(AlertDialogPopup, { children: [
147
- /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: title }), description !== void 0 && /* @__PURE__ */ jsx(AlertDialogDescription, { children: description })] }),
148
- hasFailed && /* @__PURE__ */ jsx(AlertDialogBody, { children: /* @__PURE__ */ jsxs(AlertRoot, {
149
- status: "error",
150
- role: "alert",
151
- children: [/* @__PURE__ */ jsx(AlertIndicator, {}), /* @__PURE__ */ jsxs(AlertContent, { children: [/* @__PURE__ */ jsx(AlertTitle, { children: "Não foi possível concluir a ação." }), errorMessage !== void 0 && /* @__PURE__ */ jsx(AlertDescription, { children: errorMessage })] })]
152
- }) }),
153
- /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [hasCancel && /* @__PURE__ */ jsx(AlertDialogClose, {
154
- disabled: isPending,
155
- render: /* @__PURE__ */ jsx(Button, {
156
- variant: "outline",
157
- ...cancelButtonProps
158
- }),
159
- children: cancelLabel
160
- }), /* @__PURE__ */ jsx(Button, {
161
- loading: isPending,
162
- onClick: handleConfirm,
163
- ...confirmButtonProps,
164
- children: confirmLabel ?? (hasCancel ? "Confirmar" : "OK")
165
- })] })
166
- ] }) })] })
169
+ children: [/* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogBackdrop, {
170
+ forceRender: !isParentOpen,
171
+ className: isParentOpen ? void 0 : "starting:opacity-0"
172
+ }), /* @__PURE__ */ jsx(AlertDialogViewport, { children: /* @__PURE__ */ jsxs(AlertDialogPopup, {
173
+ initialFocus: initialFocusRef,
174
+ children: [
175
+ request.type === "alert" ? /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [
176
+ /* @__PURE__ */ jsx(AlertDialogIndicator, {
177
+ status: request.options.status ?? "info",
178
+ children: request.options.icon
179
+ }),
180
+ /* @__PURE__ */ jsx(AlertDialogTitle, { children: request.options.title }),
181
+ request.options.description !== void 0 && /* @__PURE__ */ jsx(AlertDialogDescription, { children: request.options.description })
182
+ ] }) : /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: request.options.title }), request.options.description !== void 0 && /* @__PURE__ */ jsx(AlertDialogDescription, { children: request.options.description })] }),
183
+ request.type === "alert" && request.options.details !== void 0 && /* @__PURE__ */ jsx(AlertDialogBody, { children: /* @__PURE__ */ jsxs(CollapsibleRoot, { children: [/* @__PURE__ */ jsxs(CollapsibleTrigger, {
184
+ className: mergeTwClassNames([
185
+ "w-fit",
186
+ "gap-1",
187
+ "max-sm:mx-auto",
188
+ "text-gray-11",
189
+ "text-xs"
190
+ ]),
191
+ children: [/* @__PURE__ */ jsx(CollapsibleIndicator, {}), "Detalhes técnicos"]
192
+ }), /* @__PURE__ */ jsx(CollapsiblePanel, { children: /* @__PURE__ */ jsx("div", {
193
+ className: mergeTwClassNames(["pt-2"]),
194
+ children: /* @__PURE__ */ jsx("div", {
195
+ className: mergeTwClassNames([
196
+ "max-h-48",
197
+ "overflow-y-auto",
198
+ "px-3",
199
+ "py-2",
200
+ "rounded-md",
201
+ "border",
202
+ "border-gray-5",
203
+ "bg-gray-2",
204
+ "font-mono",
205
+ "text-gray-11",
206
+ "text-xs/4",
207
+ "wrap-break-word"
208
+ ]),
209
+ children: request.options.details
210
+ })
211
+ }) })] }) }),
212
+ request.type === "alert" ? /* @__PURE__ */ jsx(AlertDialogFooter, { children: /* @__PURE__ */ jsx(AlertDialogClose, {
213
+ render: /* @__PURE__ */ jsx(Button, {
214
+ ref: initialFocusRef,
215
+ variant: "outline"
216
+ }),
217
+ children: request.options.okLabel ?? "OK"
218
+ }) }) : /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogClose, {
219
+ ref: request.options.destructive ? initialFocusRef : void 0,
220
+ disabled: isPending,
221
+ render: /* @__PURE__ */ jsx(Button, { variant: "outline" }),
222
+ children: request.options.cancelLabel ?? "Cancelar"
223
+ }), /* @__PURE__ */ jsx(Button, {
224
+ ref: request.options.destructive ? void 0 : initialFocusRef,
225
+ colorScheme: request.options.destructive ? "red" : "accent",
226
+ loading: isPending,
227
+ onClick: handleConfirm,
228
+ children: request.options.confirmLabel
229
+ })] })
230
+ ]
231
+ }) })] }), children]
167
232
  });
168
233
  };
169
234
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog-imperative.js","names":["Alert.Root","Alert.Indicator","Alert.Content","Alert.Title","Alert.Description"],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-imperative.tsx"],"sourcesContent":["import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport type React from 'react';\nimport { useState } from 'react';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { Alert } from '#components/feedback/alert';\nimport { AlertDialogBackdrop } from './alert-dialog-backdrop';\nimport { AlertDialogBody } from './alert-dialog-body';\nimport { AlertDialogClose } from './alert-dialog-close';\nimport { AlertDialogDescription } from './alert-dialog-description';\nimport { AlertDialogFooter } from './alert-dialog-footer';\nimport { AlertDialogHeader } from './alert-dialog-header';\nimport { AlertDialogPopup } from './alert-dialog-popup';\nimport { AlertDialogPortal } from './alert-dialog-portal';\nimport {\n AlertDialogRoot,\n type AlertDialogRootChangeEventDetails,\n} from './alert-dialog-root';\nimport { alertDialogStore } from './alert-dialog-store';\nimport { AlertDialogTitle } from './alert-dialog-title';\nimport { AlertDialogViewport } from './alert-dialog-viewport';\nimport type { AlertDialogVariants } from './use-alert-dialog-context';\n\n/**\n * Rótulo e visual de um botão do alerta, no vocabulário do `Button`. Clique, `loading` e\n * `disabled` ficam com o alerta.\n */\nexport type AlertDialogButtonOptions = Pick<\n ButtonProps,\n 'children' | 'colorScheme' | 'variant'\n>;\n\nexport type AlertDialogAlertOptions = {\n /** Título do alerta. */\n title: React.ReactNode;\n /**\n * Texto de apoio. Só para exibição: renderiza no `AlertDialog.Outlet`, sem o contexto de quem\n * abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n /**\n * Botão que fecha o alerta: no `alert`, o único; no `confirm`, o de confirmar.\n *\n * @default { children: 'OK' } no `alert`, { children: 'Confirmar' } no `confirm`\n */\n confirmButton?: AlertDialogButtonOptions;\n};\n\nexport type AlertDialogConfirmOptions = AlertDialogAlertOptions & {\n /**\n * Botão de cancelar, antes do de confirmar: é o que recebe o foco ao abrir.\n *\n * @default { children: 'Cancelar', variant: 'outline' }\n */\n cancelButton?: AlertDialogButtonOptions;\n /**\n * Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o\n * alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se\n * ela lançar, o alerta continua aberto com o erro (o `message`, quando é um `Error`), para tentar\n * de novo ou cancelar. Sem ela, o alerta só pergunta.\n */\n onConfirm?: () => unknown;\n};\n\n/**\n * Abre um alerta com um botão só e resolve quando ele fecha, por esse botão ou pelo `Esc`. Pode\n * ser chamado de qualquer lugar, inclusive de fora do React, mas só aparece com um\n * `AlertDialog.Outlet` montado.\n *\n * @example\n * ```ts\n * await AlertDialog.alert({ title: 'Sessão expirada', description: 'Entre de novo para continuar.' });\n * ```\n */\nexport const alertDialogAlert = (\n options: AlertDialogAlertOptions,\n): Promise<void> => {\n const { promise, resolve } = Promise.withResolvers<void>();\n\n open({\n options,\n hasCancel: false,\n onSettle: () => resolve(),\n });\n\n return promise;\n};\n\n/**\n * Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se cancelar ou\n * fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. Pode ser chamado de qualquer\n * lugar, inclusive de fora do React, mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o\n * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.\n *\n * @example\n * ```ts\n * const confirmed = await AlertDialog.confirm({\n * title: 'Excluir a nota 4821?',\n * description: 'A exclusão não pode ser desfeita.',\n * confirmButton: { children: 'Excluir', colorScheme: 'red' },\n * onConfirm: () => deleteInvoice(4821),\n * });\n * ```\n */\nexport const alertDialogConfirm = (\n options: AlertDialogConfirmOptions,\n): Promise<boolean> => {\n const { promise, resolve } = Promise.withResolvers<boolean>();\n\n open({\n options,\n hasCancel: true,\n onSettle: resolve,\n });\n\n return promise;\n};\n\ntype OpenArgs = {\n options: AlertDialogConfirmOptions;\n hasCancel: boolean;\n onSettle: (confirmed: boolean) => void;\n};\n\n/**\n * Põe o alerta no store. A resolução passa por `settle`, que só vale na primeira chamada: o\n * alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.\n */\nconst open = (args: OpenArgs) => {\n const { options, hasCancel, onSettle } = args;\n\n const id = alertDialogStore.createId();\n\n let isSettled = false;\n\n const settle = (confirmed: boolean) => {\n if (isSettled) {\n return;\n }\n\n isSettled = true;\n onSettle(confirmed);\n };\n\n alertDialogStore.add({\n id,\n element: (\n <ImperativeAlertDialog\n key={id}\n options={options}\n hasCancel={hasCancel}\n onSettle={settle}\n onExited={() => alertDialogStore.remove(id)}\n />\n ),\n dismiss: () => settle(false),\n });\n};\n\ntype ImperativeAlertDialogProps = {\n options: AlertDialogConfirmOptions;\n hasCancel: boolean;\n onSettle: (confirmed: boolean) => void;\n onExited: () => void;\n};\n\nconst ImperativeAlertDialog = (props: ImperativeAlertDialogProps) => {\n const { options, hasCancel, onSettle, onExited } = props;\n\n const { title, description, size, confirmButton, cancelButton, onConfirm } =\n options;\n\n const { children: confirmLabel, ...confirmButtonProps } = confirmButton ?? {};\n const { children: cancelLabel = 'Cancelar', ...cancelButtonProps } =\n cancelButton ?? {};\n\n const [isOpen, setIsOpen] = useState(false);\n const [isPending, setIsPending] = useState(false);\n const [hasFailed, setHasFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string>();\n\n /**\n * Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar\n * de `false` para `true`, e montar já aberto pularia a transição.\n */\n useIsoLayoutEffect(() => {\n setIsOpen(true);\n }, []);\n\n const close = (confirmed: boolean) => {\n onSettle(confirmed);\n setIsOpen(false);\n };\n\n const handleOpenChange = (\n open: boolean,\n eventDetails: AlertDialogRootChangeEventDetails,\n ) => {\n if (open) {\n return;\n }\n\n if (isPending) {\n eventDetails.cancel();\n return;\n }\n\n close(false);\n };\n\n const handleOpenChangeComplete = (open: boolean) => {\n if (!open) {\n onExited();\n }\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) {\n close(true);\n return;\n }\n\n setHasFailed(false);\n setIsPending(true);\n\n try {\n await onConfirm();\n close(true);\n } catch (caught) {\n setHasFailed(true);\n setErrorMessage(\n caught instanceof Error && caught.message !== ''\n ? caught.message\n : undefined,\n );\n } finally {\n setIsPending(false);\n }\n };\n\n return (\n <AlertDialogRoot\n open={isOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n size={size}\n >\n <AlertDialogPortal>\n <AlertDialogBackdrop />\n <AlertDialogViewport>\n <AlertDialogPopup>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description !== undefined && (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n\n {hasFailed && (\n <AlertDialogBody>\n <Alert.Root\n status=\"error\"\n role=\"alert\"\n >\n <Alert.Indicator />\n <Alert.Content>\n <Alert.Title>Não foi possível concluir a ação.</Alert.Title>\n {errorMessage !== undefined && (\n <Alert.Description>{errorMessage}</Alert.Description>\n )}\n </Alert.Content>\n </Alert.Root>\n </AlertDialogBody>\n )}\n\n <AlertDialogFooter>\n {hasCancel && (\n <AlertDialogClose\n disabled={isPending}\n render={\n <Button\n variant=\"outline\"\n {...cancelButtonProps}\n />\n }\n >\n {cancelLabel}\n </AlertDialogClose>\n )}\n\n <Button\n loading={isPending}\n onClick={handleConfirm}\n {...confirmButtonProps}\n >\n {confirmLabel ?? (hasCancel ? 'Confirmar' : 'OK')}\n </Button>\n </AlertDialogFooter>\n </AlertDialogPopup>\n </AlertDialogViewport>\n </AlertDialogPortal>\n </AlertDialogRoot>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"alert-dialog-imperative.js","names":["Collapsible.Root","Collapsible.Trigger","Collapsible.Indicator","Collapsible.Panel"],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-imperative.tsx"],"sourcesContent":["import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport type React from 'react';\nimport { useRef, useState } from 'react';\nimport { Button } from '#components/buttons/button';\nimport { Collapsible } from '#components/disclosure/collapsible';\nimport type { Alert } from '#components/feedback/alert';\nimport { mergeTwClassNames } from '#utils';\nimport { AlertDialogBackdrop } from './alert-dialog-backdrop';\nimport { AlertDialogBody } from './alert-dialog-body';\nimport { AlertDialogClose } from './alert-dialog-close';\nimport { AlertDialogDescription } from './alert-dialog-description';\nimport { AlertDialogFooter } from './alert-dialog-footer';\nimport { AlertDialogHeader } from './alert-dialog-header';\nimport { AlertDialogIndicator } from './alert-dialog-indicator';\nimport { AlertDialogPopup } from './alert-dialog-popup';\nimport { AlertDialogPortal } from './alert-dialog-portal';\nimport {\n AlertDialogRoot,\n type AlertDialogRootChangeEventDetails,\n} from './alert-dialog-root';\nimport { alertDialogStore } from './alert-dialog-store';\nimport { AlertDialogTitle } from './alert-dialog-title';\nimport { AlertDialogViewport } from './alert-dialog-viewport';\nimport type { AlertDialogVariants } from './use-alert-dialog-context';\n\nexport type AlertDialogAlertOptions = {\n /**\n * O que aconteceu, no vocabulário do `Alert`: decide a cor e o ícone padrão do indicador, e só\n * eles.\n *\n * @default 'info'\n */\n status?: NonNullable<Alert.Variants['status']>;\n /** Diz o que aconteceu (\"Não foi possível emitir a nota\"). */\n title: React.ReactNode;\n /**\n * O motivo ou o que fazer em seguida. Só para exibição: renderiza no `AlertDialog.Outlet`, sem\n * o contexto de quem abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Informação técnica (código de erro, resposta do servidor), num bloco \"Detalhes técnicos\"\n * recolhido abaixo da descrição.\n */\n details?: React.ReactNode;\n /**\n * Troca só o desenho do indicador; a cor continua a do `status`. Um ícone próprio entra pelo\n * `Icon` da lib, para ter o mesmo traço (`<Icon render={<TruckIcon />} />`).\n */\n icon?: React.ReactNode;\n /**\n * Rótulo do botão que fecha o alerta.\n *\n * @default 'OK'\n */\n okLabel?: React.ReactNode;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n};\n\nexport type AlertDialogConfirmOptions = {\n /** A pergunta (\"Excluir a nota 4821?\"). */\n title: React.ReactNode;\n /**\n * A consequência da ação (\"A exclusão não pode ser desfeita.\"). Quase sempre deve estar\n * presente: sem ela, o título é a única informação para decidir. Só para exibição: renderiza no\n * `AlertDialog.Outlet`, sem o contexto de quem abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Ação que destrói ou não se desfaz. O botão de confirmar fica vermelho (`red`, e não `accent`) e\n * o foco abre no \"Cancelar\", para um `Enter` dado sem ler não confirmar.\n *\n * @default false\n */\n destructive?: boolean;\n /**\n * Rótulo do botão de confirmar: o verbo da ação (\"Excluir\", \"Cancelar a nota\"), não\n * \"Confirmar\" nem \"Sim\". Sem destrutiva, o foco abre nele.\n */\n confirmLabel: React.ReactNode;\n /**\n * Rótulo do botão de cancelar, antes do de confirmar.\n *\n * @default 'Cancelar'\n */\n cancelLabel?: React.ReactNode;\n /**\n * Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o\n * alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se\n * ela lançar, o alerta continua aberto, com os botões de volta ao normal e sem mensagem, para\n * tentar de novo ou cancelar. Sem ela, o alerta só pergunta.\n */\n onConfirm?: () => unknown;\n /**\n * Chamada com o que o `onConfirm` lançou, com o alerta ainda aberto. A lib não mostra o erro:\n * mostrá-lo é com quem chama, por um handler global (o `onError` de um cliente de queries) ou por\n * esta opção. Um `try/catch` dentro do `onConfirm` que não relança faz o alerta fechar como\n * sucesso. Sem `onError` e sem handler global, a falha não aparece para o usuário.\n */\n onError?: (error: unknown) => void;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n};\n\n/**\n * Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele\n * fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os\n * \"Detalhes técnicos\" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,\n * mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * @example\n * ```ts\n * await AlertDialog.alert({\n * status: 'error',\n * title: 'Não foi possível emitir a nota',\n * description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',\n * details: 'Rejeição 108: serviço paralisado momentaneamente.',\n * });\n * ```\n */\nexport const alertDialogAlert = (\n options: AlertDialogAlertOptions,\n): Promise<void> => {\n const { promise, resolve } = Promise.withResolvers<void>();\n\n open({\n request: { type: 'alert', options },\n onSettle: () => resolve(),\n });\n\n return promise;\n};\n\n/**\n * Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se\n * cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na\n * ação; com `destructive`, abre no \"Cancelar\". Pode ser chamado de qualquer lugar, inclusive de\n * fora do React, mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o\n * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.\n *\n * @example\n * ```ts\n * const confirmed = await AlertDialog.confirm({\n * title: 'Excluir a nota 4821?',\n * description: 'A exclusão não pode ser desfeita.',\n * confirmLabel: 'Excluir',\n * destructive: true,\n * onConfirm: () => deleteInvoice(4821),\n * onError: () =>\n * AlertDialog.alert({\n * status: 'error',\n * title: 'Não foi possível excluir a nota',\n * }),\n * });\n * ```\n */\nexport const alertDialogConfirm = (\n options: AlertDialogConfirmOptions,\n): Promise<boolean> => {\n const { promise, resolve } = Promise.withResolvers<boolean>();\n\n open({\n request: { type: 'confirm', options },\n onSettle: resolve,\n });\n\n return promise;\n};\n\ntype ImperativeRequest =\n | { type: 'alert'; options: AlertDialogAlertOptions }\n | { type: 'confirm'; options: AlertDialogConfirmOptions };\n\ntype OpenArgs = {\n request: ImperativeRequest;\n onSettle: (confirmed: boolean) => void;\n};\n\n/**\n * Põe o alerta no store. A resolução passa por `settle`, que só vale na primeira chamada: o\n * alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.\n */\nconst open = (args: OpenArgs) => {\n const { request, onSettle } = args;\n\n const id = alertDialogStore.createId();\n\n let isSettled = false;\n\n const settle = (confirmed: boolean) => {\n if (isSettled) {\n return;\n }\n\n isSettled = true;\n onSettle(confirmed);\n };\n\n alertDialogStore.add({\n id,\n render: (nested, isParentOpen) => (\n <ImperativeAlertDialog\n request={request}\n isParentOpen={isParentOpen}\n onSettle={settle}\n onClosing={() => alertDialogStore.markClosing(id)}\n onExited={() => alertDialogStore.remove(id)}\n >\n {nested}\n </ImperativeAlertDialog>\n ),\n dismiss: () => settle(false),\n });\n};\n\ntype ImperativeAlertDialogProps = {\n request: ImperativeRequest;\n /** Os alertas aninhados neste (ver o store), renderizados dentro do `Root`. */\n children: React.ReactNode;\n /** Se o alerta pai ainda está aberto; sempre `true` na raiz. */\n isParentOpen: boolean;\n onSettle: (confirmed: boolean) => void;\n /** Chamado quando o alerta começa a fechar, antes da transição de saída. */\n onClosing: () => void;\n /** Chamado quando a transição de saída termina. */\n onExited: () => void;\n};\n\nconst ImperativeAlertDialog = (props: ImperativeAlertDialogProps) => {\n const { request, children, isParentOpen, onSettle, onClosing, onExited } =\n props;\n\n const { size } = request.options;\n\n const onConfirm =\n request.type === 'confirm' ? request.options.onConfirm : undefined;\n\n const onError =\n request.type === 'confirm' ? request.options.onError : undefined;\n\n /**\n * O Base UI foca o primeiro elemento focável ao abrir, e no `alert` ele seria o \"Detalhes\n * técnicos\". O botão que deve receber o `Enter` (o OK, a ação ou, na destrutiva, o Cancelar)\n * leva este ref, e o `initialFocus` do `Popup` aponta para ele.\n */\n const initialFocusRef = useRef<HTMLButtonElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [isPending, setIsPending] = useState(false);\n\n /**\n * Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar\n * de `false` para `true`, e montar já aberto pularia a transição.\n */\n useIsoLayoutEffect(() => {\n setIsOpen(true);\n }, []);\n\n const close = (confirmed: boolean) => {\n onSettle(confirmed);\n onClosing();\n setIsOpen(false);\n };\n\n const handleOpenChange = (\n open: boolean,\n eventDetails: AlertDialogRootChangeEventDetails,\n ) => {\n if (open) {\n return;\n }\n\n if (isPending) {\n eventDetails.cancel();\n return;\n }\n\n close(false);\n };\n\n const handleOpenChangeComplete = (open: boolean) => {\n if (!open) {\n onExited();\n }\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) {\n close(true);\n return;\n }\n\n setIsPending(true);\n\n try {\n await onConfirm();\n close(true);\n } catch (caught) {\n onError?.(caught);\n } finally {\n setIsPending(false);\n }\n };\n\n return (\n <AlertDialogRoot\n open={isOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n size={size}\n >\n <AlertDialogPortal>\n {/**\n * O backdrop de um alerta aninhado não renderiza: o do pai já cobre a página. Com o pai\n * fechando ou já fora, `forceRender` mantém o escurecido, e o alerta não fica modal sem ele.\n */}\n {/**\n * O backdrop forçado monta com o alerta já aberto, então o `data-starting-style` do Base UI\n * não acontece. O `starting:` (`@starting-style`) faz o escurecido entrar em fade; sem ele,\n * ele surge de uma vez quando o pai fecha.\n */}\n <AlertDialogBackdrop\n forceRender={!isParentOpen}\n className={isParentOpen ? undefined : 'starting:opacity-0'}\n />\n <AlertDialogViewport>\n <AlertDialogPopup initialFocus={initialFocusRef}>\n {request.type === 'alert' ? (\n <AlertDialogHeader>\n <AlertDialogIndicator status={request.options.status ?? 'info'}>\n {request.options.icon}\n </AlertDialogIndicator>\n <AlertDialogTitle>{request.options.title}</AlertDialogTitle>\n {request.options.description !== undefined && (\n <AlertDialogDescription>\n {request.options.description}\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n ) : (\n <AlertDialogHeader>\n <AlertDialogTitle>{request.options.title}</AlertDialogTitle>\n {request.options.description !== undefined && (\n <AlertDialogDescription>\n {request.options.description}\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n )}\n\n {request.type === 'alert' &&\n request.options.details !== undefined && (\n <AlertDialogBody>\n <Collapsible.Root>\n <Collapsible.Trigger\n className={mergeTwClassNames([\n 'w-fit',\n 'gap-1',\n\n 'max-sm:mx-auto',\n\n 'text-gray-11',\n 'text-xs',\n ])}\n >\n <Collapsible.Indicator />\n Detalhes técnicos\n </Collapsible.Trigger>\n <Collapsible.Panel>\n <div className={mergeTwClassNames(['pt-2'])}>\n <div\n className={mergeTwClassNames([\n // Com altura máxima e rolagem própria, detalhes longos não empurram o\n // rodapé para fora da tela.\n 'max-h-48',\n 'overflow-y-auto',\n\n 'px-3',\n 'py-2',\n\n 'rounded-md',\n 'border',\n 'border-gray-5',\n\n 'bg-gray-2',\n\n 'font-mono',\n 'text-gray-11',\n 'text-xs/4',\n 'wrap-break-word',\n ])}\n >\n {request.options.details}\n </div>\n </div>\n </Collapsible.Panel>\n </Collapsible.Root>\n </AlertDialogBody>\n )}\n\n {request.type === 'alert' ? (\n <AlertDialogFooter>\n <AlertDialogClose\n render={\n <Button\n ref={initialFocusRef}\n variant=\"outline\"\n />\n }\n >\n {request.options.okLabel ?? 'OK'}\n </AlertDialogClose>\n </AlertDialogFooter>\n ) : (\n <AlertDialogFooter>\n <AlertDialogClose\n ref={\n request.options.destructive ? initialFocusRef : undefined\n }\n disabled={isPending}\n render={<Button variant=\"outline\" />}\n >\n {request.options.cancelLabel ?? 'Cancelar'}\n </AlertDialogClose>\n\n <Button\n ref={\n request.options.destructive ? undefined : initialFocusRef\n }\n colorScheme={request.options.destructive ? 'red' : 'accent'}\n loading={isPending}\n onClick={handleConfirm}\n >\n {request.options.confirmLabel}\n </Button>\n </AlertDialogFooter>\n )}\n </AlertDialogPopup>\n </AlertDialogViewport>\n </AlertDialogPortal>\n\n {/**\n * Fora do `Portal`, para os aninhados sobreviverem à desmontagem do portal deste alerta\n * quando ele sai antes deles. O `Root` deles ainda acha este pelo contexto.\n */}\n {children}\n </AlertDialogRoot>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { AlertVariants } from "../../feedback/alert/use-alert-context.js";
2
+ import { index_parts_d_exports } from "../../feedback/alert/index.parts.js";
3
+ import "../../feedback/alert/index.js";
4
+ //#region src/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts
5
+ export type AlertDialogIndicatorVariants = {
6
+ /**
7
+ * O que o alerta comunica, no vocabulário do `Alert`. Decide a cor (`neutral` gray, `info` blue,
8
+ * `success` green, `warning` amber, `error` red) e o ícone padrão.
9
+ *
10
+ * @default 'neutral'
11
+ */
12
+ status?: AlertVariants['status'];
13
+ };
14
+ export declare const alertDialogIndicatorDefaultVariants: Required<AlertDialogIndicatorVariants>;
15
+ /**
16
+ * A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o
17
+ * único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também
18
+ * quando o filho troca o desenho.
19
+ */
20
+ export declare const alertDialogIndicatorVariants: (props?: ({
21
+ status?: "neutral" | "info" | "success" | "warning" | "error" | null | undefined;
22
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
23
+ //#endregion
24
+ //# sourceMappingURL=alert-dialog-indicator-variants.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/components/overlays/alert-dialog/alert-dialog-indicator-variants.ts
3
+ const alertDialogIndicatorDefaultVariants = { status: "neutral" };
4
+ /**
5
+ * A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o
6
+ * único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também
7
+ * quando o filho troca o desenho.
8
+ */
9
+ const alertDialogIndicatorVariants = cva([
10
+ "flex",
11
+ "items-center",
12
+ "justify-center",
13
+ "shrink-0",
14
+ "h-6",
15
+ "text-xl",
16
+ "leading-none",
17
+ "[&_svg]:size-[1em]"
18
+ ], {
19
+ variants: { status: {
20
+ neutral: ["text-gray-11"],
21
+ info: ["text-blue-11"],
22
+ success: ["text-green-11"],
23
+ warning: ["text-amber-11"],
24
+ error: ["text-red-11"]
25
+ } },
26
+ defaultVariants: { status: alertDialogIndicatorDefaultVariants.status }
27
+ });
28
+ //#endregion
29
+ export { alertDialogIndicatorDefaultVariants, alertDialogIndicatorVariants };
30
+
31
+ //# sourceMappingURL=alert-dialog-indicator-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-dialog-indicator-variants.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-indicator-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { Alert } from '#components/feedback/alert';\n\nexport type AlertDialogIndicatorVariants = {\n /**\n * O que o alerta comunica, no vocabulário do `Alert`. Decide a cor (`neutral` gray, `info` blue,\n * `success` green, `warning` amber, `error` red) e o ícone padrão.\n *\n * @default 'neutral'\n */\n status?: Alert.Variants['status'];\n};\n\nexport const alertDialogIndicatorDefaultVariants: Required<AlertDialogIndicatorVariants> =\n {\n status: 'neutral',\n };\n\n/**\n * A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o\n * único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também\n * quando o filho troca o desenho.\n */\nexport const alertDialogIndicatorVariants = cva(\n [\n 'flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n\n 'h-6',\n\n 'text-xl',\n // Sem entrelinha, um emoji ocuparia mais altura que o ícone.\n 'leading-none',\n\n '[&_svg]:size-[1em]',\n ],\n {\n variants: {\n status: {\n neutral: ['text-gray-11'],\n info: ['text-blue-11'],\n success: ['text-green-11'],\n warning: ['text-amber-11'],\n error: ['text-red-11'],\n },\n },\n defaultVariants: {\n status: alertDialogIndicatorDefaultVariants.status,\n },\n },\n);\n"],"mappings":";;AAaA,MAAa,sCACX,EACE,QAAQ,UACV;;;;;;AAOF,MAAa,+BAA+B,IAC1C;CACE;CACA;CACA;CACA;CAEA;CAEA;CAEA;CAEA;AACF,GACA;CACE,UAAU,EACR,QAAQ;EACN,SAAS,CAAC,cAAc;EACxB,MAAM,CAAC,cAAc;EACrB,SAAS,CAAC,eAAe;EACzB,SAAS,CAAC,eAAe;EACzB,OAAO,CAAC,aAAa;CACvB,EACF;CACA,iBAAiB,EACf,QAAQ,oCAAoC,OAC9C;AACF,CACF"}
@@ -0,0 +1,25 @@
1
+ import { AlertDialogIndicatorVariants } from "./alert-dialog-indicator-variants.js";
2
+ import React from "react";
3
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
4
+ import { useRender } from "@base-ui/react";
5
+ //#region src/components/overlays/alert-dialog/alert-dialog-indicator.d.ts
6
+ export type AlertDialogIndicatorProps = MergeOverride<useRender.ComponentProps<'div'>, AlertDialogIndicatorVariants>;
7
+ /**
8
+ * Ícone do alert dialog, na cor do `status`. Sem filhos, mostra o ícone do `status`, pelo `Icon`
9
+ * da lib; com filhos (outro ícone, um emoji), usa os filhos, e um ícone próprio entra pelo `Icon`
10
+ * para ter o mesmo traço. O `svg` mede `1em` (20px), numa caixa da altura da linha do
11
+ * `AlertDialog.Title`, para ficar alinhado à primeira linha.
12
+ *
13
+ * Como filho do `AlertDialog.Header`, fica à esquerda do texto; no celular, acima dele.
14
+ *
15
+ * Fica com `aria-hidden`: o ícone repete o que o texto diz, e o `status` não é anunciado por ele.
16
+ *
17
+ * Cópia do `Alert.Indicator`, a origem, com os mesmos ícones; as diferenças: o `status` é prop da
18
+ * parte, e não vem de um contexto, e a cor está no passo 11.
19
+ */
20
+ export declare const AlertDialogIndicator: {
21
+ (props: AlertDialogIndicatorProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
22
+ displayName: string;
23
+ };
24
+ //#endregion
25
+ //# sourceMappingURL=alert-dialog-indicator.d.ts.map