@lucasbernardosn/react-ui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/dist/components/buttons/button/button-variants.d.ts +1 -1
  2. package/dist/components/buttons/button/button-variants.js +119 -119
  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/icon-button/icon-button-variants.d.ts +3 -0
  8. package/dist/components/buttons/icon-button/icon-button-variants.js +3 -0
  9. package/dist/components/buttons/icon-button/icon-button-variants.js.map +1 -1
  10. package/dist/components/buttons/responsive-button/responsive-button.d.ts +2 -1
  11. package/dist/components/buttons/responsive-button/responsive-button.js +2 -1
  12. package/dist/components/buttons/responsive-button/responsive-button.js.map +1 -1
  13. package/dist/components/buttons/toggle/index.d.ts +3 -0
  14. package/dist/components/buttons/toggle/index.js +2 -0
  15. package/dist/components/buttons/toggle/toggle-variants.d.ts +47 -0
  16. package/dist/components/buttons/toggle/toggle-variants.js +97 -0
  17. package/dist/components/buttons/toggle/toggle-variants.js.map +1 -0
  18. package/dist/components/buttons/toggle/toggle.d.ts +61 -0
  19. package/dist/components/buttons/toggle/toggle.js +69 -0
  20. package/dist/components/buttons/toggle/toggle.js.map +1 -0
  21. package/dist/components/collections/async-select/async-select-variants.js +7 -8
  22. package/dist/components/collections/async-select/async-select-variants.js.map +1 -1
  23. package/dist/components/collections/autocomplete/autocomplete-backdrop.d.ts +1 -2
  24. package/dist/components/collections/autocomplete/autocomplete-backdrop.js +1 -2
  25. package/dist/components/collections/autocomplete/autocomplete-backdrop.js.map +1 -1
  26. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.d.ts +4 -4
  27. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js +4 -4
  28. package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js.map +1 -1
  29. package/dist/components/collections/autocomplete/autocomplete-input-variants.d.ts +5 -5
  30. package/dist/components/collections/autocomplete/autocomplete-input-variants.js +8 -8
  31. package/dist/components/collections/autocomplete/autocomplete-input-variants.js.map +1 -1
  32. package/dist/components/collections/autocomplete/autocomplete-item-variants.d.ts +1 -1
  33. package/dist/components/collections/autocomplete/autocomplete-item-variants.js +1 -1
  34. package/dist/components/collections/autocomplete/autocomplete-item-variants.js.map +1 -1
  35. package/dist/components/collections/autocomplete/autocomplete-popup-variants.d.ts +4 -2
  36. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js +4 -2
  37. package/dist/components/collections/autocomplete/autocomplete-popup-variants.js.map +1 -1
  38. package/dist/components/collections/autocomplete/autocomplete-separator.d.ts +1 -2
  39. package/dist/components/collections/autocomplete/autocomplete-separator.js +1 -2
  40. package/dist/components/collections/autocomplete/autocomplete-separator.js.map +1 -1
  41. package/dist/components/collections/command/command-collection.d.ts +14 -0
  42. package/dist/components/collections/command/command-collection.js +15 -0
  43. package/dist/components/collections/command/command-collection.js.map +1 -0
  44. package/dist/components/collections/command/command-empty.d.ts +14 -0
  45. package/dist/components/collections/command/command-empty.js +28 -0
  46. package/dist/components/collections/command/command-empty.js.map +1 -0
  47. package/dist/components/collections/command/command-footer.d.ts +12 -0
  48. package/dist/components/collections/command/command-footer.js +33 -0
  49. package/dist/components/collections/command/command-footer.js.map +1 -0
  50. package/dist/components/collections/command/command-group-label.d.ts +15 -0
  51. package/dist/components/collections/command/command-group-label.js +31 -0
  52. package/dist/components/collections/command/command-group-label.js.map +1 -0
  53. package/dist/components/collections/command/command-group.d.ts +15 -0
  54. package/dist/components/collections/command/command-group.js +19 -0
  55. package/dist/components/collections/command/command-group.js.map +1 -0
  56. package/dist/components/collections/command/command-input.d.ts +20 -0
  57. package/dist/components/collections/command/command-input.js +75 -0
  58. package/dist/components/collections/command/command-input.js.map +1 -0
  59. package/dist/components/collections/command/command-item-text.d.ts +19 -0
  60. package/dist/components/collections/command/command-item-text.js +32 -0
  61. package/dist/components/collections/command/command-item-text.js.map +1 -0
  62. package/dist/components/collections/command/command-item-variants.d.ts +12 -0
  63. package/dist/components/collections/command/command-item-variants.js +39 -0
  64. package/dist/components/collections/command/command-item-variants.js.map +1 -0
  65. package/dist/components/collections/command/command-item.d.ts +17 -0
  66. package/dist/components/collections/command/command-item.js +25 -0
  67. package/dist/components/collections/command/command-item.js.map +1 -0
  68. package/dist/components/collections/command/command-list.d.ts +14 -0
  69. package/dist/components/collections/command/command-list.js +31 -0
  70. package/dist/components/collections/command/command-list.js.map +1 -0
  71. package/dist/components/collections/command/command-loading.d.ts +17 -0
  72. package/dist/components/collections/command/command-loading.js +30 -0
  73. package/dist/components/collections/command/command-loading.js.map +1 -0
  74. package/dist/components/collections/command/command-root.d.ts +91 -0
  75. package/dist/components/collections/command/command-root.js +50 -0
  76. package/dist/components/collections/command/command-root.js.map +1 -0
  77. package/dist/components/collections/command/command-separator.d.ts +15 -0
  78. package/dist/components/collections/command/command-separator.js +27 -0
  79. package/dist/components/collections/command/command-separator.js.map +1 -0
  80. package/dist/components/collections/command/index.d.ts +2 -0
  81. package/dist/components/collections/command/index.js +2 -0
  82. package/dist/components/collections/command/index.parts.d.ts +19 -0
  83. package/dist/components/collections/command/index.parts.js +35 -0
  84. package/dist/components/collections/command/index.parts.js.map +1 -0
  85. package/dist/components/collections/command/use-command-context.d.ts +10 -0
  86. package/dist/components/collections/command/use-command-context.js +10 -0
  87. package/dist/components/collections/command/use-command-context.js.map +1 -0
  88. package/dist/components/collections/command/use-command-filter.d.ts +27 -0
  89. package/dist/components/collections/command/use-command-filter.js +32 -0
  90. package/dist/components/collections/command/use-command-filter.js.map +1 -0
  91. package/dist/components/collections/select/select-backdrop.d.ts +1 -2
  92. package/dist/components/collections/select/select-backdrop.js +1 -2
  93. package/dist/components/collections/select/select-backdrop.js.map +1 -1
  94. package/dist/components/collections/select/select-group-label-variants.d.ts +2 -2
  95. package/dist/components/collections/select/select-group-label-variants.js +2 -2
  96. package/dist/components/collections/select/select-group-label-variants.js.map +1 -1
  97. package/dist/components/collections/select/select-item-variants.d.ts +3 -2
  98. package/dist/components/collections/select/select-item-variants.js +3 -2
  99. package/dist/components/collections/select/select-item-variants.js.map +1 -1
  100. package/dist/components/collections/select/select-popup-variants.d.ts +1 -1
  101. package/dist/components/collections/select/select-popup-variants.js +1 -1
  102. package/dist/components/collections/select/select-popup-variants.js.map +1 -1
  103. package/dist/components/collections/select/select-separator.d.ts +1 -1
  104. package/dist/components/collections/select/select-separator.js +1 -1
  105. package/dist/components/collections/select/select-separator.js.map +1 -1
  106. package/dist/components/collections/select/select-trigger-variants.d.ts +2 -2
  107. package/dist/components/collections/select/select-trigger-variants.js +5 -5
  108. package/dist/components/collections/select/select-trigger-variants.js.map +1 -1
  109. package/dist/components/collections/tree-view/tree-view-node-checkbox.js +1 -1
  110. package/dist/components/collections/tree-view/tree-view-node-checkbox.js.map +1 -1
  111. package/dist/components/collections/tree-view/tree-view-node-variants.d.ts +1 -1
  112. package/dist/components/collections/tree-view/tree-view-node-variants.js +6 -6
  113. package/dist/components/collections/tree-view/tree-view-node-variants.js.map +1 -1
  114. package/dist/components/collections/tree-view/tree-view-root.d.ts +1 -1
  115. package/dist/components/collections/tree-view/tree-view-root.js +1 -1
  116. package/dist/components/collections/tree-view/tree-view-root.js.map +1 -1
  117. package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +6 -1
  118. package/dist/components/disclosure/tabs/tabs-indicator-variants.js +7 -2
  119. package/dist/components/disclosure/tabs/tabs-indicator-variants.js.map +1 -1
  120. package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +6 -1
  121. package/dist/components/disclosure/tabs/tabs-list-variants.js +7 -2
  122. package/dist/components/disclosure/tabs/tabs-list-variants.js.map +1 -1
  123. package/dist/components/disclosure/tabs/tabs-root-variants.d.ts +1 -1
  124. package/dist/components/disclosure/tabs/tabs-root-variants.js +10 -8
  125. package/dist/components/disclosure/tabs/tabs-root-variants.js.map +1 -1
  126. package/dist/components/disclosure/tabs/tabs-root.d.ts +1 -1
  127. package/dist/components/disclosure/tabs/tabs-root.js +1 -1
  128. package/dist/components/disclosure/tabs/tabs-root.js.map +1 -1
  129. package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +5 -1
  130. package/dist/components/disclosure/tabs/tabs-tab-variants.js +6 -2
  131. package/dist/components/disclosure/tabs/tabs-tab-variants.js.map +1 -1
  132. package/dist/components/display/avatar/avatar-root-variants.d.ts +1 -1
  133. package/dist/components/display/avatar/avatar-root-variants.js +162 -162
  134. package/dist/components/display/avatar/avatar-root-variants.js.map +1 -1
  135. package/dist/components/display/badge/badge-variants.d.ts +5 -5
  136. package/dist/components/display/badge/badge-variants.js +166 -166
  137. package/dist/components/display/badge/badge-variants.js.map +1 -1
  138. package/dist/components/display/card/card-body.d.ts +2 -2
  139. package/dist/components/display/card/card-body.js +2 -2
  140. package/dist/components/display/card/card-body.js.map +1 -1
  141. package/dist/components/display/card/card-description.d.ts +1 -2
  142. package/dist/components/display/card/card-description.js +1 -2
  143. package/dist/components/display/card/card-description.js.map +1 -1
  144. package/dist/components/display/card/card-footer.d.ts +1 -1
  145. package/dist/components/display/card/card-footer.js +1 -1
  146. package/dist/components/display/card/card-footer.js.map +1 -1
  147. package/dist/components/display/card/card-header.d.ts +1 -2
  148. package/dist/components/display/card/card-header.js +1 -2
  149. package/dist/components/display/card/card-header.js.map +1 -1
  150. package/dist/components/display/card/card-title.d.ts +1 -2
  151. package/dist/components/display/card/card-title.js +1 -2
  152. package/dist/components/display/card/card-title.js.map +1 -1
  153. package/dist/components/display/clipboard/clipboard-indicator.js +2 -2
  154. package/dist/components/display/clipboard/clipboard-indicator.js.map +1 -1
  155. package/dist/components/display/status/status-variants.d.ts +2 -2
  156. package/dist/components/display/status/status-variants.js +6 -6
  157. package/dist/components/display/status/status-variants.js.map +1 -1
  158. package/dist/components/display/tag/tag-root-variants.d.ts +2 -2
  159. package/dist/components/display/tag/tag-root-variants.js +163 -163
  160. package/dist/components/display/tag/tag-root-variants.js.map +1 -1
  161. package/dist/components/feedback/alert/alert-description.d.ts +1 -2
  162. package/dist/components/feedback/alert/alert-description.js +2 -3
  163. package/dist/components/feedback/alert/alert-description.js.map +1 -1
  164. package/dist/components/feedback/alert/alert-indicator.d.ts +2 -2
  165. package/dist/components/feedback/alert/alert-indicator.js +2 -2
  166. package/dist/components/feedback/alert/alert-indicator.js.map +1 -1
  167. package/dist/components/feedback/alert/alert-root-variants.d.ts +3 -3
  168. package/dist/components/feedback/alert/alert-root-variants.js +28 -28
  169. package/dist/components/feedback/alert/alert-root-variants.js.map +1 -1
  170. package/dist/components/feedback/alert/alert-title.d.ts +1 -2
  171. package/dist/components/feedback/alert/alert-title.js +2 -3
  172. package/dist/components/feedback/alert/alert-title.js.map +1 -1
  173. package/dist/components/feedback/meter/index.d.ts +2 -0
  174. package/dist/components/feedback/meter/index.js +2 -0
  175. package/dist/components/feedback/meter/index.parts.d.ts +12 -0
  176. package/dist/components/feedback/meter/index.parts.js +18 -0
  177. package/dist/components/feedback/meter/index.parts.js.map +1 -0
  178. package/dist/components/feedback/meter/meter-indicator.d.ts +17 -0
  179. package/dist/components/feedback/meter/meter-indicator.js +31 -0
  180. package/dist/components/feedback/meter/meter-indicator.js.map +1 -0
  181. package/dist/components/feedback/meter/meter-label.d.ts +13 -0
  182. package/dist/components/feedback/meter/meter-label.js +20 -0
  183. package/dist/components/feedback/meter/meter-label.js.map +1 -0
  184. package/dist/components/feedback/meter/meter-root-variants.d.ts +14 -0
  185. package/dist/components/feedback/meter/meter-root-variants.js +42 -0
  186. package/dist/components/feedback/meter/meter-root-variants.js.map +1 -0
  187. package/dist/components/feedback/meter/meter-root.d.ts +37 -0
  188. package/dist/components/feedback/meter/meter-root.js +51 -0
  189. package/dist/components/feedback/meter/meter-root.js.map +1 -0
  190. package/dist/components/feedback/meter/meter-track-variants.d.ts +6 -0
  191. package/dist/components/feedback/meter/meter-track-variants.js +22 -0
  192. package/dist/components/feedback/meter/meter-track-variants.js.map +1 -0
  193. package/dist/components/feedback/meter/meter-track.d.ts +13 -0
  194. package/dist/components/feedback/meter/meter-track.js +23 -0
  195. package/dist/components/feedback/meter/meter-track.js.map +1 -0
  196. package/dist/components/feedback/meter/meter-value.d.ts +14 -0
  197. package/dist/components/feedback/meter/meter-value.js +25 -0
  198. package/dist/components/feedback/meter/meter-value.js.map +1 -0
  199. package/dist/components/feedback/meter/use-meter-context.d.ts +23 -0
  200. package/dist/components/feedback/meter/use-meter-context.js +14 -0
  201. package/dist/components/feedback/meter/use-meter-context.js.map +1 -0
  202. package/dist/components/feedback/progress/index.d.ts +2 -0
  203. package/dist/components/feedback/progress/index.js +2 -0
  204. package/dist/components/feedback/progress/index.parts.d.ts +12 -0
  205. package/dist/components/feedback/progress/index.parts.js +18 -0
  206. package/dist/components/feedback/progress/index.parts.js.map +1 -0
  207. package/dist/components/feedback/progress/progress-indicator.d.ts +16 -0
  208. package/dist/components/feedback/progress/progress-indicator.js +34 -0
  209. package/dist/components/feedback/progress/progress-indicator.js.map +1 -0
  210. package/dist/components/feedback/progress/progress-label.d.ts +13 -0
  211. package/dist/components/feedback/progress/progress-label.js +20 -0
  212. package/dist/components/feedback/progress/progress-label.js.map +1 -0
  213. package/dist/components/feedback/progress/progress-root-variants.d.ts +15 -0
  214. package/dist/components/feedback/progress/progress-root-variants.js +43 -0
  215. package/dist/components/feedback/progress/progress-root-variants.js.map +1 -0
  216. package/dist/components/feedback/progress/progress-root.d.ts +34 -0
  217. package/dist/components/feedback/progress/progress-root.js +48 -0
  218. package/dist/components/feedback/progress/progress-root.js.map +1 -0
  219. package/dist/components/feedback/progress/progress-track-variants.d.ts +6 -0
  220. package/dist/components/feedback/progress/progress-track-variants.js +22 -0
  221. package/dist/components/feedback/progress/progress-track-variants.js.map +1 -0
  222. package/dist/components/feedback/progress/progress-track.d.ts +13 -0
  223. package/dist/components/feedback/progress/progress-track.js +23 -0
  224. package/dist/components/feedback/progress/progress-track.js.map +1 -0
  225. package/dist/components/feedback/progress/progress-value.d.ts +14 -0
  226. package/dist/components/feedback/progress/progress-value.js +25 -0
  227. package/dist/components/feedback/progress/progress-value.js.map +1 -0
  228. package/dist/components/feedback/progress/use-progress-context.d.ts +23 -0
  229. package/dist/components/feedback/progress/use-progress-context.js +14 -0
  230. package/dist/components/feedback/progress/use-progress-context.js.map +1 -0
  231. package/dist/components/feedback/spinner/spinner-variants.d.ts +1 -1
  232. package/dist/components/feedback/spinner/spinner-variants.js +1 -1
  233. package/dist/components/feedback/spinner/spinner-variants.js.map +1 -1
  234. package/dist/components/feedback/spinner/spinner.d.ts +1 -1
  235. package/dist/components/feedback/spinner/spinner.js +1 -1
  236. package/dist/components/feedback/spinner/spinner.js.map +1 -1
  237. package/dist/components/feedback/toast/toast-description.d.ts +2 -2
  238. package/dist/components/feedback/toast/toast-description.js +3 -3
  239. package/dist/components/feedback/toast/toast-description.js.map +1 -1
  240. package/dist/components/feedback/toast/toast-indicator.d.ts +4 -4
  241. package/dist/components/feedback/toast/toast-indicator.js +4 -4
  242. package/dist/components/feedback/toast/toast-indicator.js.map +1 -1
  243. package/dist/components/feedback/toast/toast-root-variants.d.ts +1 -1
  244. package/dist/components/feedback/toast/toast-root-variants.js +15 -15
  245. package/dist/components/feedback/toast/toast-root-variants.js.map +1 -1
  246. package/dist/components/feedback/toast/toast-title.d.ts +3 -3
  247. package/dist/components/feedback/toast/toast-title.js +4 -4
  248. package/dist/components/feedback/toast/toast-title.js.map +1 -1
  249. package/dist/components/feedback/toast/toast-viewport-variants.d.ts +1 -1
  250. package/dist/components/fields/checkbox/checkbox-root-variants.d.ts +3 -1
  251. package/dist/components/fields/checkbox/checkbox-root-variants.js +11 -9
  252. package/dist/components/fields/checkbox/checkbox-root-variants.js.map +1 -1
  253. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js +3 -3
  254. package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js.map +1 -1
  255. package/dist/components/fields/field/field-root.d.ts +2 -1
  256. package/dist/components/fields/field/field-root.js +2 -1
  257. package/dist/components/fields/field/field-root.js.map +1 -1
  258. package/dist/components/fields/input/input-variants.d.ts +4 -3
  259. package/dist/components/fields/input/input-variants.js +7 -6
  260. package/dist/components/fields/input/input-variants.js.map +1 -1
  261. package/dist/components/fields/input-group/index.d.ts +3 -0
  262. package/dist/components/fields/input-group/index.js +2 -0
  263. package/dist/components/fields/input-group/input-group-variants.d.ts +81 -0
  264. package/dist/components/fields/input-group/input-group-variants.js +212 -0
  265. package/dist/components/fields/input-group/input-group-variants.js.map +1 -0
  266. package/dist/components/fields/input-group/input-group.d.ts +88 -0
  267. package/dist/components/fields/input-group/input-group.js +164 -0
  268. package/dist/components/fields/input-group/input-group.js.map +1 -0
  269. package/dist/components/fields/number-input/number-input-variants.js +3 -3
  270. package/dist/components/fields/number-input/number-input-variants.js.map +1 -1
  271. package/dist/components/fields/pattern-input/pattern-input-variants.js +3 -3
  272. package/dist/components/fields/pattern-input/pattern-input-variants.js.map +1 -1
  273. package/dist/components/fields/radio/index.d.ts +2 -0
  274. package/dist/components/fields/radio/index.js +2 -0
  275. package/dist/components/fields/radio/index.parts.d.ts +10 -0
  276. package/dist/components/fields/radio/index.parts.js +14 -0
  277. package/dist/components/fields/radio/index.parts.js.map +1 -0
  278. package/dist/components/fields/radio/radio-group.d.ts +40 -0
  279. package/dist/components/fields/radio/radio-group.js +45 -0
  280. package/dist/components/fields/radio/radio-group.js.map +1 -0
  281. package/dist/components/fields/radio/radio-indicator.d.ts +14 -0
  282. package/dist/components/fields/radio/radio-indicator.js +33 -0
  283. package/dist/components/fields/radio/radio-indicator.js.map +1 -0
  284. package/dist/components/fields/radio/radio-root-variants.d.ts +41 -0
  285. package/dist/components/fields/radio/radio-root-variants.js +93 -0
  286. package/dist/components/fields/radio/radio-root-variants.js.map +1 -0
  287. package/dist/components/fields/radio/radio-root.d.ts +27 -0
  288. package/dist/components/fields/radio/radio-root.js +40 -0
  289. package/dist/components/fields/radio/radio-root.js.map +1 -0
  290. package/dist/components/fields/radio-card/index.d.ts +2 -0
  291. package/dist/components/fields/radio-card/index.js +2 -0
  292. package/dist/components/fields/radio-card/index.parts.d.ts +12 -0
  293. package/dist/components/fields/radio-card/index.parts.js +18 -0
  294. package/dist/components/fields/radio-card/index.parts.js.map +1 -0
  295. package/dist/components/fields/radio-card/radio-card-description.d.ts +14 -0
  296. package/dist/components/fields/radio-card/radio-card-description.js +34 -0
  297. package/dist/components/fields/radio-card/radio-card-description.js.map +1 -0
  298. package/dist/components/fields/radio-card/radio-card-group.d.ts +41 -0
  299. package/dist/components/fields/radio-card/radio-card-group.js +51 -0
  300. package/dist/components/fields/radio-card/radio-card-group.js.map +1 -0
  301. package/dist/components/fields/radio-card/radio-card-indicator.d.ts +24 -0
  302. package/dist/components/fields/radio-card/radio-card-indicator.js +67 -0
  303. package/dist/components/fields/radio-card/radio-card-indicator.js.map +1 -0
  304. package/dist/components/fields/radio-card/radio-card-item-variants.d.ts +25 -0
  305. package/dist/components/fields/radio-card/radio-card-item-variants.js +83 -0
  306. package/dist/components/fields/radio-card/radio-card-item-variants.js.map +1 -0
  307. package/dist/components/fields/radio-card/radio-card-item.d.ts +33 -0
  308. package/dist/components/fields/radio-card/radio-card-item.js +60 -0
  309. package/dist/components/fields/radio-card/radio-card-item.js.map +1 -0
  310. package/dist/components/fields/radio-card/radio-card-title.d.ts +14 -0
  311. package/dist/components/fields/radio-card/radio-card-title.js +34 -0
  312. package/dist/components/fields/radio-card/radio-card-title.js.map +1 -0
  313. package/dist/components/fields/radio-card/use-radio-card-context.d.ts +25 -0
  314. package/dist/components/fields/radio-card/use-radio-card-context.js +14 -0
  315. package/dist/components/fields/radio-card/use-radio-card-context.js.map +1 -0
  316. package/dist/components/fields/radio-card/use-radio-card-item-context.d.ts +12 -0
  317. package/dist/components/fields/radio-card/use-radio-card-item-context.js +10 -0
  318. package/dist/components/fields/radio-card/use-radio-card-item-context.js.map +1 -0
  319. package/dist/components/fields/segmented-control/index.d.ts +2 -0
  320. package/dist/components/fields/segmented-control/index.js +2 -0
  321. package/dist/components/fields/segmented-control/index.parts.d.ts +10 -0
  322. package/dist/components/fields/segmented-control/index.parts.js +14 -0
  323. package/dist/components/fields/segmented-control/index.parts.js.map +1 -0
  324. package/dist/components/fields/segmented-control/segmented-control-indicator.d.ts +21 -0
  325. package/dist/components/fields/segmented-control/segmented-control-indicator.js +50 -0
  326. package/dist/components/fields/segmented-control/segmented-control-indicator.js.map +1 -0
  327. package/dist/components/fields/segmented-control/segmented-control-item-variants.d.ts +16 -0
  328. package/dist/components/fields/segmented-control/segmented-control-item-variants.js +72 -0
  329. package/dist/components/fields/segmented-control/segmented-control-item-variants.js.map +1 -0
  330. package/dist/components/fields/segmented-control/segmented-control-item.d.ts +17 -0
  331. package/dist/components/fields/segmented-control/segmented-control-item.js +29 -0
  332. package/dist/components/fields/segmented-control/segmented-control-item.js.map +1 -0
  333. package/dist/components/fields/segmented-control/segmented-control-root-variants.d.ts +21 -0
  334. package/dist/components/fields/segmented-control/segmented-control-root-variants.js +66 -0
  335. package/dist/components/fields/segmented-control/segmented-control-root-variants.js.map +1 -0
  336. package/dist/components/fields/segmented-control/segmented-control-root.d.ts +41 -0
  337. package/dist/components/fields/segmented-control/segmented-control-root.js +65 -0
  338. package/dist/components/fields/segmented-control/segmented-control-root.js.map +1 -0
  339. package/dist/components/fields/segmented-control/use-segmented-control-context.d.ts +33 -0
  340. package/dist/components/fields/segmented-control/use-segmented-control-context.js +15 -0
  341. package/dist/components/fields/segmented-control/use-segmented-control-context.js.map +1 -0
  342. package/dist/components/fields/segmented-control/use-segmented-control-indicator.d.ts +22 -0
  343. package/dist/components/fields/segmented-control/use-segmented-control-indicator.js +67 -0
  344. package/dist/components/fields/segmented-control/use-segmented-control-indicator.js.map +1 -0
  345. package/dist/components/fields/switch/switch-root-variants.d.ts +1 -1
  346. package/dist/components/fields/switch/switch-root-variants.js +3 -3
  347. package/dist/components/fields/switch/switch-root-variants.js.map +1 -1
  348. package/dist/components/fields/textarea/textarea-variants.js +3 -3
  349. package/dist/components/fields/textarea/textarea-variants.js.map +1 -1
  350. package/dist/components/layout/group/group-variants.d.ts +43 -0
  351. package/dist/components/layout/group/group-variants.js +72 -0
  352. package/dist/components/layout/group/group-variants.js.map +1 -0
  353. package/dist/components/layout/group/group.d.ts +38 -0
  354. package/dist/components/layout/group/group.js +55 -0
  355. package/dist/components/layout/group/group.js.map +1 -0
  356. package/dist/components/layout/group/index.d.ts +3 -0
  357. package/dist/components/layout/group/index.js +2 -0
  358. package/dist/components/layout/scroll-area/scroll-area-thumb.js +3 -3
  359. package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +1 -1
  360. package/dist/components/layout/separator/separator-variants.d.ts +1 -1
  361. package/dist/components/layout/separator/separator-variants.js +1 -1
  362. package/dist/components/layout/separator/separator-variants.js.map +1 -1
  363. package/dist/components/overlays/action-bar/action-bar-selection-trigger.js +2 -2
  364. package/dist/components/overlays/action-bar/action-bar-selection-trigger.js.map +1 -1
  365. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.d.ts +1 -2
  366. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js +1 -2
  367. package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js.map +1 -1
  368. package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts +1 -1
  369. package/dist/components/overlays/alert-dialog/alert-dialog-body.js +1 -1
  370. package/dist/components/overlays/alert-dialog/alert-dialog-body.js.map +1 -1
  371. package/dist/components/overlays/alert-dialog/alert-dialog-description.d.ts +1 -2
  372. package/dist/components/overlays/alert-dialog/alert-dialog-description.js +1 -2
  373. package/dist/components/overlays/alert-dialog/alert-dialog-description.js.map +1 -1
  374. package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts +1 -1
  375. package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +1 -1
  376. package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
  377. package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +1 -1
  378. package/dist/components/overlays/alert-dialog/alert-dialog-header.js +1 -1
  379. package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
  380. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +1 -1
  381. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +1 -1
  382. package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
  383. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +2 -2
  384. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +2 -2
  385. package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -1
  386. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -4
  387. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +4 -4
  388. package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
  389. package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +1 -1
  390. package/dist/components/overlays/alert-dialog/alert-dialog-title.js +1 -1
  391. package/dist/components/overlays/alert-dialog/alert-dialog-title.js.map +1 -1
  392. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.d.ts +1 -2
  393. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js +1 -2
  394. package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js.map +1 -1
  395. package/dist/components/overlays/dialog/dialog-backdrop.d.ts +1 -2
  396. package/dist/components/overlays/dialog/dialog-backdrop.js +1 -2
  397. package/dist/components/overlays/dialog/dialog-backdrop.js.map +1 -1
  398. package/dist/components/overlays/dialog/dialog-body.d.ts +5 -5
  399. package/dist/components/overlays/dialog/dialog-body.js +5 -5
  400. package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
  401. package/dist/components/overlays/dialog/dialog-description.d.ts +4 -4
  402. package/dist/components/overlays/dialog/dialog-description.js +4 -4
  403. package/dist/components/overlays/dialog/dialog-description.js.map +1 -1
  404. package/dist/components/overlays/dialog/dialog-footer.d.ts +5 -6
  405. package/dist/components/overlays/dialog/dialog-footer.js +5 -6
  406. package/dist/components/overlays/dialog/dialog-footer.js.map +1 -1
  407. package/dist/components/overlays/dialog/dialog-header.d.ts +5 -6
  408. package/dist/components/overlays/dialog/dialog-header.js +5 -6
  409. package/dist/components/overlays/dialog/dialog-header.js.map +1 -1
  410. package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +4 -4
  411. package/dist/components/overlays/dialog/dialog-popup-variants.js +4 -4
  412. package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
  413. package/dist/components/overlays/dialog/dialog-title.d.ts +5 -5
  414. package/dist/components/overlays/dialog/dialog-title.js +5 -5
  415. package/dist/components/overlays/dialog/dialog-title.js.map +1 -1
  416. package/dist/components/overlays/dialog/dialog-viewport.d.ts +2 -2
  417. package/dist/components/overlays/dialog/dialog-viewport.js +2 -2
  418. package/dist/components/overlays/dialog/dialog-viewport.js.map +1 -1
  419. package/dist/components/overlays/drawer/drawer-backdrop.d.ts +1 -1
  420. package/dist/components/overlays/drawer/drawer-backdrop.js +1 -1
  421. package/dist/components/overlays/drawer/drawer-backdrop.js.map +1 -1
  422. package/dist/components/overlays/drawer/drawer-body.d.ts +3 -3
  423. package/dist/components/overlays/drawer/drawer-body.js +3 -3
  424. package/dist/components/overlays/drawer/drawer-body.js.map +1 -1
  425. package/dist/components/overlays/drawer/drawer-description.d.ts +1 -2
  426. package/dist/components/overlays/drawer/drawer-description.js +1 -2
  427. package/dist/components/overlays/drawer/drawer-description.js.map +1 -1
  428. package/dist/components/overlays/drawer/drawer-footer.d.ts +1 -2
  429. package/dist/components/overlays/drawer/drawer-footer.js +1 -2
  430. package/dist/components/overlays/drawer/drawer-footer.js.map +1 -1
  431. package/dist/components/overlays/drawer/drawer-header.d.ts +1 -2
  432. package/dist/components/overlays/drawer/drawer-header.js +1 -2
  433. package/dist/components/overlays/drawer/drawer-header.js.map +1 -1
  434. package/dist/components/overlays/drawer/drawer-popup-variants.d.ts +1 -1
  435. package/dist/components/overlays/drawer/drawer-popup-variants.js +1 -2
  436. package/dist/components/overlays/drawer/drawer-popup-variants.js.map +1 -1
  437. package/dist/components/overlays/drawer/drawer-title.d.ts +1 -2
  438. package/dist/components/overlays/drawer/drawer-title.js +1 -2
  439. package/dist/components/overlays/drawer/drawer-title.js.map +1 -1
  440. package/dist/components/overlays/menu/create-handle.d.ts +10 -0
  441. package/dist/components/overlays/menu/create-handle.js +11 -0
  442. package/dist/components/overlays/menu/create-handle.js.map +1 -0
  443. package/dist/components/overlays/menu/index.parts.d.ts +21 -3
  444. package/dist/components/overlays/menu/index.parts.js +38 -2
  445. package/dist/components/overlays/menu/index.parts.js.map +1 -1
  446. package/dist/components/overlays/menu/menu-arrow.d.ts +17 -0
  447. package/dist/components/overlays/menu/menu-arrow.js +48 -0
  448. package/dist/components/overlays/menu/menu-arrow.js.map +1 -0
  449. package/dist/components/overlays/menu/menu-backdrop.d.ts +16 -0
  450. package/dist/components/overlays/menu/menu-backdrop.js +36 -0
  451. package/dist/components/overlays/menu/menu-backdrop.js.map +1 -0
  452. package/dist/components/overlays/menu/menu-checkbox-item-indicator.d.ts +16 -0
  453. package/dist/components/overlays/menu/menu-checkbox-item-indicator.js +27 -0
  454. package/dist/components/overlays/menu/menu-checkbox-item-indicator.js.map +1 -0
  455. package/dist/components/overlays/menu/menu-checkbox-item.d.ts +24 -0
  456. package/dist/components/overlays/menu/menu-checkbox-item.js +31 -0
  457. package/dist/components/overlays/menu/menu-checkbox-item.js.map +1 -0
  458. package/dist/components/overlays/menu/menu-clear.d.ts +20 -0
  459. package/dist/components/overlays/menu/menu-clear.js +45 -0
  460. package/dist/components/overlays/menu/menu-clear.js.map +1 -0
  461. package/dist/components/overlays/menu/menu-empty.d.ts +18 -0
  462. package/dist/components/overlays/menu/menu-empty.js +32 -0
  463. package/dist/components/overlays/menu/menu-empty.js.map +1 -0
  464. package/dist/components/overlays/menu/menu-filter-provider.d.ts +43 -0
  465. package/dist/components/overlays/menu/menu-filter-provider.js +42 -0
  466. package/dist/components/overlays/menu/menu-filter-provider.js.map +1 -0
  467. package/dist/components/overlays/menu/menu-group-label.d.ts +1 -1
  468. package/dist/components/overlays/menu/menu-group-label.js +1 -1
  469. package/dist/components/overlays/menu/menu-group-label.js.map +1 -1
  470. package/dist/components/overlays/menu/menu-input.d.ts +22 -0
  471. package/dist/components/overlays/menu/menu-input.js +58 -0
  472. package/dist/components/overlays/menu/menu-input.js.map +1 -0
  473. package/dist/components/overlays/menu/menu-item-variants.d.ts +2 -2
  474. package/dist/components/overlays/menu/menu-item-variants.js +7 -7
  475. package/dist/components/overlays/menu/menu-item-variants.js.map +1 -1
  476. package/dist/components/overlays/menu/menu-link-item.d.ts +19 -0
  477. package/dist/components/overlays/menu/menu-link-item.js +28 -0
  478. package/dist/components/overlays/menu/menu-link-item.js.map +1 -0
  479. package/dist/components/overlays/menu/menu-list.d.ts +25 -0
  480. package/dist/components/overlays/menu/menu-list.js +43 -0
  481. package/dist/components/overlays/menu/menu-list.js.map +1 -0
  482. package/dist/components/overlays/menu/menu-popup.d.ts +7 -6
  483. package/dist/components/overlays/menu/menu-popup.js +9 -9
  484. package/dist/components/overlays/menu/menu-popup.js.map +1 -1
  485. package/dist/components/overlays/menu/menu-positioner.d.ts +5 -1
  486. package/dist/components/overlays/menu/menu-positioner.js +11 -2
  487. package/dist/components/overlays/menu/menu-positioner.js.map +1 -1
  488. package/dist/components/overlays/menu/menu-radio-group.d.ts +17 -0
  489. package/dist/components/overlays/menu/menu-radio-group.js +22 -0
  490. package/dist/components/overlays/menu/menu-radio-group.js.map +1 -0
  491. package/dist/components/overlays/menu/menu-radio-item-indicator.d.ts +16 -0
  492. package/dist/components/overlays/menu/menu-radio-item-indicator.js +34 -0
  493. package/dist/components/overlays/menu/menu-radio-item-indicator.js.map +1 -0
  494. package/dist/components/overlays/menu/menu-radio-item.d.ts +21 -0
  495. package/dist/components/overlays/menu/menu-radio-item.js +30 -0
  496. package/dist/components/overlays/menu/menu-radio-item.js.map +1 -0
  497. package/dist/components/overlays/menu/menu-root.d.ts +15 -6
  498. package/dist/components/overlays/menu/menu-root.js +15 -6
  499. package/dist/components/overlays/menu/menu-root.js.map +1 -1
  500. package/dist/components/overlays/menu/menu-separator.d.ts +6 -1
  501. package/dist/components/overlays/menu/menu-separator.js +6 -1
  502. package/dist/components/overlays/menu/menu-separator.js.map +1 -1
  503. package/dist/components/overlays/menu/menu-submenu-root.d.ts +39 -0
  504. package/dist/components/overlays/menu/menu-submenu-root.js +42 -0
  505. package/dist/components/overlays/menu/menu-submenu-root.js.map +1 -0
  506. package/dist/components/overlays/menu/menu-submenu-trigger.d.ts +21 -0
  507. package/dist/components/overlays/menu/menu-submenu-trigger.js +40 -0
  508. package/dist/components/overlays/menu/menu-submenu-trigger.js.map +1 -0
  509. package/dist/components/overlays/menu/menu-viewport.d.ts +19 -0
  510. package/dist/components/overlays/menu/menu-viewport.js +51 -0
  511. package/dist/components/overlays/menu/menu-viewport.js.map +1 -0
  512. package/dist/components/overlays/menu/use-filter.d.ts +19 -0
  513. package/dist/components/overlays/menu/use-filter.js +19 -0
  514. package/dist/components/overlays/menu/use-filter.js.map +1 -0
  515. package/dist/components/overlays/menu/use-menu-submenu-context.d.ts +9 -0
  516. package/dist/components/overlays/menu/use-menu-submenu-context.js +12 -0
  517. package/dist/components/overlays/menu/use-menu-submenu-context.js.map +1 -0
  518. package/dist/components/overlays/popover/popover-arrow.d.ts +2 -2
  519. package/dist/components/overlays/popover/popover-arrow.js +2 -2
  520. package/dist/components/overlays/popover/popover-arrow.js.map +1 -1
  521. package/dist/components/overlays/popover/popover-backdrop.d.ts +5 -4
  522. package/dist/components/overlays/popover/popover-backdrop.js +5 -4
  523. package/dist/components/overlays/popover/popover-backdrop.js.map +1 -1
  524. package/dist/components/overlays/popover/popover-popup-variants.d.ts +3 -2
  525. package/dist/components/overlays/popover/popover-popup-variants.js +3 -2
  526. package/dist/components/overlays/popover/popover-popup-variants.js.map +1 -1
  527. package/dist/components/overlays/popover/popover-positioner.d.ts +4 -3
  528. package/dist/components/overlays/popover/popover-positioner.js +4 -3
  529. package/dist/components/overlays/popover/popover-positioner.js.map +1 -1
  530. package/dist/components/overlays/popover/popover-viewport.d.ts +4 -4
  531. package/dist/components/overlays/popover/popover-viewport.js +4 -4
  532. package/dist/components/overlays/popover/popover-viewport.js.map +1 -1
  533. package/dist/components/typography/highlight/highlight.d.ts +35 -0
  534. package/dist/components/typography/highlight/highlight.js +43 -0
  535. package/dist/components/typography/highlight/highlight.js.map +1 -0
  536. package/dist/components/typography/highlight/index.d.ts +2 -0
  537. package/dist/components/typography/highlight/index.js +2 -0
  538. package/dist/components/typography/kbd/kbd-variants.d.ts +1 -1
  539. package/dist/components/typography/kbd/kbd-variants.js +9 -9
  540. package/dist/components/typography/kbd/kbd-variants.js.map +1 -1
  541. package/dist/components/typography/link/link-variants.d.ts +2 -2
  542. package/dist/components/typography/link/link-variants.js +24 -24
  543. package/dist/components/typography/link/link-variants.js.map +1 -1
  544. package/dist/components/typography/mark/mark-variants.d.ts +9 -3
  545. package/dist/components/typography/mark/mark-variants.js +25 -21
  546. package/dist/components/typography/mark/mark-variants.js.map +1 -1
  547. package/dist/components/typography/pre/pre-variants.d.ts +1 -1
  548. package/dist/components/typography/pre/pre-variants.js +25 -25
  549. package/dist/components/typography/pre/pre-variants.js.map +1 -1
  550. package/dist/types/color-scheme.d.ts +2 -2
  551. package/package.json +17 -5
  552. package/src/theme/theme.css +1268 -1228
@@ -1 +1 @@
1
- {"version":3,"file":"field-root.js","names":["BaseField"],"sources":["../../../../src/components/fields/field/field-root.tsx"],"sourcesContent":["import { Field as BaseField } from '@base-ui/react/field';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeStateClassNames } from '#utils';\nimport { type FieldVariants, fieldRootVariants } from './field-root-variants';\n\nexport type FieldRootProps = MergeOverride<BaseField.Root.Props, FieldVariants>;\n\nexport type FieldRootState = BaseField.Root.State;\n\nexport type FieldRootActions = BaseField.Root.Actions;\n\nconst splitVariantProps = createSplitProps<FieldVariants>();\n\n/**\n * Agrupa rótulo, controle, descrição e erro de um campo. Repassa ao controle dentro dele o\n * `name`, o `disabled` (inclusive o que vem de um `Fieldset` em volta) e a validação, e liga o\n * rótulo e a descrição ao controle por `id`.\n *\n * O `size` vale só para os textos do campo: o controle recebe o próprio `size`, com o mesmo\n * valor.\n *\n * `invalid`, `dirty` e `touched` existem para uma lib de formulário externa (React Hook Form)\n * controlar o estado. Com `invalid` vindo de fora, o `Field.Error` só aparece com `match`.\n *\n * @example\n * ```tsx\n * <Field.Root name=\"email\">\n * <Field.Label>E-mail</Field.Label>\n * <Input\n * type=\"email\"\n * required\n * />\n * <Field.Description>Usado para recuperar a senha.</Field.Description>\n * <Field.Error />\n * </Field.Root>\n * ```\n */\nexport const FieldRoot = (props: FieldRootProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, ['size']);\n\n const { className, ...rest } = elementProps;\n\n return (\n <BaseField.Root\n data-component=\"Field.Root\"\n className={mergeStateClassNames(\n fieldRootVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nFieldRoot.displayName = 'Field.Root';\n"],"mappings":";;;;;;AAcA,MAAM,oBAAoB,iBAAgC;;;;;;;;;;;;;;;;;;;;;;;;;AA0B1D,MAAa,aAAa,UAA0B;CAClD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAAC,MAAM,CAAC;CAEtE,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,MAAU,MAAX;EACE,kBAAe;EACf,WAAW,qBACT,kBAAkB,YAAY,GAC9B,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,UAAU,cAAc"}
1
+ {"version":3,"file":"field-root.js","names":["BaseField"],"sources":["../../../../src/components/fields/field/field-root.tsx"],"sourcesContent":["import { Field as BaseField } from '@base-ui/react/field';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeStateClassNames } from '#utils';\nimport { type FieldVariants, fieldRootVariants } from './field-root-variants';\n\nexport type FieldRootProps = MergeOverride<BaseField.Root.Props, FieldVariants>;\n\nexport type FieldRootState = BaseField.Root.State;\n\nexport type FieldRootActions = BaseField.Root.Actions;\n\nconst splitVariantProps = createSplitProps<FieldVariants>();\n\n/**\n * Agrupa rótulo, controle, descrição e erro de um campo. Repassa ao controle dentro dele o\n * `name`, o `disabled` (inclusive o que vem de um `Fieldset` em volta) e a validação, e liga o\n * rótulo e a descrição ao controle por `id`. Não há `Field.Control`: o `Input` e os demais campos\n * da lib já se ligam ao `Field` sozinhos.\n *\n * O `size` vale só para os textos do campo: o controle recebe o próprio `size`, com o mesmo\n * valor.\n *\n * `invalid`, `dirty` e `touched` existem para uma lib de formulário externa (React Hook Form)\n * controlar o estado. Com `invalid` vindo de fora, o `Field.Error` só aparece com `match`.\n *\n * @example\n * ```tsx\n * <Field.Root name=\"email\">\n * <Field.Label>E-mail</Field.Label>\n * <Input\n * type=\"email\"\n * required\n * />\n * <Field.Description>Usado para recuperar a senha.</Field.Description>\n * <Field.Error />\n * </Field.Root>\n * ```\n */\nexport const FieldRoot = (props: FieldRootProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, ['size']);\n\n const { className, ...rest } = elementProps;\n\n return (\n <BaseField.Root\n data-component=\"Field.Root\"\n className={mergeStateClassNames(\n fieldRootVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nFieldRoot.displayName = 'Field.Root';\n"],"mappings":";;;;;;AAcA,MAAM,oBAAoB,iBAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;AA2B1D,MAAa,aAAa,UAA0B;CAClD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAAC,MAAM,CAAC;CAEtE,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,MAAU,MAAX;EACE,kBAAe;EACf,WAAW,qBACT,kBAAkB,YAAY,GAC9B,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,UAAU,cAAc"}
@@ -18,9 +18,10 @@ export type InputVariants = {
18
18
  export declare const inputDefaultVariants: Required<InputVariants>;
19
19
  /**
20
20
  * Origem do visual dos campos de formulário: o `Textarea`, o `NumberInput`, o `CurrencyBrlInput`, o
21
- * `PatternInput`, o trigger do `Select` e o `Autocomplete.Input` copiam estas classes, cada um com as suas diferenças
22
- * (tabela no README de `fields`). Uma mudança aqui vale para as cópias na mesma rodada. O
23
- * `PasswordInput` usa o próprio `Input`, mas repete o padding horizontal de cada `size`.
21
+ * `PatternInput`, o trigger do `Select`, o `Autocomplete.Input`, o campo do `AsyncSelect` e o
22
+ * `InputGroup` (a caixa) copiam estas classes, cada um com as suas diferenças, explicadas no JSDoc
23
+ * de cada cópia. Uma mudança aqui vale para as cópias na mesma rodada. O `PasswordInput` usa o
24
+ * próprio `Input`, mas repete o padding horizontal de cada `size`.
24
25
  *
25
26
  * O anel de foco é um `outline` de 1px dentro da caixa, colado na borda, que também pinta a borda
26
27
  * com `--input-focus-color`: preto no tema claro, branco no escuro. Ele vale para
@@ -6,9 +6,10 @@ const inputDefaultVariants = {
6
6
  };
7
7
  /**
8
8
  * Origem do visual dos campos de formulário: o `Textarea`, o `NumberInput`, o `CurrencyBrlInput`, o
9
- * `PatternInput`, o trigger do `Select` e o `Autocomplete.Input` copiam estas classes, cada um com as suas diferenças
10
- * (tabela no README de `fields`). Uma mudança aqui vale para as cópias na mesma rodada. O
11
- * `PasswordInput` usa o próprio `Input`, mas repete o padding horizontal de cada `size`.
9
+ * `PatternInput`, o trigger do `Select`, o `Autocomplete.Input`, o campo do `AsyncSelect` e o
10
+ * `InputGroup` (a caixa) copiam estas classes, cada um com as suas diferenças, explicadas no JSDoc
11
+ * de cada cópia. Uma mudança aqui vale para as cópias na mesma rodada. O `PasswordInput` usa o
12
+ * próprio `Input`, mas repete o padding horizontal de cada `size`.
12
13
  *
13
14
  * O anel de foco é um `outline` de 1px dentro da caixa, colado na borda, que também pinta a borda
14
15
  * com `--input-focus-color`: preto no tema claro, branco no escuro. Ele vale para
@@ -50,16 +51,16 @@ const inputVariants = cva([
50
51
  "data-disabled:opacity-50",
51
52
  "data-disabled:cursor-not-allowed",
52
53
  "data-invalid:border-red-9",
53
- "data-invalid:[--input-focus-color:var(--color-red-9)]",
54
+ "data-invalid:[--input-focus-color:var(--red-9)]",
54
55
  "aria-invalid:border-red-9",
55
- "aria-invalid:[--input-focus-color:var(--color-red-9)]"
56
+ "aria-invalid:[--input-focus-color:var(--red-9)]"
56
57
  ], {
57
58
  variants: {
58
59
  variant: {
59
60
  outline: [
60
61
  "bg-white/90",
61
62
  "dark:bg-black/90",
62
- "border-gray-alpha-7"
63
+ "border-gray-7"
63
64
  ],
64
65
  subtle: ["bg-gray-4", "border-transparent"]
65
66
  },
@@ -1 +1 @@
1
- {"version":3,"file":"input-variants.js","names":[],"sources":["../../../../src/components/fields/input/input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type InputVariants = {\n /**\n * Altura, padding e tamanho do texto. `sm` = `h-9`, `md` = `h-10`, alinhado aos outros\n * controles de formulário. Substitui o atributo nativo `size`: a largura vem do CSS. Em tela\n * de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const inputDefaultVariants: Required<InputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Origem do visual dos campos de formulário: o `Textarea`, o `NumberInput`, o `CurrencyBrlInput`, o\n * `PatternInput`, o trigger do `Select` e o `Autocomplete.Input` copiam estas classes, cada um com as suas diferenças\n * (tabela no README de `fields`). Uma mudança aqui vale para as cópias na mesma rodada. O\n * `PasswordInput` usa o próprio `Input`, mas repete o padding horizontal de cada `size`.\n *\n * O anel de foco é um `outline` de 1px dentro da caixa, colado na borda, que também pinta a borda\n * com `--input-focus-color`: preto no tema claro, branco no escuro. Ele vale para\n * `:focus-visible` e para o `data-focused` do `Field`, com as mesmas classes nos dois — o\n * `focus-ring-inside` do tema não reage a `data-focused`.\n *\n * Inválido troca `--input-focus-color` e a borda pelo vermelho, pelo `data-invalid` do `Field` ou\n * pelo `aria-invalid` de quem valida fora dele. O `:user-invalid` fica de fora: ele segue a\n * validação nativa por conta própria e pintaria o campo antes de quem valida mostrar o erro (num\n * `Field` com `validationMode=\"onSubmit\"` ou numa lib de formulário).\n */\nexport const inputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'placeholder:text-gray-11/80',\n 'data-placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--input-focus-color:var(--color-black)]',\n 'dark:[--input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--input-focus-color)',\n 'focus-visible:border-(--input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--input-focus-color)',\n 'data-focused:border-(--input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--input-focus-color:var(--color-red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--input-focus-color:var(--color-red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-alpha-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': [\n 'h-7',\n 'min-w-7',\n\n 'px-2',\n\n 'text-xs',\n // Em tela de toque, 16px: abaixo disso o Safari do iPhone dá zoom ao focar o campo.\n 'any-pointer-coarse:text-base',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'px-2',\n\n 'text-xs',\n 'any-pointer-coarse:text-base',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'px-2.5',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'px-3',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'px-4',\n\n 'text-base',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'px-4.5',\n\n 'text-base',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'px-5',\n\n 'text-lg',\n ],\n },\n },\n defaultVariants: {\n size: inputDefaultVariants.size,\n variant: inputDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAmBA,MAAa,uBAAgD;CAC3D,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;;;;;;AAkBA,MAAa,gBAAgB,IAC3B;CACE;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;IACP;IACA;IAEA;GACF;GACA,QAAQ,CACN,aAEA,oBACF;EACF;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;GACF;EACF;CACF;CACA,iBAAiB;EACf,MAAM,qBAAqB;EAC3B,SAAS,qBAAqB;CAChC;AACF,CACF"}
1
+ {"version":3,"file":"input-variants.js","names":[],"sources":["../../../../src/components/fields/input/input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type InputVariants = {\n /**\n * Altura, padding e tamanho do texto. `sm` = `h-9`, `md` = `h-10`, alinhado aos outros\n * controles de formulário. Substitui o atributo nativo `size`: a largura vem do CSS. Em tela\n * de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const inputDefaultVariants: Required<InputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Origem do visual dos campos de formulário: o `Textarea`, o `NumberInput`, o `CurrencyBrlInput`, o\n * `PatternInput`, o trigger do `Select`, o `Autocomplete.Input`, o campo do `AsyncSelect` e o\n * `InputGroup` (a caixa) copiam estas classes, cada um com as suas diferenças, explicadas no JSDoc\n * de cada cópia. Uma mudança aqui vale para as cópias na mesma rodada. O `PasswordInput` usa o\n * próprio `Input`, mas repete o padding horizontal de cada `size`.\n *\n * O anel de foco é um `outline` de 1px dentro da caixa, colado na borda, que também pinta a borda\n * com `--input-focus-color`: preto no tema claro, branco no escuro. Ele vale para\n * `:focus-visible` e para o `data-focused` do `Field`, com as mesmas classes nos dois — o\n * `focus-ring-inside` do tema não reage a `data-focused`.\n *\n * Inválido troca `--input-focus-color` e a borda pelo vermelho, pelo `data-invalid` do `Field` ou\n * pelo `aria-invalid` de quem valida fora dele. O `:user-invalid` fica de fora: ele segue a\n * validação nativa por conta própria e pintaria o campo antes de quem valida mostrar o erro (num\n * `Field` com `validationMode=\"onSubmit\"` ou numa lib de formulário).\n */\nexport const inputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'placeholder:text-gray-11/80',\n 'data-placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--input-focus-color:var(--color-black)]',\n 'dark:[--input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--input-focus-color)',\n 'focus-visible:border-(--input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--input-focus-color)',\n 'data-focused:border-(--input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--input-focus-color:var(--red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--input-focus-color:var(--red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': [\n 'h-7',\n 'min-w-7',\n\n 'px-2',\n\n 'text-xs',\n // Em tela de toque, 16px: abaixo disso o Safari do iPhone dá zoom ao focar o campo.\n 'any-pointer-coarse:text-base',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'px-2',\n\n 'text-xs',\n 'any-pointer-coarse:text-base',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'px-2.5',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'px-3',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'px-4',\n\n 'text-base',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'px-4.5',\n\n 'text-base',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'px-5',\n\n 'text-lg',\n ],\n },\n },\n defaultVariants: {\n size: inputDefaultVariants.size,\n variant: inputDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAmBA,MAAa,uBAAgD;CAC3D,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;;;;;;;AAmBA,MAAa,gBAAgB,IAC3B;CACE;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;IACP;IACA;IAEA;GACF;GACA,QAAQ,CACN,aAEA,oBACF;EACF;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;GACF;EACF;CACF;CACA,iBAAiB;EACf,MAAM,qBAAqB;EAC3B,SAAS,qBAAqB;CAChC;AACF,CACF"}
@@ -0,0 +1,3 @@
1
+ import { InputGroupVariants } from "./input-group-variants.js";
2
+ import { InputGroup, InputGroupProps } from "./input-group.js";
3
+ export { InputGroup, type InputGroupProps, type InputGroupVariants };
@@ -0,0 +1,2 @@
1
+ import { InputGroup } from "./input-group.js";
2
+ export { InputGroup };
@@ -0,0 +1,81 @@
1
+ //#region src/components/fields/input-group/input-group-variants.d.ts
2
+ export type InputGroupVariants = {
3
+ /**
4
+ * Altura, padding e tamanho do texto, os mesmos do `Input`, e o tamanho do ícone e do texto dos
5
+ * elementos e addons. `sm` = `h-9`, `md` = `h-10`, alinhado aos outros controles de formulário.
6
+ * O campo de dentro recebe o mesmo `size`, para o texto bater com o dos elementos.
7
+ *
8
+ * @default 'sm'
9
+ */
10
+ size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
11
+ /**
12
+ * Fundo e borda da caixa, os mesmos do `Input`. O addon acompanha: sem fundo próprio no
13
+ * `outline`, mais escuro que a caixa no `subtle`.
14
+ *
15
+ * @default 'outline'
16
+ */
17
+ variant?: 'outline' | 'subtle';
18
+ };
19
+ export declare const inputGroupDefaultVariants: Required<InputGroupVariants>;
20
+ /**
21
+ * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do
22
+ * mesmo jeito, explicados lá. A caixa (`data-slot="control"`) é quem desenha a borda, o raio, o
23
+ * fundo e o anel, e o `<input>` de dentro fica sem caixa. As diferenças:
24
+ * - `flex items-stretch overflow-hidden`: o campo e os elementos dividem a caixa;
25
+ * - o estado vem do `<input>` filho, por `has-[]`, porque é nele que o Base UI escreve o
26
+ * `data-focused`, o `data-invalid`, o `data-disabled` e o `disabled`. Só o filho direto conta:
27
+ * um botão com foco dentro de um elemento não acende o anel;
28
+ * - `--input-group-focus-color` no lugar de `--input-focus-color`;
29
+ * - sem `appearance-none`, `text-start` e `placeholder`, que são do `<input>`;
30
+ * - sem `text-*`: o texto é do campo e dos elementos.
31
+ *
32
+ * O campo de dentro (`Input`, `NumberInput`, `PatternInput`, `CurrencyBrlInput`, qualquer
33
+ * `<input>` filho direto) é neutralizado por seletor: sem borda, raio, fundo nem anel, ocupando o
34
+ * que sobra da linha (`flex-1 min-w-0`) na altura toda, e sem a opacidade do desabilitado, porque
35
+ * a caixa já esmaece e as duas juntas dariam 25%. Cada regra da caixa (`.caixa > input`, 0,1,1)
36
+ * vence a do campo (`.x`, 0,1,0), e as de estado (`.caixa > input:focus-visible`, 0,2,1) vencem as
37
+ * do campo (`.x:focus-visible`, 0,2,0). Uma classe nova no `inputVariants` que o campo escreva
38
+ * precisa de um par aqui, ou o campo volta a desenhar a própria caixa dentro do grupo.
39
+ *
40
+ * Os elementos ficam sem padding do lado do campo, e o campo reduz o padding daquele lado para
41
+ * 8px (`ps-2`, `pe-2`): a folga do elemento até o texto é um respiro curto, e não a soma do
42
+ * padding dos dois.
43
+ *
44
+ * O padding horizontal de cada `size` (`--input-group-px`) vem do `inputGroupPaddingVariants`,
45
+ * que fica no elemento de fora do componente: a própria caixa, ou o `Group` quando há addon, para
46
+ * o addon, irmão da caixa, ler o mesmo valor.
47
+ */
48
+ export declare const inputGroupVariants: (props?: ({
49
+ variant?: "subtle" | "outline" | null | undefined;
50
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
51
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
52
+ /**
53
+ * O padding horizontal de cada `size`, lido pelos elementos e pelos addons. Fica no elemento de
54
+ * fora do componente (ver `inputGroupVariants`).
55
+ */
56
+ export declare const inputGroupPaddingVariants: (props?: ({
57
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
58
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
59
+ /**
60
+ * O elemento (`startElement`, `endElement`) fica dentro da caixa, sem fundo nem borda. Tem padding
61
+ * só do lado de fora (`placement`): o respiro do lado do campo vem do `ps-2`/`pe-2` que a caixa dá
62
+ * ao campo, explicado no `inputGroupVariants`. Um botão ocupa o lugar de um ícone com 4px de folga
63
+ * do lado de fora e o anel de foco encostado nele (offset 0), sem passar da caixa, que corta o que
64
+ * sai dela.
65
+ */
66
+ export declare const inputGroupElementVariants: (props?: ({
67
+ placement?: "start" | "end" | null | undefined;
68
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
69
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
70
+ /**
71
+ * O addon (`startAddon`, `endAddon`) é uma caixa irmã da caixa do campo, como o campo `outline`
72
+ * ou `subtle`, com a borda própria e o fundo um passo acima do da caixa para se distinguir dela.
73
+ * O `Group` tira os cantos de dentro e sobrepõe a borda; no foco, a caixa sobe e a borda dela
74
+ * aparece inteira sobre a do addon. O anel de foco fica só na caixa, e o inválido também.
75
+ */
76
+ export declare const inputGroupAddonVariants: (props?: ({
77
+ variant?: "subtle" | "outline" | null | undefined;
78
+ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
79
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
80
+ //#endregion
81
+ //# sourceMappingURL=input-group-variants.d.ts.map
@@ -0,0 +1,212 @@
1
+ import { cva } from "class-variance-authority";
2
+ //#region src/components/fields/input-group/input-group-variants.ts
3
+ const inputGroupDefaultVariants = {
4
+ size: "sm",
5
+ variant: "outline"
6
+ };
7
+ /**
8
+ * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do
9
+ * mesmo jeito, explicados lá. A caixa (`data-slot="control"`) é quem desenha a borda, o raio, o
10
+ * fundo e o anel, e o `<input>` de dentro fica sem caixa. As diferenças:
11
+ * - `flex items-stretch overflow-hidden`: o campo e os elementos dividem a caixa;
12
+ * - o estado vem do `<input>` filho, por `has-[]`, porque é nele que o Base UI escreve o
13
+ * `data-focused`, o `data-invalid`, o `data-disabled` e o `disabled`. Só o filho direto conta:
14
+ * um botão com foco dentro de um elemento não acende o anel;
15
+ * - `--input-group-focus-color` no lugar de `--input-focus-color`;
16
+ * - sem `appearance-none`, `text-start` e `placeholder`, que são do `<input>`;
17
+ * - sem `text-*`: o texto é do campo e dos elementos.
18
+ *
19
+ * O campo de dentro (`Input`, `NumberInput`, `PatternInput`, `CurrencyBrlInput`, qualquer
20
+ * `<input>` filho direto) é neutralizado por seletor: sem borda, raio, fundo nem anel, ocupando o
21
+ * que sobra da linha (`flex-1 min-w-0`) na altura toda, e sem a opacidade do desabilitado, porque
22
+ * a caixa já esmaece e as duas juntas dariam 25%. Cada regra da caixa (`.caixa > input`, 0,1,1)
23
+ * vence a do campo (`.x`, 0,1,0), e as de estado (`.caixa > input:focus-visible`, 0,2,1) vencem as
24
+ * do campo (`.x:focus-visible`, 0,2,0). Uma classe nova no `inputVariants` que o campo escreva
25
+ * precisa de um par aqui, ou o campo volta a desenhar a própria caixa dentro do grupo.
26
+ *
27
+ * Os elementos ficam sem padding do lado do campo, e o campo reduz o padding daquele lado para
28
+ * 8px (`ps-2`, `pe-2`): a folga do elemento até o texto é um respiro curto, e não a soma do
29
+ * padding dos dois.
30
+ *
31
+ * O padding horizontal de cada `size` (`--input-group-px`) vem do `inputGroupPaddingVariants`,
32
+ * que fica no elemento de fora do componente: a própria caixa, ou o `Group` quando há addon, para
33
+ * o addon, irmão da caixa, ler o mesmo valor.
34
+ */
35
+ const inputGroupVariants = cva([
36
+ "relative",
37
+ "flex",
38
+ "items-stretch",
39
+ "w-full",
40
+ "overflow-hidden",
41
+ "outline-none",
42
+ "font-normal",
43
+ "text-gray-12",
44
+ "border",
45
+ "rounded-md",
46
+ "corner-squircle",
47
+ "[--input-group-focus-color:var(--color-black)]",
48
+ "dark:[--input-group-focus-color:var(--color-white)]",
49
+ "has-[>input:focus-visible]:outline-1",
50
+ "has-[>input:focus-visible]:outline-solid",
51
+ "has-[>input:focus-visible]:-outline-offset-2",
52
+ "has-[>input:focus-visible]:outline-(--input-group-focus-color)",
53
+ "has-[>input:focus-visible]:border-(--input-group-focus-color)",
54
+ "has-[>input[data-focused]]:outline-1",
55
+ "has-[>input[data-focused]]:outline-solid",
56
+ "has-[>input[data-focused]]:-outline-offset-2",
57
+ "has-[>input[data-focused]]:outline-(--input-group-focus-color)",
58
+ "has-[>input[data-focused]]:border-(--input-group-focus-color)",
59
+ "has-[>input:disabled]:opacity-50",
60
+ "has-[>input:disabled]:cursor-not-allowed",
61
+ "has-[>input[data-disabled]]:opacity-50",
62
+ "has-[>input[data-disabled]]:cursor-not-allowed",
63
+ "has-[>input[data-invalid]]:border-red-9",
64
+ "has-[>input[data-invalid]]:[--input-group-focus-color:var(--red-9)]",
65
+ "has-[>input[aria-invalid=true]]:border-red-9",
66
+ "has-[>input[aria-invalid=true]]:[--input-group-focus-color:var(--red-9)]",
67
+ "[&>input]:h-full",
68
+ "[&>input]:min-w-0",
69
+ "[&>input]:flex-1",
70
+ "[&>input]:border-0",
71
+ "[&>input]:rounded-none",
72
+ "[&>input]:bg-transparent",
73
+ "[&>input]:focus-visible:outline-none",
74
+ "[&>input]:data-focused:outline-none",
75
+ "[&>input]:disabled:opacity-100",
76
+ "[&>input]:data-disabled:opacity-100",
77
+ "has-[>[data-placement=start]]:[&>input]:ps-2",
78
+ "has-[>[data-placement=end]]:[&>input]:pe-2"
79
+ ], {
80
+ variants: {
81
+ variant: {
82
+ outline: [
83
+ "bg-white/90",
84
+ "dark:bg-black/90",
85
+ "border-gray-7"
86
+ ],
87
+ subtle: ["bg-gray-4", "border-transparent"]
88
+ },
89
+ size: {
90
+ "2xs": ["h-7", "min-w-7"],
91
+ xs: ["h-8", "min-w-8"],
92
+ sm: ["h-9", "min-w-9"],
93
+ md: ["h-10", "min-w-10"],
94
+ lg: ["h-11", "min-w-11"],
95
+ xl: ["h-12", "min-w-12"],
96
+ "2xl": ["h-16", "min-w-16"]
97
+ }
98
+ },
99
+ defaultVariants: {
100
+ size: inputGroupDefaultVariants.size,
101
+ variant: inputGroupDefaultVariants.variant
102
+ }
103
+ });
104
+ /**
105
+ * O padding horizontal de cada `size`, lido pelos elementos e pelos addons. Fica no elemento de
106
+ * fora do componente (ver `inputGroupVariants`).
107
+ */
108
+ const inputGroupPaddingVariants = cva([], {
109
+ variants: { size: {
110
+ "2xs": ["[--input-group-px:--spacing(2)]"],
111
+ xs: ["[--input-group-px:--spacing(2)]"],
112
+ sm: ["[--input-group-px:--spacing(2.5)]"],
113
+ md: ["[--input-group-px:--spacing(3)]"],
114
+ lg: ["[--input-group-px:--spacing(4)]"],
115
+ xl: ["[--input-group-px:--spacing(4.5)]"],
116
+ "2xl": ["[--input-group-px:--spacing(5)]"]
117
+ } },
118
+ defaultVariants: { size: inputGroupDefaultVariants.size }
119
+ });
120
+ /**
121
+ * Tamanho do texto e do ícone, o mesmo no elemento e no addon. O ícone é o filho direto, para o
122
+ * `size-*` não alcançar o ícone de um botão dentro dele.
123
+ */
124
+ const contentSizeClassNames = {
125
+ "2xs": [
126
+ "text-xs",
127
+ "any-pointer-coarse:text-base",
128
+ "[&>svg]:size-3"
129
+ ],
130
+ xs: [
131
+ "text-xs",
132
+ "any-pointer-coarse:text-base",
133
+ "[&>svg]:size-3.5"
134
+ ],
135
+ sm: [
136
+ "text-sm",
137
+ "any-pointer-coarse:text-base",
138
+ "[&>svg]:size-4"
139
+ ],
140
+ md: [
141
+ "text-sm",
142
+ "any-pointer-coarse:text-base",
143
+ "[&>svg]:size-4"
144
+ ],
145
+ lg: ["text-base", "[&>svg]:size-5"],
146
+ xl: ["text-base", "[&>svg]:size-5"],
147
+ "2xl": ["text-lg", "[&>svg]:size-6"]
148
+ };
149
+ /**
150
+ * O elemento (`startElement`, `endElement`) fica dentro da caixa, sem fundo nem borda. Tem padding
151
+ * só do lado de fora (`placement`): o respiro do lado do campo vem do `ps-2`/`pe-2` que a caixa dá
152
+ * ao campo, explicado no `inputGroupVariants`. Um botão ocupa o lugar de um ícone com 4px de folga
153
+ * do lado de fora e o anel de foco encostado nele (offset 0), sem passar da caixa, que corta o que
154
+ * sai dela.
155
+ */
156
+ const inputGroupElementVariants = cva([
157
+ "flex",
158
+ "items-center",
159
+ "justify-center",
160
+ "shrink-0",
161
+ "whitespace-nowrap",
162
+ "select-none",
163
+ "text-gray-11",
164
+ "[--focus-ring-offset:0px]"
165
+ ], {
166
+ variants: {
167
+ placement: {
168
+ start: ["ps-(--input-group-px)", "has-[>button]:ps-1"],
169
+ end: ["pe-(--input-group-px)", "has-[>button]:pe-1"]
170
+ },
171
+ size: contentSizeClassNames
172
+ },
173
+ defaultVariants: {
174
+ placement: "start",
175
+ size: inputGroupDefaultVariants.size
176
+ }
177
+ });
178
+ /**
179
+ * O addon (`startAddon`, `endAddon`) é uma caixa irmã da caixa do campo, como o campo `outline`
180
+ * ou `subtle`, com a borda própria e o fundo um passo acima do da caixa para se distinguir dela.
181
+ * O `Group` tira os cantos de dentro e sobrepõe a borda; no foco, a caixa sobe e a borda dela
182
+ * aparece inteira sobre a do addon. O anel de foco fica só na caixa, e o inválido também.
183
+ */
184
+ const inputGroupAddonVariants = cva([
185
+ "flex",
186
+ "items-center",
187
+ "justify-center",
188
+ "shrink-0",
189
+ "px-(--input-group-px)",
190
+ "whitespace-nowrap",
191
+ "select-none",
192
+ "border",
193
+ "rounded-md",
194
+ "corner-squircle",
195
+ "text-gray-11"
196
+ ], {
197
+ variants: {
198
+ variant: {
199
+ outline: ["bg-gray-3", "border-gray-7"],
200
+ subtle: ["bg-gray-5", "border-transparent"]
201
+ },
202
+ size: contentSizeClassNames
203
+ },
204
+ defaultVariants: {
205
+ variant: inputGroupDefaultVariants.variant,
206
+ size: inputGroupDefaultVariants.size
207
+ }
208
+ });
209
+ //#endregion
210
+ export { inputGroupAddonVariants, inputGroupDefaultVariants, inputGroupElementVariants, inputGroupPaddingVariants, inputGroupVariants };
211
+
212
+ //# sourceMappingURL=input-group-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group-variants.js","names":[],"sources":["../../../../src/components/fields/input-group/input-group-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type InputGroupVariants = {\n /**\n * Altura, padding e tamanho do texto, os mesmos do `Input`, e o tamanho do ícone e do texto dos\n * elementos e addons. `sm` = `h-9`, `md` = `h-10`, alinhado aos outros controles de formulário.\n * O campo de dentro recebe o mesmo `size`, para o texto bater com o dos elementos.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda da caixa, os mesmos do `Input`. O addon acompanha: sem fundo próprio no\n * `outline`, mais escuro que a caixa no `subtle`.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const inputGroupDefaultVariants: Required<InputGroupVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do\n * mesmo jeito, explicados lá. A caixa (`data-slot=\"control\"`) é quem desenha a borda, o raio, o\n * fundo e o anel, e o `<input>` de dentro fica sem caixa. As diferenças:\n * - `flex items-stretch overflow-hidden`: o campo e os elementos dividem a caixa;\n * - o estado vem do `<input>` filho, por `has-[]`, porque é nele que o Base UI escreve o\n * `data-focused`, o `data-invalid`, o `data-disabled` e o `disabled`. Só o filho direto conta:\n * um botão com foco dentro de um elemento não acende o anel;\n * - `--input-group-focus-color` no lugar de `--input-focus-color`;\n * - sem `appearance-none`, `text-start` e `placeholder`, que são do `<input>`;\n * - sem `text-*`: o texto é do campo e dos elementos.\n *\n * O campo de dentro (`Input`, `NumberInput`, `PatternInput`, `CurrencyBrlInput`, qualquer\n * `<input>` filho direto) é neutralizado por seletor: sem borda, raio, fundo nem anel, ocupando o\n * que sobra da linha (`flex-1 min-w-0`) na altura toda, e sem a opacidade do desabilitado, porque\n * a caixa já esmaece e as duas juntas dariam 25%. Cada regra da caixa (`.caixa > input`, 0,1,1)\n * vence a do campo (`.x`, 0,1,0), e as de estado (`.caixa > input:focus-visible`, 0,2,1) vencem as\n * do campo (`.x:focus-visible`, 0,2,0). Uma classe nova no `inputVariants` que o campo escreva\n * precisa de um par aqui, ou o campo volta a desenhar a própria caixa dentro do grupo.\n *\n * Os elementos ficam sem padding do lado do campo, e o campo reduz o padding daquele lado para\n * 8px (`ps-2`, `pe-2`): a folga do elemento até o texto é um respiro curto, e não a soma do\n * padding dos dois.\n *\n * O padding horizontal de cada `size` (`--input-group-px`) vem do `inputGroupPaddingVariants`,\n * que fica no elemento de fora do componente: a própria caixa, ou o `Group` quando há addon, para\n * o addon, irmão da caixa, ler o mesmo valor.\n */\nexport const inputGroupVariants = cva(\n [\n 'relative',\n 'flex',\n 'items-stretch',\n 'w-full',\n 'overflow-hidden',\n\n 'outline-none',\n\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--input-group-focus-color:var(--color-black)]',\n 'dark:[--input-group-focus-color:var(--color-white)]',\n\n 'has-[>input:focus-visible]:outline-1',\n 'has-[>input:focus-visible]:outline-solid',\n 'has-[>input:focus-visible]:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'has-[>input:focus-visible]:outline-(--input-group-focus-color)',\n 'has-[>input:focus-visible]:border-(--input-group-focus-color)',\n\n 'has-[>input[data-focused]]:outline-1',\n 'has-[>input[data-focused]]:outline-solid',\n 'has-[>input[data-focused]]:-outline-offset-2',\n 'has-[>input[data-focused]]:outline-(--input-group-focus-color)',\n 'has-[>input[data-focused]]:border-(--input-group-focus-color)',\n\n 'has-[>input:disabled]:opacity-50',\n 'has-[>input:disabled]:cursor-not-allowed',\n\n 'has-[>input[data-disabled]]:opacity-50',\n 'has-[>input[data-disabled]]:cursor-not-allowed',\n\n 'has-[>input[data-invalid]]:border-red-9',\n 'has-[>input[data-invalid]]:[--input-group-focus-color:var(--red-9)]',\n 'has-[>input[aria-invalid=true]]:border-red-9',\n 'has-[>input[aria-invalid=true]]:[--input-group-focus-color:var(--red-9)]',\n\n // O campo de dentro, sem a caixa que o grupo já desenha\n '[&>input]:h-full',\n '[&>input]:min-w-0',\n '[&>input]:flex-1',\n\n '[&>input]:border-0',\n '[&>input]:rounded-none',\n '[&>input]:bg-transparent',\n\n '[&>input]:focus-visible:outline-none',\n '[&>input]:data-focused:outline-none',\n\n '[&>input]:disabled:opacity-100',\n '[&>input]:data-disabled:opacity-100',\n\n // Elemento ao lado: o respiro até o texto é o do elemento, não a soma dos dois paddings\n 'has-[>[data-placement=start]]:[&>input]:ps-2',\n 'has-[>[data-placement=end]]:[&>input]:pe-2',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': ['h-7', 'min-w-7'],\n xs: ['h-8', 'min-w-8'],\n sm: ['h-9', 'min-w-9'],\n md: ['h-10', 'min-w-10'],\n lg: ['h-11', 'min-w-11'],\n xl: ['h-12', 'min-w-12'],\n '2xl': ['h-16', 'min-w-16'],\n },\n },\n defaultVariants: {\n size: inputGroupDefaultVariants.size,\n variant: inputGroupDefaultVariants.variant,\n },\n },\n);\n\n/**\n * O padding horizontal de cada `size`, lido pelos elementos e pelos addons. Fica no elemento de\n * fora do componente (ver `inputGroupVariants`).\n */\nexport const inputGroupPaddingVariants = cva([], {\n variants: {\n size: {\n '2xs': ['[--input-group-px:--spacing(2)]'],\n xs: ['[--input-group-px:--spacing(2)]'],\n sm: ['[--input-group-px:--spacing(2.5)]'],\n md: ['[--input-group-px:--spacing(3)]'],\n lg: ['[--input-group-px:--spacing(4)]'],\n xl: ['[--input-group-px:--spacing(4.5)]'],\n '2xl': ['[--input-group-px:--spacing(5)]'],\n },\n },\n defaultVariants: {\n size: inputGroupDefaultVariants.size,\n },\n});\n\n/**\n * Tamanho do texto e do ícone, o mesmo no elemento e no addon. O ícone é o filho direto, para o\n * `size-*` não alcançar o ícone de um botão dentro dele.\n */\nconst contentSizeClassNames = {\n '2xs': ['text-xs', 'any-pointer-coarse:text-base', '[&>svg]:size-3'],\n xs: ['text-xs', 'any-pointer-coarse:text-base', '[&>svg]:size-3.5'],\n sm: ['text-sm', 'any-pointer-coarse:text-base', '[&>svg]:size-4'],\n md: ['text-sm', 'any-pointer-coarse:text-base', '[&>svg]:size-4'],\n lg: ['text-base', '[&>svg]:size-5'],\n xl: ['text-base', '[&>svg]:size-5'],\n '2xl': ['text-lg', '[&>svg]:size-6'],\n} satisfies Record<NonNullable<InputGroupVariants['size']>, string[]>;\n\n/**\n * O elemento (`startElement`, `endElement`) fica dentro da caixa, sem fundo nem borda. Tem padding\n * só do lado de fora (`placement`): o respiro do lado do campo vem do `ps-2`/`pe-2` que a caixa dá\n * ao campo, explicado no `inputGroupVariants`. Um botão ocupa o lugar de um ícone com 4px de folga\n * do lado de fora e o anel de foco encostado nele (offset 0), sem passar da caixa, que corta o que\n * sai dela.\n */\nexport const inputGroupElementVariants = cva(\n [\n 'flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n\n 'whitespace-nowrap',\n 'select-none',\n\n 'text-gray-11',\n\n '[--focus-ring-offset:0px]',\n ],\n {\n variants: {\n placement: {\n start: ['ps-(--input-group-px)', 'has-[>button]:ps-1'],\n end: ['pe-(--input-group-px)', 'has-[>button]:pe-1'],\n },\n size: contentSizeClassNames,\n },\n defaultVariants: {\n placement: 'start',\n size: inputGroupDefaultVariants.size,\n },\n },\n);\n\n/**\n * O addon (`startAddon`, `endAddon`) é uma caixa irmã da caixa do campo, como o campo `outline`\n * ou `subtle`, com a borda própria e o fundo um passo acima do da caixa para se distinguir dela.\n * O `Group` tira os cantos de dentro e sobrepõe a borda; no foco, a caixa sobe e a borda dela\n * aparece inteira sobre a do addon. O anel de foco fica só na caixa, e o inválido também.\n */\nexport const inputGroupAddonVariants = cva(\n [\n 'flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n 'px-(--input-group-px)',\n\n 'whitespace-nowrap',\n 'select-none',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n 'text-gray-11',\n ],\n {\n variants: {\n variant: {\n outline: ['bg-gray-3', 'border-gray-7'],\n subtle: ['bg-gray-5', 'border-transparent'],\n },\n size: contentSizeClassNames,\n },\n defaultVariants: {\n variant: inputGroupDefaultVariants.variant,\n size: inputGroupDefaultVariants.size,\n },\n },\n);\n"],"mappings":";;AAoBA,MAAa,4BAA0D;CACrE,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAa,qBAAqB,IAChC;CACE;CACA;CACA;CACA;CACA;CAEA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CAGA;CACA;CACA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAGA;CACA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;IACP;IACA;IAEA;GACF;GACA,QAAQ,CACN,aAEA,oBACF;EACF;EACA,MAAM;GACJ,OAAO,CAAC,OAAO,SAAS;GACxB,IAAI,CAAC,OAAO,SAAS;GACrB,IAAI,CAAC,OAAO,SAAS;GACrB,IAAI,CAAC,QAAQ,UAAU;GACvB,IAAI,CAAC,QAAQ,UAAU;GACvB,IAAI,CAAC,QAAQ,UAAU;GACvB,OAAO,CAAC,QAAQ,UAAU;EAC5B;CACF;CACA,iBAAiB;EACf,MAAM,0BAA0B;EAChC,SAAS,0BAA0B;CACrC;AACF,CACF;;;;;AAMA,MAAa,4BAA4B,IAAI,CAAC,GAAG;CAC/C,UAAU,EACR,MAAM;EACJ,OAAO,CAAC,iCAAiC;EACzC,IAAI,CAAC,iCAAiC;EACtC,IAAI,CAAC,mCAAmC;EACxC,IAAI,CAAC,iCAAiC;EACtC,IAAI,CAAC,iCAAiC;EACtC,IAAI,CAAC,mCAAmC;EACxC,OAAO,CAAC,iCAAiC;CAC3C,EACF;CACA,iBAAiB,EACf,MAAM,0BAA0B,KAClC;AACF,CAAC;;;;;AAMD,MAAM,wBAAwB;CAC5B,OAAO;EAAC;EAAW;EAAgC;CAAgB;CACnE,IAAI;EAAC;EAAW;EAAgC;CAAkB;CAClE,IAAI;EAAC;EAAW;EAAgC;CAAgB;CAChE,IAAI;EAAC;EAAW;EAAgC;CAAgB;CAChE,IAAI,CAAC,aAAa,gBAAgB;CAClC,IAAI,CAAC,aAAa,gBAAgB;CAClC,OAAO,CAAC,WAAW,gBAAgB;AACrC;;;;;;;;AASA,MAAa,4BAA4B,IACvC;CACE;CACA;CACA;CACA;CAEA;CACA;CAEA;CAEA;AACF,GACA;CACE,UAAU;EACR,WAAW;GACT,OAAO,CAAC,yBAAyB,oBAAoB;GACrD,KAAK,CAAC,yBAAyB,oBAAoB;EACrD;EACA,MAAM;CACR;CACA,iBAAiB;EACf,WAAW;EACX,MAAM,0BAA0B;CAClC;AACF,CACF;;;;;;;AAQA,MAAa,0BAA0B,IACrC;CACE;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS,CAAC,aAAa,eAAe;GACtC,QAAQ,CAAC,aAAa,oBAAoB;EAC5C;EACA,MAAM;CACR;CACA,iBAAiB;EACf,SAAS,0BAA0B;EACnC,MAAM,0BAA0B;CAClC;AACF,CACF"}
@@ -0,0 +1,88 @@
1
+ import { InputGroupVariants } from "./input-group-variants.js";
2
+ import React from "react";
3
+ import { MergeOverride } from "@lucasbernardosn/ts-utils";
4
+ //#region src/components/fields/input-group/input-group.d.ts
5
+ export type InputGroupProps = MergeOverride<React.ComponentProps<'div'>, InputGroupVariants & {
6
+ /**
7
+ * O campo: qualquer componente da lib que renderiza um `<input>` direto (`Input`,
8
+ * `NumberInput`, `PatternInput`, `CurrencyBrlInput`).
9
+ */
10
+ children: React.ReactNode;
11
+ /**
12
+ * Ícone, texto ou botão dentro da borda, antes do campo.
13
+ */
14
+ startElement?: React.ReactNode;
15
+ /**
16
+ * Ícone, texto ou botão dentro da borda, depois do campo.
17
+ */
18
+ endElement?: React.ReactNode;
19
+ /**
20
+ * Bloco colado ao campo, fora da borda dele, antes do campo.
21
+ */
22
+ startAddon?: React.ReactNode;
23
+ /**
24
+ * Bloco colado ao campo, fora da borda dele, depois do campo.
25
+ */
26
+ endAddon?: React.ReactNode;
27
+ }>;
28
+ /**
29
+ * Um campo com ícone, texto ou botão junto dele. O elemento (`startElement`, `endElement`) fica
30
+ * dentro da borda do campo, como a lupa de uma busca ou a unidade de uma medida; o addon
31
+ * (`startAddon`, `endAddon`) é um bloco colado ao campo, com a borda própria, como o `https://` de
32
+ * uma URL.
33
+ *
34
+ * - O grupo desenha a borda, o fundo e o anel de foco do campo, e o `<input>` de dentro fica sem
35
+ * caixa. O foco, o inválido e o desabilitado vêm do campo: ele se liga ao `Field` como sempre,
36
+ * e o grupo reflete o estado dele. No addon, só a caixa do campo muda de cor; o desabilitado
37
+ * esmaece os dois.
38
+ * - O `size` dá a altura: passe o mesmo `size` ao campo, para o texto dele bater com o do elemento
39
+ * e do addon. O `variant` fica só no grupo: o campo é transparente e o fundo vem dele.
40
+ * - Um clique no elemento foca o campo, como no clique de um rótulo; um clique em `button`, `a`,
41
+ * `input`, `select` ou `textarea` dentro dele segue o próprio caminho.
42
+ * - Um botão entra por composição, um `IconButton` com `variant="ghost"` no elemento, um ou dois
43
+ * passos de `size` abaixo do grupo para sobrar folga até a borda (`3xs` num grupo `2xs`, `2xs`
44
+ * num `sm`, `xs` num `md`, `sm` num `lg`, `md` num `xl`, `xl` num `2xl`).
45
+ * - Com addon, o grupo é um `Group` com `attached` por fora, e a `className` e as demais props
46
+ * vão nele; sem addon, no `div` da caixa. Sem `role="group"`: o nome e a descrição acessíveis
47
+ * vêm do `Field` ligado ao `<input>`, e um grupo com nome próprio o anunciaria duas vezes.
48
+ *
49
+ * @example
50
+ * ```tsx
51
+ * <InputGroup startElement={<Icon render={<MagnifyingGlassIcon />} />}>
52
+ * <Input
53
+ * aria-label="Buscar"
54
+ * placeholder="Buscar pedido"
55
+ * />
56
+ * </InputGroup>
57
+ *
58
+ * <InputGroup endElement="kg">
59
+ * <NumberInput aria-label="Peso" />
60
+ * </InputGroup>
61
+ *
62
+ * <InputGroup
63
+ * startAddon="https://"
64
+ * endAddon=".com.br"
65
+ * >
66
+ * <Input aria-label="Subdomínio" />
67
+ * </InputGroup>
68
+ *
69
+ * <InputGroup
70
+ * endElement={
71
+ * <IconButton
72
+ * aria-label="Limpar"
73
+ * icon={<XIcon />}
74
+ * variant="ghost"
75
+ * size="2xs"
76
+ * />
77
+ * }
78
+ * >
79
+ * <Input aria-label="Endereço" />
80
+ * </InputGroup>
81
+ * ```
82
+ */
83
+ export declare const InputGroup: {
84
+ (props: InputGroupProps): React.JSX.Element;
85
+ displayName: string;
86
+ };
87
+ //#endregion
88
+ //# sourceMappingURL=input-group.d.ts.map