@rojaostudio/ds 1.0.1 → 2.0.0-next.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 (403) hide show
  1. package/README.md +75 -13
  2. package/dist/compat/generate.d.ts +0 -1
  3. package/dist/components/accordion.d.ts +30 -20
  4. package/dist/components/accordion.js +31 -87
  5. package/dist/components/action-bar.d.ts +24 -0
  6. package/dist/components/action-bar.js +55 -0
  7. package/dist/components/alert-dialog.d.ts +31 -0
  8. package/dist/components/alert-dialog.js +43 -0
  9. package/dist/components/alert.d.ts +31 -19
  10. package/dist/components/alert.js +74 -65
  11. package/dist/components/attachment.d.ts +37 -0
  12. package/dist/components/attachment.js +76 -0
  13. package/dist/components/avatar.d.ts +43 -36
  14. package/dist/components/avatar.js +59 -83
  15. package/dist/components/badge.d.ts +30 -41
  16. package/dist/components/badge.js +16 -106
  17. package/dist/components/banner.d.ts +27 -0
  18. package/dist/components/banner.js +66 -0
  19. package/dist/components/benefits.d.ts +30 -0
  20. package/dist/components/benefits.js +32 -0
  21. package/dist/components/breadcrumb.d.ts +25 -18
  22. package/dist/components/breadcrumb.js +40 -48
  23. package/dist/components/browser.d.ts +18 -0
  24. package/dist/components/browser.js +32 -0
  25. package/dist/components/bubble.d.ts +29 -0
  26. package/dist/components/bubble.js +33 -0
  27. package/dist/components/button-group.d.ts +19 -0
  28. package/dist/components/button-group.js +20 -0
  29. package/dist/components/button.d.ts +47 -20
  30. package/dist/components/button.js +51 -107
  31. package/dist/components/calendar.d.ts +29 -0
  32. package/dist/components/calendar.js +149 -0
  33. package/dist/components/card.d.ts +47 -19
  34. package/dist/components/card.js +38 -38
  35. package/dist/components/carousel.d.ts +28 -0
  36. package/dist/components/carousel.js +130 -0
  37. package/dist/components/chart.d.ts +49 -0
  38. package/dist/components/chart.js +258 -0
  39. package/dist/components/checkbox-group.d.ts +16 -0
  40. package/dist/components/checkbox-group.js +13 -0
  41. package/dist/components/checkbox.d.ts +25 -10
  42. package/dist/components/checkbox.js +86 -67
  43. package/dist/components/chip-input.d.ts +46 -20
  44. package/dist/components/chip-input.js +171 -158
  45. package/dist/components/chip.d.ts +28 -0
  46. package/dist/components/chip.js +73 -0
  47. package/dist/components/choice-card.d.ts +10 -13
  48. package/dist/components/choice-card.js +11 -56
  49. package/dist/components/choice-carousel.d.ts +9 -0
  50. package/dist/components/choice-carousel.js +67 -78
  51. package/dist/components/choice-preview-card.d.ts +10 -20
  52. package/dist/components/choice-preview-card.js +13 -30
  53. package/dist/components/color-input.d.ts +36 -11
  54. package/dist/components/color-input.js +139 -61
  55. package/dist/components/combobox.d.ts +60 -57
  56. package/dist/components/combobox.js +215 -196
  57. package/dist/components/command.d.ts +58 -0
  58. package/dist/components/command.js +177 -0
  59. package/dist/components/contact.d.ts +23 -0
  60. package/dist/components/contact.js +32 -0
  61. package/dist/components/context-menu.d.ts +34 -26
  62. package/dist/components/context-menu.js +43 -66
  63. package/dist/components/copy-field.d.ts +10 -5
  64. package/dist/components/copy-field.js +25 -27
  65. package/dist/components/currency-input.d.ts +25 -11
  66. package/dist/components/currency-input.js +39 -67
  67. package/dist/components/danger-zone.d.ts +10 -1
  68. package/dist/components/danger-zone.js +20 -14
  69. package/dist/components/data-table-header.d.ts +13 -2
  70. package/dist/components/data-table-header.js +143 -169
  71. package/dist/components/date-picker.d.ts +31 -32
  72. package/dist/components/date-picker.js +126 -242
  73. package/dist/components/delta.d.ts +26 -0
  74. package/dist/components/delta.js +24 -0
  75. package/dist/components/dialog.d.ts +21 -0
  76. package/dist/components/dialog.js +16 -0
  77. package/dist/components/drawer.d.ts +15 -23
  78. package/dist/components/drawer.js +56 -76
  79. package/dist/components/dropdown-menu.d.ts +63 -0
  80. package/dist/components/dropdown-menu.js +62 -0
  81. package/dist/components/dropzone.d.ts +10 -4
  82. package/dist/components/dropzone.js +30 -55
  83. package/dist/components/empty.d.ts +29 -0
  84. package/dist/components/empty.js +42 -0
  85. package/dist/components/fab.d.ts +29 -6
  86. package/dist/components/fab.js +51 -39
  87. package/dist/components/faq.d.ts +21 -0
  88. package/dist/components/faq.js +24 -0
  89. package/dist/components/file-input.d.ts +56 -0
  90. package/dist/components/file-input.js +244 -0
  91. package/dist/components/filter-chip.d.ts +34 -47
  92. package/dist/components/filter-chip.js +61 -57
  93. package/dist/components/floating-stepper.d.ts +7 -18
  94. package/dist/components/floating-stepper.js +17 -35
  95. package/dist/components/footer.d.ts +36 -0
  96. package/dist/components/footer.js +38 -0
  97. package/dist/components/form-actions.d.ts +28 -0
  98. package/dist/components/form-actions.js +24 -0
  99. package/dist/components/google-account-chooser.d.ts +25 -0
  100. package/dist/components/google-account-chooser.js +44 -0
  101. package/dist/components/google-button.d.ts +26 -0
  102. package/dist/components/google-button.js +38 -0
  103. package/dist/components/google-consent.d.ts +23 -0
  104. package/dist/components/google-consent.js +28 -0
  105. package/dist/components/google-sign-in.d.ts +26 -0
  106. package/dist/components/google-sign-in.js +36 -0
  107. package/dist/components/hover-card.d.ts +30 -0
  108. package/dist/components/hover-card.js +55 -0
  109. package/dist/components/icon-button.d.ts +41 -11
  110. package/dist/components/icon-button.js +47 -61
  111. package/dist/components/image-crop-modal.d.ts +3 -3
  112. package/dist/components/image-crop-modal.js +66 -52
  113. package/dist/components/image-upload.d.ts +21 -29
  114. package/dist/components/image-upload.js +59 -219
  115. package/dist/components/index.d.ts +105 -49
  116. package/dist/components/index.js +190 -68
  117. package/dist/components/input-otp.d.ts +35 -0
  118. package/dist/components/input-otp.js +119 -0
  119. package/dist/components/input.d.ts +23 -17
  120. package/dist/components/input.js +103 -108
  121. package/dist/components/insight-card.d.ts +25 -9
  122. package/dist/components/insight-card.js +45 -19
  123. package/dist/components/internal/announce.d.ts +3 -0
  124. package/dist/components/internal/announce.js +20 -0
  125. package/dist/components/internal/block.d.ts +15 -0
  126. package/dist/components/internal/block.js +14 -0
  127. package/dist/components/internal/button.d.ts +23 -0
  128. package/dist/components/internal/button.js +30 -0
  129. package/dist/components/internal/choice-card.d.ts +52 -0
  130. package/dist/components/internal/choice-card.js +117 -0
  131. package/dist/components/internal/choice.d.ts +25 -0
  132. package/dist/components/internal/choice.js +44 -0
  133. package/dist/components/internal/dates.d.ts +17 -0
  134. package/dist/components/internal/dates.js +59 -0
  135. package/dist/components/internal/field.d.ts +66 -0
  136. package/dist/components/internal/field.js +105 -0
  137. package/dist/components/internal/fieldset.d.ts +25 -0
  138. package/dist/components/internal/fieldset.js +56 -0
  139. package/dist/components/internal/focus-after.d.ts +3 -0
  140. package/dist/components/internal/focus-after.js +13 -0
  141. package/dist/components/internal/google.d.ts +47 -0
  142. package/dist/components/internal/google.js +73 -0
  143. package/dist/components/internal/icons.d.ts +108 -0
  144. package/dist/components/internal/icons.js +316 -0
  145. package/dist/components/internal/menu.d.ts +16 -0
  146. package/dist/components/internal/menu.js +14 -0
  147. package/dist/components/internal/modal.d.ts +50 -0
  148. package/dist/components/internal/modal.js +85 -0
  149. package/dist/components/internal/option-content.d.ts +10 -0
  150. package/dist/components/internal/option-content.js +13 -0
  151. package/dist/components/internal/radio-context.d.ts +16 -0
  152. package/dist/components/internal/radio-context.js +6 -0
  153. package/dist/components/internal/toggle.d.ts +7 -0
  154. package/dist/components/internal/toggle.js +13 -0
  155. package/dist/components/internal/use-listbox.d.ts +56 -0
  156. package/dist/components/internal/use-listbox.js +69 -0
  157. package/dist/components/internal/whatsapp.d.ts +8 -0
  158. package/dist/components/internal/whatsapp.js +12 -0
  159. package/dist/components/item.d.ts +32 -0
  160. package/dist/components/item.js +35 -0
  161. package/dist/components/kbd.d.ts +17 -0
  162. package/dist/components/kbd.js +18 -0
  163. package/dist/components/listbox.d.ts +34 -0
  164. package/dist/components/listbox.js +114 -0
  165. package/dist/components/marker.d.ts +24 -0
  166. package/dist/components/marker.js +28 -0
  167. package/dist/components/media-tile.d.ts +17 -14
  168. package/dist/components/media-tile.js +19 -24
  169. package/dist/components/message-scroller.d.ts +20 -0
  170. package/dist/components/message-scroller.js +108 -0
  171. package/dist/components/message.d.ts +33 -0
  172. package/dist/components/message.js +23 -0
  173. package/dist/components/navigation-menu.d.ts +42 -0
  174. package/dist/components/navigation-menu.js +30 -0
  175. package/dist/components/newsletter.d.ts +27 -0
  176. package/dist/components/newsletter.js +75 -0
  177. package/dist/components/number-input.d.ts +60 -0
  178. package/dist/components/number-input.js +234 -0
  179. package/dist/components/option-tile.d.ts +20 -19
  180. package/dist/components/option-tile.js +52 -131
  181. package/dist/components/page-header.d.ts +31 -0
  182. package/dist/components/page-header.js +25 -0
  183. package/dist/components/page-shell.d.ts +11 -1
  184. package/dist/components/page-shell.js +8 -27
  185. package/dist/components/page-skeleton.d.ts +15 -21
  186. package/dist/components/page-skeleton.js +37 -4
  187. package/dist/components/pagination.d.ts +32 -22
  188. package/dist/components/pagination.js +83 -76
  189. package/dist/components/password-input.d.ts +26 -0
  190. package/dist/components/password-input.js +112 -0
  191. package/dist/components/phone-input.d.ts +12 -8
  192. package/dist/components/phone-input.js +77 -47
  193. package/dist/components/phone.d.ts +27 -0
  194. package/dist/components/phone.js +35 -0
  195. package/dist/components/popover.d.ts +25 -36
  196. package/dist/components/popover.js +32 -129
  197. package/dist/components/pricing-card.d.ts +9 -25
  198. package/dist/components/pricing-card.js +9 -25
  199. package/dist/components/pricing.d.ts +48 -0
  200. package/dist/components/pricing.js +64 -0
  201. package/dist/components/progress.d.ts +30 -0
  202. package/dist/components/progress.js +57 -0
  203. package/dist/components/qr-display.d.ts +11 -6
  204. package/dist/components/qr-display.js +8 -19
  205. package/dist/components/questionnaire.d.ts +42 -0
  206. package/dist/components/questionnaire.js +107 -0
  207. package/dist/components/radio-group.d.ts +21 -0
  208. package/dist/components/radio-group.js +40 -0
  209. package/dist/components/radio.d.ts +15 -29
  210. package/dist/components/radio.js +46 -87
  211. package/dist/components/row-actions.d.ts +5 -0
  212. package/dist/components/row-actions.js +57 -56
  213. package/dist/components/saving-bar-context.d.ts +0 -5
  214. package/dist/components/saving-bar-context.js +16 -34
  215. package/dist/components/saving-bar.d.ts +26 -11
  216. package/dist/components/saving-bar.js +53 -65
  217. package/dist/components/section-card.d.ts +18 -4
  218. package/dist/components/section-card.js +26 -39
  219. package/dist/components/section-header.d.ts +8 -12
  220. package/dist/components/section-header.js +7 -2
  221. package/dist/components/select.d.ts +44 -16
  222. package/dist/components/select.js +85 -135
  223. package/dist/components/selectable-card.d.ts +11 -19
  224. package/dist/components/selectable-card.js +4 -21
  225. package/dist/components/separator.d.ts +20 -0
  226. package/dist/components/separator.js +19 -0
  227. package/dist/components/setting-row.d.ts +11 -15
  228. package/dist/components/setting-row.js +11 -14
  229. package/dist/components/settings-list.d.ts +10 -12
  230. package/dist/components/settings-list.js +9 -17
  231. package/dist/components/sheet.d.ts +21 -0
  232. package/dist/components/sheet.js +16 -0
  233. package/dist/components/sidebar.d.ts +79 -0
  234. package/dist/components/sidebar.js +111 -0
  235. package/dist/components/skeleton.d.ts +14 -20
  236. package/dist/components/skeleton.js +8 -36
  237. package/dist/components/slider.d.ts +21 -23
  238. package/dist/components/slider.js +65 -56
  239. package/dist/components/sparkline.d.ts +19 -0
  240. package/dist/components/sparkline.js +32 -0
  241. package/dist/components/spinner.d.ts +16 -8
  242. package/dist/components/spinner.js +35 -32
  243. package/dist/components/star-rating.d.ts +22 -0
  244. package/dist/components/star-rating.js +25 -0
  245. package/dist/components/stat.d.ts +33 -0
  246. package/dist/components/stat.js +29 -0
  247. package/dist/components/status.d.ts +27 -0
  248. package/dist/components/status.js +34 -0
  249. package/dist/components/step-progress.d.ts +13 -6
  250. package/dist/components/step-progress.js +20 -17
  251. package/dist/components/summary-bar.d.ts +20 -20
  252. package/dist/components/summary-bar.js +13 -50
  253. package/dist/components/switch.d.ts +20 -0
  254. package/dist/components/switch.js +46 -0
  255. package/dist/components/table.d.ts +56 -17
  256. package/dist/components/table.js +65 -59
  257. package/dist/components/tabs.d.ts +67 -0
  258. package/dist/components/tabs.js +56 -0
  259. package/dist/components/testimonial.d.ts +30 -0
  260. package/dist/components/testimonial.js +36 -0
  261. package/dist/components/textarea.d.ts +11 -16
  262. package/dist/components/textarea.js +55 -75
  263. package/dist/components/tile.d.ts +24 -0
  264. package/dist/components/tile.js +21 -0
  265. package/dist/components/time-picker.d.ts +40 -25
  266. package/dist/components/time-picker.js +191 -189
  267. package/dist/components/toast.d.ts +63 -0
  268. package/dist/components/toast.js +132 -0
  269. package/dist/components/toggle-card-compact.d.ts +15 -5
  270. package/dist/components/toggle-card-compact.js +22 -81
  271. package/dist/components/toggle-card.d.ts +11 -2
  272. package/dist/components/toggle-card.js +9 -70
  273. package/dist/components/toggle-group.d.ts +21 -59
  274. package/dist/components/toggle-group.js +31 -74
  275. package/dist/components/toggle.d.ts +19 -9
  276. package/dist/components/toggle.js +20 -55
  277. package/dist/components/tooltip.d.ts +25 -12
  278. package/dist/components/tooltip.js +16 -84
  279. package/dist/components/top-navigation.d.ts +33 -0
  280. package/dist/components/top-navigation.js +85 -0
  281. package/dist/components/typing-indicator.d.ts +6 -0
  282. package/dist/components/typing-indicator.js +3 -21
  283. package/dist/components/whatsapp-chat.d.ts +28 -0
  284. package/dist/components/whatsapp-chat.js +95 -0
  285. package/dist/components/whatsapp-message.d.ts +22 -0
  286. package/dist/components/whatsapp-message.js +34 -0
  287. package/dist/components/whatsapp-notification.d.ts +27 -0
  288. package/dist/components/whatsapp-notification.js +73 -0
  289. package/dist/components/whatsapp-template.d.ts +42 -0
  290. package/dist/components/whatsapp-template.js +69 -0
  291. package/dist/icons/index.d.ts +2 -0
  292. package/dist/icons/index.js +2 -0
  293. package/dist/icons/pix.d.ts +16 -0
  294. package/dist/icons/pix.js +29 -0
  295. package/dist/targets/native/components/accordion.js +31 -25
  296. package/dist/targets/native/components/alert.js +22 -16
  297. package/dist/targets/native/components/avatar.js +36 -29
  298. package/dist/targets/native/components/badge.js +4 -3
  299. package/dist/targets/native/components/button.js +11 -4
  300. package/dist/targets/native/components/card.js +2 -1
  301. package/dist/targets/native/components/checkbox.js +18 -15
  302. package/dist/targets/native/components/chips.js +19 -16
  303. package/dist/targets/native/components/choice-card.js +29 -23
  304. package/dist/targets/native/components/context-menu.js +13 -9
  305. package/dist/targets/native/components/currency-input.js +28 -25
  306. package/dist/targets/native/components/danger-zone.js +10 -4
  307. package/dist/targets/native/components/date-picker.js +86 -70
  308. package/dist/targets/native/components/divider.js +3 -2
  309. package/dist/targets/native/components/empty-state.js +6 -1
  310. package/dist/targets/native/components/fab.js +32 -26
  311. package/dist/targets/native/components/filter-chip.js +9 -8
  312. package/dist/targets/native/components/form-field.js +20 -10
  313. package/dist/targets/native/components/form-screen.js +50 -45
  314. package/dist/targets/native/components/google-icon.js +31 -25
  315. package/dist/targets/native/components/icon-button.js +6 -4
  316. package/dist/targets/native/components/icon.js +2 -1
  317. package/dist/targets/native/components/image-upload.js +59 -50
  318. package/dist/targets/native/components/index.d.ts +0 -2
  319. package/dist/targets/native/components/index.js +0 -4
  320. package/dist/targets/native/components/input.js +41 -34
  321. package/dist/targets/native/components/list-item.js +29 -23
  322. package/dist/targets/native/components/menu.js +12 -10
  323. package/dist/targets/native/components/modal.js +41 -32
  324. package/dist/targets/native/components/radio.js +19 -16
  325. package/dist/targets/native/components/search.js +41 -38
  326. package/dist/targets/native/components/select.js +71 -63
  327. package/dist/targets/native/components/sheet.js +36 -30
  328. package/dist/targets/native/components/skeleton.js +6 -5
  329. package/dist/targets/native/components/slider.js +51 -43
  330. package/dist/targets/native/components/spinner.js +2 -1
  331. package/dist/targets/native/components/stepper.js +14 -9
  332. package/dist/targets/native/components/switch.js +15 -14
  333. package/dist/targets/native/components/text.js +2 -1
  334. package/dist/targets/native/components/textarea.js +2 -1
  335. package/dist/targets/native/components/theme.js +2 -1
  336. package/dist/targets/native/components/toaster.js +24 -21
  337. package/dist/targets/native/index.d.ts +1 -1
  338. package/dist/targets/native/index.js +1 -3
  339. package/dist/targets/native/preset.cjs +0 -1
  340. package/dist/targets/native/theme.css +58 -60
  341. package/dist/targets/native/theme.d.ts +58 -60
  342. package/dist/targets/native/theme.js +58 -60
  343. package/package.json +35 -16
  344. package/styles/_primitives.generated.css +40 -0
  345. package/styles/base.css +15 -21
  346. package/styles/rds/components-styles.css +11365 -0
  347. package/styles/rds/components.css +993 -0
  348. package/styles/rds/foundation.css +74 -0
  349. package/styles/rds/theme.css +261 -0
  350. package/styles/rds.css +6 -0
  351. package/styles/themes/rojao.css +46 -53
  352. package/brand/rojao-black-on-white.png +0 -0
  353. package/brand/rojao-black.png +0 -0
  354. package/brand/rojao-white-on-black.png +0 -0
  355. package/brand/rojao-white.png +0 -0
  356. package/dist/components/blocker-card.d.ts +0 -42
  357. package/dist/components/blocker-card.js +0 -45
  358. package/dist/components/bottom-sheet.d.ts +0 -31
  359. package/dist/components/bottom-sheet.js +0 -120
  360. package/dist/components/chat-bubble.d.ts +0 -16
  361. package/dist/components/chat-bubble.js +0 -55
  362. package/dist/components/chips.d.ts +0 -22
  363. package/dist/components/chips.js +0 -94
  364. package/dist/components/copilot-hint.d.ts +0 -18
  365. package/dist/components/copilot-hint.js +0 -63
  366. package/dist/components/divider.d.ts +0 -20
  367. package/dist/components/divider.js +0 -47
  368. package/dist/components/empty-state.d.ts +0 -48
  369. package/dist/components/empty-state.js +0 -91
  370. package/dist/components/form-card-header.d.ts +0 -13
  371. package/dist/components/form-card-header.js +0 -8
  372. package/dist/components/label.d.ts +0 -16
  373. package/dist/components/label.js +0 -43
  374. package/dist/components/menu.d.ts +0 -50
  375. package/dist/components/menu.js +0 -80
  376. package/dist/components/modal.d.ts +0 -25
  377. package/dist/components/modal.js +0 -71
  378. package/dist/components/notice.d.ts +0 -50
  379. package/dist/components/notice.js +0 -103
  380. package/dist/components/page-tabs.d.ts +0 -35
  381. package/dist/components/page-tabs.js +0 -55
  382. package/dist/components/paywall-banner.d.ts +0 -37
  383. package/dist/components/paywall-banner.js +0 -42
  384. package/dist/components/paywall.d.ts +0 -44
  385. package/dist/components/paywall.js +0 -55
  386. package/dist/components/phone-frame.d.ts +0 -9
  387. package/dist/components/phone-frame.js +0 -18
  388. package/dist/components/pix-icon.d.ts +0 -8
  389. package/dist/components/pix-icon.js +0 -24
  390. package/dist/components/search.d.ts +0 -30
  391. package/dist/components/search.js +0 -81
  392. package/dist/components/themed.d.ts +0 -36
  393. package/dist/components/themed.js +0 -22
  394. package/dist/components/toaster.d.ts +0 -84
  395. package/dist/components/toaster.js +0 -284
  396. package/dist/components/use-dismiss.d.ts +0 -9
  397. package/dist/components/use-dismiss.js +0 -28
  398. package/dist/components/use-focus-trap.d.ts +0 -5
  399. package/dist/components/use-focus-trap.js +0 -54
  400. package/dist/targets/native/components/paywall-banner.d.ts +0 -11
  401. package/dist/targets/native/components/paywall-banner.js +0 -46
  402. package/dist/targets/native/components/paywall.d.ts +0 -18
  403. package/dist/targets/native/components/paywall.js +0 -61
@@ -1,120 +0,0 @@
1
- "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
4
- import { createPortal } from "react-dom";
5
- import { X } from "lucide-react";
6
- import { useFocusTrap } from "./use-focus-trap.js";
7
- const SNAP_HEIGHT = {
8
- auto: "max-h-[90dvh]",
9
- half: "h-1/2",
10
- full: "h-[95dvh]"
11
- };
12
- const BottomSheet = forwardRef(function BottomSheet2({
13
- open,
14
- onClose,
15
- title,
16
- children,
17
- snap = "auto",
18
- hideHeader = false,
19
- closeOnBackdrop = true,
20
- className = ""
21
- }, ref) {
22
- const [mounted, setMounted] = useState(false);
23
- const sheetRef = useFocusTrap(open);
24
- useImperativeHandle(ref, () => sheetRef.current);
25
- const dragStartY = useRef(0);
26
- const handleDragStart = (e) => {
27
- var _a, _b;
28
- dragStartY.current = (_b = (_a = e.touches[0]) == null ? void 0 : _a.clientY) != null ? _b : 0;
29
- };
30
- const handleDragMove = (e) => {
31
- var _a, _b;
32
- const container = (_a = sheetRef.current) == null ? void 0 : _a.querySelector("[data-scroll-container]");
33
- if (container && container.scrollTop > 0) return;
34
- const y = (_b = e.touches[0]) == null ? void 0 : _b.clientY;
35
- if (y !== void 0 && y - dragStartY.current > 80) onClose();
36
- };
37
- useEffect(() => {
38
- setMounted(true);
39
- }, []);
40
- useEffect(() => {
41
- if (!open) return;
42
- const handler = (e) => {
43
- if (e.key === "Escape") onClose();
44
- };
45
- document.addEventListener("keydown", handler);
46
- document.body.style.overflow = "hidden";
47
- return () => {
48
- document.removeEventListener("keydown", handler);
49
- document.body.style.overflow = "";
50
- };
51
- }, [open, onClose]);
52
- if (!mounted || !open) return null;
53
- return createPortal(
54
- /* @__PURE__ */ React.createElement(
55
- "div",
56
- {
57
- role: "dialog",
58
- "aria-modal": "true",
59
- "aria-labelledby": title ? "bottom-sheet-title" : void 0,
60
- className: "fixed inset-0 z-[1000] flex items-end justify-center"
61
- },
62
- /* @__PURE__ */ React.createElement(
63
- "div",
64
- {
65
- "data-bottom-sheet-backdrop": true,
66
- onClick: closeOnBackdrop ? onClose : void 0,
67
- className: "absolute inset-0 [background:var(--overlay-scrim)] rojao-bottom-sheet--backdrop-enter",
68
- "aria-hidden": true
69
- }
70
- ),
71
- /* @__PURE__ */ React.createElement(
72
- "div",
73
- {
74
- ref: sheetRef,
75
- tabIndex: -1,
76
- className: [
77
- "relative w-full sm:max-w-md bg-surface-default rounded-t-(--radius-toast) shadow-2xl outline-none",
78
- "flex flex-col rojao-bottom-sheet--enter",
79
- SNAP_HEIGHT[snap],
80
- className
81
- ].join(" ")
82
- },
83
- /* @__PURE__ */ React.createElement(
84
- "div",
85
- {
86
- "data-drag-handle": true,
87
- onTouchStart: handleDragStart,
88
- onTouchMove: handleDragMove,
89
- className: "flex justify-center items-center min-h-[20px] pt-2 shrink-0 touch-none cursor-grab"
90
- },
91
- /* @__PURE__ */ React.createElement("span", { className: "w-10 h-1 rounded-full bg-(--border-strong)", "aria-hidden": true })
92
- ),
93
- !hideHeader && /* @__PURE__ */ React.createElement(
94
- "div",
95
- {
96
- onTouchStart: handleDragStart,
97
- onTouchMove: handleDragMove,
98
- className: "flex items-center justify-between px-5 pt-2 pb-3 border-b border-stroke-default shrink-0"
99
- },
100
- /* @__PURE__ */ React.createElement("h2", { id: "bottom-sheet-title", className: "text-body font-semibold text-fg-primary" }, title),
101
- /* @__PURE__ */ React.createElement(
102
- "button",
103
- {
104
- type: "button",
105
- onClick: onClose,
106
- "aria-label": "Fechar",
107
- className: "text-fg-muted hover:text-fg-primary transition-colors p-3 -mr-3 rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-stroke-focus"
108
- },
109
- /* @__PURE__ */ React.createElement(X, { size: 18 })
110
- )
111
- ),
112
- /* @__PURE__ */ React.createElement("div", { "data-scroll-container": true, className: "flex-1 overflow-y-auto px-5 py-4" }, children)
113
- )
114
- ),
115
- document.body
116
- );
117
- });
118
- export {
119
- BottomSheet
120
- };
@@ -1,16 +0,0 @@
1
- import * as react from 'react';
2
- import { MouseEvent, ReactNode } from 'react';
3
-
4
- type ChatBubbleVariant = 'bot' | 'user';
5
- type ChatBubbleState = 'sent' | 'editing' | 'pending';
6
- interface ChatBubbleProps {
7
- variant: ChatBubbleVariant;
8
- state?: ChatBubbleState;
9
- dim?: boolean;
10
- onClick?: (e: MouseEvent<HTMLDivElement>) => void;
11
- children: ReactNode;
12
- ariaLabel?: string;
13
- }
14
- declare function ChatBubble({ variant, state, dim, onClick, children, ariaLabel, }: ChatBubbleProps): react.JSX.Element;
15
-
16
- export { ChatBubble, type ChatBubbleProps, type ChatBubbleState, type ChatBubbleVariant };
@@ -1,55 +0,0 @@
1
- "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- function ChatBubble({
4
- variant,
5
- state = "sent",
6
- dim = false,
7
- onClick,
8
- children,
9
- ariaLabel
10
- }) {
11
- const isBot = variant === "bot";
12
- const interactive = !!onClick && !dim;
13
- const wrapperClass = [
14
- "w-full flex",
15
- isBot ? "justify-start" : "justify-end"
16
- ].join(" ");
17
- const bubbleClass = [
18
- "inline-block max-w-[var(--chat-bubble-max-width)]",
19
- "px-[var(--chat-bubble-padding-x)] py-[var(--chat-bubble-padding-y)]",
20
- "text-[length:var(--font-size-body)] leading-[var(--line-height-body)]",
21
- "transition-all",
22
- isBot ? "bg-[var(--chat-bubble-bot-bg)] text-[var(--chat-bubble-bot-text)]" : "bg-[var(--chat-bubble-user-bg)] text-[var(--chat-bubble-user-text)]",
23
- dim ? "opacity-[var(--chat-bubble-dim-opacity)] pointer-events-none" : "",
24
- state === "editing" ? "ring-2 ring-[var(--chat-bubble-editing-border)] ring-offset-1" : "",
25
- interactive ? "cursor-pointer hover:brightness-95" : ""
26
- ].filter(Boolean).join(" ");
27
- const radiusStyle = isBot ? {
28
- borderRadius: "var(--chat-bubble-radius-lg)",
29
- borderTopLeftRadius: "var(--chat-bubble-radius-sm)"
30
- } : {
31
- borderRadius: "var(--chat-bubble-radius-lg)",
32
- borderBottomRightRadius: "var(--chat-bubble-radius-sm)"
33
- };
34
- return /* @__PURE__ */ React.createElement("div", { className: wrapperClass }, /* @__PURE__ */ React.createElement(
35
- "div",
36
- {
37
- className: bubbleClass,
38
- style: radiusStyle,
39
- onClick: interactive ? onClick : void 0,
40
- role: interactive ? "button" : void 0,
41
- tabIndex: interactive ? 0 : void 0,
42
- onKeyDown: interactive ? (e) => {
43
- if (e.key === "Enter" || e.key === " ") {
44
- e.preventDefault();
45
- onClick == null ? void 0 : onClick(e);
46
- }
47
- } : void 0,
48
- "aria-label": ariaLabel
49
- },
50
- children
51
- ));
52
- }
53
- export {
54
- ChatBubble
55
- };
@@ -1,22 +0,0 @@
1
- import * as react from 'react';
2
- import { ReactNode, MouseEvent } from 'react';
3
-
4
- interface ChipProps {
5
- children: ReactNode;
6
- onClick?: (e: MouseEvent<HTMLButtonElement | HTMLDivElement>) => void;
7
- /** Leading slot — ícone, avatar, qualquer ReactNode. */
8
- leading?: ReactNode;
9
- disabled?: boolean;
10
- className?: string;
11
- /** Sem borda, background discreto. */
12
- subtle?: boolean;
13
- /** Destaca com cor primária. Usado com onRemove. */
14
- selected?: boolean;
15
- /** Exibe botão X de remover. Implica estrutura de div (não button). */
16
- onRemove?: () => void;
17
- /** Border tracejado + brand-secondary. Sinaliza sugestão de IA. */
18
- highlight?: boolean;
19
- }
20
- declare function Chip({ children, onClick, leading, disabled, className, subtle, selected, onRemove, highlight, }: ChipProps): react.JSX.Element;
21
-
22
- export { Chip, type ChipProps };
@@ -1,94 +0,0 @@
1
- import "../chunk-ORMEWXMH.js";
2
- import { X } from "lucide-react";
3
- const BASE = "inline-flex items-center gap-1.5 px-3 h-7 text-caption font-medium rounded-full border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-stroke-focus disabled:cursor-not-allowed disabled:opacity-50";
4
- function Chip({
5
- children,
6
- onClick,
7
- leading,
8
- disabled = false,
9
- className = "",
10
- subtle = false,
11
- selected = false,
12
- onRemove,
13
- highlight = false
14
- }) {
15
- if (onRemove !== void 0 || selected) {
16
- let handleKey2 = function(e) {
17
- if (!interactive) return;
18
- if (e.key === "Enter" || e.key === " ") {
19
- e.preventDefault();
20
- onClick == null ? void 0 : onClick(e);
21
- }
22
- };
23
- var handleKey = handleKey2;
24
- const interactive = !!onClick;
25
- return /* @__PURE__ */ React.createElement(
26
- "div",
27
- {
28
- role: interactive ? "button" : void 0,
29
- tabIndex: interactive && !disabled ? 0 : void 0,
30
- onClick: disabled ? void 0 : onClick,
31
- onKeyDown: handleKey2,
32
- className: [
33
- BASE,
34
- onRemove ? "pr-1.5" : "",
35
- selected ? "border-brand-primary bg-brand-primary text-brand-on-primary" : "border-stroke-default bg-surface-default text-fg-primary",
36
- interactive && !disabled ? "cursor-pointer hover:bg-surface-raised" : "",
37
- disabled ? "opacity-50 cursor-not-allowed" : "",
38
- className
39
- ].join(" ")
40
- },
41
- leading && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 [&_svg]:size-3.5" }, leading),
42
- /* @__PURE__ */ React.createElement("span", { className: "truncate" }, children),
43
- onRemove && /* @__PURE__ */ React.createElement(
44
- "button",
45
- {
46
- type: "button",
47
- onClick: (e) => {
48
- e.stopPropagation();
49
- onRemove();
50
- },
51
- "aria-label": "Remover",
52
- disabled,
53
- className: "inline-flex items-center justify-center size-4 rounded-full opacity-60 hover:opacity-100 ml-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-stroke-focus transition-opacity"
54
- },
55
- /* @__PURE__ */ React.createElement(X, { size: 12 })
56
- )
57
- );
58
- }
59
- if (highlight) {
60
- return /* @__PURE__ */ React.createElement(
61
- "button",
62
- {
63
- type: "button",
64
- onClick,
65
- disabled,
66
- className: [
67
- BASE,
68
- "border-dashed border-brand-secondary bg-brand-secondary/10 text-brand-secondary hover:bg-brand-secondary/20",
69
- className
70
- ].join(" ")
71
- },
72
- leading && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 [&_svg]:size-3.5" }, leading),
73
- children
74
- );
75
- }
76
- return /* @__PURE__ */ React.createElement(
77
- "button",
78
- {
79
- type: "button",
80
- onClick,
81
- disabled,
82
- className: [
83
- BASE,
84
- subtle ? "border-transparent bg-surface-raised text-fg-secondary hover:bg-stroke-default hover:text-fg-primary" : "border-stroke-default bg-surface-default text-fg-primary hover:bg-surface-raised",
85
- className
86
- ].join(" ")
87
- },
88
- leading && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 [&_svg]:size-3.5" }, leading),
89
- children
90
- );
91
- }
92
- export {
93
- Chip
94
- };
@@ -1,18 +0,0 @@
1
- import * as react from 'react';
2
-
3
- type CopilotHintPriority = 'high' | 'medium' | 'low';
4
- interface CopilotHintProps {
5
- id: string;
6
- title: string;
7
- description?: string;
8
- cta?: {
9
- label: string;
10
- href: string;
11
- };
12
- dismissible?: boolean;
13
- priority?: CopilotHintPriority;
14
- className?: string;
15
- }
16
- declare function CopilotHint({ id, title, description, cta, dismissible, priority, className, }: CopilotHintProps): react.JSX.Element | null;
17
-
18
- export { CopilotHint, type CopilotHintPriority, type CopilotHintProps };
@@ -1,63 +0,0 @@
1
- "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- import { useState, useEffect } from "react";
4
- function CopilotHint({
5
- id,
6
- title,
7
- description,
8
- cta,
9
- dismissible = true,
10
- priority = "medium",
11
- className = ""
12
- }) {
13
- const [dismissed, setDismissed] = useState(true);
14
- useEffect(() => {
15
- setDismissed(localStorage.getItem(`copilot-dismissed:${id}`) === "1");
16
- }, [id]);
17
- if (dismissed) return null;
18
- function dismiss() {
19
- localStorage.setItem(`copilot-dismissed:${id}`, "1");
20
- setDismissed(true);
21
- }
22
- return /* @__PURE__ */ React.createElement(
23
- "div",
24
- {
25
- className: [
26
- "rounded-(--radius-card) border bg-(--surface-raised) p-4 flex gap-3",
27
- priority === "high" ? "border-brand-primary" : "border-stroke-default",
28
- className
29
- ].filter(Boolean).join(" ")
30
- },
31
- priority === "high" && /* @__PURE__ */ React.createElement("div", { className: "w-1 self-stretch rounded-full bg-(--brand-primary) shrink-0" }),
32
- /* @__PURE__ */ React.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React.createElement("p", { className: "text-label font-medium text-(--text-primary)" }, title), description && /* @__PURE__ */ React.createElement("p", { className: "text-caption text-(--text-muted) mt-0.5 leading-relaxed" }, description), cta && /* @__PURE__ */ React.createElement(
33
- "a",
34
- {
35
- href: cta.href,
36
- className: "mt-2 inline-flex text-caption font-medium text-(--brand-primary) hover:underline"
37
- },
38
- cta.label,
39
- " \u2192"
40
- )),
41
- dismissible && /* @__PURE__ */ React.createElement(
42
- "button",
43
- {
44
- type: "button",
45
- onClick: dismiss,
46
- "aria-label": "Dispensar",
47
- className: "text-(--text-disabled) hover:text-(--text-secondary) transition-colors shrink-0 self-start"
48
- },
49
- /* @__PURE__ */ React.createElement("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none" }, /* @__PURE__ */ React.createElement(
50
- "path",
51
- {
52
- d: "M1 1l12 12M13 1L1 13",
53
- stroke: "currentColor",
54
- strokeWidth: "1.5",
55
- strokeLinecap: "round"
56
- }
57
- ))
58
- )
59
- );
60
- }
61
- export {
62
- CopilotHint
63
- };
@@ -1,20 +0,0 @@
1
- import * as react from 'react';
2
-
3
- /**
4
- * Divider — separador visual horizontal ou vertical.
5
- *
6
- * Uso:
7
- * <Divider /> // horizontal subtle
8
- * <Divider orientation="vertical" /> // vertical
9
- * <Divider variant="strong" /> // mais visível
10
- * <Divider><span>OU</span></Divider> // com label centralizado
11
- */
12
- interface DividerProps {
13
- orientation?: 'horizontal' | 'vertical';
14
- variant?: 'subtle' | 'default' | 'strong';
15
- className?: string;
16
- children?: React.ReactNode;
17
- }
18
- declare function Divider({ orientation, variant, className, children, }: DividerProps): react.JSX.Element;
19
-
20
- export { Divider, type DividerProps };
@@ -1,47 +0,0 @@
1
- import "../chunk-ORMEWXMH.js";
2
- const COLOR_BY_VARIANT = {
3
- subtle: "bg-stroke-subtle",
4
- default: "bg-stroke-default",
5
- strong: "bg-stroke-strong"
6
- };
7
- function Divider({
8
- orientation = "horizontal",
9
- variant = "default",
10
- className = "",
11
- children
12
- }) {
13
- if (orientation === "vertical") {
14
- return /* @__PURE__ */ React.createElement(
15
- "div",
16
- {
17
- role: "separator",
18
- "aria-orientation": "vertical",
19
- className: ["shrink-0 self-stretch w-px", COLOR_BY_VARIANT[variant], className].join(" ")
20
- }
21
- );
22
- }
23
- if (children) {
24
- return /* @__PURE__ */ React.createElement(
25
- "div",
26
- {
27
- role: "separator",
28
- "aria-orientation": "horizontal",
29
- className: ["flex items-center gap-3 my-2", className].join(" ")
30
- },
31
- /* @__PURE__ */ React.createElement("span", { className: ["flex-1 h-px", COLOR_BY_VARIANT[variant]].join(" ") }),
32
- /* @__PURE__ */ React.createElement("span", { className: "text-caption text-fg-muted shrink-0" }, children),
33
- /* @__PURE__ */ React.createElement("span", { className: ["flex-1 h-px", COLOR_BY_VARIANT[variant]].join(" ") })
34
- );
35
- }
36
- return /* @__PURE__ */ React.createElement(
37
- "hr",
38
- {
39
- role: "separator",
40
- "aria-orientation": "horizontal",
41
- className: ["border-0 h-px my-2", COLOR_BY_VARIANT[variant], className].join(" ")
42
- }
43
- );
44
- }
45
- export {
46
- Divider
47
- };
@@ -1,48 +0,0 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import * as lucide_react from 'lucide-react';
4
-
5
- declare const ICON_MAP: {
6
- readonly box: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
7
- readonly service: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
8
- readonly kit: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
9
- readonly input: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
10
- readonly order: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
11
- readonly customer: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
12
- readonly finance: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
13
- readonly schedule: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
14
- readonly inventory: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
15
- readonly price: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
16
- readonly category: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
17
- readonly generic: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
18
- readonly search: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
19
- readonly lock: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
20
- readonly catalog: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
21
- readonly channels: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
22
- readonly commercial: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
23
- readonly operation: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
24
- readonly intelligence: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
25
- readonly billing: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
26
- };
27
- type EmptyStateIcon = keyof typeof ICON_MAP;
28
- interface EmptyStateCta {
29
- label: string;
30
- href?: string;
31
- onClick?: () => void;
32
- }
33
- interface EmptyStateProps {
34
- icon?: EmptyStateIcon;
35
- title: string;
36
- description?: string;
37
- cta?: EmptyStateCta;
38
- /**
39
- * full = fills available height (use inside page containers)
40
- * compact = inline fit with vertical padding
41
- */
42
- size?: 'full' | 'compact';
43
- children?: ReactNode;
44
- className?: string;
45
- }
46
- declare function EmptyState({ icon, title, description, cta, size, children, className, }: EmptyStateProps): react.JSX.Element;
47
-
48
- export { EmptyState, type EmptyStateCta, type EmptyStateIcon, type EmptyStateProps, ICON_MAP };
@@ -1,91 +0,0 @@
1
- "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- import {
4
- Package,
5
- Clock,
6
- Combine,
7
- Boxes,
8
- FileText,
9
- Users,
10
- Wallet,
11
- CalendarDays,
12
- Warehouse,
13
- Tag,
14
- LayoutGrid,
15
- Info,
16
- SearchX,
17
- Lock,
18
- Send,
19
- HandCoins,
20
- Store,
21
- BarChart3,
22
- CreditCard
23
- } from "lucide-react";
24
- const ICON_MAP = {
25
- box: Package,
26
- service: Clock,
27
- kit: Combine,
28
- input: Boxes,
29
- order: FileText,
30
- customer: Users,
31
- finance: Wallet,
32
- schedule: CalendarDays,
33
- inventory: Warehouse,
34
- price: Tag,
35
- category: LayoutGrid,
36
- generic: Info,
37
- search: SearchX,
38
- lock: Lock,
39
- // Categorias de feature (Paywall) ──
40
- catalog: Package,
41
- channels: Send,
42
- commercial: HandCoins,
43
- operation: Store,
44
- intelligence: BarChart3,
45
- billing: CreditCard
46
- };
47
- function EmptyState({
48
- icon = "generic",
49
- title,
50
- description,
51
- cta,
52
- size = "full",
53
- children,
54
- className = ""
55
- }) {
56
- const Icon = ICON_MAP[icon];
57
- return /* @__PURE__ */ React.createElement(
58
- "div",
59
- {
60
- className: [
61
- "flex flex-col items-center justify-center text-center px-6",
62
- size === "full" ? "min-h-[320px] flex-1" : "min-h-[200px] py-10",
63
- className
64
- ].filter(Boolean).join(" ")
65
- },
66
- /* @__PURE__ */ React.createElement("div", { className: "mb-5 text-stroke-strong" }, /* @__PURE__ */ React.createElement(Icon, { size: 72, strokeWidth: 1.25 })),
67
- /* @__PURE__ */ React.createElement("p", { className: "text-body font-semibold text-fg-primary mb-2" }, title),
68
- description && /* @__PURE__ */ React.createElement("p", { className: "text-label text-fg-muted max-w-sm leading-relaxed mb-4" }, description),
69
- cta && (cta.href ? /* @__PURE__ */ React.createElement(
70
- "a",
71
- {
72
- href: cta.href,
73
- className: "mt-3 inline-block px-4 py-2 text-label font-medium rounded-(--radius-card) transition-colors text-brand-on-primary bg-brand-primary hover:bg-brand-hover"
74
- },
75
- cta.label
76
- ) : /* @__PURE__ */ React.createElement(
77
- "button",
78
- {
79
- type: "button",
80
- onClick: cta.onClick,
81
- className: "mt-3 inline-block px-4 py-2 text-label font-medium rounded-(--radius-card) transition-colors text-brand-on-primary bg-brand-primary hover:bg-brand-hover"
82
- },
83
- cta.label
84
- )),
85
- children
86
- );
87
- }
88
- export {
89
- EmptyState,
90
- ICON_MAP
91
- };
@@ -1,13 +0,0 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
-
4
- interface FormCardHeaderProps {
5
- icon?: ReactNode;
6
- title: ReactNode;
7
- subtitle?: ReactNode;
8
- /** Slot à direita (ação, badge) — alinhado ao centro vertical do bloco. */
9
- action?: ReactNode;
10
- }
11
- declare function FormCardHeader({ icon, title, subtitle, action }: FormCardHeaderProps): react.JSX.Element;
12
-
13
- export { FormCardHeader, type FormCardHeaderProps };
@@ -1,8 +0,0 @@
1
- "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- function FormCardHeader({ icon, title, subtitle, action }) {
4
- return /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-3 pb-3" }, icon && /* @__PURE__ */ React.createElement("span", { className: "grid place-items-center shrink-0 size-9 rounded-(--radius-card) bg-brand-primary text-brand-on-primary" }, icon), /* @__PURE__ */ React.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React.createElement("p", { className: "text-label font-semibold text-(--text-primary)" }, title), subtitle && /* @__PURE__ */ React.createElement("p", { className: "text-caption text-(--text-muted) mt-1 leading-snug" }, subtitle)), action && /* @__PURE__ */ React.createElement("div", { className: "shrink-0" }, action));
5
- }
6
- export {
7
- FormCardHeader
8
- };
@@ -1,16 +0,0 @@
1
- import * as react from 'react';
2
- import { LabelHTMLAttributes, ReactNode } from 'react';
3
-
4
- interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
5
- /** Mostra `*` vermelho indicando obrigatório. */
6
- required?: boolean;
7
- /** Mostra `(opcional)` em cinza. */
8
- optional?: boolean;
9
- /** Tooltip helper — renderiza ícone "?" com title nativo. */
10
- tooltip?: string;
11
- size?: 'sm' | 'md';
12
- children: ReactNode;
13
- }
14
- declare function Label({ required, optional, tooltip, size, className, children, ...rest }: LabelProps): react.JSX.Element;
15
-
16
- export { Label, type LabelProps };