@lucasbernardosn/react-ui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (868) hide show
  1. package/README.md +141 -0
  2. package/dist/components/buttons/button/button-variants.js +2 -7
  3. package/dist/components/buttons/button/button-variants.js.map +1 -1
  4. package/dist/components/buttons/button/button.d.ts +1 -1
  5. package/dist/components/buttons/button/button.js +1 -1
  6. package/dist/components/buttons/button/button.js.map +1 -1
  7. package/dist/components/buttons/clipboard-button/clipboard-button.d.ts +1 -1
  8. package/dist/components/buttons/clipboard-button/clipboard-button.js +1 -1
  9. package/dist/components/buttons/clipboard-button/clipboard-button.js.map +1 -1
  10. package/dist/components/buttons/close-button/close-button.d.ts +1 -1
  11. package/dist/components/buttons/close-button/close-button.js.map +1 -1
  12. package/dist/components/buttons/icon-button/icon-button.d.ts +1 -1
  13. package/dist/components/buttons/icon-button/icon-button.js +1 -1
  14. package/dist/components/buttons/icon-button/icon-button.js.map +1 -1
  15. package/dist/components/buttons/responsive-button/responsive-button.d.ts +1 -1
  16. package/dist/components/buttons/responsive-button/responsive-button.js.map +1 -1
  17. package/dist/components/collections/async-select/async-select-aria-messages.d.ts +15 -0
  18. package/dist/components/collections/async-select/async-select-aria-messages.js +51 -0
  19. package/dist/components/collections/async-select/async-select-aria-messages.js.map +1 -0
  20. package/dist/components/collections/async-select/async-select-components.d.ts +5 -0
  21. package/dist/components/collections/async-select/async-select-components.js +67 -0
  22. package/dist/components/collections/async-select/async-select-components.js.map +1 -0
  23. package/dist/components/collections/async-select/async-select-variants.d.ts +23 -0
  24. package/dist/components/collections/async-select/async-select-variants.js +378 -0
  25. package/dist/components/collections/async-select/async-select-variants.js.map +1 -0
  26. package/dist/components/collections/async-select/async-select.d.ts +62 -0
  27. package/dist/components/collections/async-select/async-select.js +121 -0
  28. package/dist/components/collections/async-select/async-select.js.map +1 -0
  29. package/dist/components/collections/async-select/index.d.ts +3 -0
  30. package/dist/components/collections/async-select/index.js +2 -0
  31. package/dist/components/collections/async-select/use-async-select-load.d.ts +26 -0
  32. package/dist/components/collections/async-select/use-async-select-load.js +76 -0
  33. package/dist/components/collections/async-select/use-async-select-load.js.map +1 -0
  34. package/dist/components/collections/autocomplete/autocomplete-arrow.d.ts +14 -0
  35. package/dist/components/collections/autocomplete/autocomplete-arrow.js +43 -0
  36. package/dist/components/collections/autocomplete/autocomplete-arrow.js.map +1 -0
  37. package/dist/components/collections/autocomplete/autocomplete-backdrop.d.ts +16 -0
  38. package/dist/components/collections/autocomplete/autocomplete-backdrop.js +36 -0
  39. package/dist/components/collections/autocomplete/autocomplete-backdrop.js.map +1 -0
  40. package/dist/components/collections/autocomplete/autocomplete-clear.d.ts +17 -0
  41. package/dist/components/collections/autocomplete/autocomplete-clear.js +47 -0
  42. package/dist/components/collections/autocomplete/autocomplete-clear.js.map +1 -0
  43. package/dist/components/collections/autocomplete/autocomplete-collection.d.ts +14 -0
  44. package/dist/components/collections/autocomplete/autocomplete-collection.js +15 -0
  45. package/dist/components/collections/autocomplete/autocomplete-collection.js.map +1 -0
  46. package/dist/components/collections/autocomplete/autocomplete-empty.d.ts +14 -0
  47. package/dist/components/collections/autocomplete/autocomplete-empty.js +24 -0
  48. package/dist/components/collections/autocomplete/autocomplete-empty.js.map +1 -0
  49. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.d.ts +12 -0
  50. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js +65 -0
  51. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js.map +1 -0
  52. package/dist/components/collections/autocomplete/autocomplete-group-label.d.ts +13 -0
  53. package/dist/components/collections/autocomplete/autocomplete-group-label.js +23 -0
  54. package/dist/components/collections/autocomplete/autocomplete-group-label.js.map +1 -0
  55. package/dist/components/collections/autocomplete/autocomplete-group.d.ts +14 -0
  56. package/dist/components/collections/autocomplete/autocomplete-group.js +18 -0
  57. package/dist/components/collections/autocomplete/autocomplete-group.js.map +1 -0
  58. package/dist/components/collections/autocomplete/autocomplete-icon.d.ts +13 -0
  59. package/dist/components/collections/autocomplete/autocomplete-icon.js +23 -0
  60. package/dist/components/collections/autocomplete/autocomplete-icon.js.map +1 -0
  61. package/dist/components/collections/autocomplete/autocomplete-input-group-variants.d.ts +18 -0
  62. package/dist/components/collections/autocomplete/autocomplete-input-group-variants.js +38 -0
  63. package/dist/components/collections/autocomplete/autocomplete-input-group-variants.js.map +1 -0
  64. package/dist/components/collections/autocomplete/autocomplete-input-group.d.ts +15 -0
  65. package/dist/components/collections/autocomplete/autocomplete-input-group.js +25 -0
  66. package/dist/components/collections/autocomplete/autocomplete-input-group.js.map +1 -0
  67. package/dist/components/collections/autocomplete/autocomplete-input-variants.d.ts +14 -0
  68. package/dist/components/collections/autocomplete/autocomplete-input-variants.js +123 -0
  69. package/dist/components/collections/autocomplete/autocomplete-input-variants.js.map +1 -0
  70. package/dist/components/collections/autocomplete/autocomplete-input.d.ts +16 -0
  71. package/dist/components/collections/autocomplete/autocomplete-input.js +29 -0
  72. package/dist/components/collections/autocomplete/autocomplete-input.js.map +1 -0
  73. package/dist/components/collections/autocomplete/autocomplete-item-variants.d.ts +12 -0
  74. package/dist/components/collections/autocomplete/autocomplete-item-variants.js +85 -0
  75. package/dist/components/collections/autocomplete/autocomplete-item-variants.js.map +1 -0
  76. package/dist/components/collections/autocomplete/autocomplete-item.d.ts +14 -0
  77. package/dist/components/collections/autocomplete/autocomplete-item.js +24 -0
  78. package/dist/components/collections/autocomplete/autocomplete-item.js.map +1 -0
  79. package/dist/components/collections/autocomplete/autocomplete-list.d.ts +14 -0
  80. package/dist/components/collections/autocomplete/autocomplete-list.js +31 -0
  81. package/dist/components/collections/autocomplete/autocomplete-list.js.map +1 -0
  82. package/dist/components/collections/autocomplete/autocomplete-message-variants.d.ts +13 -0
  83. package/dist/components/collections/autocomplete/autocomplete-message-variants.js +54 -0
  84. package/dist/components/collections/autocomplete/autocomplete-message-variants.js.map +1 -0
  85. package/dist/components/collections/autocomplete/autocomplete-popup-variants.d.ts +13 -0
  86. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js +43 -0
  87. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js.map +1 -0
  88. package/dist/components/collections/autocomplete/autocomplete-popup.d.ts +14 -0
  89. package/dist/components/collections/autocomplete/autocomplete-popup.js +22 -0
  90. package/dist/components/collections/autocomplete/autocomplete-popup.js.map +1 -0
  91. package/dist/components/collections/autocomplete/autocomplete-portal.d.ts +13 -0
  92. package/dist/components/collections/autocomplete/autocomplete-portal.js +17 -0
  93. package/dist/components/collections/autocomplete/autocomplete-portal.js.map +1 -0
  94. package/dist/components/collections/autocomplete/autocomplete-positioner.d.ts +16 -0
  95. package/dist/components/collections/autocomplete/autocomplete-positioner.js +28 -0
  96. package/dist/components/collections/autocomplete/autocomplete-positioner.js.map +1 -0
  97. package/dist/components/collections/autocomplete/autocomplete-root.d.ts +66 -0
  98. package/dist/components/collections/autocomplete/autocomplete-root.js +18 -0
  99. package/dist/components/collections/autocomplete/autocomplete-root.js.map +1 -0
  100. package/dist/components/collections/autocomplete/autocomplete-row.d.ts +14 -0
  101. package/dist/components/collections/autocomplete/autocomplete-row.js +18 -0
  102. package/dist/components/collections/autocomplete/autocomplete-row.js.map +1 -0
  103. package/dist/components/collections/autocomplete/autocomplete-separator.d.ts +16 -0
  104. package/dist/components/collections/autocomplete/autocomplete-separator.js +28 -0
  105. package/dist/components/collections/autocomplete/autocomplete-separator.js.map +1 -0
  106. package/dist/components/collections/autocomplete/autocomplete-status.d.ts +17 -0
  107. package/dist/components/collections/autocomplete/autocomplete-status.js +27 -0
  108. package/dist/components/collections/autocomplete/autocomplete-status.js.map +1 -0
  109. package/dist/components/collections/autocomplete/autocomplete-trigger.d.ts +14 -0
  110. package/dist/components/collections/autocomplete/autocomplete-trigger.js +37 -0
  111. package/dist/components/collections/autocomplete/autocomplete-trigger.js.map +1 -0
  112. package/dist/components/collections/autocomplete/autocomplete-value.d.ts +14 -0
  113. package/dist/components/collections/autocomplete/autocomplete-value.js +15 -0
  114. package/dist/components/collections/autocomplete/autocomplete-value.js.map +1 -0
  115. package/dist/components/collections/autocomplete/index.d.ts +2 -0
  116. package/dist/components/collections/autocomplete/index.js +2 -0
  117. package/dist/components/collections/autocomplete/index.parts.d.ts +29 -0
  118. package/dist/components/collections/autocomplete/index.parts.js +53 -0
  119. package/dist/components/collections/autocomplete/index.parts.js.map +1 -0
  120. package/dist/components/collections/autocomplete/use-autocomplete-context.d.ts +24 -0
  121. package/dist/components/collections/autocomplete/use-autocomplete-context.js +14 -0
  122. package/dist/components/collections/autocomplete/use-autocomplete-context.js.map +1 -0
  123. package/dist/components/collections/autocomplete/use-autocomplete-filter.d.ts +22 -0
  124. package/dist/components/collections/autocomplete/use-autocomplete-filter.js +22 -0
  125. package/dist/components/collections/autocomplete/use-autocomplete-filter.js.map +1 -0
  126. package/dist/components/collections/select/select-group-label-variants.d.ts +2 -2
  127. package/dist/components/collections/select/select-group-label-variants.js +2 -2
  128. package/dist/components/collections/select/select-group-label-variants.js.map +1 -1
  129. package/dist/components/collections/select/select-item-variants.d.ts +2 -2
  130. package/dist/components/collections/select/select-item-variants.js +2 -2
  131. package/dist/components/collections/select/select-item-variants.js.map +1 -1
  132. package/dist/components/collections/select/select-root.d.ts +1 -1
  133. package/dist/components/collections/select/select-root.js +1 -1
  134. package/dist/components/collections/select/select-root.js.map +1 -1
  135. package/dist/components/collections/select/select-separator.d.ts +2 -2
  136. package/dist/components/collections/select/select-separator.js +2 -2
  137. package/dist/components/collections/select/select-separator.js.map +1 -1
  138. package/dist/components/collections/select/select-trigger-variants.d.ts +2 -2
  139. package/dist/components/collections/select/select-trigger-variants.js +2 -2
  140. package/dist/components/collections/select/select-trigger-variants.js.map +1 -1
  141. package/dist/components/collections/select/select-value.js +1 -1
  142. package/dist/components/collections/select/select-value.js.map +1 -1
  143. package/dist/components/collections/tree-view/index.parts.d.ts +3 -3
  144. package/dist/components/collections/tree-view/index.parts.js.map +1 -1
  145. package/dist/components/collections/tree-view/tree-view-branch-content.d.ts +1 -1
  146. package/dist/components/collections/tree-view/tree-view-branch-content.js +1 -1
  147. package/dist/components/collections/tree-view/tree-view-branch-content.js.map +1 -1
  148. package/dist/components/collections/tree-view/tree-view-branch.d.ts +1 -1
  149. package/dist/components/collections/tree-view/tree-view-branch.js.map +1 -1
  150. package/dist/components/collections/tree-view/tree-view-node-provider.d.ts +1 -1
  151. package/dist/components/collections/tree-view/tree-view-node-provider.js +1 -1
  152. package/dist/components/collections/tree-view/tree-view-node-provider.js.map +1 -1
  153. package/dist/components/collections/tree-view/tree-view-node.js +5 -0
  154. package/dist/components/collections/tree-view/tree-view-node.js.map +1 -1
  155. package/dist/components/collections/tree-view/tree-view-root-provider.d.ts +1 -1
  156. package/dist/components/collections/tree-view/tree-view-root-provider.js +1 -1
  157. package/dist/components/collections/tree-view/tree-view-root-provider.js.map +1 -1
  158. package/dist/components/collections/tree-view/tree-view-root.d.ts +1 -1
  159. package/dist/components/collections/tree-view/tree-view-root.js +1 -1
  160. package/dist/components/collections/tree-view/tree-view-root.js.map +1 -1
  161. package/dist/components/collections/tree-view/use-tree-view.d.ts +1 -1
  162. package/dist/components/collections/tree-view/use-tree-view.js.map +1 -1
  163. package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.d.ts +27 -0
  164. package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.js +59 -0
  165. package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.js.map +1 -0
  166. package/dist/components/disclosure/breadcrumb/breadcrumb-list.js +1 -1
  167. package/dist/components/disclosure/breadcrumb/breadcrumb-list.js.map +1 -1
  168. package/dist/components/disclosure/breadcrumb/breadcrumb-separator.d.ts +2 -2
  169. package/dist/components/disclosure/breadcrumb/breadcrumb-separator.js +4 -3
  170. package/dist/components/disclosure/breadcrumb/breadcrumb-separator.js.map +1 -1
  171. package/dist/components/disclosure/breadcrumb/index.parts.d.ts +3 -2
  172. package/dist/components/disclosure/breadcrumb/index.parts.js +3 -1
  173. package/dist/components/disclosure/breadcrumb/index.parts.js.map +1 -1
  174. package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts +1 -1
  175. package/dist/components/disclosure/collapsible/collapsible-panel.d.ts +1 -1
  176. package/dist/components/disclosure/collapsible/collapsible-panel.js +1 -1
  177. package/dist/components/disclosure/collapsible/collapsible-panel.js.map +1 -1
  178. package/dist/components/disclosure/tabs/tabs-root.d.ts +1 -1
  179. package/dist/components/disclosure/tabs/tabs-root.js +1 -1
  180. package/dist/components/disclosure/tabs/tabs-root.js.map +1 -1
  181. package/dist/components/display/avatar/avatar-fallback.d.ts +17 -0
  182. package/dist/components/display/avatar/avatar-fallback.js +44 -0
  183. package/dist/components/display/avatar/avatar-fallback.js.map +1 -0
  184. package/dist/components/display/avatar/avatar-image.d.ts +18 -0
  185. package/dist/components/display/avatar/avatar-image.js +33 -0
  186. package/dist/components/display/avatar/avatar-image.js.map +1 -0
  187. package/dist/components/display/avatar/avatar-root-variants.d.ts +39 -0
  188. package/dist/components/display/avatar/avatar-root-variants.js +315 -0
  189. package/dist/components/display/avatar/avatar-root-variants.js.map +1 -0
  190. package/dist/components/display/avatar/avatar-root.d.ts +31 -0
  191. package/dist/components/display/avatar/avatar-root.js +52 -0
  192. package/dist/components/display/avatar/avatar-root.js.map +1 -0
  193. package/dist/components/display/avatar/get-avatar-color-scheme.d.ts +10 -0
  194. package/dist/components/display/avatar/get-avatar-color-scheme.js +45 -0
  195. package/dist/components/display/avatar/get-avatar-color-scheme.js.map +1 -0
  196. package/dist/components/display/avatar/index.d.ts +2 -0
  197. package/dist/components/display/avatar/index.js +2 -0
  198. package/dist/components/display/avatar/index.parts.d.ts +10 -0
  199. package/dist/components/display/avatar/index.parts.js +14 -0
  200. package/dist/components/display/avatar/index.parts.js.map +1 -0
  201. package/dist/components/display/avatar/use-avatar-context.d.ts +8 -0
  202. package/dist/components/display/avatar/use-avatar-context.js +10 -0
  203. package/dist/components/display/avatar/use-avatar-context.js.map +1 -0
  204. package/dist/components/display/badge/badge-variants.d.ts +41 -0
  205. package/dist/components/display/badge/badge-variants.js +330 -0
  206. package/dist/components/display/badge/badge-variants.js.map +1 -0
  207. package/dist/components/display/badge/badge.d.ts +23 -0
  208. package/dist/components/display/badge/badge.js +40 -0
  209. package/dist/components/display/badge/badge.js.map +1 -0
  210. package/dist/components/display/badge/index.d.ts +3 -0
  211. package/dist/components/display/badge/index.js +2 -0
  212. package/dist/components/display/card/card-root.d.ts +1 -1
  213. package/dist/components/display/card/card-root.js +1 -1
  214. package/dist/components/display/card/card-root.js.map +1 -1
  215. package/dist/components/display/card/card-title.d.ts +1 -1
  216. package/dist/components/display/card/card-title.js.map +1 -1
  217. package/dist/components/display/clipboard/clipboard-indicator.d.ts +1 -1
  218. package/dist/components/display/clipboard/clipboard-indicator.js.map +1 -1
  219. package/dist/components/display/clipboard/clipboard-root-provider.d.ts +1 -1
  220. package/dist/components/display/clipboard/clipboard-root-provider.js.map +1 -1
  221. package/dist/components/display/clipboard/clipboard-root.d.ts +1 -1
  222. package/dist/components/display/clipboard/clipboard-root.js +1 -1
  223. package/dist/components/display/clipboard/clipboard-root.js.map +1 -1
  224. package/dist/components/display/clipboard/use-clipboard.d.ts +1 -1
  225. package/dist/components/display/clipboard/use-clipboard.js.map +1 -1
  226. package/dist/components/display/data-list/data-list-item-value-variants.d.ts +1 -1
  227. package/dist/components/display/data-list/data-list-item-variants.d.ts +1 -1
  228. package/dist/components/display/data-list/data-list-root-variants.d.ts +1 -1
  229. package/dist/components/display/data-list/data-list-root.d.ts +1 -1
  230. package/dist/components/display/data-list/data-list-root.js +1 -1
  231. package/dist/components/display/data-list/data-list-root.js.map +1 -1
  232. package/dist/components/display/status/index.d.ts +3 -0
  233. package/dist/components/display/status/index.js +2 -0
  234. package/dist/components/display/status/status-variants.d.ts +31 -0
  235. package/dist/components/display/status/status-variants.js +46 -0
  236. package/dist/components/display/status/status-variants.js.map +1 -0
  237. package/dist/components/display/status/status.d.ts +23 -0
  238. package/dist/components/display/status/status.js +36 -0
  239. package/dist/components/display/status/status.js.map +1 -0
  240. package/dist/components/display/tag/index.d.ts +2 -0
  241. package/dist/components/display/tag/index.js +2 -0
  242. package/dist/components/display/tag/index.parts.d.ts +10 -0
  243. package/dist/components/display/tag/index.parts.js +14 -0
  244. package/dist/components/display/tag/index.parts.js.map +1 -0
  245. package/dist/components/display/tag/tag-close.d.ts +16 -0
  246. package/dist/components/display/tag/tag-close.js +44 -0
  247. package/dist/components/display/tag/tag-close.js.map +1 -0
  248. package/dist/components/display/tag/tag-label.d.ts +12 -0
  249. package/dist/components/display/tag/tag-label.js +23 -0
  250. package/dist/components/display/tag/tag-label.js.map +1 -0
  251. package/dist/components/display/tag/tag-root-variants.d.ts +39 -0
  252. package/dist/components/display/tag/tag-root-variants.js +333 -0
  253. package/dist/components/display/tag/tag-root-variants.js.map +1 -0
  254. package/dist/components/display/tag/tag-root.d.ts +29 -0
  255. package/dist/components/display/tag/tag-root.js +46 -0
  256. package/dist/components/display/tag/tag-root.js.map +1 -0
  257. package/dist/components/feedback/alert/alert-content.d.ts +13 -0
  258. package/dist/components/feedback/alert/alert-content.js +30 -0
  259. package/dist/components/feedback/alert/alert-content.js.map +1 -0
  260. package/dist/components/feedback/alert/alert-description.d.ts +17 -0
  261. package/dist/components/feedback/alert/alert-description.js +33 -0
  262. package/dist/components/feedback/alert/alert-description.js.map +1 -0
  263. package/dist/components/feedback/alert/alert-indicator.d.ts +21 -0
  264. package/dist/components/feedback/alert/alert-indicator.js +56 -0
  265. package/dist/components/feedback/alert/alert-indicator.js.map +1 -0
  266. package/dist/components/feedback/alert/alert-root-variants.d.ts +13 -0
  267. package/dist/components/feedback/alert/alert-root-variants.js +75 -0
  268. package/dist/components/feedback/alert/alert-root-variants.js.map +1 -0
  269. package/dist/components/feedback/alert/alert-root.d.ts +33 -0
  270. package/dist/components/feedback/alert/alert-root.js +52 -0
  271. package/dist/components/feedback/alert/alert-root.js.map +1 -0
  272. package/dist/components/feedback/alert/alert-title.d.ts +22 -0
  273. package/dist/components/feedback/alert/alert-title.js +39 -0
  274. package/dist/components/feedback/alert/alert-title.js.map +1 -0
  275. package/dist/components/feedback/alert/index.d.ts +2 -0
  276. package/dist/components/feedback/alert/index.js +2 -0
  277. package/dist/components/feedback/alert/index.parts.d.ts +12 -0
  278. package/dist/components/feedback/alert/index.parts.js +18 -0
  279. package/dist/components/feedback/alert/index.parts.js.map +1 -0
  280. package/dist/components/feedback/alert/use-alert-context.d.ts +23 -0
  281. package/dist/components/feedback/alert/use-alert-context.js +14 -0
  282. package/dist/components/feedback/alert/use-alert-context.js.map +1 -0
  283. package/dist/components/feedback/empty-state/empty-state-root.d.ts +1 -1
  284. package/dist/components/feedback/empty-state/empty-state-root.js +1 -1
  285. package/dist/components/feedback/empty-state/empty-state-root.js.map +1 -1
  286. package/dist/components/feedback/empty-state/empty-state-title.d.ts +1 -1
  287. package/dist/components/feedback/empty-state/empty-state-title.js.map +1 -1
  288. package/dist/components/feedback/skeleton/skeleton-text.d.ts +1 -1
  289. package/dist/components/feedback/skeleton/skeleton-text.js +1 -1
  290. package/dist/components/feedback/skeleton/skeleton-text.js.map +1 -1
  291. package/dist/components/feedback/skeleton/skeleton.d.ts +1 -1
  292. package/dist/components/feedback/skeleton/skeleton.js +1 -1
  293. package/dist/components/feedback/skeleton/skeleton.js.map +1 -1
  294. package/dist/components/feedback/spinner/spinner.d.ts +1 -1
  295. package/dist/components/feedback/spinner/spinner.js +1 -1
  296. package/dist/components/feedback/spinner/spinner.js.map +1 -1
  297. package/dist/components/feedback/toast/index.d.ts +2 -0
  298. package/dist/components/feedback/toast/index.js +2 -0
  299. package/dist/components/feedback/toast/index.parts.d.ts +20 -0
  300. package/dist/components/feedback/toast/index.parts.js +37 -0
  301. package/dist/components/feedback/toast/index.parts.js.map +1 -0
  302. package/dist/components/feedback/toast/toast-action.d.ts +14 -0
  303. package/dist/components/feedback/toast/toast-action.js +21 -0
  304. package/dist/components/feedback/toast/toast-action.js.map +1 -0
  305. package/dist/components/feedback/toast/toast-close.d.ts +13 -0
  306. package/dist/components/feedback/toast/toast-close.js +20 -0
  307. package/dist/components/feedback/toast/toast-close.js.map +1 -0
  308. package/dist/components/feedback/toast/toast-content.d.ts +18 -0
  309. package/dist/components/feedback/toast/toast-content.js +35 -0
  310. package/dist/components/feedback/toast/toast-content.js.map +1 -0
  311. package/dist/components/feedback/toast/toast-description.d.ts +17 -0
  312. package/dist/components/feedback/toast/toast-description.js +29 -0
  313. package/dist/components/feedback/toast/toast-description.js.map +1 -0
  314. package/dist/components/feedback/toast/toast-indicator-variants.d.ts +10 -0
  315. package/dist/components/feedback/toast/toast-indicator-variants.js +27 -0
  316. package/dist/components/feedback/toast/toast-indicator-variants.js.map +1 -0
  317. package/dist/components/feedback/toast/toast-indicator.d.ts +18 -0
  318. package/dist/components/feedback/toast/toast-indicator.js +45 -0
  319. package/dist/components/feedback/toast/toast-indicator.js.map +1 -0
  320. package/dist/components/feedback/toast/toast-manager.d.ts +80 -0
  321. package/dist/components/feedback/toast/toast-manager.js +138 -0
  322. package/dist/components/feedback/toast/toast-manager.js.map +1 -0
  323. package/dist/components/feedback/toast/toast-outlet.d.ts +28 -0
  324. package/dist/components/feedback/toast/toast-outlet.js +108 -0
  325. package/dist/components/feedback/toast/toast-outlet.js.map +1 -0
  326. package/dist/components/feedback/toast/toast-placement.d.ts +20 -0
  327. package/dist/components/feedback/toast/toast-placement.js +51 -0
  328. package/dist/components/feedback/toast/toast-placement.js.map +1 -0
  329. package/dist/components/feedback/toast/toast-portal.d.ts +13 -0
  330. package/dist/components/feedback/toast/toast-portal.js +17 -0
  331. package/dist/components/feedback/toast/toast-portal.js.map +1 -0
  332. package/dist/components/feedback/toast/toast-provider.d.ts +15 -0
  333. package/dist/components/feedback/toast/toast-provider.js +17 -0
  334. package/dist/components/feedback/toast/toast-provider.js.map +1 -0
  335. package/dist/components/feedback/toast/toast-root-variants.d.ts +47 -0
  336. package/dist/components/feedback/toast/toast-root-variants.js +142 -0
  337. package/dist/components/feedback/toast/toast-root-variants.js.map +1 -0
  338. package/dist/components/feedback/toast/toast-root.d.ts +34 -0
  339. package/dist/components/feedback/toast/toast-root.js +67 -0
  340. package/dist/components/feedback/toast/toast-root.js.map +1 -0
  341. package/dist/components/feedback/toast/toast-title.d.ts +18 -0
  342. package/dist/components/feedback/toast/toast-title.js +31 -0
  343. package/dist/components/feedback/toast/toast-title.js.map +1 -0
  344. package/dist/components/feedback/toast/toast-viewport-variants.d.ts +17 -0
  345. package/dist/components/feedback/toast/toast-viewport-variants.js +33 -0
  346. package/dist/components/feedback/toast/toast-viewport-variants.js.map +1 -0
  347. package/dist/components/feedback/toast/toast-viewport.d.ts +19 -0
  348. package/dist/components/feedback/toast/toast-viewport.js +39 -0
  349. package/dist/components/feedback/toast/toast-viewport.js.map +1 -0
  350. package/dist/components/feedback/toast/use-toast-context.d.ts +18 -0
  351. package/dist/components/feedback/toast/use-toast-context.js +11 -0
  352. package/dist/components/feedback/toast/use-toast-context.js.map +1 -0
  353. package/dist/components/feedback/toast/use-toast-manager.d.ts +10 -0
  354. package/dist/components/feedback/toast/use-toast-manager.js +12 -0
  355. package/dist/components/feedback/toast/use-toast-manager.js.map +1 -0
  356. package/dist/components/feedback/toast/use-toast-root-context.d.ts +9 -0
  357. package/dist/components/feedback/toast/use-toast-root-context.js +10 -0
  358. package/dist/components/feedback/toast/use-toast-root-context.js.map +1 -0
  359. package/dist/components/fields/checkbox/checkbox-root.d.ts +1 -1
  360. package/dist/components/fields/checkbox/checkbox-root.js +1 -1
  361. package/dist/components/fields/checkbox/checkbox-root.js.map +1 -1
  362. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js +2 -4
  363. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js.map +1 -1
  364. package/dist/components/fields/currency-brl-input/currency-brl-input.d.ts +1 -1
  365. package/dist/components/fields/currency-brl-input/currency-brl-input.js +1 -1
  366. package/dist/components/fields/currency-brl-input/currency-brl-input.js.map +1 -1
  367. package/dist/components/fields/field/field-root.d.ts +1 -1
  368. package/dist/components/fields/field/field-root.js +1 -1
  369. package/dist/components/fields/field/field-root.js.map +1 -1
  370. package/dist/components/fields/form/form.d.ts +1 -1
  371. package/dist/components/fields/form/form.js.map +1 -1
  372. package/dist/components/fields/input/input-variants.d.ts +5 -4
  373. package/dist/components/fields/input/input-variants.js +8 -9
  374. package/dist/components/fields/input/input-variants.js.map +1 -1
  375. package/dist/components/fields/input/input.d.ts +1 -1
  376. package/dist/components/fields/input/input.js +1 -1
  377. package/dist/components/fields/input/input.js.map +1 -1
  378. package/dist/components/fields/number-input/number-input-variants.js +2 -4
  379. package/dist/components/fields/number-input/number-input-variants.js.map +1 -1
  380. package/dist/components/fields/number-input/number-input.d.ts +1 -1
  381. package/dist/components/fields/number-input/number-input.js +1 -1
  382. package/dist/components/fields/number-input/number-input.js.map +1 -1
  383. package/dist/components/fields/password-input/password-input.d.ts +1 -1
  384. package/dist/components/fields/password-input/password-input.js +1 -1
  385. package/dist/components/fields/password-input/password-input.js.map +1 -1
  386. package/dist/components/fields/pattern-input/pattern-input-variants.js +2 -4
  387. package/dist/components/fields/pattern-input/pattern-input-variants.js.map +1 -1
  388. package/dist/components/fields/pattern-input/pattern-input.d.ts +1 -1
  389. package/dist/components/fields/pattern-input/pattern-input.js +1 -1
  390. package/dist/components/fields/pattern-input/pattern-input.js.map +1 -1
  391. package/dist/components/fields/switch/switch-root.d.ts +1 -1
  392. package/dist/components/fields/switch/switch-root.js +1 -1
  393. package/dist/components/fields/switch/switch-root.js.map +1 -1
  394. package/dist/components/fields/textarea/textarea-variants.js +2 -4
  395. package/dist/components/fields/textarea/textarea-variants.js.map +1 -1
  396. package/dist/components/fields/textarea/textarea.d.ts +1 -1
  397. package/dist/components/fields/textarea/textarea.js +1 -1
  398. package/dist/components/fields/textarea/textarea.js.map +1 -1
  399. package/dist/components/layout/center-absolute/center-absolute-variants.d.ts +1 -1
  400. package/dist/components/layout/center-absolute/center-absolute.d.ts +1 -1
  401. package/dist/components/layout/center-absolute/center-absolute.js +1 -1
  402. package/dist/components/layout/center-absolute/center-absolute.js.map +1 -1
  403. package/dist/components/layout/float/float-variants.d.ts +1 -1
  404. package/dist/components/layout/float/float.d.ts +1 -1
  405. package/dist/components/layout/float/float.js +1 -1
  406. package/dist/components/layout/float/float.js.map +1 -1
  407. package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts +1 -1
  408. package/dist/components/layout/scroll-area/scroll-area-viewport.d.ts +1 -1
  409. package/dist/components/layout/scroll-area/scroll-area-viewport.js +1 -1
  410. package/dist/components/layout/scroll-area/scroll-area-viewport.js.map +1 -1
  411. package/dist/components/layout/separator/separator.d.ts +1 -1
  412. package/dist/components/layout/separator/separator.js +1 -1
  413. package/dist/components/layout/separator/separator.js.map +1 -1
  414. package/dist/components/layout/splitter/splitter-panel.d.ts +1 -1
  415. package/dist/components/layout/splitter/splitter-panel.js +1 -1
  416. package/dist/components/layout/splitter/splitter-panel.js.map +1 -1
  417. package/dist/components/layout/splitter/splitter-resize-trigger.d.ts +1 -1
  418. package/dist/components/layout/splitter/splitter-resize-trigger.js +1 -1
  419. package/dist/components/layout/splitter/splitter-resize-trigger.js.map +1 -1
  420. package/dist/components/layout/splitter/splitter-root-provider.d.ts +1 -1
  421. package/dist/components/layout/splitter/splitter-root-provider.js.map +1 -1
  422. package/dist/components/layout/splitter/splitter-root.d.ts +1 -1
  423. package/dist/components/layout/splitter/splitter-root.js +1 -1
  424. package/dist/components/layout/splitter/splitter-root.js.map +1 -1
  425. package/dist/components/layout/splitter/use-splitter.d.ts +1 -1
  426. package/dist/components/layout/splitter/use-splitter.js.map +1 -1
  427. package/dist/components/layout/stack/stack.d.ts +1 -1
  428. package/dist/components/layout/stack/stack.js +1 -1
  429. package/dist/components/layout/stack/stack.js.map +1 -1
  430. package/dist/components/overlays/action-bar/action-bar-popup-variants.d.ts +1 -1
  431. package/dist/components/overlays/action-bar/action-bar-root.d.ts +1 -1
  432. package/dist/components/overlays/action-bar/action-bar-root.js +1 -1
  433. package/dist/components/overlays/action-bar/action-bar-root.js.map +1 -1
  434. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +78 -0
  435. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +172 -0
  436. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -0
  437. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +23 -0
  438. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +28 -0
  439. package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -0
  440. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +2 -2
  441. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
  442. package/dist/components/overlays/alert-dialog/alert-dialog-root.d.ts +1 -1
  443. package/dist/components/overlays/alert-dialog/alert-dialog-root.js +1 -1
  444. package/dist/components/overlays/alert-dialog/alert-dialog-root.js.map +1 -1
  445. package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -0
  446. package/dist/components/overlays/alert-dialog/alert-dialog-store.js +75 -0
  447. package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -0
  448. package/dist/components/overlays/alert-dialog/alert-dialog-trigger.js.map +1 -1
  449. package/dist/components/overlays/alert-dialog/index.parts.d.ts +5 -3
  450. package/dist/components/overlays/alert-dialog/index.parts.js +7 -2
  451. package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
  452. package/dist/components/overlays/dialog/dialog-root.d.ts +1 -1
  453. package/dist/components/overlays/dialog/dialog-root.js +1 -1
  454. package/dist/components/overlays/dialog/dialog-root.js.map +1 -1
  455. package/dist/components/overlays/dialog/dialog-trigger.js.map +1 -1
  456. package/dist/components/overlays/drawer/drawer-backdrop.js +2 -3
  457. package/dist/components/overlays/drawer/drawer-backdrop.js.map +1 -1
  458. package/dist/components/overlays/drawer/drawer-indent-background.d.ts +17 -0
  459. package/dist/components/overlays/drawer/drawer-indent-background.js +28 -0
  460. package/dist/components/overlays/drawer/drawer-indent-background.js.map +1 -0
  461. package/dist/components/overlays/drawer/drawer-indent.d.ts +31 -0
  462. package/dist/components/overlays/drawer/drawer-indent.js +49 -0
  463. package/dist/components/overlays/drawer/drawer-indent.js.map +1 -0
  464. package/dist/components/overlays/drawer/drawer-popup-variants.d.ts +2 -26
  465. package/dist/components/overlays/drawer/drawer-popup-variants.js +101 -28
  466. package/dist/components/overlays/drawer/drawer-popup-variants.js.map +1 -1
  467. package/dist/components/overlays/drawer/drawer-popup.js +3 -2
  468. package/dist/components/overlays/drawer/drawer-popup.js.map +1 -1
  469. package/dist/components/overlays/drawer/drawer-provider.d.ts +17 -0
  470. package/dist/components/overlays/drawer/drawer-provider.js +18 -0
  471. package/dist/components/overlays/drawer/drawer-provider.js.map +1 -0
  472. package/dist/components/overlays/drawer/drawer-root.d.ts +1 -1
  473. package/dist/components/overlays/drawer/drawer-root.js +5 -2
  474. package/dist/components/overlays/drawer/drawer-root.js.map +1 -1
  475. package/dist/components/overlays/drawer/drawer-swipe-area.d.ts +27 -0
  476. package/dist/components/overlays/drawer/drawer-swipe-area.js +46 -0
  477. package/dist/components/overlays/drawer/drawer-swipe-area.js.map +1 -0
  478. package/dist/components/overlays/drawer/drawer-trigger.js.map +1 -1
  479. package/dist/components/overlays/drawer/drawer-viewport.d.ts +5 -0
  480. package/dist/components/overlays/drawer/drawer-viewport.js +13 -1
  481. package/dist/components/overlays/drawer/drawer-viewport.js.map +1 -1
  482. package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.d.ts +34 -0
  483. package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.js +35 -0
  484. package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.js.map +1 -0
  485. package/dist/components/overlays/drawer/index.parts.d.ts +7 -2
  486. package/dist/components/overlays/drawer/index.parts.js +11 -1
  487. package/dist/components/overlays/drawer/index.parts.js.map +1 -1
  488. package/dist/components/overlays/drawer/use-drawer-context.d.ts +8 -1
  489. package/dist/components/overlays/drawer/use-drawer-context.js.map +1 -1
  490. package/dist/components/overlays/menu/menu-item.d.ts +2 -2
  491. package/dist/components/overlays/menu/menu-item.js +2 -2
  492. package/dist/components/overlays/menu/menu-item.js.map +1 -1
  493. package/dist/components/overlays/menu/menu-root.js.map +1 -1
  494. package/dist/components/overlays/menu/menu-trigger.js.map +1 -1
  495. package/dist/components/overlays/popover/popover-backdrop.d.ts +1 -1
  496. package/dist/components/overlays/popover/popover-backdrop.js +1 -1
  497. package/dist/components/overlays/popover/popover-backdrop.js.map +1 -1
  498. package/dist/components/overlays/popover/popover-popup-variants.d.ts +3 -3
  499. package/dist/components/overlays/popover/popover-popup-variants.js +3 -3
  500. package/dist/components/overlays/popover/popover-popup-variants.js.map +1 -1
  501. package/dist/components/overlays/popover/popover-root.js.map +1 -1
  502. package/dist/components/overlays/popover/popover-trigger.js.map +1 -1
  503. package/dist/components/overlays/tooltip/simple-tooltip.d.ts +1 -1
  504. package/dist/components/overlays/tooltip/simple-tooltip.js +1 -1
  505. package/dist/components/overlays/tooltip/simple-tooltip.js.map +1 -1
  506. package/dist/components/overlays/tooltip/tooltip-root.js.map +1 -1
  507. package/dist/components/overlays/tooltip/tooltip-trigger.js.map +1 -1
  508. package/dist/components/typography/heading/heading.d.ts +1 -1
  509. package/dist/components/typography/heading/heading.js.map +1 -1
  510. package/dist/components/typography/kbd/kbd.d.ts +1 -1
  511. package/dist/components/typography/kbd/kbd.js +1 -1
  512. package/dist/components/typography/kbd/kbd.js.map +1 -1
  513. package/dist/components/typography/mark/mark.d.ts +1 -1
  514. package/dist/components/typography/mark/mark.js +1 -1
  515. package/dist/components/typography/mark/mark.js.map +1 -1
  516. package/dist/components/typography/pre/pre.d.ts +1 -1
  517. package/dist/components/typography/pre/pre.js +1 -1
  518. package/dist/components/typography/pre/pre.js.map +1 -1
  519. package/dist/components/utilities/for/for.d.ts +1 -1
  520. package/dist/components/utilities/for/for.js.map +1 -1
  521. package/dist/hooks/index.d.ts +2 -2
  522. package/dist/hooks/index.js +2 -2
  523. package/dist/hooks/use-breakpoint.d.ts +25 -12
  524. package/dist/hooks/use-breakpoint.js +44 -28
  525. package/dist/hooks/use-breakpoint.js.map +1 -1
  526. package/dist/hooks/use-pointer-type.d.ts +2 -6
  527. package/dist/hooks/use-pointer-type.js +4 -22
  528. package/dist/hooks/use-pointer-type.js.map +1 -1
  529. package/dist/types/color-scheme.d.ts +1 -1
  530. package/package.json +14 -13
  531. package/src/theme/theme.css +9 -0
  532. package/dist/components/buttons/button/button-variants.d.ts.map +0 -1
  533. package/dist/components/buttons/button/button.d.ts.map +0 -1
  534. package/dist/components/buttons/clipboard-button/clipboard-button.d.ts.map +0 -1
  535. package/dist/components/buttons/close-button/close-button.d.ts.map +0 -1
  536. package/dist/components/buttons/icon-button/icon-button-variants.d.ts.map +0 -1
  537. package/dist/components/buttons/icon-button/icon-button.d.ts.map +0 -1
  538. package/dist/components/buttons/responsive-button/responsive-button.d.ts.map +0 -1
  539. package/dist/components/collections/select/index.parts.d.ts.map +0 -1
  540. package/dist/components/collections/select/select-arrow.d.ts.map +0 -1
  541. package/dist/components/collections/select/select-backdrop.d.ts.map +0 -1
  542. package/dist/components/collections/select/select-context.d.ts.map +0 -1
  543. package/dist/components/collections/select/select-group-label-variants.d.ts.map +0 -1
  544. package/dist/components/collections/select/select-group-label.d.ts.map +0 -1
  545. package/dist/components/collections/select/select-group.d.ts.map +0 -1
  546. package/dist/components/collections/select/select-icon.d.ts.map +0 -1
  547. package/dist/components/collections/select/select-item-indicator.d.ts.map +0 -1
  548. package/dist/components/collections/select/select-item-text.d.ts.map +0 -1
  549. package/dist/components/collections/select/select-item-variants.d.ts.map +0 -1
  550. package/dist/components/collections/select/select-item.d.ts.map +0 -1
  551. package/dist/components/collections/select/select-label-variants.d.ts.map +0 -1
  552. package/dist/components/collections/select/select-label.d.ts.map +0 -1
  553. package/dist/components/collections/select/select-list.d.ts.map +0 -1
  554. package/dist/components/collections/select/select-popup-variants.d.ts.map +0 -1
  555. package/dist/components/collections/select/select-popup.d.ts.map +0 -1
  556. package/dist/components/collections/select/select-portal.d.ts.map +0 -1
  557. package/dist/components/collections/select/select-positioner.d.ts.map +0 -1
  558. package/dist/components/collections/select/select-root.d.ts.map +0 -1
  559. package/dist/components/collections/select/select-scroll-down-arrow-variants.d.ts.map +0 -1
  560. package/dist/components/collections/select/select-scroll-down-arrow.d.ts.map +0 -1
  561. package/dist/components/collections/select/select-scroll-up-arrow-variants.d.ts.map +0 -1
  562. package/dist/components/collections/select/select-scroll-up-arrow.d.ts.map +0 -1
  563. package/dist/components/collections/select/select-separator.d.ts.map +0 -1
  564. package/dist/components/collections/select/select-trigger-variants.d.ts.map +0 -1
  565. package/dist/components/collections/select/select-trigger.d.ts.map +0 -1
  566. package/dist/components/collections/select/select-value.d.ts.map +0 -1
  567. package/dist/components/collections/select/use-select-context.d.ts.map +0 -1
  568. package/dist/components/collections/tree-view/index.parts.d.ts.map +0 -1
  569. package/dist/components/collections/tree-view/tree-collection.d.ts.map +0 -1
  570. package/dist/components/collections/tree-view/tree-view-branch-content.d.ts.map +0 -1
  571. package/dist/components/collections/tree-view/tree-view-branch-control.d.ts.map +0 -1
  572. package/dist/components/collections/tree-view/tree-view-branch-indent-guide.d.ts.map +0 -1
  573. package/dist/components/collections/tree-view/tree-view-branch-indicator.d.ts.map +0 -1
  574. package/dist/components/collections/tree-view/tree-view-branch-text.d.ts.map +0 -1
  575. package/dist/components/collections/tree-view/tree-view-branch-trigger.d.ts.map +0 -1
  576. package/dist/components/collections/tree-view/tree-view-branch.d.ts.map +0 -1
  577. package/dist/components/collections/tree-view/tree-view-context.d.ts.map +0 -1
  578. package/dist/components/collections/tree-view/tree-view-item-indicator.d.ts.map +0 -1
  579. package/dist/components/collections/tree-view/tree-view-item-text.d.ts.map +0 -1
  580. package/dist/components/collections/tree-view/tree-view-item.d.ts.map +0 -1
  581. package/dist/components/collections/tree-view/tree-view-label.d.ts.map +0 -1
  582. package/dist/components/collections/tree-view/tree-view-node-checkbox-indicator.d.ts.map +0 -1
  583. package/dist/components/collections/tree-view/tree-view-node-checkbox.d.ts.map +0 -1
  584. package/dist/components/collections/tree-view/tree-view-node-context.d.ts.map +0 -1
  585. package/dist/components/collections/tree-view/tree-view-node-provider.d.ts.map +0 -1
  586. package/dist/components/collections/tree-view/tree-view-node-rename-input.d.ts.map +0 -1
  587. package/dist/components/collections/tree-view/tree-view-node-variants.d.ts.map +0 -1
  588. package/dist/components/collections/tree-view/tree-view-node.d.ts.map +0 -1
  589. package/dist/components/collections/tree-view/tree-view-root-provider.d.ts.map +0 -1
  590. package/dist/components/collections/tree-view/tree-view-root.d.ts.map +0 -1
  591. package/dist/components/collections/tree-view/tree-view-text-class-names.d.ts.map +0 -1
  592. package/dist/components/collections/tree-view/tree-view-tree-variants.d.ts.map +0 -1
  593. package/dist/components/collections/tree-view/tree-view-tree.d.ts.map +0 -1
  594. package/dist/components/collections/tree-view/use-tree-view-context.d.ts.map +0 -1
  595. package/dist/components/collections/tree-view/use-tree-view-node-context.d.ts.map +0 -1
  596. package/dist/components/collections/tree-view/use-tree-view-node-props-context.d.ts.map +0 -1
  597. package/dist/components/collections/tree-view/use-tree-view-render-strategy-context.d.ts.map +0 -1
  598. package/dist/components/collections/tree-view/use-tree-view-variants-context.d.ts.map +0 -1
  599. package/dist/components/collections/tree-view/use-tree-view.d.ts.map +0 -1
  600. package/dist/components/disclosure/breadcrumb/breadcrumb-current.d.ts.map +0 -1
  601. package/dist/components/disclosure/breadcrumb/breadcrumb-item.d.ts.map +0 -1
  602. package/dist/components/disclosure/breadcrumb/breadcrumb-link.d.ts.map +0 -1
  603. package/dist/components/disclosure/breadcrumb/breadcrumb-list.d.ts.map +0 -1
  604. package/dist/components/disclosure/breadcrumb/breadcrumb-root.d.ts.map +0 -1
  605. package/dist/components/disclosure/breadcrumb/breadcrumb-separator.d.ts.map +0 -1
  606. package/dist/components/disclosure/breadcrumb/index.parts.d.ts.map +0 -1
  607. package/dist/components/disclosure/collapsible/collapsible-indicator.d.ts.map +0 -1
  608. package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts.map +0 -1
  609. package/dist/components/disclosure/collapsible/collapsible-panel.d.ts.map +0 -1
  610. package/dist/components/disclosure/collapsible/collapsible-root.d.ts.map +0 -1
  611. package/dist/components/disclosure/collapsible/collapsible-trigger.d.ts.map +0 -1
  612. package/dist/components/disclosure/collapsible/index.parts.d.ts.map +0 -1
  613. package/dist/components/disclosure/tabs/index.parts.d.ts.map +0 -1
  614. package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts.map +0 -1
  615. package/dist/components/disclosure/tabs/tabs-indicator.d.ts.map +0 -1
  616. package/dist/components/disclosure/tabs/tabs-list-variants.d.ts.map +0 -1
  617. package/dist/components/disclosure/tabs/tabs-list.d.ts.map +0 -1
  618. package/dist/components/disclosure/tabs/tabs-panel.d.ts.map +0 -1
  619. package/dist/components/disclosure/tabs/tabs-root-variants.d.ts.map +0 -1
  620. package/dist/components/disclosure/tabs/tabs-root.d.ts.map +0 -1
  621. package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts.map +0 -1
  622. package/dist/components/disclosure/tabs/tabs-tab.d.ts.map +0 -1
  623. package/dist/components/disclosure/tabs/use-tabs-context.d.ts.map +0 -1
  624. package/dist/components/display/card/card-body.d.ts.map +0 -1
  625. package/dist/components/display/card/card-description.d.ts.map +0 -1
  626. package/dist/components/display/card/card-footer.d.ts.map +0 -1
  627. package/dist/components/display/card/card-header.d.ts.map +0 -1
  628. package/dist/components/display/card/card-root-variants.d.ts.map +0 -1
  629. package/dist/components/display/card/card-root.d.ts.map +0 -1
  630. package/dist/components/display/card/card-title.d.ts.map +0 -1
  631. package/dist/components/display/card/index.parts.d.ts.map +0 -1
  632. package/dist/components/display/clipboard/clipboard-announcer.d.ts.map +0 -1
  633. package/dist/components/display/clipboard/clipboard-context.d.ts.map +0 -1
  634. package/dist/components/display/clipboard/clipboard-control.d.ts.map +0 -1
  635. package/dist/components/display/clipboard/clipboard-copy-text.d.ts.map +0 -1
  636. package/dist/components/display/clipboard/clipboard-indicator.d.ts.map +0 -1
  637. package/dist/components/display/clipboard/clipboard-input.d.ts.map +0 -1
  638. package/dist/components/display/clipboard/clipboard-label.d.ts.map +0 -1
  639. package/dist/components/display/clipboard/clipboard-root-provider.d.ts.map +0 -1
  640. package/dist/components/display/clipboard/clipboard-root.d.ts.map +0 -1
  641. package/dist/components/display/clipboard/clipboard-trigger.d.ts.map +0 -1
  642. package/dist/components/display/clipboard/clipboard-value-text.d.ts.map +0 -1
  643. package/dist/components/display/clipboard/index.parts.d.ts.map +0 -1
  644. package/dist/components/display/clipboard/use-clipboard-context.d.ts.map +0 -1
  645. package/dist/components/display/clipboard/use-clipboard.d.ts.map +0 -1
  646. package/dist/components/display/data-list/data-list-item-label.d.ts.map +0 -1
  647. package/dist/components/display/data-list/data-list-item-value-variants.d.ts.map +0 -1
  648. package/dist/components/display/data-list/data-list-item-value.d.ts.map +0 -1
  649. package/dist/components/display/data-list/data-list-item-variants.d.ts.map +0 -1
  650. package/dist/components/display/data-list/data-list-item.d.ts.map +0 -1
  651. package/dist/components/display/data-list/data-list-root-variants.d.ts.map +0 -1
  652. package/dist/components/display/data-list/data-list-root.d.ts.map +0 -1
  653. package/dist/components/display/data-list/index.parts.d.ts.map +0 -1
  654. package/dist/components/display/data-list/use-data-list-context.d.ts.map +0 -1
  655. package/dist/components/display/icon/icon.d.ts.map +0 -1
  656. package/dist/components/feedback/empty-state/empty-state-content.d.ts.map +0 -1
  657. package/dist/components/feedback/empty-state/empty-state-description.d.ts.map +0 -1
  658. package/dist/components/feedback/empty-state/empty-state-indicator.d.ts.map +0 -1
  659. package/dist/components/feedback/empty-state/empty-state-root-variants.d.ts.map +0 -1
  660. package/dist/components/feedback/empty-state/empty-state-root.d.ts.map +0 -1
  661. package/dist/components/feedback/empty-state/empty-state-title.d.ts.map +0 -1
  662. package/dist/components/feedback/empty-state/index.parts.d.ts.map +0 -1
  663. package/dist/components/feedback/skeleton/skeleton-text.d.ts.map +0 -1
  664. package/dist/components/feedback/skeleton/skeleton-variants.d.ts.map +0 -1
  665. package/dist/components/feedback/skeleton/skeleton.d.ts.map +0 -1
  666. package/dist/components/feedback/spinner/spinner-variants.d.ts.map +0 -1
  667. package/dist/components/feedback/spinner/spinner.d.ts.map +0 -1
  668. package/dist/components/fields/checkbox/checkbox-group.d.ts.map +0 -1
  669. package/dist/components/fields/checkbox/checkbox-indicator.d.ts.map +0 -1
  670. package/dist/components/fields/checkbox/checkbox-root-variants.d.ts.map +0 -1
  671. package/dist/components/fields/checkbox/checkbox-root.d.ts.map +0 -1
  672. package/dist/components/fields/checkbox/index.parts.d.ts.map +0 -1
  673. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.d.ts.map +0 -1
  674. package/dist/components/fields/currency-brl-input/currency-brl-input.d.ts.map +0 -1
  675. package/dist/components/fields/field/field-description.d.ts.map +0 -1
  676. package/dist/components/fields/field/field-error.d.ts.map +0 -1
  677. package/dist/components/fields/field/field-header.d.ts.map +0 -1
  678. package/dist/components/fields/field/field-item.d.ts.map +0 -1
  679. package/dist/components/fields/field/field-label.d.ts.map +0 -1
  680. package/dist/components/fields/field/field-required-indicator.d.ts.map +0 -1
  681. package/dist/components/fields/field/field-root-variants.d.ts.map +0 -1
  682. package/dist/components/fields/field/field-root.d.ts.map +0 -1
  683. package/dist/components/fields/field/field-validity.d.ts.map +0 -1
  684. package/dist/components/fields/field/index.parts.d.ts.map +0 -1
  685. package/dist/components/fields/fieldset/fieldset-legend.d.ts.map +0 -1
  686. package/dist/components/fields/fieldset/fieldset-root.d.ts.map +0 -1
  687. package/dist/components/fields/fieldset/index.parts.d.ts.map +0 -1
  688. package/dist/components/fields/form/form.d.ts.map +0 -1
  689. package/dist/components/fields/input/input-variants.d.ts.map +0 -1
  690. package/dist/components/fields/input/input.d.ts.map +0 -1
  691. package/dist/components/fields/number-input/number-input-variants.d.ts.map +0 -1
  692. package/dist/components/fields/number-input/number-input.d.ts.map +0 -1
  693. package/dist/components/fields/password-input/password-input-variants.d.ts.map +0 -1
  694. package/dist/components/fields/password-input/password-input.d.ts.map +0 -1
  695. package/dist/components/fields/pattern-input/pattern-input-masks.d.ts.map +0 -1
  696. package/dist/components/fields/pattern-input/pattern-input-variants.d.ts.map +0 -1
  697. package/dist/components/fields/pattern-input/pattern-input.d.ts.map +0 -1
  698. package/dist/components/fields/switch/index.parts.d.ts.map +0 -1
  699. package/dist/components/fields/switch/switch-root-variants.d.ts.map +0 -1
  700. package/dist/components/fields/switch/switch-root.d.ts.map +0 -1
  701. package/dist/components/fields/switch/switch-thumb.d.ts.map +0 -1
  702. package/dist/components/fields/textarea/textarea-variants.d.ts.map +0 -1
  703. package/dist/components/fields/textarea/textarea.d.ts.map +0 -1
  704. package/dist/components/layout/box/box.d.ts.map +0 -1
  705. package/dist/components/layout/center/center.d.ts.map +0 -1
  706. package/dist/components/layout/center-absolute/center-absolute-variants.d.ts.map +0 -1
  707. package/dist/components/layout/center-absolute/center-absolute.d.ts.map +0 -1
  708. package/dist/components/layout/circle/circle.d.ts.map +0 -1
  709. package/dist/components/layout/flex/flex.d.ts.map +0 -1
  710. package/dist/components/layout/float/float-variants.d.ts.map +0 -1
  711. package/dist/components/layout/float/float.d.ts.map +0 -1
  712. package/dist/components/layout/grid/grid.d.ts.map +0 -1
  713. package/dist/components/layout/scroll-area/index.parts.d.ts.map +0 -1
  714. package/dist/components/layout/scroll-area/scroll-area-bars.d.ts.map +0 -1
  715. package/dist/components/layout/scroll-area/scroll-area-content.d.ts.map +0 -1
  716. package/dist/components/layout/scroll-area/scroll-area-corner.d.ts.map +0 -1
  717. package/dist/components/layout/scroll-area/scroll-area-root.d.ts.map +0 -1
  718. package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts.map +0 -1
  719. package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts.map +0 -1
  720. package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts.map +0 -1
  721. package/dist/components/layout/scroll-area/scroll-area-viewport.d.ts.map +0 -1
  722. package/dist/components/layout/separator/separator-variants.d.ts.map +0 -1
  723. package/dist/components/layout/separator/separator.d.ts.map +0 -1
  724. package/dist/components/layout/splitter/index.parts.d.ts.map +0 -1
  725. package/dist/components/layout/splitter/splitter-context.d.ts.map +0 -1
  726. package/dist/components/layout/splitter/splitter-panel.d.ts.map +0 -1
  727. package/dist/components/layout/splitter/splitter-resize-trigger.d.ts.map +0 -1
  728. package/dist/components/layout/splitter/splitter-root-provider.d.ts.map +0 -1
  729. package/dist/components/layout/splitter/splitter-root.d.ts.map +0 -1
  730. package/dist/components/layout/splitter/use-splitter-context.d.ts.map +0 -1
  731. package/dist/components/layout/splitter/use-splitter.d.ts.map +0 -1
  732. package/dist/components/layout/stack/h-stack.d.ts.map +0 -1
  733. package/dist/components/layout/stack/stack-variants.d.ts.map +0 -1
  734. package/dist/components/layout/stack/stack.d.ts.map +0 -1
  735. package/dist/components/layout/stack/v-stack.d.ts.map +0 -1
  736. package/dist/components/layout/wrap/wrap.d.ts.map +0 -1
  737. package/dist/components/overlays/action-bar/action-bar-close.d.ts.map +0 -1
  738. package/dist/components/overlays/action-bar/action-bar-popup-variants.d.ts.map +0 -1
  739. package/dist/components/overlays/action-bar/action-bar-popup.d.ts.map +0 -1
  740. package/dist/components/overlays/action-bar/action-bar-portal.d.ts.map +0 -1
  741. package/dist/components/overlays/action-bar/action-bar-root.d.ts.map +0 -1
  742. package/dist/components/overlays/action-bar/action-bar-selection-trigger.d.ts.map +0 -1
  743. package/dist/components/overlays/action-bar/action-bar-separator.d.ts.map +0 -1
  744. package/dist/components/overlays/action-bar/index.parts.d.ts.map +0 -1
  745. package/dist/components/overlays/action-bar/use-action-bar-context.d.ts.map +0 -1
  746. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.d.ts.map +0 -1
  747. package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts.map +0 -1
  748. package/dist/components/overlays/alert-dialog/alert-dialog-close.d.ts.map +0 -1
  749. package/dist/components/overlays/alert-dialog/alert-dialog-description.d.ts.map +0 -1
  750. package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts.map +0 -1
  751. package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts.map +0 -1
  752. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts.map +0 -1
  753. package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts.map +0 -1
  754. package/dist/components/overlays/alert-dialog/alert-dialog-portal.d.ts.map +0 -1
  755. package/dist/components/overlays/alert-dialog/alert-dialog-root.d.ts.map +0 -1
  756. package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts.map +0 -1
  757. package/dist/components/overlays/alert-dialog/alert-dialog-trigger.d.ts.map +0 -1
  758. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.d.ts.map +0 -1
  759. package/dist/components/overlays/alert-dialog/create-handle.d.ts.map +0 -1
  760. package/dist/components/overlays/alert-dialog/index.parts.d.ts.map +0 -1
  761. package/dist/components/overlays/alert-dialog/use-alert-dialog-context.d.ts.map +0 -1
  762. package/dist/components/overlays/dialog/create-handle.d.ts.map +0 -1
  763. package/dist/components/overlays/dialog/dialog-backdrop.d.ts.map +0 -1
  764. package/dist/components/overlays/dialog/dialog-body.d.ts.map +0 -1
  765. package/dist/components/overlays/dialog/dialog-close.d.ts.map +0 -1
  766. package/dist/components/overlays/dialog/dialog-description.d.ts.map +0 -1
  767. package/dist/components/overlays/dialog/dialog-footer.d.ts.map +0 -1
  768. package/dist/components/overlays/dialog/dialog-header.d.ts.map +0 -1
  769. package/dist/components/overlays/dialog/dialog-popup-variants.d.ts.map +0 -1
  770. package/dist/components/overlays/dialog/dialog-popup.d.ts.map +0 -1
  771. package/dist/components/overlays/dialog/dialog-portal.d.ts.map +0 -1
  772. package/dist/components/overlays/dialog/dialog-root.d.ts.map +0 -1
  773. package/dist/components/overlays/dialog/dialog-title.d.ts.map +0 -1
  774. package/dist/components/overlays/dialog/dialog-trigger.d.ts.map +0 -1
  775. package/dist/components/overlays/dialog/dialog-viewport.d.ts.map +0 -1
  776. package/dist/components/overlays/dialog/index.parts.d.ts.map +0 -1
  777. package/dist/components/overlays/dialog/use-dialog-context.d.ts.map +0 -1
  778. package/dist/components/overlays/drawer/create-handle.d.ts.map +0 -1
  779. package/dist/components/overlays/drawer/drawer-backdrop.d.ts.map +0 -1
  780. package/dist/components/overlays/drawer/drawer-body.d.ts.map +0 -1
  781. package/dist/components/overlays/drawer/drawer-close.d.ts.map +0 -1
  782. package/dist/components/overlays/drawer/drawer-description.d.ts.map +0 -1
  783. package/dist/components/overlays/drawer/drawer-footer.d.ts.map +0 -1
  784. package/dist/components/overlays/drawer/drawer-header.d.ts.map +0 -1
  785. package/dist/components/overlays/drawer/drawer-popup-variants.d.ts.map +0 -1
  786. package/dist/components/overlays/drawer/drawer-popup.d.ts.map +0 -1
  787. package/dist/components/overlays/drawer/drawer-portal.d.ts.map +0 -1
  788. package/dist/components/overlays/drawer/drawer-root.d.ts.map +0 -1
  789. package/dist/components/overlays/drawer/drawer-title.d.ts.map +0 -1
  790. package/dist/components/overlays/drawer/drawer-trigger.d.ts.map +0 -1
  791. package/dist/components/overlays/drawer/drawer-viewport.d.ts.map +0 -1
  792. package/dist/components/overlays/drawer/index.parts.d.ts.map +0 -1
  793. package/dist/components/overlays/drawer/use-drawer-context.d.ts.map +0 -1
  794. package/dist/components/overlays/menu/index.parts.d.ts.map +0 -1
  795. package/dist/components/overlays/menu/menu-group-label.d.ts.map +0 -1
  796. package/dist/components/overlays/menu/menu-group.d.ts.map +0 -1
  797. package/dist/components/overlays/menu/menu-item-variants.d.ts.map +0 -1
  798. package/dist/components/overlays/menu/menu-item.d.ts.map +0 -1
  799. package/dist/components/overlays/menu/menu-popup.d.ts.map +0 -1
  800. package/dist/components/overlays/menu/menu-portal.d.ts.map +0 -1
  801. package/dist/components/overlays/menu/menu-positioner.d.ts.map +0 -1
  802. package/dist/components/overlays/menu/menu-root.d.ts.map +0 -1
  803. package/dist/components/overlays/menu/menu-separator.d.ts.map +0 -1
  804. package/dist/components/overlays/menu/menu-trigger.d.ts.map +0 -1
  805. package/dist/components/overlays/overlay-manager/index.d.ts +0 -2
  806. package/dist/components/overlays/overlay-manager/index.js +0 -2
  807. package/dist/components/overlays/overlay-manager/overlay-manager.d.ts +0 -49
  808. package/dist/components/overlays/overlay-manager/overlay-manager.d.ts.map +0 -1
  809. package/dist/components/overlays/overlay-manager/overlay-manager.js +0 -182
  810. package/dist/components/overlays/overlay-manager/overlay-manager.js.map +0 -1
  811. package/dist/components/overlays/popover/create-handle.d.ts.map +0 -1
  812. package/dist/components/overlays/popover/index.parts.d.ts.map +0 -1
  813. package/dist/components/overlays/popover/popover-arrow.d.ts.map +0 -1
  814. package/dist/components/overlays/popover/popover-backdrop.d.ts.map +0 -1
  815. package/dist/components/overlays/popover/popover-body.d.ts.map +0 -1
  816. package/dist/components/overlays/popover/popover-close.d.ts.map +0 -1
  817. package/dist/components/overlays/popover/popover-description.d.ts.map +0 -1
  818. package/dist/components/overlays/popover/popover-footer.d.ts.map +0 -1
  819. package/dist/components/overlays/popover/popover-header.d.ts.map +0 -1
  820. package/dist/components/overlays/popover/popover-popup-variants.d.ts.map +0 -1
  821. package/dist/components/overlays/popover/popover-popup.d.ts.map +0 -1
  822. package/dist/components/overlays/popover/popover-portal.d.ts.map +0 -1
  823. package/dist/components/overlays/popover/popover-positioner.d.ts.map +0 -1
  824. package/dist/components/overlays/popover/popover-root.d.ts.map +0 -1
  825. package/dist/components/overlays/popover/popover-title.d.ts.map +0 -1
  826. package/dist/components/overlays/popover/popover-trigger.d.ts.map +0 -1
  827. package/dist/components/overlays/popover/popover-viewport.d.ts.map +0 -1
  828. package/dist/components/overlays/tooltip/create-handle.d.ts.map +0 -1
  829. package/dist/components/overlays/tooltip/index.parts.d.ts.map +0 -1
  830. package/dist/components/overlays/tooltip/simple-tooltip.d.ts.map +0 -1
  831. package/dist/components/overlays/tooltip/tooltip-arrow.d.ts.map +0 -1
  832. package/dist/components/overlays/tooltip/tooltip-popup.d.ts.map +0 -1
  833. package/dist/components/overlays/tooltip/tooltip-portal.d.ts.map +0 -1
  834. package/dist/components/overlays/tooltip/tooltip-positioner.d.ts.map +0 -1
  835. package/dist/components/overlays/tooltip/tooltip-provider.d.ts.map +0 -1
  836. package/dist/components/overlays/tooltip/tooltip-root.d.ts.map +0 -1
  837. package/dist/components/overlays/tooltip/tooltip-trigger.d.ts.map +0 -1
  838. package/dist/components/overlays/tooltip/tooltip-viewport.d.ts.map +0 -1
  839. package/dist/components/typography/heading/heading.d.ts.map +0 -1
  840. package/dist/components/typography/kbd/kbd-group.d.ts.map +0 -1
  841. package/dist/components/typography/kbd/kbd-variants.d.ts.map +0 -1
  842. package/dist/components/typography/kbd/kbd.d.ts.map +0 -1
  843. package/dist/components/typography/list/index.parts.d.ts.map +0 -1
  844. package/dist/components/typography/list/list-item.d.ts.map +0 -1
  845. package/dist/components/typography/list/list-ordered.d.ts.map +0 -1
  846. package/dist/components/typography/list/list-unordered.d.ts.map +0 -1
  847. package/dist/components/typography/list/list-unstyled.d.ts.map +0 -1
  848. package/dist/components/typography/mark/mark-variants.d.ts.map +0 -1
  849. package/dist/components/typography/mark/mark.d.ts.map +0 -1
  850. package/dist/components/typography/paragraph/paragraph.d.ts.map +0 -1
  851. package/dist/components/typography/pre/pre-variants.d.ts.map +0 -1
  852. package/dist/components/typography/pre/pre.d.ts.map +0 -1
  853. package/dist/components/typography/text/text.d.ts.map +0 -1
  854. package/dist/components/typography/truncate/truncate.d.ts.map +0 -1
  855. package/dist/components/utilities/for/for.d.ts.map +0 -1
  856. package/dist/components/utilities/interaction-shield/interaction-shield.d.ts.map +0 -1
  857. package/dist/components/utilities/show/show.d.ts.map +0 -1
  858. package/dist/hooks/use-breakpoint.d.ts.map +0 -1
  859. package/dist/hooks/use-pointer-type.d.ts.map +0 -1
  860. package/dist/hooks/use-responsive-breakpoint.d.ts +0 -18
  861. package/dist/hooks/use-responsive-breakpoint.d.ts.map +0 -1
  862. package/dist/hooks/use-responsive-breakpoint.js +0 -56
  863. package/dist/hooks/use-responsive-breakpoint.js.map +0 -1
  864. package/dist/types/color-scheme.d.ts.map +0 -1
  865. package/dist/utils/merge-class-names.d.ts.map +0 -1
  866. package/dist/utils/merge-state-class-names.d.ts.map +0 -1
  867. package/dist/utils/normalize-data-attr.d.ts.map +0 -1
  868. package/src/theme/tailwindcss-default-theme.css +0 -448
package/README.md ADDED
@@ -0,0 +1,141 @@
1
+ # @lucasbernardosn/react-ui
2
+
3
+ Biblioteca de componentes React sobre [Base UI](https://base-ui.com) e [Zag.js](https://zagjs.com),
4
+ estilizada com Tailwind CSS v4. O tema tem escala de cores própria, claro e escuro, e os textos
5
+ padrão são em pt-BR. Cada componente é importado pelo próprio caminho, e um componente de várias
6
+ partes sai num namespace (`Dialog.Root`, `Dialog.Popup`…).
7
+
8
+ ## Instalação
9
+
10
+ ```bash
11
+ pnpm add @lucasbernardosn/react-ui @lucasbernardosn/react-utils react react-dom tailwindcss
12
+ ```
13
+
14
+ O React (19), o Tailwind CSS (4) e o [`@lucasbernardosn/react-utils`](https://www.npmjs.com/package/@lucasbernardosn/react-utils)
15
+ são peers: o app e a lib precisam usar a mesma cópia de cada um.
16
+
17
+ ## Configuração
18
+
19
+ No CSS de entrada do app, o tema da lib vem depois do Tailwind, e o Tailwind precisa ler as
20
+ classes da lib:
21
+
22
+ ```css
23
+ @import 'tailwindcss';
24
+ @import '@lucasbernardosn/react-ui/theme.css';
25
+
26
+ @source '../node_modules/@lucasbernardosn/react-ui';
27
+
28
+ /*
29
+ * A raiz do app num contexto de empilhamento próprio. Os popups da lib não têm `z-index`: vão por
30
+ * portal para o fim do `body` e ficam por cima da raiz, e o `z-index` do app (um cabeçalho fixo,
31
+ * por exemplo) só vale dentro dela.
32
+ */
33
+ #root {
34
+ isolation: isolate;
35
+ }
36
+ ```
37
+
38
+ O caminho do `@source` é relativo ao arquivo CSS. O tema é claro por padrão; o escuro vale para o
39
+ elemento com `data-theme="dark"` e os descendentes dele, então trocar o tema do app é trocar o
40
+ atributo no `<html>`:
41
+
42
+ ```ts
43
+ document.documentElement.dataset.theme = 'dark';
44
+ ```
45
+
46
+ ## Uso
47
+
48
+ ```tsx
49
+ import { Button } from '@lucasbernardosn/react-ui/buttons/button';
50
+ import { Dialog } from '@lucasbernardosn/react-ui/overlays/dialog';
51
+ import { Field } from '@lucasbernardosn/react-ui/fields/field';
52
+ import { Input } from '@lucasbernardosn/react-ui/fields/input';
53
+
54
+ export const EditCustomerDialog = () => (
55
+ <Dialog.Root>
56
+ <Dialog.Trigger render={<Button />}>Editar cliente</Dialog.Trigger>
57
+ <Dialog.Portal>
58
+ <Dialog.Backdrop />
59
+ <Dialog.Viewport>
60
+ <Dialog.Popup>
61
+ <Dialog.Header>
62
+ <Dialog.Title>Editar cliente</Dialog.Title>
63
+ </Dialog.Header>
64
+ <Dialog.Body>
65
+ <Field.Root>
66
+ <Field.Label>Razão social</Field.Label>
67
+ <Input />
68
+ </Field.Root>
69
+ </Dialog.Body>
70
+ <Dialog.Footer>
71
+ <Dialog.Close render={<Button />}>Salvar</Dialog.Close>
72
+ </Dialog.Footer>
73
+ </Dialog.Popup>
74
+ </Dialog.Viewport>
75
+ </Dialog.Portal>
76
+ </Dialog.Root>
77
+ );
78
+ ```
79
+
80
+ As partes repassam as props e a `ref` ao elemento que renderizam, e o `render` troca esse
81
+ elemento (`render={<Button />}`, `render={<a href="/" />}`), como no Base UI. O JSDoc de cada
82
+ componente, no editor, diz as partes, as variantes e o que cada uma faz.
83
+
84
+ ## Componentes
85
+
86
+ O caminho de import é `@lucasbernardosn/react-ui/<categoria>/<componente>`, com o componente em
87
+ kebab-case (`fields/number-input` para o `NumberInput`).
88
+
89
+ | Categoria | Componentes |
90
+ | --------- | ----------- |
91
+ | `buttons` | `Button`, `ClipboardButton`, `CloseButton`, `IconButton`, `ResponsiveButton` |
92
+ | `collections` | `AsyncSelect`, `Autocomplete`, `Select`, `TreeView` |
93
+ | `disclosure` | `Breadcrumb`, `Collapsible`, `Tabs` |
94
+ | `display` | `Avatar`, `Badge`, `Card`, `Clipboard`, `DataList`, `Icon`, `Status`, `Tag` |
95
+ | `feedback` | `Alert`, `EmptyState`, `Skeleton`, `Spinner`, `Toast` |
96
+ | `fields` | `Checkbox`, `CurrencyBrlInput`, `Field`, `Fieldset`, `Form`, `Input`, `NumberInput`, `PasswordInput`, `PatternInput`, `Switch`, `Textarea` |
97
+ | `layout` | `Box`, `Center`, `CenterAbsolute`, `Circle`, `Flex`, `Float`, `Grid`, `ScrollArea`, `Separator`, `Splitter`, `Stack` (com `HStack` e `VStack`), `Wrap` |
98
+ | `overlays` | `ActionBar`, `AlertDialog`, `Dialog`, `Drawer`, `Menu`, `Popover`, `Tooltip` (com `SimpleTooltip`) |
99
+ | `typography` | `Heading`, `Kbd`, `List`, `Mark`, `Paragraph`, `Pre`, `Text`, `Truncate` |
100
+ | `utilities` | `For`, `InteractionShield`, `Show` |
101
+
102
+ ## Toasts e alertas imperativos
103
+
104
+ O `Toast` e o `AlertDialog` abrem de qualquer lugar, inclusive de fora do React, desde que o
105
+ `Outlet` de cada um esteja montado uma vez perto da raiz, abaixo dos providers globais (tema,
106
+ tradução):
107
+
108
+ ```tsx
109
+ import { AlertDialog } from '@lucasbernardosn/react-ui/overlays/alert-dialog';
110
+ import { Toast } from '@lucasbernardosn/react-ui/feedback/toast';
111
+
112
+ <ThemeProvider>
113
+ <App />
114
+ <Toast.Outlet position="top-center" />
115
+ <AlertDialog.Outlet />
116
+ </ThemeProvider>;
117
+
118
+ Toast.add({ type: 'success', title: 'Nota 4821 emitida' });
119
+
120
+ const confirmed = await AlertDialog.confirm({
121
+ title: 'Excluir a nota 4821?',
122
+ description: 'A exclusão não pode ser desfeita.',
123
+ confirmButton: { children: 'Excluir', colorScheme: 'red' },
124
+ });
125
+ ```
126
+
127
+ ## Hooks, utilitários e tipos
128
+
129
+ - `@lucasbernardosn/react-ui/hooks`: `useIsBreakpoint` e `useResponsiveBreakpoint`, sobre os
130
+ breakpoints da lib (`BREAKPOINTS`, os do Tailwind e alguns menores) ou sobre uma config própria
131
+ passada em `breakpoints`; `usePointerType`, `useIsPointerPrimaryDevice` e
132
+ `useIsTouchPrimaryDevice`, pelo ponteiro principal do dispositivo.
133
+ - `@lucasbernardosn/react-ui/utils`: `mergeTwClassNames` e `mergeStateClassNames`, que juntam as
134
+ classes do app às da lib resolvendo os conflitos do Tailwind (o segundo aceita o `className`
135
+ como função do estado, como no Base UI), e `normalizeDataAttr`.
136
+ - `@lucasbernardosn/react-ui/types`: as camadas de cor aceitas pelo `colorScheme` dos componentes
137
+ (`ColorSchemeCore`, `ColorSchemeSemantic`, `ColorSchemePalette` e `ColorSchemeFull`).
138
+
139
+ ## Licença
140
+
141
+ MIT.
@@ -46,8 +46,8 @@ const buttonVariants = cva([
46
46
  "[--button-surface-bg:var(--color-gray-4)]",
47
47
  "[--button-surface-hover-bg:var(--color-gray-5)]",
48
48
  "[--button-surface-border:var(--color-gray-5)]",
49
- "[--button-outline-hover-bg:var(--color-gray-3)]",
50
- "[--button-outline-border:var(--color-gray-alpha-7)]",
49
+ "[--button-outline-hover-bg:var(--color-gray-4)]",
50
+ "[--button-outline-border:var(--color-gray-6)]",
51
51
  "[--button-ghost-hover-bg:var(--color-gray-4)]",
52
52
  "text-gray-12",
53
53
  "ring-gray-9"
@@ -326,11 +326,6 @@ const buttonVariants = cva([
326
326
  colorScheme: "gray",
327
327
  className: ["text-white", "dark:text-black"]
328
328
  },
329
- {
330
- variant: "outline",
331
- colorScheme: "gray",
332
- className: ["bg-white", "dark:bg-black"]
333
- },
334
329
  {
335
330
  variant: "solid",
336
331
  colorScheme: "yellow",
@@ -1 +1 @@
1
- {"version":3,"file":"button-variants.js","names":[],"sources":["../../../../src/components/buttons/button/button-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ColorSchemePalette } from '#types';\n\nexport type ButtonVariants = {\n /**\n * Cor do botão. Cada `variant` usa a escala da cor de um jeito (fundo sólido, fundo suave,\n * borda).\n *\n * @default 'gray'\n */\n colorScheme?: ColorSchemePalette;\n /**\n * Altura, padding, tamanho do texto e do ícone. `sm` = `h-9`, `md` = `h-10`, alinhado aos\n * outros controles de formulário.\n *\n * @default 'sm'\n */\n size?: '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Desenho do botão.\n *\n * @default 'solid'\n */\n variant?: 'solid' | 'subtle' | 'surface' | 'outline' | 'ghost' | 'plain';\n};\n\nexport const buttonDefaultVariants: Required<ButtonVariants> = {\n colorScheme: 'gray',\n size: 'sm',\n variant: 'solid',\n};\n\n/**\n * A cor só declara as variáveis `--button-*`, e a `variant` decide onde cada uma entra. Assim não\n * há um bloco por combinação de cor e `variant`.\n */\nexport const buttonVariants = cva(\n [\n 'relative',\n\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'align-middle',\n 'shrink-0',\n\n 'whitespace-nowrap',\n 'font-medium',\n 'leading-[1.2]',\n\n 'border',\n 'border-transparent',\n 'rounded-md',\n 'corner-squircle',\n\n 'select-none',\n 'cursor-pointer',\n 'appearance-none',\n 'isolate',\n\n // A transição só existe durante o hover: fora dele, a troca de tema muda as cores na hora,\n // em vez de animar todos os botões da tela. Só o fundo, que é o que o hover muda: com a\n // `opacity` junto, o esmaecido do disabled demoraria para chegar e o spinner do `loading`\n // apareceria antes dele; com o `transition-colors`, o anel de foco que surge durante o hover\n // sairia da cor do texto.\n 'hover:transition-[background-color]',\n 'hover:ease-in',\n 'hover:duration-150',\n\n 'focus-ring-outside',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-loading:data-disabled:cursor-default',\n\n '[&_svg]:shrink-0',\n ],\n {\n variants: {\n colorScheme: {\n gray: [\n '[--button-solid-bg:var(--color-black)]',\n 'dark:[--button-solid-bg:var(--color-white)]',\n\n '[--button-subtle-bg:var(--color-gray-4)]',\n '[--button-subtle-hover-bg:var(--color-gray-5)]',\n\n '[--button-surface-bg:var(--color-gray-4)]',\n '[--button-surface-hover-bg:var(--color-gray-5)]',\n '[--button-surface-border:var(--color-gray-5)]',\n\n '[--button-outline-hover-bg:var(--color-gray-3)]',\n '[--button-outline-border:var(--color-gray-alpha-7)]',\n\n '[--button-ghost-hover-bg:var(--color-gray-4)]',\n\n 'text-gray-12',\n 'ring-gray-9',\n ],\n brand: [\n '[--button-solid-bg:var(--color-brand-9)]',\n\n '[--button-subtle-bg:var(--color-brand-4)]',\n '[--button-subtle-hover-bg:var(--color-brand-5)]',\n\n '[--button-surface-bg:var(--color-brand-4)]',\n '[--button-surface-hover-bg:var(--color-brand-5)]',\n '[--button-surface-border:var(--color-brand-5)]',\n\n '[--button-outline-hover-bg:var(--color-brand-3)]',\n '[--button-outline-border:var(--color-brand-8)]',\n\n '[--button-ghost-hover-bg:var(--color-brand-4)]',\n\n 'text-brand-11',\n 'ring-brand-9',\n ],\n red: [\n '[--button-solid-bg:var(--color-red-9)]',\n\n '[--button-subtle-bg:var(--color-red-4)]',\n '[--button-subtle-hover-bg:var(--color-red-5)]',\n\n '[--button-surface-bg:var(--color-red-4)]',\n '[--button-surface-hover-bg:var(--color-red-5)]',\n '[--button-surface-border:var(--color-red-5)]',\n\n '[--button-outline-hover-bg:var(--color-red-3)]',\n '[--button-outline-border:var(--color-red-8)]',\n\n '[--button-ghost-hover-bg:var(--color-red-4)]',\n\n 'text-red-11',\n 'ring-red-9',\n ],\n green: [\n '[--button-solid-bg:var(--color-green-9)]',\n\n '[--button-subtle-bg:var(--color-green-4)]',\n '[--button-subtle-hover-bg:var(--color-green-5)]',\n\n '[--button-surface-bg:var(--color-green-4)]',\n '[--button-surface-hover-bg:var(--color-green-5)]',\n '[--button-surface-border:var(--color-green-5)]',\n\n '[--button-outline-hover-bg:var(--color-green-3)]',\n '[--button-outline-border:var(--color-green-8)]',\n\n '[--button-ghost-hover-bg:var(--color-green-4)]',\n\n 'text-green-11',\n 'ring-green-9',\n ],\n blue: [\n '[--button-solid-bg:var(--color-blue-9)]',\n\n '[--button-subtle-bg:var(--color-blue-4)]',\n '[--button-subtle-hover-bg:var(--color-blue-5)]',\n\n '[--button-surface-bg:var(--color-blue-4)]',\n '[--button-surface-hover-bg:var(--color-blue-5)]',\n '[--button-surface-border:var(--color-blue-5)]',\n\n '[--button-outline-hover-bg:var(--color-blue-3)]',\n '[--button-outline-border:var(--color-blue-8)]',\n\n '[--button-ghost-hover-bg:var(--color-blue-4)]',\n\n 'text-blue-11',\n 'ring-blue-9',\n ],\n teal: [\n '[--button-solid-bg:var(--color-teal-9)]',\n\n '[--button-subtle-bg:var(--color-teal-4)]',\n '[--button-subtle-hover-bg:var(--color-teal-5)]',\n\n '[--button-surface-bg:var(--color-teal-4)]',\n '[--button-surface-hover-bg:var(--color-teal-5)]',\n '[--button-surface-border:var(--color-teal-5)]',\n\n '[--button-outline-hover-bg:var(--color-teal-3)]',\n '[--button-outline-border:var(--color-teal-8)]',\n\n '[--button-ghost-hover-bg:var(--color-teal-4)]',\n\n 'text-teal-11',\n 'ring-teal-9',\n ],\n pink: [\n '[--button-solid-bg:var(--color-pink-9)]',\n\n '[--button-subtle-bg:var(--color-pink-4)]',\n '[--button-subtle-hover-bg:var(--color-pink-5)]',\n\n '[--button-surface-bg:var(--color-pink-4)]',\n '[--button-surface-hover-bg:var(--color-pink-5)]',\n '[--button-surface-border:var(--color-pink-5)]',\n\n '[--button-outline-hover-bg:var(--color-pink-3)]',\n '[--button-outline-border:var(--color-pink-8)]',\n\n '[--button-ghost-hover-bg:var(--color-pink-4)]',\n\n 'text-pink-11',\n 'ring-pink-9',\n ],\n purple: [\n '[--button-solid-bg:var(--color-purple-9)]',\n\n '[--button-subtle-bg:var(--color-purple-4)]',\n '[--button-subtle-hover-bg:var(--color-purple-5)]',\n\n '[--button-surface-bg:var(--color-purple-4)]',\n '[--button-surface-hover-bg:var(--color-purple-5)]',\n '[--button-surface-border:var(--color-purple-5)]',\n\n '[--button-outline-hover-bg:var(--color-purple-3)]',\n '[--button-outline-border:var(--color-purple-8)]',\n\n '[--button-ghost-hover-bg:var(--color-purple-4)]',\n\n 'text-purple-11',\n 'ring-purple-9',\n ],\n cyan: [\n '[--button-solid-bg:var(--color-cyan-9)]',\n\n '[--button-subtle-bg:var(--color-cyan-4)]',\n '[--button-subtle-hover-bg:var(--color-cyan-5)]',\n\n '[--button-surface-bg:var(--color-cyan-4)]',\n '[--button-surface-hover-bg:var(--color-cyan-5)]',\n '[--button-surface-border:var(--color-cyan-5)]',\n\n '[--button-outline-hover-bg:var(--color-cyan-3)]',\n '[--button-outline-border:var(--color-cyan-8)]',\n\n '[--button-ghost-hover-bg:var(--color-cyan-4)]',\n\n 'text-cyan-11',\n 'ring-cyan-9',\n ],\n orange: [\n '[--button-solid-bg:var(--color-orange-9)]',\n\n '[--button-subtle-bg:var(--color-orange-4)]',\n '[--button-subtle-hover-bg:var(--color-orange-5)]',\n\n '[--button-surface-bg:var(--color-orange-4)]',\n '[--button-surface-hover-bg:var(--color-orange-5)]',\n '[--button-surface-border:var(--color-orange-5)]',\n\n '[--button-outline-hover-bg:var(--color-orange-3)]',\n '[--button-outline-border:var(--color-orange-8)]',\n\n '[--button-ghost-hover-bg:var(--color-orange-4)]',\n\n 'text-orange-11',\n 'ring-orange-9',\n ],\n brown: [\n '[--button-solid-bg:var(--color-brown-9)]',\n\n '[--button-subtle-bg:var(--color-brown-4)]',\n '[--button-subtle-hover-bg:var(--color-brown-5)]',\n\n '[--button-surface-bg:var(--color-brown-4)]',\n '[--button-surface-hover-bg:var(--color-brown-5)]',\n '[--button-surface-border:var(--color-brown-5)]',\n\n '[--button-outline-hover-bg:var(--color-brown-3)]',\n '[--button-outline-border:var(--color-brown-8)]',\n\n '[--button-ghost-hover-bg:var(--color-brown-4)]',\n\n 'text-brown-11',\n 'ring-brown-9',\n ],\n yellow: [\n '[--button-solid-bg:var(--color-yellow-9)]',\n\n '[--button-subtle-bg:var(--color-yellow-4)]',\n '[--button-subtle-hover-bg:var(--color-yellow-5)]',\n\n '[--button-surface-bg:var(--color-yellow-4)]',\n '[--button-surface-hover-bg:var(--color-yellow-5)]',\n '[--button-surface-border:var(--color-yellow-5)]',\n\n '[--button-outline-hover-bg:var(--color-yellow-3)]',\n '[--button-outline-border:var(--color-yellow-8)]',\n\n '[--button-ghost-hover-bg:var(--color-yellow-4)]',\n\n 'text-yellow-11',\n 'ring-yellow-9',\n ],\n amber: [\n '[--button-solid-bg:var(--color-amber-9)]',\n\n '[--button-subtle-bg:var(--color-amber-4)]',\n '[--button-subtle-hover-bg:var(--color-amber-5)]',\n\n '[--button-surface-bg:var(--color-amber-4)]',\n '[--button-surface-hover-bg:var(--color-amber-5)]',\n '[--button-surface-border:var(--color-amber-5)]',\n\n '[--button-outline-hover-bg:var(--color-amber-3)]',\n '[--button-outline-border:var(--color-amber-8)]',\n\n '[--button-ghost-hover-bg:var(--color-amber-4)]',\n\n 'text-amber-11',\n 'ring-amber-9',\n ],\n },\n variant: {\n solid: [\n 'bg-(--button-solid-bg)',\n 'hover:bg-(--button-solid-bg)/90',\n 'expanded:bg-(--button-solid-bg)/90',\n\n 'data-disabled:hover:bg-(--button-solid-bg)',\n 'data-disabled:expanded:bg-(--button-solid-bg)',\n\n 'border-transparent',\n\n 'text-white',\n ],\n subtle: [\n 'bg-(--button-subtle-bg)',\n 'hover:bg-(--button-subtle-hover-bg)',\n 'expanded:bg-(--button-subtle-hover-bg)',\n\n 'border-transparent',\n\n 'data-disabled:hover:bg-(--button-subtle-bg)',\n 'data-disabled:expanded:bg-(--button-subtle-bg)',\n ],\n surface: [\n 'bg-(--button-surface-bg)',\n 'hover:bg-(--button-surface-hover-bg)',\n 'expanded:bg-(--button-surface-hover-bg)',\n\n 'border',\n 'border-(--button-surface-border)',\n\n 'data-disabled:hover:bg-(--button-surface-bg)',\n 'data-disabled:expanded:bg-(--button-surface-bg)',\n ],\n outline: [\n 'bg-transparent',\n 'hover:bg-(--button-outline-hover-bg)',\n 'expanded:bg-(--button-outline-hover-bg)',\n\n 'border',\n 'border-(--button-outline-border)',\n\n 'data-disabled:hover:bg-transparent',\n 'data-disabled:expanded:bg-transparent',\n ],\n ghost: [\n 'hover:bg-(--button-ghost-hover-bg)',\n 'expanded:bg-(--button-ghost-hover-bg)',\n\n 'data-disabled:hover:bg-transparent',\n 'data-disabled:expanded:bg-transparent',\n ],\n plain: [],\n },\n size: {\n '3xs': [\n 'h-5',\n 'min-w-5',\n\n 'text-2xs',\n\n 'px-1.5',\n 'gap-1',\n\n '[&_svg]:size-2.5',\n ],\n '2xs': [\n 'h-6',\n 'min-w-6',\n\n 'text-xs',\n\n 'px-2',\n 'gap-1',\n\n '[&_svg]:size-3.5',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'text-xs',\n\n 'px-2.5',\n 'gap-1',\n\n '[&_svg]:size-4',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'text-sm',\n\n 'px-3.5',\n 'gap-2',\n\n '[&_svg]:size-4',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'text-sm',\n\n 'px-4',\n 'gap-2',\n\n '[&_svg]:size-5',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'text-base',\n\n 'px-5',\n 'gap-3',\n\n '[&_svg]:size-5',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'text-base',\n\n 'px-6',\n 'gap-3',\n\n '[&_svg]:size-5',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'text-lg',\n\n 'px-7',\n 'gap-3',\n\n '[&_svg]:size-6',\n ],\n },\n },\n compoundVariants: [\n {\n variant: 'solid',\n colorScheme: 'gray',\n className: ['text-white', 'dark:text-black'],\n },\n {\n variant: 'outline',\n colorScheme: 'gray',\n className: ['bg-white', 'dark:bg-black'],\n },\n {\n variant: 'solid',\n colorScheme: 'yellow',\n className: ['text-black'],\n },\n {\n variant: 'solid',\n colorScheme: 'amber',\n className: ['text-black'],\n },\n ],\n defaultVariants: {\n colorScheme: buttonDefaultVariants.colorScheme,\n size: buttonDefaultVariants.size,\n variant: buttonDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AA0BA,MAAa,wBAAkD;CAC7D,aAAa;CACb,MAAM;CACN,SAAS;AACX;;;;;AAMA,MAAa,iBAAiB,IAC5B;CACE;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CAOA;CACA;CACA;CAEA;CAEA;CACA;CAEA;CAEA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,MAAM;IACJ;IACA;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,KAAK;IACH;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;EACF;EACA,SAAS;GACP,OAAO;IACL;IACA;IACA;IAEA;IACA;IAEA;IAEA;GACF;GACA,QAAQ;IACN;IACA;IACA;IAEA;IAEA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IAEA;IACA;IAEA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IAEA;IACA;IAEA;IACA;GACF;GACA,OAAO;IACL;IACA;IAEA;IACA;GACF;GACA,OAAO,CAAC;EACV;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;EACF;CACF;CACA,kBAAkB;EAChB;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,cAAc,iBAAiB;EAC7C;EACA;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,YAAY,eAAe;EACzC;EACA;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,YAAY;EAC1B;EACA;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,YAAY;EAC1B;CACF;CACA,iBAAiB;EACf,aAAa,sBAAsB;EACnC,MAAM,sBAAsB;EAC5B,SAAS,sBAAsB;CACjC;AACF,CACF"}
1
+ {"version":3,"file":"button-variants.js","names":[],"sources":["../../../../src/components/buttons/button/button-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ColorSchemePalette } from '#types';\n\nexport type ButtonVariants = {\n /**\n * Cor do botão. Cada `variant` usa a escala da cor de um jeito (fundo sólido, fundo suave,\n * borda).\n *\n * @default 'gray'\n */\n colorScheme?: ColorSchemePalette;\n /**\n * Altura, padding, tamanho do texto e do ícone. `sm` = `h-9`, `md` = `h-10`, alinhado aos\n * outros controles de formulário.\n *\n * @default 'sm'\n */\n size?: '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Desenho do botão.\n *\n * @default 'solid'\n */\n variant?: 'solid' | 'subtle' | 'surface' | 'outline' | 'ghost' | 'plain';\n};\n\nexport const buttonDefaultVariants: Required<ButtonVariants> = {\n colorScheme: 'gray',\n size: 'sm',\n variant: 'solid',\n};\n\n/**\n * A cor só declara as variáveis `--button-*`, e a `variant` decide onde cada uma entra. Assim não\n * há um bloco por combinação de cor e `variant`.\n */\nexport const buttonVariants = cva(\n [\n 'relative',\n\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'align-middle',\n 'shrink-0',\n\n 'whitespace-nowrap',\n 'font-medium',\n 'leading-[1.2]',\n\n 'border',\n 'border-transparent',\n 'rounded-md',\n 'corner-squircle',\n\n 'select-none',\n 'cursor-pointer',\n 'appearance-none',\n 'isolate',\n\n // A transição só existe durante o hover: fora dele, a troca de tema muda as cores na hora,\n // em vez de animar todos os botões da tela. Só o fundo, que é o que o hover muda: com a\n // `opacity` junto, o esmaecido do disabled demoraria para chegar e o spinner do `loading`\n // apareceria antes dele; com o `transition-colors`, o anel de foco que surge durante o hover\n // sairia da cor do texto.\n 'hover:transition-[background-color]',\n 'hover:ease-in',\n 'hover:duration-150',\n\n 'focus-ring-outside',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-loading:data-disabled:cursor-default',\n\n '[&_svg]:shrink-0',\n ],\n {\n variants: {\n colorScheme: {\n gray: [\n '[--button-solid-bg:var(--color-black)]',\n 'dark:[--button-solid-bg:var(--color-white)]',\n\n '[--button-subtle-bg:var(--color-gray-4)]',\n '[--button-subtle-hover-bg:var(--color-gray-5)]',\n\n '[--button-surface-bg:var(--color-gray-4)]',\n '[--button-surface-hover-bg:var(--color-gray-5)]',\n '[--button-surface-border:var(--color-gray-5)]',\n\n '[--button-outline-hover-bg:var(--color-gray-4)]',\n '[--button-outline-border:var(--color-gray-6)]',\n\n '[--button-ghost-hover-bg:var(--color-gray-4)]',\n\n 'text-gray-12',\n 'ring-gray-9',\n ],\n brand: [\n '[--button-solid-bg:var(--color-brand-9)]',\n\n '[--button-subtle-bg:var(--color-brand-4)]',\n '[--button-subtle-hover-bg:var(--color-brand-5)]',\n\n '[--button-surface-bg:var(--color-brand-4)]',\n '[--button-surface-hover-bg:var(--color-brand-5)]',\n '[--button-surface-border:var(--color-brand-5)]',\n\n '[--button-outline-hover-bg:var(--color-brand-3)]',\n '[--button-outline-border:var(--color-brand-8)]',\n\n '[--button-ghost-hover-bg:var(--color-brand-4)]',\n\n 'text-brand-11',\n 'ring-brand-9',\n ],\n red: [\n '[--button-solid-bg:var(--color-red-9)]',\n\n '[--button-subtle-bg:var(--color-red-4)]',\n '[--button-subtle-hover-bg:var(--color-red-5)]',\n\n '[--button-surface-bg:var(--color-red-4)]',\n '[--button-surface-hover-bg:var(--color-red-5)]',\n '[--button-surface-border:var(--color-red-5)]',\n\n '[--button-outline-hover-bg:var(--color-red-3)]',\n '[--button-outline-border:var(--color-red-8)]',\n\n '[--button-ghost-hover-bg:var(--color-red-4)]',\n\n 'text-red-11',\n 'ring-red-9',\n ],\n green: [\n '[--button-solid-bg:var(--color-green-9)]',\n\n '[--button-subtle-bg:var(--color-green-4)]',\n '[--button-subtle-hover-bg:var(--color-green-5)]',\n\n '[--button-surface-bg:var(--color-green-4)]',\n '[--button-surface-hover-bg:var(--color-green-5)]',\n '[--button-surface-border:var(--color-green-5)]',\n\n '[--button-outline-hover-bg:var(--color-green-3)]',\n '[--button-outline-border:var(--color-green-8)]',\n\n '[--button-ghost-hover-bg:var(--color-green-4)]',\n\n 'text-green-11',\n 'ring-green-9',\n ],\n blue: [\n '[--button-solid-bg:var(--color-blue-9)]',\n\n '[--button-subtle-bg:var(--color-blue-4)]',\n '[--button-subtle-hover-bg:var(--color-blue-5)]',\n\n '[--button-surface-bg:var(--color-blue-4)]',\n '[--button-surface-hover-bg:var(--color-blue-5)]',\n '[--button-surface-border:var(--color-blue-5)]',\n\n '[--button-outline-hover-bg:var(--color-blue-3)]',\n '[--button-outline-border:var(--color-blue-8)]',\n\n '[--button-ghost-hover-bg:var(--color-blue-4)]',\n\n 'text-blue-11',\n 'ring-blue-9',\n ],\n teal: [\n '[--button-solid-bg:var(--color-teal-9)]',\n\n '[--button-subtle-bg:var(--color-teal-4)]',\n '[--button-subtle-hover-bg:var(--color-teal-5)]',\n\n '[--button-surface-bg:var(--color-teal-4)]',\n '[--button-surface-hover-bg:var(--color-teal-5)]',\n '[--button-surface-border:var(--color-teal-5)]',\n\n '[--button-outline-hover-bg:var(--color-teal-3)]',\n '[--button-outline-border:var(--color-teal-8)]',\n\n '[--button-ghost-hover-bg:var(--color-teal-4)]',\n\n 'text-teal-11',\n 'ring-teal-9',\n ],\n pink: [\n '[--button-solid-bg:var(--color-pink-9)]',\n\n '[--button-subtle-bg:var(--color-pink-4)]',\n '[--button-subtle-hover-bg:var(--color-pink-5)]',\n\n '[--button-surface-bg:var(--color-pink-4)]',\n '[--button-surface-hover-bg:var(--color-pink-5)]',\n '[--button-surface-border:var(--color-pink-5)]',\n\n '[--button-outline-hover-bg:var(--color-pink-3)]',\n '[--button-outline-border:var(--color-pink-8)]',\n\n '[--button-ghost-hover-bg:var(--color-pink-4)]',\n\n 'text-pink-11',\n 'ring-pink-9',\n ],\n purple: [\n '[--button-solid-bg:var(--color-purple-9)]',\n\n '[--button-subtle-bg:var(--color-purple-4)]',\n '[--button-subtle-hover-bg:var(--color-purple-5)]',\n\n '[--button-surface-bg:var(--color-purple-4)]',\n '[--button-surface-hover-bg:var(--color-purple-5)]',\n '[--button-surface-border:var(--color-purple-5)]',\n\n '[--button-outline-hover-bg:var(--color-purple-3)]',\n '[--button-outline-border:var(--color-purple-8)]',\n\n '[--button-ghost-hover-bg:var(--color-purple-4)]',\n\n 'text-purple-11',\n 'ring-purple-9',\n ],\n cyan: [\n '[--button-solid-bg:var(--color-cyan-9)]',\n\n '[--button-subtle-bg:var(--color-cyan-4)]',\n '[--button-subtle-hover-bg:var(--color-cyan-5)]',\n\n '[--button-surface-bg:var(--color-cyan-4)]',\n '[--button-surface-hover-bg:var(--color-cyan-5)]',\n '[--button-surface-border:var(--color-cyan-5)]',\n\n '[--button-outline-hover-bg:var(--color-cyan-3)]',\n '[--button-outline-border:var(--color-cyan-8)]',\n\n '[--button-ghost-hover-bg:var(--color-cyan-4)]',\n\n 'text-cyan-11',\n 'ring-cyan-9',\n ],\n orange: [\n '[--button-solid-bg:var(--color-orange-9)]',\n\n '[--button-subtle-bg:var(--color-orange-4)]',\n '[--button-subtle-hover-bg:var(--color-orange-5)]',\n\n '[--button-surface-bg:var(--color-orange-4)]',\n '[--button-surface-hover-bg:var(--color-orange-5)]',\n '[--button-surface-border:var(--color-orange-5)]',\n\n '[--button-outline-hover-bg:var(--color-orange-3)]',\n '[--button-outline-border:var(--color-orange-8)]',\n\n '[--button-ghost-hover-bg:var(--color-orange-4)]',\n\n 'text-orange-11',\n 'ring-orange-9',\n ],\n brown: [\n '[--button-solid-bg:var(--color-brown-9)]',\n\n '[--button-subtle-bg:var(--color-brown-4)]',\n '[--button-subtle-hover-bg:var(--color-brown-5)]',\n\n '[--button-surface-bg:var(--color-brown-4)]',\n '[--button-surface-hover-bg:var(--color-brown-5)]',\n '[--button-surface-border:var(--color-brown-5)]',\n\n '[--button-outline-hover-bg:var(--color-brown-3)]',\n '[--button-outline-border:var(--color-brown-8)]',\n\n '[--button-ghost-hover-bg:var(--color-brown-4)]',\n\n 'text-brown-11',\n 'ring-brown-9',\n ],\n yellow: [\n '[--button-solid-bg:var(--color-yellow-9)]',\n\n '[--button-subtle-bg:var(--color-yellow-4)]',\n '[--button-subtle-hover-bg:var(--color-yellow-5)]',\n\n '[--button-surface-bg:var(--color-yellow-4)]',\n '[--button-surface-hover-bg:var(--color-yellow-5)]',\n '[--button-surface-border:var(--color-yellow-5)]',\n\n '[--button-outline-hover-bg:var(--color-yellow-3)]',\n '[--button-outline-border:var(--color-yellow-8)]',\n\n '[--button-ghost-hover-bg:var(--color-yellow-4)]',\n\n 'text-yellow-11',\n 'ring-yellow-9',\n ],\n amber: [\n '[--button-solid-bg:var(--color-amber-9)]',\n\n '[--button-subtle-bg:var(--color-amber-4)]',\n '[--button-subtle-hover-bg:var(--color-amber-5)]',\n\n '[--button-surface-bg:var(--color-amber-4)]',\n '[--button-surface-hover-bg:var(--color-amber-5)]',\n '[--button-surface-border:var(--color-amber-5)]',\n\n '[--button-outline-hover-bg:var(--color-amber-3)]',\n '[--button-outline-border:var(--color-amber-8)]',\n\n '[--button-ghost-hover-bg:var(--color-amber-4)]',\n\n 'text-amber-11',\n 'ring-amber-9',\n ],\n },\n variant: {\n solid: [\n 'bg-(--button-solid-bg)',\n 'hover:bg-(--button-solid-bg)/90',\n 'expanded:bg-(--button-solid-bg)/90',\n\n 'data-disabled:hover:bg-(--button-solid-bg)',\n 'data-disabled:expanded:bg-(--button-solid-bg)',\n\n 'border-transparent',\n\n 'text-white',\n ],\n subtle: [\n 'bg-(--button-subtle-bg)',\n 'hover:bg-(--button-subtle-hover-bg)',\n 'expanded:bg-(--button-subtle-hover-bg)',\n\n 'border-transparent',\n\n 'data-disabled:hover:bg-(--button-subtle-bg)',\n 'data-disabled:expanded:bg-(--button-subtle-bg)',\n ],\n surface: [\n 'bg-(--button-surface-bg)',\n 'hover:bg-(--button-surface-hover-bg)',\n 'expanded:bg-(--button-surface-hover-bg)',\n\n 'border',\n 'border-(--button-surface-border)',\n\n 'data-disabled:hover:bg-(--button-surface-bg)',\n 'data-disabled:expanded:bg-(--button-surface-bg)',\n ],\n outline: [\n 'bg-transparent',\n 'hover:bg-(--button-outline-hover-bg)',\n 'expanded:bg-(--button-outline-hover-bg)',\n\n 'border',\n 'border-(--button-outline-border)',\n\n 'data-disabled:hover:bg-transparent',\n 'data-disabled:expanded:bg-transparent',\n ],\n ghost: [\n 'hover:bg-(--button-ghost-hover-bg)',\n 'expanded:bg-(--button-ghost-hover-bg)',\n\n 'data-disabled:hover:bg-transparent',\n 'data-disabled:expanded:bg-transparent',\n ],\n plain: [],\n },\n size: {\n '3xs': [\n 'h-5',\n 'min-w-5',\n\n 'text-2xs',\n\n 'px-1.5',\n 'gap-1',\n\n '[&_svg]:size-2.5',\n ],\n '2xs': [\n 'h-6',\n 'min-w-6',\n\n 'text-xs',\n\n 'px-2',\n 'gap-1',\n\n '[&_svg]:size-3.5',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'text-xs',\n\n 'px-2.5',\n 'gap-1',\n\n '[&_svg]:size-4',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'text-sm',\n\n 'px-3.5',\n 'gap-2',\n\n '[&_svg]:size-4',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'text-sm',\n\n 'px-4',\n 'gap-2',\n\n '[&_svg]:size-5',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'text-base',\n\n 'px-5',\n 'gap-3',\n\n '[&_svg]:size-5',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'text-base',\n\n 'px-6',\n 'gap-3',\n\n '[&_svg]:size-5',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'text-lg',\n\n 'px-7',\n 'gap-3',\n\n '[&_svg]:size-6',\n ],\n },\n },\n compoundVariants: [\n {\n variant: 'solid',\n colorScheme: 'gray',\n className: ['text-white', 'dark:text-black'],\n },\n // {\n // variant: 'outline',\n // colorScheme: 'gray',\n // className: ['bg-white', 'dark:bg-black'],\n // },\n {\n variant: 'solid',\n colorScheme: 'yellow',\n className: ['text-black'],\n },\n {\n variant: 'solid',\n colorScheme: 'amber',\n className: ['text-black'],\n },\n ],\n defaultVariants: {\n colorScheme: buttonDefaultVariants.colorScheme,\n size: buttonDefaultVariants.size,\n variant: buttonDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AA0BA,MAAa,wBAAkD;CAC7D,aAAa;CACb,MAAM;CACN,SAAS;AACX;;;;;AAMA,MAAa,iBAAiB,IAC5B;CACE;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CAOA;CACA;CACA;CAEA;CAEA;CACA;CAEA;CAEA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,MAAM;IACJ;IACA;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,KAAK;IACH;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,MAAM;IACJ;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,QAAQ;IACN;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;GACA,OAAO;IACL;IAEA;IACA;IAEA;IACA;IACA;IAEA;IACA;IAEA;IAEA;IACA;GACF;EACF;EACA,SAAS;GACP,OAAO;IACL;IACA;IACA;IAEA;IACA;IAEA;IAEA;GACF;GACA,QAAQ;IACN;IACA;IACA;IAEA;IAEA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IAEA;IACA;IAEA;IACA;GACF;GACA,SAAS;IACP;IACA;IACA;IAEA;IACA;IAEA;IACA;GACF;GACA,OAAO;IACL;IACA;IAEA;IACA;GACF;GACA,OAAO,CAAC;EACV;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;IACA;IAEA;GACF;EACF;CACF;CACA,kBAAkB;EAChB;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,cAAc,iBAAiB;EAC7C;EAMA;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,YAAY;EAC1B;EACA;GACE,SAAS;GACT,aAAa;GACb,WAAW,CAAC,YAAY;EAC1B;CACF;CACA,iBAAiB;EACf,aAAa,sBAAsB;EACnC,MAAM,sBAAsB;EAC5B,SAAS,sBAAsB;CACjC;AACF,CACF"}
@@ -2,7 +2,7 @@ import { ButtonVariants } from "./button-variants.js";
2
2
  import { IconProps } from "../../display/icon/icon.js";
3
3
  import "../../display/icon/index.js";
4
4
  import { Button as Button$1 } from "@base-ui/react/button";
5
- import { MergeOverride } from "@lucasbernardosn/utils";
5
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
6
6
  //#region src/components/buttons/button/button.d.ts
7
7
  export type ButtonProps = MergeOverride<Button$1.Props, ButtonVariants & {
8
8
  /**
@@ -5,7 +5,7 @@ import { buttonVariants } from "./button-variants.js";
5
5
  import { Icon } from "../../display/icon/icon.js";
6
6
  import { Spinner } from "../../feedback/spinner/spinner.js";
7
7
  import { Button as Button$1 } from "@base-ui/react/button";
8
- import { createSplitProps, mergeBooleansOr } from "@lucasbernardosn/utils";
8
+ import { createSplitProps, mergeBooleansOr } from "@lucasbernardosn/ts-utils";
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
10
  //#region src/components/buttons/button/button.tsx
11
11
  const splitVariantProps = createSplitProps();
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["BaseButton"],"sources":["../../../../src/components/buttons/button/button.tsx"],"sourcesContent":["import { Button as BaseButton } from '@base-ui/react/button';\nimport {\n createSplitProps,\n type MergeOverride,\n mergeBooleansOr,\n} from '@lucasbernardosn/utils';\nimport { Icon, type IconProps } from '#components/display/icon';\nimport { Spinner } from '#components/feedback/spinner';\nimport {\n mergeStateClassNames,\n mergeTwClassNames,\n normalizeDataAttr,\n} from '#utils';\nimport { type ButtonVariants, buttonVariants } from './button-variants';\n\nexport type ButtonProps = MergeOverride<\n BaseButton.Props,\n ButtonVariants & {\n /**\n * Ícone ao lado do texto, no tamanho definido pelo `size`.\n */\n icon?: IconProps['render'];\n /**\n * Lado do texto em que o `icon` aparece.\n *\n * @default 'left'\n */\n iconPosition?: 'left' | 'right';\n /**\n * Mostra um spinner no lugar do conteúdo e desabilita o botão. O conteúdo continua no\n * layout, invisível, para a largura do botão não mudar.\n *\n * @default false\n */\n loading?: boolean;\n }\n>;\n\nexport type ButtonState = BaseButton.State;\n\nconst splitVariantProps = createSplitProps<ButtonVariants>();\n\n/**\n * Botão da lib. Desabilitado (ou em `loading`), continua focável, para o leitor de tela e a\n * navegação por teclado não perderem o botão de vista.\n *\n * O `type` padrão é `button`: para enviar um formulário, passe `type=\"submit\"`. Para navegação,\n * use um link, não o `render` com `<a>`: o Button impõe a semântica de botão e o link perderia\n * o \"abrir em nova aba\" e a navegação do router.\n *\n * @example\n * ```tsx\n * <Button\n * colorScheme=\"brand\"\n * icon={<PlusIcon />}\n * >\n * Adicionar\n * </Button>\n * ```\n */\nexport const Button = (props: ButtonProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n 'variant',\n ]);\n\n const {\n className,\n loading,\n children,\n disabled,\n icon,\n iconPosition = 'left',\n ...rest\n } = elementProps;\n\n return (\n <BaseButton\n data-component=\"Button\"\n type=\"button\"\n disabled={normalizeDataAttr(mergeBooleansOr(disabled, loading))}\n data-loading={normalizeDataAttr(loading)}\n aria-busy={normalizeDataAttr(loading)}\n focusableWhenDisabled={true}\n className={mergeStateClassNames(buttonVariants(variantProps), className)}\n {...rest}\n >\n {loading ? (\n <>\n <Spinner\n aria-hidden={true}\n className={mergeTwClassNames([\n 'absolute',\n\n 'border-r-current',\n 'border-b-current',\n ])}\n />\n\n <span\n className={mergeTwClassNames([\n 'inline-flex',\n 'items-center',\n // Herda o `gap` do botão, que precisa ser o pai direto no DOM: um\n // wrapper no meio (mesmo com `display: contents`) zeraria o espaço\n // entre ícone e texto, e o botão encolheria no loading.\n 'gap-[inherit]',\n\n // Some da tela, mas continua no layout (a largura não muda) e na árvore de\n // acessibilidade: o texto segue sendo o nome do botão. Com `invisible`, o\n // leitor de tela ouviria um botão sem nome.\n 'opacity-0',\n ])}\n >\n <ButtonContent\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n </span>\n </>\n ) : (\n <ButtonContent\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n )}\n </BaseButton>\n );\n};\n\nButton.displayName = 'Button';\n\nconst ButtonContent = (\n props: Pick<ButtonProps, 'children' | 'icon' | 'iconPosition'>,\n) => {\n const { children, icon, iconPosition = 'left' } = props;\n\n return (\n <>\n {icon && iconPosition === 'left' && <Icon render={icon} />}\n\n {children}\n\n {icon && iconPosition === 'right' && <Icon render={icon} />}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAwCA,MAAM,oBAAoB,iBAAiC;;;;;;;;;;;;;;;;;;;AAoB3D,MAAa,UAAU,UAAuB;CAC5C,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO;EAC5D;EACA;EACA;CACF,CAAC;CAED,MAAM,EACJ,WACA,SACA,UACA,UACA,MACA,eAAe,QACf,GAAG,SACD;CAEJ,OACE,oBAACA,UAAD;EACE,kBAAe;EACf,MAAK;EACL,UAAU,kBAAkB,gBAAgB,UAAU,OAAO,CAAC;EAC9D,gBAAc,kBAAkB,OAAO;EACvC,aAAW,kBAAkB,OAAO;EACpC,uBAAuB;EACvB,WAAW,qBAAqB,eAAe,YAAY,GAAG,SAAS;EACvE,GAAI;EAEH,UAAA,UACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,SAAD;GACE,eAAa;GACb,WAAW,kBAAkB;IAC3B;IAEA;IACA;GACF,CAAC;EACF,CAAA,GAED,oBAAC,QAAD;GACE,WAAW,kBAAkB;IAC3B;IACA;IAIA;IAKA;GACF,CAAC;GAED,UAAA,oBAAC,eAAD;IACQ;IACQ;IAEb;GACY,CAAA;EACX,CAAA,CACN,EAAA,CAAA,IAEF,oBAAC,eAAD;GACQ;GACQ;GAEb;EACY,CAAA;CAEP,CAAA;AAEhB;AAEA,OAAO,cAAc;AAErB,MAAM,iBACJ,UACG;CACH,MAAM,EAAE,UAAU,MAAM,eAAe,WAAW;CAElD,OACE,qBAAA,UAAA,EAAA,UAAA;EACG,QAAQ,iBAAiB,UAAU,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;EAExD;EAEA,QAAQ,iBAAiB,WAAW,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;CAC1D,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"button.js","names":["BaseButton"],"sources":["../../../../src/components/buttons/button/button.tsx"],"sourcesContent":["import { Button as BaseButton } from '@base-ui/react/button';\nimport {\n createSplitProps,\n type MergeOverride,\n mergeBooleansOr,\n} from '@lucasbernardosn/ts-utils';\nimport { Icon, type IconProps } from '#components/display/icon';\nimport { Spinner } from '#components/feedback/spinner';\nimport {\n mergeStateClassNames,\n mergeTwClassNames,\n normalizeDataAttr,\n} from '#utils';\nimport { type ButtonVariants, buttonVariants } from './button-variants';\n\nexport type ButtonProps = MergeOverride<\n BaseButton.Props,\n ButtonVariants & {\n /**\n * Ícone ao lado do texto, no tamanho definido pelo `size`.\n */\n icon?: IconProps['render'];\n /**\n * Lado do texto em que o `icon` aparece.\n *\n * @default 'left'\n */\n iconPosition?: 'left' | 'right';\n /**\n * Mostra um spinner no lugar do conteúdo e desabilita o botão. O conteúdo continua no\n * layout, invisível, para a largura do botão não mudar.\n *\n * @default false\n */\n loading?: boolean;\n }\n>;\n\nexport type ButtonState = BaseButton.State;\n\nconst splitVariantProps = createSplitProps<ButtonVariants>();\n\n/**\n * Botão da lib. Desabilitado (ou em `loading`), continua focável, para o leitor de tela e a\n * navegação por teclado não perderem o botão de vista.\n *\n * O `type` padrão é `button`: para enviar um formulário, passe `type=\"submit\"`. Para navegação,\n * use um link, não o `render` com `<a>`: o Button impõe a semântica de botão e o link perderia\n * o \"abrir em nova aba\" e a navegação do router.\n *\n * @example\n * ```tsx\n * <Button\n * colorScheme=\"brand\"\n * icon={<PlusIcon />}\n * >\n * Adicionar\n * </Button>\n * ```\n */\nexport const Button = (props: ButtonProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n 'variant',\n ]);\n\n const {\n className,\n loading,\n children,\n disabled,\n icon,\n iconPosition = 'left',\n ...rest\n } = elementProps;\n\n return (\n <BaseButton\n data-component=\"Button\"\n type=\"button\"\n disabled={normalizeDataAttr(mergeBooleansOr(disabled, loading))}\n data-loading={normalizeDataAttr(loading)}\n aria-busy={normalizeDataAttr(loading)}\n focusableWhenDisabled={true}\n className={mergeStateClassNames(buttonVariants(variantProps), className)}\n {...rest}\n >\n {loading ? (\n <>\n <Spinner\n aria-hidden={true}\n className={mergeTwClassNames([\n 'absolute',\n\n 'border-r-current',\n 'border-b-current',\n ])}\n />\n\n <span\n className={mergeTwClassNames([\n 'inline-flex',\n 'items-center',\n // Herda o `gap` do botão, que precisa ser o pai direto no DOM: um\n // wrapper no meio (mesmo com `display: contents`) zeraria o espaço\n // entre ícone e texto, e o botão encolheria no loading.\n 'gap-[inherit]',\n\n // Some da tela, mas continua no layout (a largura não muda) e na árvore de\n // acessibilidade: o texto segue sendo o nome do botão. Com `invisible`, o\n // leitor de tela ouviria um botão sem nome.\n 'opacity-0',\n ])}\n >\n <ButtonContent\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n </span>\n </>\n ) : (\n <ButtonContent\n icon={icon}\n iconPosition={iconPosition}\n >\n {children}\n </ButtonContent>\n )}\n </BaseButton>\n );\n};\n\nButton.displayName = 'Button';\n\nconst ButtonContent = (\n props: Pick<ButtonProps, 'children' | 'icon' | 'iconPosition'>,\n) => {\n const { children, icon, iconPosition = 'left' } = props;\n\n return (\n <>\n {icon && iconPosition === 'left' && <Icon render={icon} />}\n\n {children}\n\n {icon && iconPosition === 'right' && <Icon render={icon} />}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAwCA,MAAM,oBAAoB,iBAAiC;;;;;;;;;;;;;;;;;;;AAoB3D,MAAa,UAAU,UAAuB;CAC5C,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO;EAC5D;EACA;EACA;CACF,CAAC;CAED,MAAM,EACJ,WACA,SACA,UACA,UACA,MACA,eAAe,QACf,GAAG,SACD;CAEJ,OACE,oBAACA,UAAD;EACE,kBAAe;EACf,MAAK;EACL,UAAU,kBAAkB,gBAAgB,UAAU,OAAO,CAAC;EAC9D,gBAAc,kBAAkB,OAAO;EACvC,aAAW,kBAAkB,OAAO;EACpC,uBAAuB;EACvB,WAAW,qBAAqB,eAAe,YAAY,GAAG,SAAS;EACvE,GAAI;EAEH,UAAA,UACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,SAAD;GACE,eAAa;GACb,WAAW,kBAAkB;IAC3B;IAEA;IACA;GACF,CAAC;EACF,CAAA,GAED,oBAAC,QAAD;GACE,WAAW,kBAAkB;IAC3B;IACA;IAIA;IAKA;GACF,CAAC;GAED,UAAA,oBAAC,eAAD;IACQ;IACQ;IAEb;GACY,CAAA;EACX,CAAA,CACN,EAAA,CAAA,IAEF,oBAAC,eAAD;GACQ;GACQ;GAEb;EACY,CAAA;CAEP,CAAA;AAEhB;AAEA,OAAO,cAAc;AAErB,MAAM,iBACJ,UACG;CACH,MAAM,EAAE,UAAU,MAAM,eAAe,WAAW;CAElD,OACE,qBAAA,UAAA,EAAA,UAAA;EACG,QAAQ,iBAAiB,UAAU,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;EAExD;EAEA,QAAQ,iBAAiB,WAAW,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;CAC1D,EAAA,CAAA;AAEN"}
@@ -3,7 +3,7 @@ import "../icon-button/index.js";
3
3
  import { UseClipboardProps } from "../../display/clipboard/use-clipboard.js";
4
4
  import { index_parts_d_exports } from "../../display/clipboard/index.parts.js";
5
5
  import "../../display/clipboard/index.js";
6
- import { MergeOverride } from "@lucasbernardosn/utils";
6
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
7
7
  //#region src/components/buttons/clipboard-button/clipboard-button.d.ts
8
8
  export type ClipboardButtonProps = MergeOverride<Omit<IconButtonProps, 'icon'>, UseClipboardProps>;
9
9
  /**
@@ -3,7 +3,7 @@ import { IconButton } from "../icon-button/icon-button.js";
3
3
  import { ClipboardIndicator } from "../../display/clipboard/clipboard-indicator.js";
4
4
  import { ClipboardRoot } from "../../display/clipboard/clipboard-root.js";
5
5
  import { ClipboardTrigger } from "../../display/clipboard/clipboard-trigger.js";
6
- import { createSplitProps } from "@lucasbernardosn/utils";
6
+ import { createSplitProps } from "@lucasbernardosn/ts-utils";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  import * as ZagClipboard from "@zag-js/clipboard";
9
9
  //#region src/components/buttons/clipboard-button/clipboard-button.tsx
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard-button.js","names":["Clipboard.Root","Clipboard.Trigger","Clipboard.Indicator"],"sources":["../../../../src/components/buttons/clipboard-button/clipboard-button.tsx"],"sourcesContent":["import { createSplitProps, type MergeOverride } from '@lucasbernardosn/utils';\nimport * as ZagClipboard from '@zag-js/clipboard';\nimport {\n IconButton,\n type IconButtonProps,\n} from '#components/buttons/icon-button';\nimport { Clipboard } from '#components/display/clipboard';\nimport { mergeTwClassNames } from '#utils';\n\nexport type ClipboardButtonProps = MergeOverride<\n Omit<IconButtonProps, 'icon'>,\n Clipboard.UseClipboardProps\n>;\n\nconst splitClipboardProps = createSplitProps<Clipboard.UseClipboardProps>();\n\n/**\n * Botão de ícone que copia `value` para a área de transferência e troca o ícone enquanto o\n * destaque de cópia dura. Aceita as opções do `Clipboard.Root` e as props do `IconButton`.\n *\n * No layout, se comporta como o próprio botão: `className` e posição em flex valem para ele. A\n * cópia é anunciada ao leitor de tela pelo `Clipboard.Root`, com o `triggerLabel` das\n * `translations`.\n *\n * @example\n * ```tsx\n * <ClipboardButton\n * aria-label=\"Copiar link\"\n * value=\"https://exemplo.com.br\"\n * />\n * ```\n */\nexport const ClipboardButton = (props: ClipboardButtonProps) => {\n const [clipboardProps, iconButtonProps] = splitClipboardProps(\n props,\n ZagClipboard.props,\n );\n\n return (\n <Clipboard.Root\n // Sem caixa própria: o botão é que ocupa o lugar no layout, e o `className` de quem usa\n // (que vai para o botão) vale no flex do contêiner.\n className={mergeTwClassNames(['contents'])}\n {...clipboardProps}\n >\n <Clipboard.Trigger\n render={\n <IconButton\n variant=\"subtle\"\n colorScheme=\"gray\"\n icon={<Clipboard.Indicator />}\n {...iconButtonProps}\n />\n }\n />\n </Clipboard.Root>\n );\n};\n\nClipboardButton.displayName = 'ClipboardButton';\n"],"mappings":";;;;;;;;;AAcA,MAAM,sBAAsB,iBAA8C;;;;;;;;;;;;;;;;;AAkB1E,MAAa,mBAAmB,UAAgC;CAC9D,MAAM,CAAC,gBAAgB,mBAAmB,oBACxC,OACA,aAAa,KACf;CAEA,OACE,oBAACA,eAAD;EAGE,WAAW,kBAAkB,CAAC,UAAU,CAAC;EACzC,GAAI;EAEJ,UAAA,oBAACC,kBAAD,EACE,QACE,oBAAC,YAAD;GACE,SAAQ;GACR,aAAY;GACZ,MAAM,oBAACC,oBAAD,CAAsB,CAAA;GAC5B,GAAI;EACL,CAAA,EAEJ,CAAA;CACa,CAAA;AAEpB;AAEA,gBAAgB,cAAc"}
1
+ {"version":3,"file":"clipboard-button.js","names":["Clipboard.Root","Clipboard.Trigger","Clipboard.Indicator"],"sources":["../../../../src/components/buttons/clipboard-button/clipboard-button.tsx"],"sourcesContent":["import {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport * as ZagClipboard from '@zag-js/clipboard';\nimport {\n IconButton,\n type IconButtonProps,\n} from '#components/buttons/icon-button';\nimport { Clipboard } from '#components/display/clipboard';\nimport { mergeTwClassNames } from '#utils';\n\nexport type ClipboardButtonProps = MergeOverride<\n Omit<IconButtonProps, 'icon'>,\n Clipboard.UseClipboardProps\n>;\n\nconst splitClipboardProps = createSplitProps<Clipboard.UseClipboardProps>();\n\n/**\n * Botão de ícone que copia `value` para a área de transferência e troca o ícone enquanto o\n * destaque de cópia dura. Aceita as opções do `Clipboard.Root` e as props do `IconButton`.\n *\n * No layout, se comporta como o próprio botão: `className` e posição em flex valem para ele. A\n * cópia é anunciada ao leitor de tela pelo `Clipboard.Root`, com o `triggerLabel` das\n * `translations`.\n *\n * @example\n * ```tsx\n * <ClipboardButton\n * aria-label=\"Copiar link\"\n * value=\"https://exemplo.com.br\"\n * />\n * ```\n */\nexport const ClipboardButton = (props: ClipboardButtonProps) => {\n const [clipboardProps, iconButtonProps] = splitClipboardProps(\n props,\n ZagClipboard.props,\n );\n\n return (\n <Clipboard.Root\n // Sem caixa própria: o botão é que ocupa o lugar no layout, e o `className` de quem usa\n // (que vai para o botão) vale no flex do contêiner.\n className={mergeTwClassNames(['contents'])}\n {...clipboardProps}\n >\n <Clipboard.Trigger\n render={\n <IconButton\n variant=\"subtle\"\n colorScheme=\"gray\"\n icon={<Clipboard.Indicator />}\n {...iconButtonProps}\n />\n }\n />\n </Clipboard.Root>\n );\n};\n\nClipboardButton.displayName = 'ClipboardButton';\n"],"mappings":";;;;;;;;;AAiBA,MAAM,sBAAsB,iBAA8C;;;;;;;;;;;;;;;;;AAkB1E,MAAa,mBAAmB,UAAgC;CAC9D,MAAM,CAAC,gBAAgB,mBAAmB,oBACxC,OACA,aAAa,KACf;CAEA,OACE,oBAACA,eAAD;EAGE,WAAW,kBAAkB,CAAC,UAAU,CAAC;EACzC,GAAI;EAEJ,UAAA,oBAACC,kBAAD,EACE,QACE,oBAAC,YAAD;GACE,SAAQ;GACR,aAAY;GACZ,MAAM,oBAACC,oBAAD,CAAsB,CAAA;GAC5B,GAAI;EACL,CAAA,EAEJ,CAAA;CACa,CAAA;AAEpB;AAEA,gBAAgB,cAAc"}
@@ -1,6 +1,6 @@
1
1
  import { IconButtonProps } from "../icon-button/icon-button.js";
2
2
  import "../icon-button/index.js";
3
- import { MergeOverride } from "@lucasbernardosn/utils";
3
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
4
4
  //#region src/components/buttons/close-button/close-button.d.ts
5
5
  export type CloseButtonProps = MergeOverride<Omit<IconButtonProps, 'icon'>, {
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"close-button.js","names":[],"sources":["../../../../src/components/buttons/close-button/close-button.tsx"],"sourcesContent":["import type { MergeOverride } from '@lucasbernardosn/utils';\nimport { XIcon } from '@phosphor-icons/react';\nimport {\n IconButton,\n type IconButtonProps,\n} from '#components/buttons/icon-button';\n\nexport type CloseButtonProps = MergeOverride<\n Omit<IconButtonProps, 'icon'>,\n {\n /**\n * Nome do botão para o leitor de tela.\n *\n * @default 'Fechar'\n */\n 'aria-label'?: string;\n }\n>;\n\n/**\n * `IconButton` com X, para fechar um dialog, um drawer ou um aviso. Sai `ghost` e com o nome\n * \"Fechar\"; as outras props do `IconButton` valem igual.\n *\n * Não fecha nada sozinho: entra no `render` da parte que fecha.\n *\n * @example\n * ```tsx\n * <Dialog.Close render={<CloseButton />} />\n * ```\n */\nexport const CloseButton = (props: CloseButtonProps) => {\n const { 'aria-label': ariaLabel = 'Fechar', ...rest } = props;\n\n return (\n <IconButton\n data-component=\"CloseButton\"\n variant=\"ghost\"\n aria-label={ariaLabel}\n icon={<XIcon />}\n {...rest}\n />\n );\n};\n\nCloseButton.displayName = 'CloseButton';\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,MAAa,eAAe,UAA4B;CACtD,MAAM,EAAE,cAAc,YAAY,UAAU,GAAG,SAAS;CAExD,OACE,oBAAC,YAAD;EACE,kBAAe;EACf,SAAQ;EACR,cAAY;EACZ,MAAM,oBAAC,OAAD,CAAQ,CAAA;EACd,GAAI;CACL,CAAA;AAEL;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"close-button.js","names":[],"sources":["../../../../src/components/buttons/close-button/close-button.tsx"],"sourcesContent":["import type { MergeOverride } from '@lucasbernardosn/ts-utils';\nimport { XIcon } from '@phosphor-icons/react';\nimport {\n IconButton,\n type IconButtonProps,\n} from '#components/buttons/icon-button';\n\nexport type CloseButtonProps = MergeOverride<\n Omit<IconButtonProps, 'icon'>,\n {\n /**\n * Nome do botão para o leitor de tela.\n *\n * @default 'Fechar'\n */\n 'aria-label'?: string;\n }\n>;\n\n/**\n * `IconButton` com X, para fechar um dialog, um drawer ou um aviso. Sai `ghost` e com o nome\n * \"Fechar\"; as outras props do `IconButton` valem igual.\n *\n * Não fecha nada sozinho: entra no `render` da parte que fecha.\n *\n * @example\n * ```tsx\n * <Dialog.Close render={<CloseButton />} />\n * ```\n */\nexport const CloseButton = (props: CloseButtonProps) => {\n const { 'aria-label': ariaLabel = 'Fechar', ...rest } = props;\n\n return (\n <IconButton\n data-component=\"CloseButton\"\n variant=\"ghost\"\n aria-label={ariaLabel}\n icon={<XIcon />}\n {...rest}\n />\n );\n};\n\nCloseButton.displayName = 'CloseButton';\n"],"mappings":";;;;;;;;;;;;;;;AA8BA,MAAa,eAAe,UAA4B;CACtD,MAAM,EAAE,cAAc,YAAY,UAAU,GAAG,SAAS;CAExD,OACE,oBAAC,YAAD;EACE,kBAAe;EACf,SAAQ;EACR,cAAY;EACZ,MAAM,oBAAC,OAAD,CAAQ,CAAA;EACd,GAAI;CACL,CAAA;AAEL;AAEA,YAAY,cAAc"}
@@ -3,7 +3,7 @@ import "../../display/icon/index.js";
3
3
  import { ButtonProps } from "../button/button.js";
4
4
  import "../button/index.js";
5
5
  import { IconButtonVariants } from "./icon-button-variants.js";
6
- import { MergeOverride } from "@lucasbernardosn/utils";
6
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
7
7
  //#region src/components/buttons/icon-button/icon-button.d.ts
8
8
  export type IconButtonProps = MergeOverride<Omit<ButtonProps, 'children' | 'icon' | 'iconPosition'>, IconButtonVariants & {
9
9
  /**
@@ -2,7 +2,7 @@ import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js"
2
2
  import { Icon } from "../../display/icon/icon.js";
3
3
  import { Button } from "../button/button.js";
4
4
  import { iconButtonVariants } from "./icon-button-variants.js";
5
- import { createSplitProps } from "@lucasbernardosn/utils";
5
+ import { createSplitProps } from "@lucasbernardosn/ts-utils";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  //#region src/components/buttons/icon-button/icon-button.tsx
8
8
  const splitVariantProps = createSplitProps();
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","names":[],"sources":["../../../../src/components/buttons/icon-button/icon-button.tsx"],"sourcesContent":["import { createSplitProps, type MergeOverride } from '@lucasbernardosn/utils';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { Icon, type IconProps } from '#components/display/icon';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type IconButtonVariants,\n iconButtonVariants,\n} from './icon-button-variants';\n\nexport type IconButtonProps = MergeOverride<\n Omit<ButtonProps, 'children' | 'icon' | 'iconPosition'>,\n IconButtonVariants & {\n /**\n * O que o botão faz (\"Fechar\", \"Editar pedido\"), não o nome do ícone. É o único nome do\n * botão: o ícone sai do leitor de tela.\n */\n 'aria-label': string;\n /**\n * Ícone do botão, no tamanho definido pelo `size`.\n */\n icon: NonNullable<IconProps['render']>;\n }\n>;\n\nconst splitVariantProps = createSplitProps<IconButtonVariants>();\n\n/**\n * Botão quadrado só com ícone.\n *\n * O ícone sai do leitor de tela (o `Icon` é decorativo por padrão), então o tipo exige um\n * `aria-label` que diga o que o botão faz. Quem enxerga vê só o ícone: em barras com\n * vários botões, envolva cada um num tooltip com o mesmo texto.\n *\n * @example\n * ```tsx\n * <IconButton\n * aria-label=\"Fechar\"\n * icon={<XIcon />}\n * />\n * ```\n */\nexport const IconButton = (props: IconButtonProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'round',\n 'size',\n ]);\n\n const { className, icon, ...rest } = elementProps;\n\n return (\n <Button\n data-component=\"IconButton\"\n className={mergeStateClassNames(\n iconButtonVariants(variantProps),\n className,\n )}\n size={variantProps.size}\n {...rest}\n >\n <Icon render={icon} />\n </Button>\n );\n};\n\nIconButton.displayName = 'IconButton';\n"],"mappings":";;;;;;;AAwBA,MAAM,oBAAoB,iBAAqC;;;;;;;;;;;;;;;;AAiB/D,MAAa,cAAc,UAA2B;CACpD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,SACA,MACF,CAAC;CAED,MAAM,EAAE,WAAW,MAAM,GAAG,SAAS;CAErC,OACE,oBAAC,QAAD;EACE,kBAAe;EACf,WAAW,qBACT,mBAAmB,YAAY,GAC/B,SACF;EACA,MAAM,aAAa;EACnB,GAAI;EAEJ,UAAA,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;CACf,CAAA;AAEZ;AAEA,WAAW,cAAc"}
1
+ {"version":3,"file":"icon-button.js","names":[],"sources":["../../../../src/components/buttons/icon-button/icon-button.tsx"],"sourcesContent":["import {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { Icon, type IconProps } from '#components/display/icon';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type IconButtonVariants,\n iconButtonVariants,\n} from './icon-button-variants';\n\nexport type IconButtonProps = MergeOverride<\n Omit<ButtonProps, 'children' | 'icon' | 'iconPosition'>,\n IconButtonVariants & {\n /**\n * O que o botão faz (\"Fechar\", \"Editar pedido\"), não o nome do ícone. É o único nome do\n * botão: o ícone sai do leitor de tela.\n */\n 'aria-label': string;\n /**\n * Ícone do botão, no tamanho definido pelo `size`.\n */\n icon: NonNullable<IconProps['render']>;\n }\n>;\n\nconst splitVariantProps = createSplitProps<IconButtonVariants>();\n\n/**\n * Botão quadrado só com ícone.\n *\n * O ícone sai do leitor de tela (o `Icon` é decorativo por padrão), então o tipo exige um\n * `aria-label` que diga o que o botão faz. Quem enxerga vê só o ícone: em barras com\n * vários botões, envolva cada um num tooltip com o mesmo texto.\n *\n * @example\n * ```tsx\n * <IconButton\n * aria-label=\"Fechar\"\n * icon={<XIcon />}\n * />\n * ```\n */\nexport const IconButton = (props: IconButtonProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'round',\n 'size',\n ]);\n\n const { className, icon, ...rest } = elementProps;\n\n return (\n <Button\n data-component=\"IconButton\"\n className={mergeStateClassNames(\n iconButtonVariants(variantProps),\n className,\n )}\n size={variantProps.size}\n {...rest}\n >\n <Icon render={icon} />\n </Button>\n );\n};\n\nIconButton.displayName = 'IconButton';\n"],"mappings":";;;;;;;AA2BA,MAAM,oBAAoB,iBAAqC;;;;;;;;;;;;;;;;AAiB/D,MAAa,cAAc,UAA2B;CACpD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,SACA,MACF,CAAC;CAED,MAAM,EAAE,WAAW,MAAM,GAAG,SAAS;CAErC,OACE,oBAAC,QAAD;EACE,kBAAe;EACf,WAAW,qBACT,mBAAmB,YAAY,GAC/B,SACF;EACA,MAAM,aAAa;EACnB,GAAI;EAEJ,UAAA,oBAAC,MAAD,EAAM,QAAQ,KAAO,CAAA;CACf,CAAA;AAEZ;AAEA,WAAW,cAAc"}
@@ -1,7 +1,7 @@
1
1
  import { ButtonProps } from "../button/button.js";
2
2
  import "../button/index.js";
3
3
  import { Breakpoint } from "../../../hooks/use-breakpoint.js";
4
- import { MergeOverride } from "@lucasbernardosn/utils";
4
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
5
5
  //#region src/components/buttons/responsive-button/responsive-button.d.ts
6
6
  export type ResponsiveButtonProps = MergeOverride<ButtonProps, {
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"responsive-button.js","names":[],"sources":["../../../../src/components/buttons/responsive-button/responsive-button.tsx"],"sourcesContent":["import type { MergeOverride } from '@lucasbernardosn/utils';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { IconButton } from '#components/buttons/icon-button';\nimport { type Breakpoint, useIsBreakpoint } from '#hooks';\n\nexport type ResponsiveButtonProps = MergeOverride<\n ButtonProps,\n {\n /**\n * Nome do botão abaixo do `breakpoint`, quando só o ícone fica. Sem ele, o nome é o\n * `children`, se for texto; com um `children` que não é texto, passe o `aria-label`, ou o\n * botão de ícone fica sem nome.\n */\n 'aria-label'?: string;\n /**\n * A partir desta largura mostra o `Button` com texto; abaixo dela, só o `IconButton`.\n *\n * @default 'md'\n */\n breakpoint?: Breakpoint;\n /**\n * Ícone, mostrado nos dois formatos.\n */\n icon: NonNullable<ButtonProps['icon']>;\n }\n>;\n\n/**\n * Botão com texto em telas largas e só com ícone nas estreitas.\n *\n * Na tela larga, o nome do botão é o texto visível; na estreita, o `aria-label` ou, sem ele, o\n * próprio texto. A troca remonta o botão: se ele estiver focado quando a largura cruza o\n * `breakpoint` (ao girar o celular, por exemplo), o foco se perde.\n *\n * @example\n * ```tsx\n * <ResponsiveButton icon={<PlusIcon />}>Novo pedido</ResponsiveButton>\n * ```\n */\nexport const ResponsiveButton = (props: ResponsiveButtonProps) => {\n const { breakpoint = 'md', 'aria-label': ariaLabel, ...rest } = props;\n\n const isBreakpoint = useIsBreakpoint(breakpoint);\n\n /**\n * O `aria-label` só vai para o `IconButton`: no `Button`, ele substituiria o texto visível\n * como nome, e quem usa controle por voz fala o que vê.\n */\n const iconButtonLabel =\n ariaLabel ?? (typeof rest.children === 'string' ? rest.children : '');\n\n return isBreakpoint ? (\n <Button {...rest} />\n ) : (\n <IconButton\n aria-label={iconButtonLabel}\n {...rest}\n />\n );\n};\n\nResponsiveButton.displayName = 'ResponsiveButton';\n"],"mappings":";;;;;;;;;;;;;;;;;AAuCA,MAAa,oBAAoB,UAAiC;CAChE,MAAM,EAAE,aAAa,MAAM,cAAc,WAAW,GAAG,SAAS;CAEhE,MAAM,eAAe,gBAAgB,UAAU;;;;;CAM/C,MAAM,kBACJ,cAAc,OAAO,KAAK,aAAa,WAAW,KAAK,WAAW;CAEpE,OAAO,eACL,oBAAC,QAAD,EAAQ,GAAI,KAAO,CAAA,IAEnB,oBAAC,YAAD;EACE,cAAY;EACZ,GAAI;CACL,CAAA;AAEL;AAEA,iBAAiB,cAAc"}
1
+ {"version":3,"file":"responsive-button.js","names":[],"sources":["../../../../src/components/buttons/responsive-button/responsive-button.tsx"],"sourcesContent":["import type { MergeOverride } from '@lucasbernardosn/ts-utils';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { IconButton } from '#components/buttons/icon-button';\nimport { type Breakpoint, useIsBreakpoint } from '#hooks';\n\nexport type ResponsiveButtonProps = MergeOverride<\n ButtonProps,\n {\n /**\n * Nome do botão abaixo do `breakpoint`, quando só o ícone fica. Sem ele, o nome é o\n * `children`, se for texto; com um `children` que não é texto, passe o `aria-label`, ou o\n * botão de ícone fica sem nome.\n */\n 'aria-label'?: string;\n /**\n * A partir desta largura mostra o `Button` com texto; abaixo dela, só o `IconButton`.\n *\n * @default 'md'\n */\n breakpoint?: Breakpoint;\n /**\n * Ícone, mostrado nos dois formatos.\n */\n icon: NonNullable<ButtonProps['icon']>;\n }\n>;\n\n/**\n * Botão com texto em telas largas e só com ícone nas estreitas.\n *\n * Na tela larga, o nome do botão é o texto visível; na estreita, o `aria-label` ou, sem ele, o\n * próprio texto. A troca remonta o botão: se ele estiver focado quando a largura cruza o\n * `breakpoint` (ao girar o celular, por exemplo), o foco se perde.\n *\n * @example\n * ```tsx\n * <ResponsiveButton icon={<PlusIcon />}>Novo pedido</ResponsiveButton>\n * ```\n */\nexport const ResponsiveButton = (props: ResponsiveButtonProps) => {\n const { breakpoint = 'md', 'aria-label': ariaLabel, ...rest } = props;\n\n const isBreakpoint = useIsBreakpoint(breakpoint);\n\n /**\n * O `aria-label` só vai para o `IconButton`: no `Button`, ele substituiria o texto visível\n * como nome, e quem usa controle por voz fala o que vê.\n */\n const iconButtonLabel =\n ariaLabel ?? (typeof rest.children === 'string' ? rest.children : '');\n\n return isBreakpoint ? (\n <Button {...rest} />\n ) : (\n <IconButton\n aria-label={iconButtonLabel}\n {...rest}\n />\n );\n};\n\nResponsiveButton.displayName = 'ResponsiveButton';\n"],"mappings":";;;;;;;;;;;;;;;;;AAuCA,MAAa,oBAAoB,UAAiC;CAChE,MAAM,EAAE,aAAa,MAAM,cAAc,WAAW,GAAG,SAAS;CAEhE,MAAM,eAAe,gBAAgB,UAAU;;;;;CAM/C,MAAM,kBACJ,cAAc,OAAO,KAAK,aAAa,WAAW,KAAK,WAAW;CAEpE,OAAO,eACL,oBAAC,QAAD,EAAQ,GAAI,KAAO,CAAA,IAEnB,oBAAC,YAAD;EACE,cAAY;EACZ,GAAI;CACL,CAAA;AAEL;AAEA,iBAAiB,cAAc"}
@@ -0,0 +1,15 @@
1
+ import { AriaLiveMessages, GroupBase } from "react-select";
2
+ //#region src/components/collections/async-select/async-select-aria-messages.d.ts
3
+ /**
4
+ * Anúncios do leitor de tela em pt-BR, no lugar dos em inglês do react-select. Sem isto, o
5
+ * campo falaria em dois idiomas com o resto da interface.
6
+ */
7
+ export declare const getAsyncSelectAriaLiveMessages: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>() => AriaLiveMessages<Option, IsMulti, Group>;
8
+ /**
9
+ * Resumo dos resultados anunciado quando a lista muda.
10
+ */
11
+ export declare const getAsyncSelectScreenReaderStatus: (props: {
12
+ count: number;
13
+ }) => string;
14
+ //#endregion
15
+ //# sourceMappingURL=async-select-aria-messages.d.ts.map
@@ -0,0 +1,51 @@
1
+ //#region src/components/collections/async-select/async-select-aria-messages.ts
2
+ /**
3
+ * Anúncios do leitor de tela em pt-BR, no lugar dos em inglês do react-select. Sem isto, o
4
+ * campo falaria em dois idiomas com o resto da interface.
5
+ */
6
+ const getAsyncSelectAriaLiveMessages = () => ({
7
+ guidance: (props) => {
8
+ const { context, isSearchable, isMulti, tabSelectsValue, isInitialFocus } = props;
9
+ switch (context) {
10
+ case "menu": return `Use as setas para cima e para baixo para escolher, Enter para selecionar a opção em foco, Esc para fechar o menu${tabSelectsValue ? ", Tab para selecionar a opção e fechar o menu" : ""}.`;
11
+ case "input": return isInitialFocus ? `${props["aria-label"] || "Seleção"} em foco${isSearchable ? ", digite para filtrar a lista" : ""}, seta para baixo abre o menu${isMulti ? ", seta para a esquerda foca os valores selecionados" : ""}.` : "";
12
+ case "value": return "Use as setas para a esquerda e para a direita para alternar entre os valores, Backspace remove o valor em foco.";
13
+ default: return "";
14
+ }
15
+ },
16
+ onChange: (props) => {
17
+ const { action, label = "", labels, isDisabled } = props;
18
+ switch (action) {
19
+ case "deselect-option":
20
+ case "pop-value":
21
+ case "remove-value": return `Opção ${label} removida.`;
22
+ case "clear": return "Todas as opções selecionadas foram removidas.";
23
+ case "initial-input-focus": return `${labels.length > 1 ? "Opções" : "Opção"} ${labels.join(", ")} selecionada.`;
24
+ case "select-option": return isDisabled ? `A opção ${label} está desabilitada. Escolha outra.` : `Opção ${label} selecionada.`;
25
+ default: return "";
26
+ }
27
+ },
28
+ onFocus: (props) => {
29
+ const { context, focused, options, label = "", selectValue, isDisabled } = props;
30
+ const { isSelected, isAppleDevice } = props;
31
+ const getArrayIndex = (items) => items.length > 0 ? `${items.indexOf(focused) + 1} de ${items.length}` : "";
32
+ if (context === "value" && selectValue) return `Valor ${label} em foco, ${getArrayIndex(selectValue)}.`;
33
+ if (context === "menu" && isAppleDevice) return `${label}${`${isSelected ? " selecionada" : ""}${isDisabled ? " desabilitada" : ""}`}, ${getArrayIndex(options)}.`;
34
+ return "";
35
+ },
36
+ onFilter: (props) => {
37
+ const { inputValue, resultsMessage } = props;
38
+ return `${resultsMessage}${inputValue ? ` para a busca ${inputValue}` : ""}.`;
39
+ }
40
+ });
41
+ /**
42
+ * Resumo dos resultados anunciado quando a lista muda.
43
+ */
44
+ const getAsyncSelectScreenReaderStatus = (props) => {
45
+ const { count } = props;
46
+ return `${count} ${count === 1 ? "resultado disponível" : "resultados disponíveis"}`;
47
+ };
48
+ //#endregion
49
+ export { getAsyncSelectAriaLiveMessages, getAsyncSelectScreenReaderStatus };
50
+
51
+ //# sourceMappingURL=async-select-aria-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-select-aria-messages.js","names":[],"sources":["../../../../src/components/collections/async-select/async-select-aria-messages.ts"],"sourcesContent":["import type { AriaLiveMessages, GroupBase } from 'react-select';\n\n/**\n * Anúncios do leitor de tela em pt-BR, no lugar dos em inglês do react-select. Sem isto, o\n * campo falaria em dois idiomas com o resto da interface.\n */\nexport const getAsyncSelectAriaLiveMessages = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(): AriaLiveMessages<Option, IsMulti, Group> => ({\n guidance: (props) => {\n const { context, isSearchable, isMulti, tabSelectsValue, isInitialFocus } =\n props;\n\n switch (context) {\n case 'menu':\n return `Use as setas para cima e para baixo para escolher, Enter para selecionar a opção em foco, Esc para fechar o menu${tabSelectsValue ? ', Tab para selecionar a opção e fechar o menu' : ''}.`;\n case 'input':\n return isInitialFocus\n ? `${props['aria-label'] || 'Seleção'} em foco${isSearchable ? ', digite para filtrar a lista' : ''}, seta para baixo abre o menu${isMulti ? ', seta para a esquerda foca os valores selecionados' : ''}.`\n : '';\n case 'value':\n return 'Use as setas para a esquerda e para a direita para alternar entre os valores, Backspace remove o valor em foco.';\n default:\n return '';\n }\n },\n onChange: (props) => {\n const { action, label = '', labels, isDisabled } = props;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return `Opção ${label} removida.`;\n case 'clear':\n return 'Todas as opções selecionadas foram removidas.';\n case 'initial-input-focus':\n return `${labels.length > 1 ? 'Opções' : 'Opção'} ${labels.join(', ')} selecionada.`;\n case 'select-option':\n return isDisabled\n ? `A opção ${label} está desabilitada. Escolha outra.`\n : `Opção ${label} selecionada.`;\n default:\n return '';\n }\n },\n onFocus: (props) => {\n const {\n context,\n focused,\n options,\n label = '',\n selectValue,\n isDisabled,\n } = props;\n const { isSelected, isAppleDevice } = props;\n\n const getArrayIndex = (items: readonly unknown[]) =>\n items.length > 0\n ? `${items.indexOf(focused) + 1} de ${items.length}`\n : '';\n\n if (context === 'value' && selectValue) {\n return `Valor ${label} em foco, ${getArrayIndex(selectValue)}.`;\n }\n\n if (context === 'menu' && isAppleDevice) {\n const status = `${isSelected ? ' selecionada' : ''}${isDisabled ? ' desabilitada' : ''}`;\n\n return `${label}${status}, ${getArrayIndex(options)}.`;\n }\n\n return '';\n },\n onFilter: (props) => {\n const { inputValue, resultsMessage } = props;\n\n return `${resultsMessage}${inputValue ? ` para a busca ${inputValue}` : ''}.`;\n },\n});\n\n/**\n * Resumo dos resultados anunciado quando a lista muda.\n */\nexport const getAsyncSelectScreenReaderStatus = (props: {\n count: number;\n}): string => {\n const { count } = props;\n\n return `${count} ${count === 1 ? 'resultado disponível' : 'resultados disponíveis'}`;\n};\n"],"mappings":";;;;;AAMA,MAAa,wCAIqC;CAChD,WAAW,UAAU;EACnB,MAAM,EAAE,SAAS,cAAc,SAAS,iBAAiB,mBACvD;EAEF,QAAQ,SAAR;GACE,KAAK,QACH,OAAO,mHAAmH,kBAAkB,kDAAkD,GAAG;GACnM,KAAK,SACH,OAAO,iBACH,GAAG,MAAM,iBAAiB,UAAU,UAAU,eAAe,kCAAkC,GAAG,+BAA+B,UAAU,wDAAwD,GAAG,KACtM;GACN,KAAK,SACH,OAAO;GACT,SACE,OAAO;EACX;CACF;CACA,WAAW,UAAU;EACnB,MAAM,EAAE,QAAQ,QAAQ,IAAI,QAAQ,eAAe;EAEnD,QAAQ,QAAR;GACE,KAAK;GACL,KAAK;GACL,KAAK,gBACH,OAAO,SAAS,MAAM;GACxB,KAAK,SACH,OAAO;GACT,KAAK,uBACH,OAAO,GAAG,OAAO,SAAS,IAAI,WAAW,QAAQ,GAAG,OAAO,KAAK,IAAI,EAAE;GACxE,KAAK,iBACH,OAAO,aACH,WAAW,MAAM,sCACjB,SAAS,MAAM;GACrB,SACE,OAAO;EACX;CACF;CACA,UAAU,UAAU;EAClB,MAAM,EACJ,SACA,SACA,SACA,QAAQ,IACR,aACA,eACE;EACJ,MAAM,EAAE,YAAY,kBAAkB;EAEtC,MAAM,iBAAiB,UACrB,MAAM,SAAS,IACX,GAAG,MAAM,QAAQ,OAAO,IAAI,EAAE,MAAM,MAAM,WAC1C;EAEN,IAAI,YAAY,WAAW,aACzB,OAAO,SAAS,MAAM,YAAY,cAAc,WAAW,EAAE;EAG/D,IAAI,YAAY,UAAU,eAGxB,OAAO,GAAG,QAAQ,GAFA,aAAa,iBAAiB,KAAK,aAAa,kBAAkB,KAE3D,IAAI,cAAc,OAAO,EAAE;EAGtD,OAAO;CACT;CACA,WAAW,UAAU;EACnB,MAAM,EAAE,YAAY,mBAAmB;EAEvC,OAAO,GAAG,iBAAiB,aAAa,iBAAiB,eAAe,GAAG;CAC7E;AACF;;;;AAKA,MAAa,oCAAoC,UAEnC;CACZ,MAAM,EAAE,UAAU;CAElB,OAAO,GAAG,MAAM,GAAG,UAAU,IAAI,yBAAyB;AAC5D"}
@@ -0,0 +1,5 @@
1
+ import { GroupBase, SelectComponentsConfig } from "react-select";
2
+ //#region src/components/collections/async-select/async-select-components.d.ts
3
+ export declare const getAsyncSelectComponents: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>() => Partial<SelectComponentsConfig<Option, IsMulti, Group>>;
4
+ //#endregion
5
+ //# sourceMappingURL=async-select-components.d.ts.map
@@ -0,0 +1,67 @@
1
+ import { Icon } from "../../display/icon/icon.js";
2
+ import { Spinner } from "../../feedback/spinner/spinner.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { CaretUpDownIcon, CheckIcon, XIcon } from "@phosphor-icons/react";
5
+ import { components } from "react-select";
6
+ //#region src/components/collections/async-select/async-select-components.tsx
7
+ const SelectContainer = (props) => {
8
+ const { innerProps, ...rest } = props;
9
+ const containerProps = {
10
+ ...innerProps,
11
+ "data-component": "AsyncSelect"
12
+ };
13
+ return /* @__PURE__ */ jsx(components.SelectContainer, {
14
+ innerProps: containerProps,
15
+ ...rest
16
+ });
17
+ };
18
+ const DropdownIndicator = (props) => /* @__PURE__ */ jsx(components.DropdownIndicator, {
19
+ ...props,
20
+ children: /* @__PURE__ */ jsx(Icon, { render: /* @__PURE__ */ jsx(CaretUpDownIcon, {}) })
21
+ });
22
+ const ClearIndicator = (props) => /* @__PURE__ */ jsx(components.ClearIndicator, {
23
+ ...props,
24
+ children: /* @__PURE__ */ jsx(Icon, { render: /* @__PURE__ */ jsx(XIcon, {}) })
25
+ });
26
+ const MultiValueRemove = (props) => {
27
+ const { innerProps, data, selectProps } = props;
28
+ return /* @__PURE__ */ jsx(components.MultiValueRemove, {
29
+ ...props,
30
+ innerProps: {
31
+ ...innerProps,
32
+ "aria-label": `Remover ${selectProps.getOptionLabel(data)}`
33
+ },
34
+ children: /* @__PURE__ */ jsx(Icon, { render: /* @__PURE__ */ jsx(XIcon, {}) })
35
+ });
36
+ };
37
+ const OptionItem = (props) => {
38
+ const { isSelected, children } = props;
39
+ return /* @__PURE__ */ jsxs(components.Option, {
40
+ ...props,
41
+ children: [isSelected && /* @__PURE__ */ jsx(Icon, {
42
+ className: "col-start-1 mt-[calc((1lh-1em)/2)]",
43
+ render: /* @__PURE__ */ jsx(CheckIcon, {})
44
+ }), /* @__PURE__ */ jsx("span", {
45
+ className: "col-start-2",
46
+ children
47
+ })]
48
+ });
49
+ };
50
+ const LoadingIndicator = () => /* @__PURE__ */ jsx(Spinner, {
51
+ "aria-hidden": true,
52
+ className: "shrink-0"
53
+ });
54
+ const NoIndicatorSeparator = () => null;
55
+ const getAsyncSelectComponents = () => ({
56
+ SelectContainer,
57
+ DropdownIndicator,
58
+ ClearIndicator,
59
+ MultiValueRemove,
60
+ Option: OptionItem,
61
+ LoadingIndicator,
62
+ IndicatorSeparator: NoIndicatorSeparator
63
+ });
64
+ //#endregion
65
+ export { getAsyncSelectComponents };
66
+
67
+ //# sourceMappingURL=async-select-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-select-components.js","names":[],"sources":["../../../../src/components/collections/async-select/async-select-components.tsx"],"sourcesContent":["import { CaretUpDownIcon, CheckIcon, XIcon } from '@phosphor-icons/react';\nimport {\n type ClearIndicatorProps,\n type ContainerProps,\n components,\n type DropdownIndicatorProps,\n type GroupBase,\n type MultiValueRemoveProps,\n type OptionProps,\n type SelectComponentsConfig,\n} from 'react-select';\nimport { Icon } from '#components/display/icon';\nimport { Spinner } from '#components/feedback/spinner';\n\nconst SelectContainer = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(\n props: ContainerProps<Option, IsMulti, Group>,\n) => {\n const { innerProps, ...rest } = props;\n\n // Em variável, o `data-*` passa pela checagem de propriedades extras do tipo do react-select.\n const containerProps = { ...innerProps, 'data-component': 'AsyncSelect' };\n\n return (\n <components.SelectContainer\n innerProps={containerProps}\n {...rest}\n />\n );\n};\n\nconst DropdownIndicator = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(\n props: DropdownIndicatorProps<Option, IsMulti, Group>,\n) => (\n <components.DropdownIndicator {...props}>\n <Icon render={<CaretUpDownIcon />} />\n </components.DropdownIndicator>\n);\n\nconst ClearIndicator = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(\n props: ClearIndicatorProps<Option, IsMulti, Group>,\n) => (\n <components.ClearIndicator {...props}>\n <Icon render={<XIcon />} />\n </components.ClearIndicator>\n);\n\nconst MultiValueRemove = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(\n props: MultiValueRemoveProps<Option, IsMulti, Group>,\n) => {\n const { innerProps, data, selectProps } = props;\n\n return (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...innerProps,\n 'aria-label': `Remover ${selectProps.getOptionLabel(data)}`,\n }}\n >\n <Icon render={<XIcon />} />\n </components.MultiValueRemove>\n );\n};\n\nconst OptionItem = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(\n props: OptionProps<Option, IsMulti, Group>,\n) => {\n const { isSelected, children } = props;\n\n return (\n <components.Option {...props}>\n {isSelected && (\n <Icon\n className=\"col-start-1 mt-[calc((1lh-1em)/2)]\"\n render={<CheckIcon />}\n />\n )}\n <span className=\"col-start-2\">{children}</span>\n </components.Option>\n );\n};\n\nconst LoadingIndicator = () => (\n <Spinner\n aria-hidden={true}\n className=\"shrink-0\"\n />\n);\n\nconst NoIndicatorSeparator = () => null;\n\nexport const getAsyncSelectComponents = <\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n>(): Partial<SelectComponentsConfig<Option, IsMulti, Group>> => ({\n SelectContainer,\n DropdownIndicator,\n ClearIndicator,\n MultiValueRemove,\n Option: OptionItem,\n LoadingIndicator,\n IndicatorSeparator: NoIndicatorSeparator,\n});\n"],"mappings":";;;;;;AAcA,MAAM,mBAKJ,UACG;CACH,MAAM,EAAE,YAAY,GAAG,SAAS;CAGhC,MAAM,iBAAiB;EAAE,GAAG;EAAY,kBAAkB;CAAc;CAExE,OACE,oBAAC,WAAW,iBAAZ;EACE,YAAY;EACZ,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,qBAKJ,UAEA,oBAAC,WAAW,mBAAZ;CAA8B,GAAI;CAChC,UAAA,oBAAC,MAAD,EAAM,QAAQ,oBAAC,iBAAD,CAAkB,CAAA,EAAI,CAAA;AACR,CAAA;AAGhC,MAAM,kBAKJ,UAEA,oBAAC,WAAW,gBAAZ;CAA2B,GAAI;CAC7B,UAAA,oBAAC,MAAD,EAAM,QAAQ,oBAAC,OAAD,CAAQ,CAAA,EAAI,CAAA;AACD,CAAA;AAG7B,MAAM,oBAKJ,UACG;CACH,MAAM,EAAE,YAAY,MAAM,gBAAgB;CAE1C,OACE,oBAAC,WAAW,kBAAZ;EACE,GAAI;EACJ,YAAY;GACV,GAAG;GACH,cAAc,WAAW,YAAY,eAAe,IAAI;EAC1D;EAEA,UAAA,oBAAC,MAAD,EAAM,QAAQ,oBAAC,OAAD,CAAQ,CAAA,EAAI,CAAA;CACC,CAAA;AAEjC;AAEA,MAAM,cAKJ,UACG;CACH,MAAM,EAAE,YAAY,aAAa;CAEjC,OACE,qBAAC,WAAW,QAAZ;EAAmB,GAAI;EAAvB,UAAA,CACG,cACC,oBAAC,MAAD;GACE,WAAU;GACV,QAAQ,oBAAC,WAAD,CAAY,CAAA;EACrB,CAAA,GAEH,oBAAC,QAAD;GAAM,WAAU;GAAe;EAAe,CAAA,CAC7B;;AAEvB;AAEA,MAAM,yBACJ,oBAAC,SAAD;CACE,eAAa;CACb,WAAU;AACX,CAAA;AAGH,MAAM,6BAA6B;AAEnC,MAAa,kCAIoD;CAC/D;CACA;CACA;CACA;CACA,QAAQ;CACR;CACA,oBAAoB;AACtB"}