@rojaostudio/ds 1.0.2 → 2.0.0-next.1

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 (356) 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 -93
  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 +67 -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 -90
  15. package/dist/components/badge.d.ts +30 -41
  16. package/dist/components/badge.js +13 -110
  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 +38 -56
  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 +45 -108
  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 +31 -46
  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 +87 -81
  43. package/dist/components/chip-input.d.ts +46 -20
  44. package/dist/components/chip-input.js +172 -176
  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 -62
  49. package/dist/components/choice-carousel.d.ts +9 -0
  50. package/dist/components/choice-carousel.js +28 -44
  51. package/dist/components/choice-preview-card.d.ts +10 -20
  52. package/dist/components/choice-preview-card.js +12 -40
  53. package/dist/components/color-input.d.ts +36 -11
  54. package/dist/components/color-input.js +131 -59
  55. package/dist/components/combobox.d.ts +60 -57
  56. package/dist/components/combobox.js +210 -213
  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 +41 -68
  63. package/dist/components/copy-field.d.ts +10 -5
  64. package/dist/components/copy-field.js +24 -29
  65. package/dist/components/currency-input.d.ts +25 -11
  66. package/dist/components/currency-input.js +29 -65
  67. package/dist/components/danger-zone.d.ts +10 -1
  68. package/dist/components/danger-zone.js +14 -18
  69. package/dist/components/data-table-header.d.ts +13 -2
  70. package/dist/components/data-table-header.js +114 -190
  71. package/dist/components/date-picker.d.ts +31 -32
  72. package/dist/components/date-picker.js +119 -254
  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 +57 -89
  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 -58
  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 -51
  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 -61
  93. package/dist/components/floating-stepper.d.ts +7 -18
  94. package/dist/components/floating-stepper.js +27 -55
  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 +44 -64
  111. package/dist/components/image-crop-modal.d.ts +3 -3
  112. package/dist/components/image-crop-modal.js +32 -39
  113. package/dist/components/image-upload.d.ts +21 -29
  114. package/dist/components/image-upload.js +55 -259
  115. package/dist/components/index.d.ts +105 -52
  116. package/dist/components/index.js +190 -74
  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 +104 -137
  121. package/dist/components/insight-card.d.ts +25 -9
  122. package/dist/components/insight-card.js +42 -27
  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 -27
  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 -137
  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 -34
  185. package/dist/components/page-skeleton.d.ts +15 -21
  186. package/dist/components/page-skeleton.js +28 -25
  187. package/dist/components/pagination.d.ts +32 -22
  188. package/dist/components/pagination.js +78 -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 +75 -64
  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 +30 -131
  197. package/dist/components/pricing-card.d.ts +9 -25
  198. package/dist/components/pricing-card.js +9 -40
  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 +6 -22
  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 +45 -103
  211. package/dist/components/row-actions.d.ts +5 -0
  212. package/dist/components/row-actions.js +27 -34
  213. package/dist/components/saving-bar-context.d.ts +0 -5
  214. package/dist/components/saving-bar-context.js +16 -40
  215. package/dist/components/saving-bar.d.ts +26 -11
  216. package/dist/components/saving-bar.js +50 -65
  217. package/dist/components/section-card.d.ts +18 -4
  218. package/dist/components/section-card.js +29 -50
  219. package/dist/components/section-header.d.ts +8 -12
  220. package/dist/components/section-header.js +5 -10
  221. package/dist/components/select.d.ts +44 -16
  222. package/dist/components/select.js +83 -154
  223. package/dist/components/selectable-card.d.ts +11 -19
  224. package/dist/components/selectable-card.js +4 -28
  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 +10 -23
  229. package/dist/components/settings-list.d.ts +10 -12
  230. package/dist/components/settings-list.js +7 -19
  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 -37
  237. package/dist/components/slider.d.ts +21 -23
  238. package/dist/components/slider.js +59 -64
  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 +34 -37
  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 +18 -16
  251. package/dist/components/summary-bar.d.ts +20 -20
  252. package/dist/components/summary-bar.js +13 -55
  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 +59 -58
  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 -91
  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 +185 -203
  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 +19 -86
  271. package/dist/components/toggle-card.d.ts +11 -2
  272. package/dist/components/toggle-card.js +8 -77
  273. package/dist/components/toggle-group.d.ts +21 -59
  274. package/dist/components/toggle-group.js +31 -80
  275. package/dist/components/toggle.d.ts +19 -9
  276. package/dist/components/toggle.js +16 -61
  277. package/dist/components/tooltip.d.ts +25 -12
  278. package/dist/components/tooltip.js +15 -88
  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 -24
  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/targets/native/components/index.d.ts +0 -2
  295. package/dist/targets/native/components/index.js +0 -4
  296. package/dist/targets/native/preset.cjs +0 -1
  297. package/dist/targets/native/theme.css +58 -60
  298. package/dist/targets/native/theme.d.ts +58 -60
  299. package/dist/targets/native/theme.js +58 -60
  300. package/package.json +34 -12
  301. package/styles/_primitives.generated.css +40 -0
  302. package/styles/base.css +12 -18
  303. package/styles/rds/components-styles.css +11365 -0
  304. package/styles/rds/components.css +993 -0
  305. package/styles/rds/foundation.css +74 -0
  306. package/styles/rds/theme.css +261 -0
  307. package/styles/rds.css +6 -0
  308. package/styles/themes/rojao.css +46 -53
  309. package/dist/components/blocker-card.d.ts +0 -42
  310. package/dist/components/blocker-card.js +0 -54
  311. package/dist/components/bottom-sheet.d.ts +0 -31
  312. package/dist/components/bottom-sheet.js +0 -127
  313. package/dist/components/chat-bubble.d.ts +0 -16
  314. package/dist/components/chat-bubble.js +0 -56
  315. package/dist/components/chips.d.ts +0 -22
  316. package/dist/components/chips.js +0 -101
  317. package/dist/components/copilot-hint.d.ts +0 -18
  318. package/dist/components/copilot-hint.js +0 -72
  319. package/dist/components/divider.d.ts +0 -20
  320. package/dist/components/divider.js +0 -50
  321. package/dist/components/empty-state.d.ts +0 -48
  322. package/dist/components/empty-state.js +0 -94
  323. package/dist/components/form-card-header.d.ts +0 -13
  324. package/dist/components/form-card-header.js +0 -16
  325. package/dist/components/label.d.ts +0 -16
  326. package/dist/components/label.js +0 -48
  327. package/dist/components/menu.d.ts +0 -50
  328. package/dist/components/menu.js +0 -83
  329. package/dist/components/modal.d.ts +0 -25
  330. package/dist/components/modal.js +0 -86
  331. package/dist/components/notice.d.ts +0 -50
  332. package/dist/components/notice.js +0 -121
  333. package/dist/components/page-tabs.d.ts +0 -35
  334. package/dist/components/page-tabs.js +0 -68
  335. package/dist/components/paywall-banner.d.ts +0 -37
  336. package/dist/components/paywall-banner.js +0 -58
  337. package/dist/components/paywall.d.ts +0 -44
  338. package/dist/components/paywall.js +0 -65
  339. package/dist/components/phone-frame.d.ts +0 -9
  340. package/dist/components/phone-frame.js +0 -19
  341. package/dist/components/pix-icon.d.ts +0 -8
  342. package/dist/components/search.d.ts +0 -30
  343. package/dist/components/search.js +0 -86
  344. package/dist/components/themed.d.ts +0 -36
  345. package/dist/components/themed.js +0 -23
  346. package/dist/components/toaster.d.ts +0 -84
  347. package/dist/components/toaster.js +0 -290
  348. package/dist/components/use-dismiss.d.ts +0 -9
  349. package/dist/components/use-dismiss.js +0 -28
  350. package/dist/components/use-focus-trap.d.ts +0 -5
  351. package/dist/components/use-focus-trap.js +0 -54
  352. package/dist/targets/native/components/paywall-banner.d.ts +0 -11
  353. package/dist/targets/native/components/paywall-banner.js +0 -55
  354. package/dist/targets/native/components/paywall.d.ts +0 -18
  355. package/dist/targets/native/components/paywall.js +0 -71
  356. /package/dist/{components/pix-icon.js → icons/pix.js} +0 -0
@@ -4,35 +4,18 @@ import {
4
4
  } from "../chunk-ORMEWXMH.js";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { useRef, useState } from "react";
7
- import { Upload, X } from "lucide-react";
8
- import { Button } from "./button.js";
9
- import { Tooltip } from "./tooltip.js";
7
+ import { FileInput } from "./file-input.js";
10
8
  import { ImageCropModal } from "./image-crop-modal.js";
11
9
  const DEFAULT_LABELS = {
12
10
  select: "Selecionar imagem",
13
11
  change: "Trocar imagem",
14
- remove: "Remover",
12
+ remove: "Remover imagem",
15
13
  uploading: "Enviando\u2026",
16
14
  dropTitle: "Arraste e solte uma imagem aqui",
17
15
  dropHint: "ou clique para selecionar do seu computador",
18
16
  aria: "\xC1rea de upload de imagem",
19
17
  error: "Erro ao fazer upload"
20
18
  };
21
- const BUTTON_PREVIEW = {
22
- logo: "h-16 w-auto max-w-[160px] object-contain rounded-(--radius-control) border border-stroke-default bg-surface-raised p-1",
23
- banner: "w-full h-auto rounded-(--radius-control) border border-stroke-default",
24
- square: "size-20 object-cover rounded-(--radius-control) border border-stroke-default"
25
- };
26
- const DROPZONE_PREVIEW = {
27
- logo: "max-h-36 w-auto max-w-full object-contain rounded-(--radius-control) border border-stroke-default bg-surface-raised p-2",
28
- banner: "w-full max-h-36 object-cover rounded-(--radius-control) border border-stroke-default shrink-0",
29
- square: "size-36 object-cover rounded-(--radius-control) border border-stroke-default shrink-0"
30
- };
31
- const TILE_BOX = {
32
- logo: "h-20 w-full max-w-[220px]",
33
- banner: "h-24 w-full max-w-xs",
34
- square: "size-28"
35
- };
36
19
  function ImageUpload({
37
20
  name,
38
21
  value,
@@ -40,275 +23,88 @@ function ImageUpload({
40
23
  onUpload,
41
24
  label,
42
25
  hint,
43
- aspect = "logo",
44
26
  accept = "image/jpeg,image/png,image/webp",
45
- className = "",
46
- variant = "button",
47
- previewClassName,
48
- previewWrapperClassName,
27
+ className,
49
28
  crop,
50
29
  labels
51
30
  }) {
52
31
  const L = __spreadValues(__spreadValues({}, DEFAULT_LABELS), labels);
53
- const inputRef = useRef(null);
32
+ const input = useRef(null);
54
33
  const [uploading, setUploading] = useState(false);
55
- const [dragging, setDragging] = useState(false);
56
34
  const [error, setError] = useState(null);
57
35
  const [pendingFile, setPendingFile] = useState(null);
58
- async function processFile(file) {
36
+ const reset = () => {
37
+ if (input.current) input.current.value = "";
38
+ };
39
+ async function upload(file) {
59
40
  setError(null);
60
41
  setUploading(true);
61
42
  try {
62
- const url = await onUpload(file);
63
- onChange(url);
43
+ onChange(await onUpload(file));
64
44
  } catch (err) {
65
45
  setError(err instanceof Error ? err.message : L.error);
66
46
  } finally {
67
47
  setUploading(false);
68
- if (inputRef.current) inputRef.current.value = "";
48
+ reset();
69
49
  }
70
50
  }
71
- async function selectFile(file) {
51
+ async function choose(files) {
52
+ const file = files[0];
53
+ if (!file) return;
72
54
  if (crop) {
73
55
  setError(null);
74
56
  setPendingFile(file);
75
57
  return;
76
58
  }
77
- await processFile(file);
78
- }
79
- async function handleCropConfirm(blob) {
80
- var _a;
81
- const base = pendingFile;
82
- setPendingFile(null);
83
- const name2 = ((_a = base == null ? void 0 : base.name) != null ? _a : "image").replace(/\.[^./\\]+$/, "") + ".jpg";
84
- await processFile(new File([blob], name2, { type: blob.type || "image/jpeg" }));
59
+ await upload(file);
85
60
  }
86
- function handleCropCancel() {
87
- setPendingFile(null);
88
- if (inputRef.current) inputRef.current.value = "";
89
- }
90
- async function handleFileInput(e) {
91
- var _a;
92
- const file = (_a = e.target.files) == null ? void 0 : _a[0];
93
- if (file) await selectFile(file);
94
- }
95
- async function handleDrop(e) {
96
- var _a;
97
- e.preventDefault();
98
- setDragging(false);
99
- const file = (_a = e.dataTransfer.files) == null ? void 0 : _a[0];
100
- if (file) await selectFile(file);
101
- }
102
- const cropModal = crop ? /* @__PURE__ */ jsx(
103
- ImageCropModal,
104
- {
105
- open: !!pendingFile,
106
- file: pendingFile,
107
- onCancel: handleCropCancel,
108
- onConfirm: handleCropConfirm,
109
- presets: crop.presets,
110
- minAspect: crop.minAspect,
111
- maxAspect: crop.maxAspect,
112
- maxSizeBytes: crop.maxSizeBytes,
113
- title: crop.title,
114
- confirmLabel: crop.confirmLabel
115
- }
116
- ) : null;
117
- const openPicker = () => {
118
- var _a;
119
- if (!uploading) (_a = inputRef.current) == null ? void 0 : _a.click();
120
- };
121
- const hiddenInputs = /* @__PURE__ */ jsxs(Fragment, { children: [
122
- /* @__PURE__ */ jsx("input", { type: "hidden", name, value }),
61
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
123
62
  /* @__PURE__ */ jsx(
124
- "input",
63
+ FileInput,
125
64
  {
126
- ref: inputRef,
127
- type: "file",
65
+ ref: input,
66
+ variant: "tile",
67
+ label,
68
+ "aria-label": label ? void 0 : L.aria,
69
+ hint,
70
+ errorMessage: error != null ? error : void 0,
128
71
  accept,
129
- onChange: handleFileInput,
130
- className: "hidden"
72
+ preview: value,
73
+ tileText: uploading ? L.uploading : L.select,
74
+ replaceLabel: L.change,
75
+ clearLabel: L.remove,
76
+ disabled: uploading,
77
+ className,
78
+ onFiles: (files) => void choose(files),
79
+ onClear: () => onChange("")
80
+ }
81
+ ),
82
+ /* @__PURE__ */ jsx("input", { type: "hidden", name, value }),
83
+ crop && /* @__PURE__ */ jsx(
84
+ ImageCropModal,
85
+ {
86
+ open: !!pendingFile,
87
+ file: pendingFile,
88
+ onCancel: () => {
89
+ setPendingFile(null);
90
+ reset();
91
+ },
92
+ onConfirm: async (blob) => {
93
+ var _a;
94
+ const base = pendingFile;
95
+ setPendingFile(null);
96
+ const fileName = ((_a = base == null ? void 0 : base.name) != null ? _a : "image").replace(/\.[^./\\]+$/, "") + ".jpg";
97
+ await upload(new File([blob], fileName, { type: blob.type || "image/jpeg" }));
98
+ },
99
+ presets: crop.presets,
100
+ minAspect: crop.minAspect,
101
+ maxAspect: crop.maxAspect,
102
+ maxSizeBytes: crop.maxSizeBytes,
103
+ title: crop.title,
104
+ confirmLabel: crop.confirmLabel
131
105
  }
132
106
  )
133
107
  ] });
134
- if (variant === "tile") {
135
- return /* @__PURE__ */ jsxs("div", { className: ["space-y-2", className].join(" "), children: [
136
- label && /* @__PURE__ */ jsx("p", { className: "text-label font-medium text-fg-primary", children: label }),
137
- value ? (
138
- // Preenchido: o tile É o preview. Trocar/Remover são botões-ícone SEMPRE visíveis no
139
- // canto (não dependem de hover — a11y/baixa visão), sobre um scrim pra legibilidade.
140
- /* @__PURE__ */ jsxs(
141
- "div",
142
- {
143
- className: [
144
- "relative overflow-hidden rounded-(--radius-control) border border-stroke-default bg-surface-raised",
145
- "flex items-center justify-center p-2",
146
- TILE_BOX[aspect],
147
- previewWrapperClassName
148
- ].filter(Boolean).join(" "),
149
- children: [
150
- /* @__PURE__ */ jsx("img", { src: value, alt: "preview", className: previewClassName != null ? previewClassName : "max-h-full max-w-full object-contain" }),
151
- /* @__PURE__ */ jsxs("div", { className: "absolute top-1 right-1 flex gap-1", children: [
152
- /* @__PURE__ */ jsx(Tooltip, { content: L.change, children: /* @__PURE__ */ jsx(
153
- "button",
154
- {
155
- type: "button",
156
- "aria-label": L.change,
157
- onClick: openPicker,
158
- disabled: uploading,
159
- className: "flex items-center justify-center size-7 rounded-md bg-surface-default border border-stroke-default text-fg-secondary shadow-sm hover:bg-surface-raised hover:text-fg-primary disabled:opacity-50 transition-colors cursor-pointer",
160
- children: /* @__PURE__ */ jsx(Upload, { size: 14 })
161
- }
162
- ) }),
163
- /* @__PURE__ */ jsx(Tooltip, { content: L.remove, children: /* @__PURE__ */ jsx(
164
- "button",
165
- {
166
- type: "button",
167
- "aria-label": L.remove,
168
- onClick: () => onChange(""),
169
- className: "flex items-center justify-center size-7 rounded-md bg-surface-default border border-stroke-default text-fg-secondary shadow-sm hover:bg-danger-soft hover:text-danger-text transition-colors cursor-pointer",
170
- children: /* @__PURE__ */ jsx(X, { size: 14 })
171
- }
172
- ) })
173
- ] })
174
- ]
175
- }
176
- )
177
- ) : (
178
- // Vazio: o tile inteiro é o alvo de clique/drop.
179
- /* @__PURE__ */ jsxs(
180
- "div",
181
- {
182
- role: "button",
183
- tabIndex: 0,
184
- "aria-label": label != null ? label : L.aria,
185
- onClick: openPicker,
186
- onKeyDown: (e) => {
187
- if (e.key === "Enter" || e.key === " ") {
188
- e.preventDefault();
189
- openPicker();
190
- }
191
- },
192
- onDragOver: (e) => {
193
- e.preventDefault();
194
- setDragging(true);
195
- },
196
- onDragLeave: () => setDragging(false),
197
- onDrop: handleDrop,
198
- className: [
199
- "rounded-(--radius-control) border-2 border-dashed cursor-pointer transition-colors p-2",
200
- "flex flex-col items-center justify-center gap-1.5 text-center",
201
- TILE_BOX[aspect],
202
- dragging ? "border-brand-primary bg-[color-mix(in_srgb,var(--brand-primary)_8%,transparent)]" : "border-stroke-default bg-surface-page hover:border-stroke-strong hover:bg-surface-raised"
203
- ].join(" "),
204
- children: [
205
- /* @__PURE__ */ jsx(Upload, { size: 18, className: "text-brand-primary shrink-0" }),
206
- /* @__PURE__ */ jsx("span", { className: "text-caption font-medium text-fg-secondary leading-tight", children: uploading ? L.uploading : L.select })
207
- ]
208
- }
209
- )
210
- ),
211
- error && /* @__PURE__ */ jsx("p", { className: "text-caption text-danger-text", children: error }),
212
- hint && /* @__PURE__ */ jsx("p", { className: "text-caption text-fg-muted", children: hint }),
213
- hiddenInputs,
214
- cropModal
215
- ] });
216
- }
217
- if (variant === "dropzone") {
218
- return /* @__PURE__ */ jsxs("div", { className: ["space-y-3", className].join(" "), children: [
219
- label && /* @__PURE__ */ jsx("p", { className: "text-label font-medium text-fg-primary", children: label }),
220
- /* @__PURE__ */ jsx(
221
- "div",
222
- {
223
- role: "button",
224
- tabIndex: 0,
225
- "aria-label": label != null ? label : L.aria,
226
- onClick: openPicker,
227
- onKeyDown: (e) => {
228
- var _a;
229
- if (e.key === "Enter" || e.key === " ") (_a = inputRef.current) == null ? void 0 : _a.click();
230
- },
231
- onDragOver: (e) => {
232
- e.preventDefault();
233
- setDragging(true);
234
- },
235
- onDragLeave: () => setDragging(false),
236
- onDrop: handleDrop,
237
- className: [
238
- "rounded-(--radius-control) border-2 border-dashed cursor-pointer transition-colors p-4",
239
- dragging ? "border-brand-primary bg-[color-mix(in_srgb,var(--brand-primary)_8%,transparent)]" : "border-stroke-default bg-surface-page hover:border-stroke-strong hover:bg-surface-raised"
240
- ].join(" "),
241
- children: value ? /* @__PURE__ */ jsx("div", { className: ["flex items-center justify-center transition-colors", previewWrapperClassName].filter(Boolean).join(" "), children: /* @__PURE__ */ jsx("img", { src: value, alt: "preview", className: previewClassName != null ? previewClassName : DROPZONE_PREVIEW[aspect] }) }) : /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 min-w-0", children: [
242
- /* @__PURE__ */ jsx("div", { className: "size-10 rounded-full bg-[color-mix(in_srgb,var(--brand-primary)_10%,transparent)] flex items-center justify-center", children: /* @__PURE__ */ jsx(Upload, { size: 18, className: "text-brand-primary" }) }),
243
- /* @__PURE__ */ jsx("p", { className: "text-label font-medium text-fg-primary text-center", children: uploading ? L.uploading : L.dropTitle }),
244
- /* @__PURE__ */ jsx("p", { className: "text-caption text-fg-muted text-center", children: L.dropHint })
245
- ] }) })
246
- }
247
- ),
248
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
249
- /* @__PURE__ */ jsx(
250
- Button,
251
- {
252
- type: "button",
253
- size: "sm",
254
- loading: uploading,
255
- onClick: () => {
256
- var _a;
257
- return (_a = inputRef.current) == null ? void 0 : _a.click();
258
- },
259
- children: value ? L.change : L.select
260
- }
261
- ),
262
- value && /* @__PURE__ */ jsx(
263
- "button",
264
- {
265
- type: "button",
266
- onClick: () => onChange(""),
267
- className: "text-label text-fg-muted hover:text-danger-text transition-colors",
268
- children: L.remove
269
- }
270
- )
271
- ] }),
272
- error && /* @__PURE__ */ jsx("p", { className: "text-caption text-danger-text", children: error }),
273
- hint && /* @__PURE__ */ jsx("p", { className: "text-caption text-fg-muted", children: hint }),
274
- hiddenInputs,
275
- cropModal
276
- ] });
277
- }
278
- return /* @__PURE__ */ jsxs("div", { className: ["space-y-2", className].join(" "), children: [
279
- label && /* @__PURE__ */ jsx("p", { className: "block text-caption font-medium text-fg-secondary", children: label }),
280
- value && // eslint-disable-next-line @next/next/no-img-element
281
- /* @__PURE__ */ jsx("img", { src: value, alt: "preview", className: BUTTON_PREVIEW[aspect] }),
282
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
283
- /* @__PURE__ */ jsx(
284
- Button,
285
- {
286
- type: "button",
287
- size: "sm",
288
- variant: "outline",
289
- onClick: () => {
290
- var _a;
291
- return (_a = inputRef.current) == null ? void 0 : _a.click();
292
- },
293
- disabled: uploading,
294
- children: uploading ? L.uploading : value ? L.change : L.select
295
- }
296
- ),
297
- value && /* @__PURE__ */ jsx(
298
- "button",
299
- {
300
- type: "button",
301
- onClick: () => onChange(""),
302
- className: "text-caption text-fg-muted hover:text-danger-text transition-colors",
303
- children: L.remove
304
- }
305
- )
306
- ] }),
307
- error && /* @__PURE__ */ jsx("p", { className: "text-caption text-danger-text", children: error }),
308
- hint && /* @__PURE__ */ jsx("p", { className: "text-caption text-fg-muted", children: hint }),
309
- hiddenInputs,
310
- cropModal
311
- ] });
312
108
  }
313
109
  export {
314
110
  ImageUpload
@@ -1,85 +1,138 @@
1
- export { Alert, AlertProps, AlertVariant } from './alert.js';
2
- export { FilterChip, FilterChipGroup, FilterChipGroupProps, FilterChipItem, FilterChipProps } from './filter-chip.js';
1
+ export { Alert, AlertProps, AlertTone } from './alert.js';
2
+ export { AlertDialog, AlertDialogProps, AlertDialogTone } from './alert-dialog.js';
3
+ export { HoverCard, HoverCardProps } from './hover-card.js';
4
+ export { Dialog, DialogClose, DialogProps, DialogSize } from './dialog.js';
5
+ export { Sheet, SheetClose, SheetProps, SheetSide } from './sheet.js';
6
+ export { Drawer, DrawerClose, DrawerProps } from './drawer.js';
7
+ export { DropdownMenu, DropdownMenuAlign, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuItemTone, DropdownMenuProps, DropdownMenuRadioGroup, DropdownMenuRadioGroupProps, DropdownMenuRadioItem, DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuSide } from './dropdown-menu.js';
8
+ export { ContextMenu, ContextMenuItem, ContextMenuItemProps, ContextMenuItemTone, ContextMenuProps, ContextMenuSeparator } from './context-menu.js';
9
+ export { Command, CommandGroup, CommandGroupProps, CommandItem, CommandItemProps, CommandProps } from './command.js';
10
+ export { FilterChip, FilterChipGroup, FilterChipGroupProps, FilterChipProps } from './filter-chip.js';
3
11
  export { DataTableFilterDef, DataTableFilterOption, DataTableHeader, DataTableHeaderProps, DataTableHeaderSearch, DataTablePillDef, FilterDropdown } from './data-table-header.js';
4
- export { Button, ButtonColor, ButtonSize, ButtonVariant, buttonVariants } from './button.js';
5
- export { Badge, BadgeProps, BadgeVariant } from './badge.js';
6
- export { Card, CardBody, CardFooter, CardHeader, CardTitle } from './card.js';
12
+ export { Button, ButtonIconPosition, ButtonProps } from './button.js';
13
+ export { Badge, BadgeProps, BadgeTone, BadgeVariant, formatBadgeValue } from './badge.js';
14
+ export { Status, StatusProps, StatusSize, StatusTone, StatusVariant } from './status.js';
15
+ export { Delta, DeltaDirection, DeltaProps, DeltaTone } from './delta.js';
16
+ export { Progress, ProgressKind, ProgressProps, ProgressSize } from './progress.js';
17
+ export { StarRating, StarRatingProps, StarRatingSize } from './star-rating.js';
18
+ export { Card, CardContent, CardContentProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardSize, CardSurface } from './card.js';
19
+ export { Tile, TileProps, TileSize, TileTone, TileVariant } from './tile.js';
20
+ export { Kbd, KbdGroup, KbdGroupProps, KbdProps } from './kbd.js';
21
+ export { Sparkline, SparklineProps } from './sparkline.js';
22
+ export { Chart, ChartProps, ChartSeries, ChartType } from './chart.js';
23
+ export { Carousel, CarouselPlaceholder, CarouselProps } from './carousel.js';
24
+ export { Item, ItemGroup, ItemGroupProps, ItemProps, ItemSize, ItemVariant } from './item.js';
25
+ export { Pricing, PricingPlan, PricingPlanProps, PricingProps } from './pricing.js';
7
26
  export { PricingCard, PricingCardProps } from './pricing-card.js';
8
- export { Checkbox, CheckboxProps } from './checkbox.js';
9
- export { Drawer, DrawerProps } from './drawer.js';
27
+ export { Checkbox, CheckboxChecked, CheckboxProps } from './checkbox.js';
28
+ export { CheckboxGroup, CheckboxGroupProps } from './checkbox-group.js';
10
29
  export { Input, InputProps } from './input.js';
11
- export { Modal, ModalProps } from './modal.js';
30
+ export { PasswordInput, PasswordInputProps } from './password-input.js';
12
31
  export { Radio, RadioProps } from './radio.js';
13
- export { Select, SelectProps } from './select.js';
14
- export { Spinner, SpinnerProps } from './spinner.js';
15
- export { Skeleton, SkeletonProps } from './skeleton.js';
32
+ export { RadioGroup, RadioGroupProps } from './radio-group.js';
33
+ export { Select, SelectItem, SelectItemProps, SelectProps } from './select.js';
34
+ export { Spinner, SpinnerProps, SpinnerSize, SpinnerTone } from './spinner.js';
35
+ export { Skeleton, SkeletonProps, SkeletonShape } from './skeleton.js';
16
36
  export { StepProgress, StepProgressProps } from './step-progress.js';
17
- export { EmptyState, EmptyStateCta, EmptyStateIcon, EmptyStateProps } from './empty-state.js';
37
+ export { Empty, EmptyProps } from './empty.js';
18
38
  export { InsightCard, InsightCardProps, InsightCardType } from './insight-card.js';
19
39
  export { SectionCard, SectionCardProps } from './section-card.js';
20
40
  export { SectionHeader, SectionHeaderProps } from './section-header.js';
21
41
  export { FloatingStepper, FloatingStepperProps, FloatingStepperStep } from './floating-stepper.js';
22
- export { SummaryBar, SummaryBarItem, SummaryBarProps, SummaryBarTone } from './summary-bar.js';
42
+ export { Stat, StatProps, StatTone } from './stat.js';
43
+ export { SummaryBar, SummaryBarItem, SummaryBarLayout, SummaryBarProps, SummaryBarTone } from './summary-bar.js';
23
44
  export { ToggleCard, ToggleCardProps } from './toggle-card.js';
24
- export { PixIcon } from './pix-icon.js';
25
45
  export { ToggleCardCompact, ToggleCardCompactProps } from './toggle-card-compact.js';
26
- export { ChipInput, ChipInputProps, ChipItem } from './chip-input.js';
27
- export { FormCardHeader, FormCardHeaderProps } from './form-card-header.js';
46
+ export { ChipInput, ChipInputProps } from './chip-input.js';
28
47
  export { CopyField, CopyFieldProps } from './copy-field.js';
29
48
  export { QRDisplay, QRDisplayProps } from './qr-display.js';
30
- export { ChoiceCard, ChoiceCardProps } from './choice-card.js';
49
+ export { ChoiceCard } from './choice-card.js';
31
50
  export { OptionTile, OptionTileGrid, OptionTileGridProps, OptionTileItem, OptionTileProps } from './option-tile.js';
32
51
  export { SelectableCard, SelectableCardProps } from './selectable-card.js';
33
52
  export { ChoicePreviewCard, ChoicePreviewCardProps } from './choice-preview-card.js';
34
53
  export { SettingRow, SettingRowProps } from './setting-row.js';
35
54
  export { SettingsList, SettingsListProps } from './settings-list.js';
36
55
  export { Dropzone, DropzoneProps } from './dropzone.js';
37
- export { MediaTile, MediaTileProps } from './media-tile.js';
38
- export { ChatBubble, ChatBubbleProps, ChatBubbleState, ChatBubbleVariant } from './chat-bubble.js';
56
+ export { MediaTile, MediaTileAspect, MediaTileProps } from './media-tile.js';
57
+ export { Attachment, AttachmentOrientation, AttachmentProps, AttachmentStatus } from './attachment.js';
58
+ export { Bubble, BubbleAlign, BubbleProps, BubbleVariant } from './bubble.js';
59
+ export { Marker, MarkerProps, MarkerVariant } from './marker.js';
60
+ export { Message, MessageAlign, MessageProps } from './message.js';
61
+ export { MessageScroller, MessageScrollerProps } from './message-scroller.js';
62
+ export { Questionnaire, QuestionnaireAnswer, QuestionnaireProps } from './questionnaire.js';
39
63
  export { TypingIndicator, TypingIndicatorProps } from './typing-indicator.js';
40
64
  export { ChoiceCarousel, ChoiceCarouselProps } from './choice-carousel.js';
41
- export { PageTab, PageTabs, PageTabsProps } from './page-tabs.js';
42
- export { SavingBar, SavingBarProps } from './saving-bar.js';
65
+ export { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps } from './tabs.js';
66
+ export { PageHeader, PageHeaderHeading, PageHeaderProps } from './page-header.js';
67
+ export { Sidebar, SidebarHeader, SidebarItem, SidebarItemProps, SidebarProps, SidebarSection, SidebarSectionProps, SidebarSeparator, SidebarTone } from './sidebar.js';
68
+ export { NavigationMenu, NavigationMenuEntry, NavigationMenuLink, NavigationMenuLinkComponent, NavigationMenuProps } from './navigation-menu.js';
69
+ export { SavingBar, SavingBarProps, SavingBarStatus } from './saving-bar.js';
43
70
  export { SavingBarProvider, SavingBarRegistration, SavingBarRoot, usePageSavingBar } from './saving-bar-context.js';
44
- export { FABConfig, FABProvider, FABRoot, useFAB, usePageFAB } from './fab.js';
45
- export { Table, TableBody, TableHead, TableRow, Td, Th } from './table.js';
71
+ export { FAB, FABConfig, FABProps, FABProvider, FABRoot, useFAB, usePageFAB } from './fab.js';
72
+ export { Table, TableAlign, TableBody, TableCell, TableCellProps, TableHead, TableHeadProps, TableHeader, TableProps, TableRow, TableSort, TableStatus, TableStatusProps } from './table.js';
46
73
  export { Textarea, TextareaProps } from './textarea.js';
47
74
  export { Toggle, ToggleProps } from './toggle.js';
48
- export { Tooltip, TooltipProps } from './tooltip.js';
49
- export { ToastOptions, ToastPosition, ToastVariant, ToastVisual, ToastVisualProps, Toaster, ToasterProps, toast } from './toaster.js';
50
- export { Divider, DividerProps } from './divider.js';
51
- export { Avatar, AvatarGroup, AvatarGroupProps, AvatarProps, AvatarSize, AvatarStatus } from './avatar.js';
52
- export { IconButton, IconButtonColor, IconButtonProps, IconButtonSize, IconButtonVariant } from './icon-button.js';
53
- export { Breadcrumb, BreadcrumbItem, BreadcrumbProps, homeItem } from './breadcrumb.js';
54
- export { Pagination, PaginationProps } from './pagination.js';
55
- export { Label, LabelProps } from './label.js';
56
- export { Popover, PopoverPlacement, PopoverProps } from './popover.js';
57
- export { Menu, MenuItem, MenuItemProps, MenuLabel, MenuProps, MenuSeparator } from './menu.js';
58
- export { Search, SearchProps } from './search.js';
59
- export { ToggleGroup, ToggleGroupProps, ToggleOption } from './toggle-group.js';
75
+ export { Switch, SwitchProps } from './switch.js';
76
+ export { Tooltip, TooltipProps, TooltipSide } from './tooltip.js';
77
+ export { ToastFn, ToastOptions, ToastTone, ToastVariant, ToastView, ToastViewProps, Toaster, ToasterProps, toast, toastClassName, useToast } from './toast.js';
78
+ export { Separator, SeparatorOrientation, SeparatorProps } from './separator.js';
79
+ export { Avatar, AvatarGroup, AvatarGroupProps, AvatarGroupSize, AvatarProps, AvatarSize, AvatarType, AvatarVariant, initials } from './avatar.js';
80
+ export { IconButton, IconButtonProps } from './icon-button.js';
81
+ export { ButtonGroup, ButtonGroupOrientation, ButtonGroupProps } from './button-group.js';
82
+ export { ActionBar, ActionBarProps } from './action-bar.js';
83
+ export { FormActions, FormActionsLayout, FormActionsProps } from './form-actions.js';
84
+ export { Breadcrumb, BreadcrumbItem, BreadcrumbLinkComponent, BreadcrumbProps, BreadcrumbTone } from './breadcrumb.js';
85
+ export { Pagination, PaginationLinkComponent, PaginationProps, pageItems } from './pagination.js';
86
+ export { Popover, PopoverAlign, PopoverClose, PopoverProps, PopoverSide } from './popover.js';
87
+ export { ToggleGroup, ToggleGroupItem, ToggleGroupItemProps, ToggleGroupProps } from './toggle-group.js';
60
88
  export { Accordion, AccordionItem, AccordionItemProps, AccordionProps } from './accordion.js';
61
89
  export { Slider, SliderProps } from './slider.js';
62
- export { BottomSheet, BottomSheetProps } from './bottom-sheet.js';
63
- export { ContextMenu, ContextMenuProps } from './context-menu.js';
64
- export { Combobox, ComboboxOption, ComboboxProps } from './combobox.js';
90
+ export { Listbox, ListboxOption, ListboxOptionProps, ListboxProps } from './listbox.js';
91
+ export { Calendar, CalendarProps } from './calendar.js';
92
+ export { FileInput, FileInputProps, FileInputVariant, formatFileSize } from './file-input.js';
93
+ export { NumberInput, NumberInputProps, NumberInputStep } from './number-input.js';
94
+ export { InputOTP, InputOTPLength, InputOTPProps } from './input-otp.js';
95
+ export { Combobox, ComboboxMultipleProps, ComboboxOption, ComboboxProps, ComboboxSingleProps } from './combobox.js';
65
96
  export { DatePicker, DatePickerProps } from './date-picker.js';
66
- export { TimePicker, TimePickerProps } from './time-picker.js';
67
- export { Chip, ChipProps } from './chips.js';
68
- export { BlockerCard, BlockerCardProps, BlockerCardTone } from './blocker-card.js';
69
- export { PaywallBanner, PaywallBannerProps } from './paywall-banner.js';
70
- export { PaywallContent, PaywallContentProps, PaywallModal, PaywallModalProps, PaywallReason, PaywallState, PaywallStateProps } from './paywall.js';
97
+ export { TimeFormat, TimePicker, TimePickerProps, formatTime, parseTime } from './time-picker.js';
98
+ export { Chip, ChipProps } from './chip.js';
71
99
  export { CardsSkeleton, CardsSkeletonProps, PageSkeleton, PageSkeletonProps } from './page-skeleton.js';
72
100
  export { CurrencyInput, CurrencyInputProps } from './currency-input.js';
73
- export { ColorInput, ColorInputProps } from './color-input.js';
74
- export { ImageUpload, ImageUploadAspect, ImageUploadLabels, ImageUploadProps, ImageUploadVariant } from './image-upload.js';
75
- export { CropPreset, ImageCropModal, ImageCropModalProps } from './image-crop-modal.js';
76
- export { PhoneInput, PhoneInputProps } from './phone-input.js';
101
+ export { ColorInput, ColorInputProps, normalizeHex } from './color-input.js';
77
102
  export { RowActionItem, RowActions, RowActionsProps } from './row-actions.js';
78
103
  export { PageShell, PageShellBodyProps, PageShellHeaderProps, PageShellProps, PageShellWidth } from './page-shell.js';
79
104
  export { DangerZone, DangerZoneItem, DangerZoneItemProps, DangerZoneProps } from './danger-zone.js';
80
- export { Themed, ThemedProps, themeClass } from './themed.js';
81
- export { PhoneFrame, PhoneFrameProps } from './phone-frame.js';
82
- export { CopilotHint, CopilotHintPriority, CopilotHintProps } from './copilot-hint.js';
83
- export { Notice, NoticeIntent, NoticeProps, NoticeSeverity } from './notice.js';
105
+ export { Banner, BannerProps } from './banner.js';
106
+ export { Benefits, BenefitsItem, BenefitsItemProps, BenefitsProps } from './benefits.js';
107
+ export { Contact, ContactProps } from './contact.js';
108
+ export { FAQ, FAQProps } from './faq.js';
109
+ export { Footer, FooterColumn, FooterColumnProps, FooterProps } from './footer.js';
110
+ export { Newsletter, NewsletterProps } from './newsletter.js';
111
+ export { Testimonial, TestimonialItem, TestimonialItemProps, TestimonialProps } from './testimonial.js';
112
+ export { TopNavigation, TopNavigationProps } from './top-navigation.js';
113
+ export { Phone, PhonePlatform, PhoneProps } from './phone.js';
114
+ export { Browser, BrowserProps } from './browser.js';
115
+ export { GoogleButton, GoogleButtonProps, GoogleButtonShape, GoogleButtonTheme, GoogleButtonType } from './google-button.js';
116
+ export { GoogleSignIn, GoogleSignInProps, GoogleSignInStep } from './google-sign-in.js';
117
+ export { GoogleConsent, GoogleConsentProps } from './google-consent.js';
118
+ export { GoogleAccount, GoogleAccountChooser, GoogleAccountChooserProps } from './google-account-chooser.js';
119
+ export { WhatsAppChat, WhatsAppChatProps } from './whatsapp-chat.js';
120
+ export { WhatsAppMessage, WhatsAppMessageProps, WhatsAppMessageType } from './whatsapp-message.js';
121
+ export { WhatsAppNotification, WhatsAppNotificationProps } from './whatsapp-notification.js';
122
+ export { WhatsAppTemplate, WhatsAppTemplateButton, WhatsAppTemplateButtonProps, WhatsAppTemplateButtonStatus, WhatsAppTemplateButtonType, WhatsAppTemplateHeader, WhatsAppTemplateProps } from './whatsapp-template.js';
123
+ export { ButtonSize, ButtonTone, ButtonVariant } from './internal/button.js';
124
+ export { ChoiceCardGroup, ChoiceCardGroupProps, ChoiceCardLayout, ChoiceCardProps } from './internal/choice-card.js';
125
+ export { FieldLabelPosition } from './internal/field.js';
126
+ export { GoogleLayout } from './internal/google.js';
127
+ export { IsoDate } from './internal/dates.js';
128
+ export { ToggleVariant } from './internal/toggle.js';
129
+ export { WhatsAppPlatform } from './internal/whatsapp.js';
84
130
  import 'react';
85
- import 'lucide-react';
131
+ import '@radix-ui/react-dialog';
132
+ import './internal/modal.js';
133
+ import './internal/menu.js';
134
+ import './internal/fieldset.js';
135
+ import '@radix-ui/react-toggle';
136
+ import '@radix-ui/react-tooltip';
137
+ import '@radix-ui/react-popover';
138
+ import '@radix-ui/react-toggle-group';