@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
@@ -1,68 +1,68 @@
1
1
  "use client";
2
- import "../chunk-ORMEWXMH.js";
3
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
- import Link from "next/link";
5
- const BASE = "h-control-sm inline-flex items-center text-caption font-medium border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-stroke-focus px-[var(--filter-chip-padding-x)] [border-radius:var(--filter-chip-radius)]";
6
- const ACTIVE = "[background:var(--filter-chip-color-surface-active)] [border-color:var(--filter-chip-color-stroke-active)] [color:var(--filter-chip-color-text-active)]";
7
- const INACTIVE = "[background:var(--filter-chip-color-surface-inactive)] [border-color:var(--filter-chip-color-stroke-inactive)] [color:var(--filter-chip-color-text-inactive)] hover:[background:var(--filter-chip-color-surface-hover)] hover:[border-color:var(--filter-chip-color-stroke-hover)] hover:[color:var(--filter-chip-color-text-hover)]";
8
- const DISABLED = "[background:var(--filter-chip-color-surface-disabled)] [border-color:var(--filter-chip-color-stroke-disabled)] [color:var(--filter-chip-color-text-disabled)] opacity-50 pointer-events-none cursor-not-allowed";
9
- function FilterChipBody({ label, count }) {
10
- if (count === void 0) return /* @__PURE__ */ jsx(Fragment, { children: label });
11
- return /* @__PURE__ */ jsxs(Fragment, { children: [
12
- label,
13
- /* @__PURE__ */ jsx("span", { className: "ml-1 opacity-60 tabular-nums", children: count })
14
- ] });
15
- }
16
- function FilterChip({ label, active, count, disabled = false, href, onClick, className = "" }) {
17
- const cls = [BASE, active ? ACTIVE : INACTIVE, disabled ? DISABLED : "", className].filter(Boolean).join(" ");
18
- if (href) {
19
- return /* @__PURE__ */ jsx(
20
- Link,
21
- {
22
- href,
23
- "aria-current": active ? "true" : void 0,
24
- "aria-disabled": disabled || void 0,
25
- tabIndex: disabled ? -1 : void 0,
26
- className: cls,
27
- children: /* @__PURE__ */ jsx(FilterChipBody, { label, count })
28
- }
29
- );
2
+ import {
3
+ __objRest,
4
+ __spreadProps,
5
+ __spreadValues
6
+ } from "../chunk-ORMEWXMH.js";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { useState } from "react";
9
+ import { Slot, Slottable } from "@radix-ui/react-slot";
10
+ import { blockWhenDisabled } from "./internal/button.js";
11
+ function FilterChip(_a) {
12
+ var _b = _a, {
13
+ children,
14
+ count,
15
+ icon,
16
+ active,
17
+ defaultActive = false,
18
+ onActiveChange,
19
+ disabled,
20
+ asChild,
21
+ type = "button",
22
+ className,
23
+ onClick
24
+ } = _b, rest = __objRest(_b, [
25
+ "children",
26
+ "count",
27
+ "icon",
28
+ "active",
29
+ "defaultActive",
30
+ "onActiveChange",
31
+ "disabled",
32
+ "asChild",
33
+ "type",
34
+ "className",
35
+ "onClick"
36
+ ]);
37
+ const [own, setOwn] = useState(defaultActive);
38
+ const on = active != null ? active : own;
39
+ const Root = asChild ? Slot : "button";
40
+ function click(event) {
41
+ onClick == null ? void 0 : onClick(event);
42
+ if (event.defaultPrevented || asChild) return;
43
+ if (active === void 0) setOwn(!on);
44
+ onActiveChange == null ? void 0 : onActiveChange(!on);
30
45
  }
31
- return /* @__PURE__ */ jsx(
32
- "button",
33
- {
34
- type: "button",
35
- onClick,
36
- "aria-pressed": active,
37
- disabled,
38
- className: cls,
39
- children: /* @__PURE__ */ jsx(FilterChipBody, { label, count })
40
- }
46
+ return /* @__PURE__ */ jsxs(
47
+ Root,
48
+ __spreadProps(__spreadValues({}, rest), {
49
+ type: asChild ? void 0 : type,
50
+ className: ["rds-filter-chip", on && "rds-filter-chip--active", className].filter(Boolean).join(" "),
51
+ "aria-pressed": asChild ? void 0 : on,
52
+ "aria-current": asChild && on ? "true" : void 0,
53
+ "aria-disabled": disabled || void 0,
54
+ onClick: blockWhenDisabled(disabled, click),
55
+ children: [
56
+ icon && /* @__PURE__ */ jsx("span", { className: "rds-filter-chip__icon", "aria-hidden": "true", children: icon }),
57
+ /* @__PURE__ */ jsx(Slottable, { children: asChild ? children : /* @__PURE__ */ jsx("span", { className: "rds-filter-chip__label", children }) }),
58
+ count !== void 0 && count !== null && count !== "" && /* @__PURE__ */ jsx("span", { className: "rds-filter-chip__count", children: count })
59
+ ]
60
+ })
41
61
  );
42
62
  }
43
- function FilterChipGroup({ items, active, label, className = "" }) {
44
- return /* @__PURE__ */ jsx("div", { role: "group", "aria-label": label, className: ["flex flex-wrap [gap:var(--filter-chip-group-gap)]", className].filter(Boolean).join(" "), children: items.map((item) => {
45
- var _a;
46
- if (process.env.NODE_ENV === "development" && !item.href && !item.onClick) {
47
- console.warn(`[FilterChipGroup] item "${item.label}" has neither href nor onClick \u2014 click will have no effect`);
48
- }
49
- const isActive = active === item.value || !active && item.value === void 0;
50
- if (item.href) {
51
- return /* @__PURE__ */ jsx(FilterChip, { label: item.label, active: isActive, count: item.count, disabled: item.disabled, href: item.href }, item.label);
52
- }
53
- return /* @__PURE__ */ jsx(
54
- FilterChip,
55
- {
56
- label: item.label,
57
- active: isActive,
58
- count: item.count,
59
- disabled: item.disabled,
60
- onClick: (_a = item.onClick) != null ? _a : (() => {
61
- })
62
- },
63
- item.label
64
- );
65
- }) });
63
+ function FilterChipGroup(_c) {
64
+ var _d = _c, { className, children } = _d, rest = __objRest(_d, ["className", "children"]);
65
+ return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({ role: "group" }, rest), { className: ["rds-filter-chip-group", className].filter(Boolean).join(" "), children }));
66
66
  }
67
67
  export {
68
68
  FilterChip,
@@ -2,23 +2,10 @@ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
 
4
4
  /**
5
- * FloatingStepper — pill flutuante de etapas de um fluxo (PDV, checkout).
6
- *
7
- * Mostra as etapas com dot de estado; etapas anteriores são navegáveis
8
- * (volta no fluxo), futuras ficam desabilitadas. `canNavigate` permite
9
- * customizar a regra. Slot `action` pra ação terminal (ex.: Reset).
10
- *
11
- * O POSICIONAMENTO é do caller (absolute/fixed via wrapper ou className) —
12
- * o componente só renderiza a pill.
13
- *
14
- * Uso:
15
- * <FloatingStepper
16
- * steps={[{ key: 'cart', label: 'Carrinho' }, ...]}
17
- * current={step}
18
- * onNavigate={setStep}
19
- * action={{ label: 'Reset', icon: <RotateCcw />, onClick: reset }}
20
- * className="absolute bottom-3 left-1/2 -translate-x-1/2 z-30"
21
- * />
5
+ * FloatingStepper — a composition of the Card (as a pill) and Buttons (Figma [RDS] Actions/Button, neutral): the
6
+ * floating steps of a flow (point of sale, checkout). The current step is the filled Button (aria-current="step");
7
+ * earlier steps go back, later ones are disabled; `canNavigate` changes the rule. `action` is a last Button after
8
+ * a line (Reset). Where it floats is the caller's (className or a wrapper). Styles: floating-stepper.css.
22
9
  */
23
10
  type FloatingStepperStep = {
24
11
  key: string;
@@ -38,7 +25,9 @@ interface FloatingStepperProps {
38
25
  onClick: () => void;
39
26
  };
40
27
  className?: string;
28
+ /** The navigation's name. Default "Etapas". */
29
+ 'aria-label'?: string;
41
30
  }
42
- declare function FloatingStepper({ steps, current, onNavigate, canNavigate, action, className, }: FloatingStepperProps): react.JSX.Element;
31
+ declare function FloatingStepper({ steps, current, onNavigate, canNavigate, action, className, 'aria-label': ariaLabel }: FloatingStepperProps): react.JSX.Element;
43
32
 
44
33
  export { FloatingStepper, type FloatingStepperProps, type FloatingStepperStep };
@@ -1,62 +1,34 @@
1
1
  "use client";
2
2
  import "../chunk-ORMEWXMH.js";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
- function FloatingStepper({
5
- steps,
6
- current,
7
- onNavigate,
8
- canNavigate,
9
- action,
10
- className = ""
11
- }) {
4
+ import { Button } from "./button.js";
5
+ import { Card } from "./card.js";
6
+ function FloatingStepper({ steps, current, onNavigate, canNavigate, action, className, "aria-label": ariaLabel = "Etapas" }) {
12
7
  const currentIdx = steps.findIndex((s) => s.key === current);
13
- return /* @__PURE__ */ jsxs(
14
- "div",
15
- {
16
- className: [
17
- "flex items-center gap-0.5 rounded-full bg-surface-shell shadow-2xl px-1.5 py-1.5",
18
- className
19
- ].filter(Boolean).join(" "),
20
- children: [
21
- steps.map((s, idx) => {
22
- const isCurrent = idx === currentIdx;
23
- const canGo = canNavigate ? canNavigate(s.key, idx, currentIdx) : idx < currentIdx;
24
- return /* @__PURE__ */ jsxs(
25
- "button",
26
- {
27
- type: "button",
28
- disabled: !canGo && !isCurrent,
29
- "aria-current": isCurrent ? "step" : void 0,
30
- onClick: () => {
31
- if (canGo) onNavigate == null ? void 0 : onNavigate(s.key);
32
- },
33
- className: `flex items-center gap-1.5 rounded-full px-3 py-1.5 text-caption font-medium whitespace-nowrap transition-colors ${isCurrent ? "bg-(--surface-default) text-(--text-primary)" : canGo ? "text-on-shell-muted hover:text-on-shell" : "text-on-shell-subtle cursor-default"}`,
34
- children: [
35
- /* @__PURE__ */ jsx("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${isCurrent ? "bg-(--text-primary)" : "bg-on-shell-subtle"}` }),
36
- s.label
37
- ]
38
- },
39
- s.key
40
- );
41
- }),
42
- action && /* @__PURE__ */ jsxs(Fragment, { children: [
43
- /* @__PURE__ */ jsx("span", { className: "w-px h-4 bg-on-shell-line mx-1", "aria-hidden": true }),
44
- /* @__PURE__ */ jsxs(
45
- "button",
46
- {
47
- type: "button",
48
- onClick: action.onClick,
49
- className: "flex items-center gap-1.5 rounded-full px-3 py-1.5 text-caption font-medium text-on-shell-muted hover:text-on-shell transition-colors whitespace-nowrap [&_svg]:w-3 [&_svg]:h-3 [&_svg]:shrink-0",
50
- children: [
51
- action.icon,
52
- action.label
53
- ]
54
- }
55
- )
56
- ] })
57
- ]
58
- }
59
- );
8
+ return /* @__PURE__ */ jsxs(Card, { as: "div", size: "sm", role: "navigation", "aria-label": ariaLabel, className: ["rds-floating-stepper", className].filter(Boolean).join(" "), children: [
9
+ steps.map((s, idx) => {
10
+ const isCurrent = idx === currentIdx;
11
+ const canGo = canNavigate ? canNavigate(s.key, idx, currentIdx) : idx < currentIdx;
12
+ return /* @__PURE__ */ jsx(
13
+ Button,
14
+ {
15
+ tone: "neutral",
16
+ variant: isCurrent ? "fill" : "ghost",
17
+ disabled: !canGo && !isCurrent,
18
+ "aria-current": isCurrent ? "step" : void 0,
19
+ onClick: () => {
20
+ if (canGo && !isCurrent) onNavigate == null ? void 0 : onNavigate(s.key);
21
+ },
22
+ children: s.label
23
+ },
24
+ s.key
25
+ );
26
+ }),
27
+ action && /* @__PURE__ */ jsxs(Fragment, { children: [
28
+ /* @__PURE__ */ jsx("span", { className: "rds-floating-stepper__divider", "aria-hidden": "true" }),
29
+ /* @__PURE__ */ jsx(Button, { tone: "neutral", variant: "ghost", icon: action.icon, onClick: action.onClick, children: action.label })
30
+ ] })
31
+ ] });
60
32
  }
61
33
  export {
62
34
  FloatingStepper
@@ -0,0 +1,36 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ interface FooterProps extends HTMLAttributes<HTMLElement> {
5
+ /**
6
+ * The brand (Figma: `logo`), always by slot: the design system carries no client logo. Usually a link to the home
7
+ * page named after the brand, around the logotype.
8
+ */
9
+ logo: ReactNode;
10
+ /** One sentence about the site (Figma: `tagline`). */
11
+ tagline?: ReactNode;
12
+ /** Links to the brand's profiles, each named, around a 24 mono icon (Figma: slot `social`). */
13
+ social?: ReactNode;
14
+ /** The accessible name of the list of profiles. */
15
+ socialLabel?: string;
16
+ /** FooterColumn, up to 4 (Figma: slot `columns`). */
17
+ children?: ReactNode;
18
+ /** The copyright line (Figma: `copyright`). */
19
+ copyright: ReactNode;
20
+ }
21
+ /**
22
+ * Footer — Figma [RDS] Blocks/Footer. The footer of the public pages (<footer>, the contentinfo landmark at the top
23
+ * level): brand, sentence and profiles, the link columns and the copyright. Below 640 of container width everything
24
+ * stacks (Figma: `screen`). Styles: footer.css.
25
+ */
26
+ declare function Footer({ logo, tagline, social, socialLabel, children, copyright, className, ...rest }: FooterProps): react.JSX.Element;
27
+ interface FooterColumnProps extends HTMLAttributes<HTMLElement> {
28
+ /** Who the links are for, such as customers or sellers (Figma: `title`). It names the column's navigation. */
29
+ title: string;
30
+ /** The links, `<a>` elements (Figma: slot `links`). */
31
+ children: ReactNode;
32
+ }
33
+ /** A column of Footer links (Figma: .footer/column), a <nav> named by its title. Only inside a Footer. */
34
+ declare function FooterColumn({ title, children, className, ...rest }: FooterColumnProps): react.JSX.Element;
35
+
36
+ export { Footer, FooterColumn, type FooterColumnProps, type FooterProps };
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import {
3
+ __objRest,
4
+ __spreadProps,
5
+ __spreadValues
6
+ } from "../chunk-ORMEWXMH.js";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Children, Fragment, isValidElement, useId } from "react";
9
+ function listItems(slot) {
10
+ const items = isValidElement(slot) && slot.type === Fragment ? slot.props.children : slot;
11
+ return Children.map(items, (item) => item && /* @__PURE__ */ jsx("li", { children: item }));
12
+ }
13
+ function Footer(_a) {
14
+ var _b = _a, { logo, tagline, social, socialLabel = "Redes sociais", children, copyright, className } = _b, rest = __objRest(_b, ["logo", "tagline", "social", "socialLabel", "children", "copyright", "className"]);
15
+ return /* @__PURE__ */ jsx("footer", __spreadProps(__spreadValues({}, rest), { className: ["rds-footer", className].filter(Boolean).join(" "), children: /* @__PURE__ */ jsxs("div", { className: "rds-footer__inner", children: [
16
+ /* @__PURE__ */ jsxs("div", { className: "rds-footer__sitemap", children: [
17
+ /* @__PURE__ */ jsxs("div", { className: "rds-footer__brand", children: [
18
+ /* @__PURE__ */ jsx("div", { className: "rds-footer__logo", children: logo }),
19
+ tagline && /* @__PURE__ */ jsx("p", { className: "rds-footer__tagline", children: tagline }),
20
+ social && /* @__PURE__ */ jsx("ul", { className: "rds-footer__social", "aria-label": socialLabel, children: listItems(social) })
21
+ ] }),
22
+ children && /* @__PURE__ */ jsx("div", { className: "rds-footer__columns", children })
23
+ ] }),
24
+ /* @__PURE__ */ jsx("p", { className: "rds-footer__legal", children: copyright })
25
+ ] }) }));
26
+ }
27
+ function FooterColumn(_c) {
28
+ var _d = _c, { title, children, className } = _d, rest = __objRest(_d, ["title", "children", "className"]);
29
+ const id = useId();
30
+ return /* @__PURE__ */ jsxs("nav", __spreadProps(__spreadValues({ "aria-labelledby": id }, rest), { className: ["rds-footer__column", className].filter(Boolean).join(" "), children: [
31
+ /* @__PURE__ */ jsx("p", { id, className: "rds-footer__title", children: title }),
32
+ /* @__PURE__ */ jsx("ul", { className: "rds-footer__links", children: listItems(children) })
33
+ ] }));
34
+ }
35
+ export {
36
+ Footer,
37
+ FooterColumn
38
+ };
@@ -0,0 +1,28 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ type FormActionsLayout = 'inline' | 'stacked';
5
+ interface FormActionsProps extends HTMLAttributes<HTMLDivElement> {
6
+ /**
7
+ * The buttons (Figma: slot `actions`, up to 3), always in reading order: Cancelar first, the primary
8
+ * last. In `stacked` the primary goes on top, and it is moved first in the page too, so the focus
9
+ * order follows what is seen.
10
+ */
11
+ children: ReactNode;
12
+ /** A short supporting sentence beside the actions (Figma: `showHelper` + `helper`). */
13
+ helper?: ReactNode;
14
+ /**
15
+ * inline (desktop: floats and hugs its content, sentence left, actions right) or stacked (phone: edge
16
+ * to edge at the foot, primary full width on top) (Figma: `layout`).
17
+ */
18
+ layout?: FormActionsLayout;
19
+ }
20
+ /**
21
+ * FormActions — Figma [RDS] Actions/FormActions. The actions at the end of a create form or a task,
22
+ * there from the first second. Where it sticks is the page's job: `position: sticky` at the bottom of
23
+ * the scrolling container, with `scroll-padding-bottom` equal to its height, so a focused field is never
24
+ * hidden behind it (WCAG 2.4.11). Styles: form-actions.css.
25
+ */
26
+ declare function FormActions({ children, helper, layout, className, ...rest }: FormActionsProps): react.JSX.Element;
27
+
28
+ export { FormActions, type FormActionsLayout, type FormActionsProps };
@@ -0,0 +1,24 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "../chunk-ORMEWXMH.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Children } from "react";
8
+ function FormActions(_a) {
9
+ var _b = _a, { children, helper, layout = "inline", className } = _b, rest = __objRest(_b, ["children", "helper", "layout", "className"]);
10
+ const actions = Children.toArray(children);
11
+ return /* @__PURE__ */ jsxs(
12
+ "div",
13
+ __spreadProps(__spreadValues({}, rest), {
14
+ className: ["rds-form-actions", `rds-form-actions--${layout}`, className].filter(Boolean).join(" "),
15
+ children: [
16
+ helper && /* @__PURE__ */ jsx("p", { className: "rds-form-actions__helper", children: helper }),
17
+ /* @__PURE__ */ jsx("div", { className: "rds-form-actions__actions", children: layout === "stacked" ? actions.reverse() : actions })
18
+ ]
19
+ })
20
+ );
21
+ }
22
+ export {
23
+ FormActions
24
+ };
@@ -0,0 +1,25 @@
1
+ import * as react from 'react';
2
+ import { GoogleLayout } from './internal/google.js';
3
+
4
+ interface GoogleAccount {
5
+ name: string;
6
+ email: string;
7
+ }
8
+ interface GoogleAccountChooserProps {
9
+ /** Your app, as Google shows it after the app is verified (Figma: `appName`). */
10
+ appName?: string;
11
+ /** m3: the new screen, in two panels; oauth: what Google shows today for sign-in from an app. */
12
+ layout?: GoogleLayout;
13
+ /** The accounts signed in on the browser (the Figma's accounts block): name, e-mail and the initial. */
14
+ accounts?: GoogleAccount[];
15
+ className?: string;
16
+ }
17
+ /**
18
+ * GoogleAccountChooser — Figma [RDS] External/GoogleAccountChooser. A MOCKUP of Google's account chooser, when the
19
+ * person already has accounts on the browser, for flows: nothing in it works. Below 640 of container width it takes
20
+ * the mobile layout (Figma: `screen`). "Adicionar outra conta" is Google's text; the rest is a translation (not
21
+ * verified), as in the Figma. Styles: google-account-chooser.css and internal/google.css.
22
+ */
23
+ declare function GoogleAccountChooser({ appName, layout, accounts, className }: GoogleAccountChooserProps): react.JSX.Element;
24
+
25
+ export { type GoogleAccount, GoogleAccountChooser, type GoogleAccountChooserProps };
@@ -0,0 +1,44 @@
1
+ import "../chunk-ORMEWXMH.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { GoogleAppLine, GoogleScreen } from "./internal/google.js";
4
+ const SAMPLE = [
5
+ { name: "Maria Souza", email: "maria.souza@gmail.com" },
6
+ { name: "Maria Souza", email: "maria@empresa.com.br" }
7
+ ];
8
+ function GoogleAccountChooser({ appName = "Roj\xE3o", layout = "m3", accounts = SAMPLE, className }) {
9
+ return /* @__PURE__ */ jsxs(
10
+ GoogleScreen,
11
+ {
12
+ layout,
13
+ label: "Mockup: escolha de conta do Google",
14
+ title: "Escolha uma conta",
15
+ intro: /* @__PURE__ */ jsx(GoogleAppLine, { lead: "para prosseguir para", appName }),
16
+ className: ["rds-google-account-chooser", className].filter(Boolean).join(" "),
17
+ children: [
18
+ /* @__PURE__ */ jsxs("ul", { className: "rds-google__accounts", children: [
19
+ accounts.map((account) => /* @__PURE__ */ jsxs("li", { className: "rds-google__account", children: [
20
+ /* @__PURE__ */ jsx("span", { className: "rds-google__avatar", "aria-hidden": "true", children: account.name.charAt(0).toUpperCase() }),
21
+ /* @__PURE__ */ jsxs("span", { className: "rds-google__account-text", children: [
22
+ /* @__PURE__ */ jsx("span", { className: "rds-google__account-name", children: account.name }),
23
+ /* @__PURE__ */ jsx("span", { className: "rds-google__account-email", children: account.email })
24
+ ] })
25
+ ] }, account.email)),
26
+ /* @__PURE__ */ jsxs("li", { className: "rds-google__account", children: [
27
+ /* @__PURE__ */ jsx("span", { className: "rds-google__add", "aria-hidden": "true", children: "+" }),
28
+ /* @__PURE__ */ jsx("span", { className: "rds-google__account-name", children: "Adicionar outra conta" })
29
+ ] })
30
+ ] }),
31
+ /* @__PURE__ */ jsxs("p", { className: "rds-google__text rds-google-account-chooser__notice", children: [
32
+ "Para continuar, o Google vai compartilhar seu nome, endere\xE7o de e-mail, prefer\xEAncia de idioma e foto do perfil com o ",
33
+ appName,
34
+ ". Consulte a Pol\xEDtica de Privacidade e os Termos de Servi\xE7o do app ",
35
+ appName,
36
+ " antes de us\xE1-lo."
37
+ ] })
38
+ ]
39
+ }
40
+ );
41
+ }
42
+ export {
43
+ GoogleAccountChooser
44
+ };
@@ -0,0 +1,26 @@
1
+ import * as react from 'react';
2
+ import { ButtonHTMLAttributes } from 'react';
3
+
4
+ type GoogleButtonTheme = 'light' | 'dark' | 'neutral';
5
+ type GoogleButtonShape = 'rectangular' | 'pill';
6
+ type GoogleButtonType = 'standard' | 'icon';
7
+ interface GoogleButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type' | 'children'> {
8
+ /**
9
+ * The text (Figma: `label`). Only the texts Google allows in pt-BR: "Fazer login com o Google", "Continuar com o
10
+ * Google", "Inscrever-se com o Google". With `type="icon"` it is the accessible name.
11
+ */
12
+ children?: string;
13
+ /** light: white with a grey border; dark: near black; neutral: light grey, no border. */
14
+ theme?: GoogleButtonTheme;
15
+ shape?: GoogleButtonShape;
16
+ /** standard: the G and the text; icon: only the G, 40 × 40 (Figma: `type`; the HTML type is always "button"). */
17
+ type?: GoogleButtonType;
18
+ }
19
+ /**
20
+ * GoogleButton — Figma [RDS] External/GoogleButton. A MOCKUP of the official "Fazer login com o Google" button,
21
+ * with the measures and colours of Google's branding package: 40 tall, the G (20) 12 from the edge, 10 to the text,
22
+ * 14/20 medium. A real <button>: wire the click to your sign-in. Styles: google-button.css.
23
+ */
24
+ declare function GoogleButton({ children, theme, shape, type, className, ...rest }: GoogleButtonProps): react.JSX.Element;
25
+
26
+ export { GoogleButton, type GoogleButtonProps, type GoogleButtonShape, type GoogleButtonTheme, type GoogleButtonType };
@@ -0,0 +1,38 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "../chunk-ORMEWXMH.js";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { GoogleG } from "./internal/google.js";
8
+ function GoogleButton(_a) {
9
+ var _b = _a, {
10
+ children = "Fazer login com o Google",
11
+ theme = "light",
12
+ shape = "rectangular",
13
+ type = "standard",
14
+ className
15
+ } = _b, rest = __objRest(_b, [
16
+ "children",
17
+ "theme",
18
+ "shape",
19
+ "type",
20
+ "className"
21
+ ]);
22
+ return /* @__PURE__ */ jsxs(
23
+ "button",
24
+ __spreadProps(__spreadValues({
25
+ type: "button",
26
+ "aria-label": type === "icon" ? children : void 0
27
+ }, rest), {
28
+ className: ["rds-google-button", `rds-google-button--${theme}`, `rds-google-button--${shape}`, `rds-google-button--${type}`, className].filter(Boolean).join(" "),
29
+ children: [
30
+ /* @__PURE__ */ jsx(GoogleG, {}),
31
+ type === "standard" && /* @__PURE__ */ jsx("span", { className: "rds-google-button__label", children })
32
+ ]
33
+ })
34
+ );
35
+ }
36
+ export {
37
+ GoogleButton
38
+ };
@@ -0,0 +1,23 @@
1
+ import * as react from 'react';
2
+ import { GoogleLayout } from './internal/google.js';
3
+
4
+ interface GoogleConsentProps {
5
+ /** The screen's title (Figma: `title`), such as "Fazer login no <app>". */
6
+ title?: string;
7
+ /** Your app, named in the sharing notice. The Figma has it only inside the title. */
8
+ appName?: string;
9
+ /** m3: the new screen, in two panels; oauth: what Google shows today for sign-in from an app. */
10
+ layout?: GoogleLayout;
11
+ /** The account being shared. */
12
+ email?: string;
13
+ className?: string;
14
+ }
15
+ /**
16
+ * GoogleConsent — Figma [RDS] External/GoogleConsent. A MOCKUP of Google's consent screen (what Google shares with
17
+ * the app), for flows: nothing in it works. The app's name shows like this only after Google verifies the app.
18
+ * Below 640 of container width it takes the mobile layout (Figma: `screen`). Styles: google-consent.css and
19
+ * internal/google.css.
20
+ */
21
+ declare function GoogleConsent({ appName, title, layout, email, className }: GoogleConsentProps): react.JSX.Element;
22
+
23
+ export { GoogleConsent, type GoogleConsentProps };
@@ -0,0 +1,28 @@
1
+ import "../chunk-ORMEWXMH.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { GoogleAccountChip, GoogleActions, GoogleScreen } from "./internal/google.js";
4
+ function GoogleConsent({ appName = "Roj\xE3o", title, layout = "m3", email = "ana@exemplo.com", className }) {
5
+ return /* @__PURE__ */ jsxs(
6
+ GoogleScreen,
7
+ {
8
+ layout,
9
+ label: "Mockup: consentimento do Google",
10
+ title: title != null ? title : `Fazer login no ${appName}`,
11
+ intro: /* @__PURE__ */ jsx(GoogleAccountChip, { email }),
12
+ className: ["rds-google-consent", className].filter(Boolean).join(" "),
13
+ children: [
14
+ /* @__PURE__ */ jsxs("p", { className: "rds-google__text", children: [
15
+ "Para criar sua conta, o Google vai compartilhar seu nome, endere\xE7o de e-mail e foto do perfil com o ",
16
+ appName,
17
+ ". Consulte a Pol\xEDtica de Privacidade e os Termos de Servi\xE7o do ",
18
+ appName,
19
+ "."
20
+ ] }),
21
+ /* @__PURE__ */ jsx(GoogleActions, { secondary: "Cancelar", primary: "Continuar" })
22
+ ]
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ GoogleConsent
28
+ };
@@ -0,0 +1,26 @@
1
+ import * as react from 'react';
2
+ import { GoogleLayout } from './internal/google.js';
3
+
4
+ type GoogleSignInStep = 'email' | 'password';
5
+ interface GoogleSignInProps {
6
+ /** The screen's title (Figma: `title`). On the password step the Figma shows "Boas-vindas". */
7
+ title?: string;
8
+ /** Your app, as Google shows it after the app is verified (Figma: `appName`). */
9
+ appName?: string;
10
+ /** m3: the new screen, in two panels; oauth: what Google shows today for sign-in from an app. */
11
+ layout?: GoogleLayout;
12
+ /** email: the e-mail field; password: the account chip and the password field. */
13
+ step?: GoogleSignInStep;
14
+ /** The account on the password step. */
15
+ email?: string;
16
+ className?: string;
17
+ }
18
+ /**
19
+ * GoogleSignIn — Figma [RDS] External/GoogleSignIn. A MOCKUP of Google's sign-in screen, for flows: nothing in it
20
+ * works. Below 640 of container width it takes the mobile layout (Figma: `screen`). Texts of the e-mail step are
21
+ * Google's; those of the password step are a translation (not verified), as in the Figma. Styles: google-sign-in.css
22
+ * and internal/google.css.
23
+ */
24
+ declare function GoogleSignIn({ title, appName, layout, step, email, className, }: GoogleSignInProps): react.JSX.Element;
25
+
26
+ export { GoogleLayout, GoogleSignIn, type GoogleSignInProps, type GoogleSignInStep };