@studiolxd/brand 50.0.0 → 51.0.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 (595) hide show
  1. package/dist/_shared/alert.js +98 -0
  2. package/dist/_shared/asyncmultiselect.js +133 -0
  3. package/dist/_shared/asyncselect.js +122 -0
  4. package/dist/_shared/brandmessagescontext.js +27 -11
  5. package/dist/_shared/{calendargrid.js → calendar.js} +11 -1
  6. package/dist/_shared/closebutton.js +34 -0
  7. package/dist/_shared/colorpicker.js +140 -121
  8. package/dist/_shared/connectorrequestsummary.js +46 -0
  9. package/dist/_shared/{copy-to-clipboard.js → copy.js} +8 -1
  10. package/dist/_shared/datepicker.js +80 -67
  11. package/dist/_shared/default-render-link.js +6 -1
  12. package/dist/_shared/dotsbutton.js +31 -0
  13. package/dist/_shared/env.js +13 -2
  14. package/dist/_shared/field-optional.js +9 -0
  15. package/dist/_shared/fieldshell.js +85 -0
  16. package/dist/_shared/fileupload.js +237 -0
  17. package/dist/_shared/focusable-when-disabled.js +10 -0
  18. package/dist/_shared/imagecropdialog.js +65 -57
  19. package/dist/_shared/inputfield.js +92 -0
  20. package/dist/_shared/inputphone.js +91 -0
  21. package/dist/_shared/legalfooternav.js +15 -0
  22. package/dist/_shared/logo.js +10 -9
  23. package/dist/_shared/menubutton.js +31 -0
  24. package/dist/_shared/modal.js +69 -0
  25. package/dist/_shared/multiselect.js +128 -0
  26. package/dist/_shared/notificationbutton.js +35 -0
  27. package/dist/_shared/numberinput.js +104 -0
  28. package/dist/_shared/otpinput.js +119 -0
  29. package/dist/_shared/pagination.js +198 -0
  30. package/dist/_shared/prevnextnav.js +93 -0
  31. package/dist/_shared/progressbar.js +25 -23
  32. package/dist/_shared/publicpageshell.js +39 -0
  33. package/dist/_shared/requiredinput.js +23 -0
  34. package/dist/_shared/searchform.js +65 -0
  35. package/dist/_shared/select.js +163 -0
  36. package/dist/_shared/sheet.js +58 -0
  37. package/dist/_shared/slider.js +43 -0
  38. package/dist/_shared/spinner.js +5 -0
  39. package/dist/_shared/table.js +140 -0
  40. package/dist/_shared/timeselect.js +91 -0
  41. package/dist/_shared/tokens.js +116 -11
  42. package/dist/_shared/typingindicator.js +32 -0
  43. package/dist/_shared/untrustedtext.js +27 -23
  44. package/dist/_types/atoms/AsyncMultiSelect/AsyncMultiSelect.d.ts +6 -1
  45. package/dist/_types/atoms/AsyncSelect/AsyncSelect.d.ts +6 -1
  46. package/dist/_types/atoms/Autocomplete/Autocomplete.d.ts +6 -1
  47. package/dist/_types/atoms/Button/Button.d.ts +13 -0
  48. package/dist/_types/atoms/CloseButton/CloseButton.d.ts +9 -0
  49. package/dist/_types/atoms/DescriptionList/DescriptionList.d.ts +4 -4
  50. package/dist/_types/atoms/EmbedFrame/EmbedFrame.d.ts +13 -1
  51. package/dist/_types/atoms/Fieldset/Fieldset.d.ts +11 -5
  52. package/dist/_types/atoms/FileUpload/FileUpload.d.ts +7 -2
  53. package/dist/_types/atoms/Input/Input.d.ts +1 -1
  54. package/dist/_types/atoms/InputPhone/InputPhone.d.ts +6 -1
  55. package/dist/_types/atoms/Link/Link.d.ts +7 -3
  56. package/dist/_types/atoms/List/List.d.ts +4 -2
  57. package/dist/_types/atoms/Logo/Logo.d.ts +11 -5
  58. package/dist/_types/atoms/Logo/index.d.ts +1 -1
  59. package/dist/_types/atoms/MultiSelect/MultiSelect.d.ts +11 -1
  60. package/dist/_types/atoms/NumberBadge/NumberBadge.d.ts +14 -2
  61. package/dist/_types/atoms/NumberInput/NumberInput.d.ts +1 -1
  62. package/dist/_types/atoms/OtpInput/OtpInput.d.ts +2 -0
  63. package/dist/_types/atoms/Paragraph/Paragraph.d.ts +14 -2
  64. package/dist/_types/atoms/Popover/Popover.d.ts +5 -1
  65. package/dist/_types/atoms/ProgressBar/ProgressBar.d.ts +12 -4
  66. package/dist/_types/atoms/Sparkline/Sparkline.d.ts +2 -0
  67. package/dist/_types/atoms/StepMarker/StepMarker.d.ts +9 -4
  68. package/dist/_types/atoms/Tag/Tag.d.ts +13 -2
  69. package/dist/_types/atoms/Text/Text.d.ts +11 -5
  70. package/dist/_types/atoms/TimeSelect/TimeSelect.d.ts +6 -1
  71. package/dist/_types/atoms/Toggle/Toggle.d.ts +9 -0
  72. package/dist/_types/atoms/Tooltip/Tooltip.d.ts +11 -13
  73. package/dist/_types/constants/default-render-link.d.ts +8 -1
  74. package/dist/_types/constants/env.d.ts +9 -5
  75. package/dist/_types/constants/field-optional.d.ts +14 -0
  76. package/dist/_types/constants/focusable-when-disabled.d.ts +2 -0
  77. package/dist/_types/messages/BrandMessages.d.ts +53 -14
  78. package/dist/_types/messages/BrandMessagesContext.d.ts +534 -12
  79. package/dist/_types/messages/BrandMessagesProvider.d.ts +33 -11
  80. package/dist/_types/messages/brandMessagesEs.d.ts +18 -0
  81. package/dist/_types/messages/es/alert.d.ts +3 -0
  82. package/dist/_types/messages/es/annotationThread.d.ts +3 -0
  83. package/dist/_types/messages/es/appHeader.d.ts +3 -0
  84. package/dist/_types/messages/es/appLauncher.d.ts +3 -0
  85. package/dist/_types/messages/es/appRoot.d.ts +3 -0
  86. package/dist/_types/messages/es/appShell.d.ts +3 -0
  87. package/dist/_types/messages/es/asyncMultiSelect.d.ts +3 -0
  88. package/dist/_types/messages/es/asyncSelect.d.ts +3 -0
  89. package/dist/_types/messages/es/avatarUpload.d.ts +3 -0
  90. package/dist/_types/messages/es/banner.d.ts +3 -0
  91. package/dist/_types/messages/es/breadcrumb.d.ts +3 -0
  92. package/dist/_types/messages/es/calendar.d.ts +3 -0
  93. package/dist/_types/messages/es/calendarPlanner.d.ts +3 -0
  94. package/dist/_types/messages/es/calendarRoster.d.ts +3 -0
  95. package/dist/_types/messages/es/carousel.d.ts +3 -0
  96. package/dist/_types/messages/es/chart.d.ts +3 -0
  97. package/dist/_types/messages/es/chatShell.d.ts +3 -0
  98. package/dist/_types/messages/es/clockWidget.d.ts +3 -0
  99. package/dist/_types/messages/es/closeButton.d.ts +3 -0
  100. package/dist/_types/messages/es/codeBlock.d.ts +3 -0
  101. package/dist/_types/messages/es/colorPicker.d.ts +3 -0
  102. package/dist/_types/messages/es/commandPalette.d.ts +3 -0
  103. package/dist/_types/messages/es/confirmDialog.d.ts +3 -0
  104. package/dist/_types/messages/es/connectorConsent.d.ts +3 -0
  105. package/dist/_types/messages/es/connectorExternalSignIn.d.ts +3 -0
  106. package/dist/_types/messages/es/connectorRejection.d.ts +3 -0
  107. package/dist/_types/messages/es/connectorRequestSummary.d.ts +3 -0
  108. package/dist/_types/messages/es/connectorSignIn.d.ts +3 -0
  109. package/dist/_types/messages/es/consent.d.ts +3 -0
  110. package/dist/_types/messages/es/conversationList.d.ts +3 -0
  111. package/dist/_types/messages/es/conversationThread.d.ts +3 -0
  112. package/dist/_types/messages/es/copy.d.ts +3 -0
  113. package/dist/_types/messages/es/dataTable.d.ts +3 -0
  114. package/dist/_types/messages/es/datePicker.d.ts +3 -0
  115. package/dist/_types/messages/es/docsSearch.d.ts +3 -0
  116. package/dist/_types/messages/es/dotsButton.d.ts +3 -0
  117. package/dist/_types/messages/es/field.d.ts +3 -0
  118. package/dist/_types/messages/es/fileUpload.d.ts +3 -0
  119. package/dist/_types/messages/es/filterBar.d.ts +3 -0
  120. package/dist/_types/messages/es/floatingDock.d.ts +3 -0
  121. package/dist/_types/messages/es/heatmap.d.ts +3 -0
  122. package/dist/_types/messages/es/imageCropDialog.d.ts +3 -0
  123. package/dist/_types/messages/es/inputField.d.ts +3 -0
  124. package/dist/_types/messages/es/inputPhone.d.ts +3 -0
  125. package/dist/_types/messages/es/languageSwitcher.d.ts +3 -0
  126. package/dist/_types/messages/es/legalFooter.d.ts +3 -0
  127. package/dist/_types/messages/es/menuButton.d.ts +3 -0
  128. package/dist/_types/messages/es/messageComposer.d.ts +3 -0
  129. package/dist/_types/messages/es/modal.d.ts +3 -0
  130. package/dist/_types/messages/es/multiSelect.d.ts +3 -0
  131. package/dist/_types/messages/es/notificationButton.d.ts +3 -0
  132. package/dist/_types/messages/es/notificationList.d.ts +3 -0
  133. package/dist/_types/messages/es/notificationPanel.d.ts +3 -0
  134. package/dist/_types/messages/es/numberInput.d.ts +3 -0
  135. package/dist/_types/messages/es/onboardingShell.d.ts +3 -0
  136. package/dist/_types/messages/es/orgChart.d.ts +3 -0
  137. package/dist/_types/messages/es/orgSwitcher.d.ts +3 -0
  138. package/dist/_types/messages/es/otpInput.d.ts +3 -0
  139. package/dist/_types/messages/es/pagination.d.ts +3 -0
  140. package/dist/_types/messages/es/passwordField.d.ts +3 -0
  141. package/dist/_types/messages/es/planningGrid.d.ts +3 -0
  142. package/dist/_types/messages/es/prevNextNav.d.ts +3 -0
  143. package/dist/_types/messages/es/progressBar.d.ts +3 -0
  144. package/dist/_types/messages/es/projectCard.d.ts +3 -0
  145. package/dist/_types/messages/es/publicPageShell.d.ts +3 -0
  146. package/dist/_types/messages/es/recurrenceField.d.ts +3 -0
  147. package/dist/_types/messages/es/searchForm.d.ts +3 -0
  148. package/dist/_types/messages/es/select.d.ts +3 -0
  149. package/dist/_types/messages/es/sheet.d.ts +3 -0
  150. package/dist/_types/messages/es/sidebar.d.ts +3 -0
  151. package/dist/_types/messages/es/sidebarNav.d.ts +3 -0
  152. package/dist/_types/messages/es/siteHeader.d.ts +3 -0
  153. package/dist/_types/messages/es/siteNav.d.ts +3 -0
  154. package/dist/_types/messages/es/siteSearch.d.ts +3 -0
  155. package/dist/_types/messages/es/slider.d.ts +3 -0
  156. package/dist/_types/messages/es/spinner.d.ts +3 -0
  157. package/dist/_types/messages/es/statTile.d.ts +3 -0
  158. package/dist/_types/messages/es/stepper.d.ts +3 -0
  159. package/dist/_types/messages/es/table.d.ts +3 -0
  160. package/dist/_types/messages/es/tableOfContents.d.ts +3 -0
  161. package/dist/_types/messages/es/themeSwitcher.d.ts +3 -0
  162. package/dist/_types/messages/es/timeSelect.d.ts +3 -0
  163. package/dist/_types/messages/es/timeline.d.ts +3 -0
  164. package/dist/_types/messages/es/toaster.d.ts +3 -0
  165. package/dist/_types/messages/es/treeView.d.ts +3 -0
  166. package/dist/_types/messages/es/typingIndicator.d.ts +3 -0
  167. package/dist/_types/messages/es/untrustedText.d.ts +3 -0
  168. package/dist/_types/messages/es/uptimeBars.d.ts +3 -0
  169. package/dist/_types/messages/es/userMenu.d.ts +3 -0
  170. package/dist/_types/messages/index.d.ts +1 -1
  171. package/dist/_types/molecules/Alert/Alert.d.ts +11 -2
  172. package/dist/_types/molecules/AsyncMultiSelectField/AsyncMultiSelectField.d.ts +2 -1
  173. package/dist/_types/molecules/AsyncSelectField/AsyncSelectField.d.ts +2 -1
  174. package/dist/_types/molecules/AutocompleteField/AutocompleteField.d.ts +2 -1
  175. package/dist/_types/molecules/Banner/Banner.d.ts +11 -3
  176. package/dist/_types/molecules/Breadcrumb/Breadcrumb.d.ts +3 -1
  177. package/dist/_types/molecules/CalendarPlanner/CalendarPlanner.d.ts +7 -1
  178. package/dist/_types/molecules/CalendarRoster/CalendarRoster.d.ts +14 -2
  179. package/dist/_types/molecules/Card/Card.d.ts +10 -2
  180. package/dist/_types/molecules/CheckboxField/CheckboxField.d.ts +8 -1
  181. package/dist/_types/molecules/ColorPicker/ColorPicker.d.ts +15 -1
  182. package/dist/_types/molecules/ColorPickerField/ColorPickerField.d.ts +10 -1
  183. package/dist/_types/molecules/CommandPalette/CommandPalette.d.ts +5 -0
  184. package/dist/_types/molecules/ConfirmDialog/ConfirmDialog.d.ts +6 -1
  185. package/dist/_types/molecules/ContextMenu/ContextMenu.d.ts +3 -3
  186. package/dist/_types/molecules/CopyButton/CopyButton.d.ts +8 -0
  187. package/dist/_types/molecules/DatePicker/DatePicker.d.ts +12 -1
  188. package/dist/_types/molecules/DatePickerField/DatePickerField.d.ts +2 -1
  189. package/dist/_types/molecules/DateTimeField/DateTimeField.d.ts +8 -1
  190. package/dist/_types/molecules/DropdownField/DropdownField.d.ts +11 -1
  191. package/dist/_types/molecules/FileUploadField/FileUploadField.d.ts +2 -1
  192. package/dist/_types/molecules/FilterBar/FilterBar.d.ts +3 -1
  193. package/dist/_types/molecules/FloatingToolbar/FloatingToolbar.d.ts +19 -1
  194. package/dist/_types/molecules/Form/Form.d.ts +8 -0
  195. package/dist/_types/molecules/Heatmap/Heatmap.d.ts +42 -5
  196. package/dist/_types/molecules/Heatmap/heatmapScale.d.ts +50 -0
  197. package/dist/_types/molecules/ImageCropDialog/ImageCropDialog.d.ts +18 -2
  198. package/dist/_types/molecules/InputField/InputField.d.ts +2 -1
  199. package/dist/_types/molecules/InputPhoneField/InputPhoneField.d.ts +2 -1
  200. package/dist/_types/molecules/Menu/Menu.d.ts +5 -0
  201. package/dist/_types/molecules/Modal/Modal.d.ts +14 -2
  202. package/dist/_types/molecules/MultiSelectField/MultiSelectField.d.ts +4 -1
  203. package/dist/_types/molecules/NotificationPanel/NotificationPanel.d.ts +6 -1
  204. package/dist/_types/molecules/NumberInputField/NumberInputField.d.ts +2 -1
  205. package/dist/_types/molecules/OrgSwitcher/OrgSwitcher.d.ts +3 -2
  206. package/dist/_types/molecules/OtpField/OtpField.d.ts +4 -1
  207. package/dist/_types/molecules/PageIntro/PageIntro.d.ts +1 -1
  208. package/dist/_types/molecules/Pagination/Pagination.d.ts +26 -5
  209. package/dist/_types/molecules/PasswordField/PasswordField.d.ts +4 -3
  210. package/dist/_types/molecules/PrevNextNav/PrevNextNav.d.ts +20 -4
  211. package/dist/_types/molecules/ProjectCard/ProjectCard.d.ts +8 -2
  212. package/dist/_types/molecules/RadioField/RadioField.d.ts +8 -0
  213. package/dist/_types/molecules/RecoveryCodes/RecoveryCodes.d.ts +1 -1
  214. package/dist/_types/molecules/RecurrenceField/RecurrenceField.d.ts +19 -1
  215. package/dist/_types/molecules/SelectField/SelectField.d.ts +2 -1
  216. package/dist/_types/molecules/Sheet/Sheet.d.ts +5 -0
  217. package/dist/_types/molecules/Table/Table.d.ts +6 -1
  218. package/dist/_types/molecules/TableOfContents/TableOfContents.d.ts +3 -1
  219. package/dist/_types/molecules/TextareaField/TextareaField.d.ts +2 -1
  220. package/dist/_types/molecules/TimeField/TimeField.d.ts +2 -1
  221. package/dist/_types/molecules/Timeline/Timeline.d.ts +6 -3
  222. package/dist/_types/molecules/UserMenu/UserMenu.d.ts +3 -2
  223. package/dist/_types/molecules/_shared/FieldShell.d.ts +130 -0
  224. package/dist/_types/molecules/_shared/requiredInput.d.ts +8 -0
  225. package/dist/_types/organisms/AnnotationThread/AnnotationThread.d.ts +3 -2
  226. package/dist/_types/organisms/DataTable/DataTable.d.ts +1 -1
  227. package/dist/_types/organisms/PlanningGrid/PlanningGrid.d.ts +12 -1
  228. package/dist/_types/organisms/Steps/Steps.d.ts +3 -3
  229. package/dist/_types/sections/Hero/Hero.d.ts +1 -1
  230. package/dist/_types/sections/LegalFooter/LegalFooter.d.ts +5 -0
  231. package/dist/_types/sections/LegalFooter/LegalFooterNav.d.ts +19 -0
  232. package/dist/_types/sections/SiteHeader/SiteHeader.d.ts +3 -3
  233. package/dist/accordion.css +1 -1
  234. package/dist/alert.css +1 -1
  235. package/dist/alert.js +2 -94
  236. package/dist/annotation-thread.css +1 -1
  237. package/dist/annotation-thread.js +38 -31
  238. package/dist/app-header.css +1 -1
  239. package/dist/app-header.js +24 -21
  240. package/dist/app-launcher.css +1 -1
  241. package/dist/app-launcher.js +42 -35
  242. package/dist/app-root.js +9 -6
  243. package/dist/app-shell.js +46 -46
  244. package/dist/async-multi-select-field.js +46 -51
  245. package/dist/async-multi-select.js +2 -128
  246. package/dist/async-select-field.js +45 -50
  247. package/dist/async-select.js +2 -117
  248. package/dist/asyncmultiselect.css +1 -0
  249. package/dist/autocomplete-field.js +45 -50
  250. package/dist/avatar-upload.js +82 -69
  251. package/dist/banner.js +33 -30
  252. package/dist/brand.css +464 -223
  253. package/dist/breadcrumb.css +1 -1
  254. package/dist/breadcrumb.js +25 -20
  255. package/dist/button.css +1 -1
  256. package/dist/button.js +44 -41
  257. package/dist/calendar-planner.css +1 -1
  258. package/dist/calendar-planner.js +108 -90
  259. package/dist/calendar-roster.js +84 -69
  260. package/dist/calendar.css +1 -1
  261. package/dist/calendar.js +95 -95
  262. package/dist/card.css +1 -1
  263. package/dist/card.js +75 -73
  264. package/dist/carousel.css +1 -1
  265. package/dist/carousel.js +66 -52
  266. package/dist/chart.js +213 -206
  267. package/dist/chat-shell.css +1 -1
  268. package/dist/chat-shell.js +39 -36
  269. package/dist/checkbox-field.js +40 -49
  270. package/dist/checkbox.css +1 -1
  271. package/dist/clock-widget.js +49 -33
  272. package/dist/close-button.js +2 -23
  273. package/dist/code-block.js +45 -39
  274. package/dist/collapsible.css +1 -1
  275. package/dist/color-picker-field.js +38 -39
  276. package/dist/colorpicker.css +1 -1
  277. package/dist/command-palette.css +1 -1
  278. package/dist/command-palette.js +39 -31
  279. package/dist/confirm-dialog.js +29 -22
  280. package/dist/connector-auth-shell.js +1 -1
  281. package/dist/connector-consent-page.js +56 -50
  282. package/dist/connector-external-sign-in-page.js +40 -33
  283. package/dist/connector-rejection-page.js +28 -25
  284. package/dist/connector-request-summary.js +2 -37
  285. package/dist/connector-sign-in-page.js +44 -37
  286. package/dist/consent.css +1 -1
  287. package/dist/consent.js +55 -44
  288. package/dist/container.css +1 -1
  289. package/dist/context-menu.js +1 -1
  290. package/dist/conversation-list.css +1 -1
  291. package/dist/conversation-list.js +42 -33
  292. package/dist/conversation-thread.js +23 -20
  293. package/dist/copy-button.js +35 -33
  294. package/dist/copyable-value.js +40 -40
  295. package/dist/data-table.js +71 -65
  296. package/dist/date-picker-field.js +32 -37
  297. package/dist/date-time-field.js +78 -80
  298. package/dist/datepicker.css +1 -1
  299. package/dist/description-list.js +5 -5
  300. package/dist/docs-search.css +1 -1
  301. package/dist/docs-search.js +32 -23
  302. package/dist/dots-button.js +2 -29
  303. package/dist/dropdown-field.css +1 -1
  304. package/dist/dropdown-field.js +52 -51
  305. package/dist/embed-frame.css +1 -1
  306. package/dist/embed-frame.js +5 -4
  307. package/dist/error-page.js +2 -2
  308. package/dist/fieldset.css +1 -1
  309. package/dist/fieldset.js +6 -6
  310. package/dist/file-upload-field.js +31 -36
  311. package/dist/file-upload.js +2 -223
  312. package/dist/{file-upload.css → fileupload.css} +1 -1
  313. package/dist/filter-bar.css +1 -1
  314. package/dist/filter-bar.js +22 -17
  315. package/dist/floating-dock.css +1 -1
  316. package/dist/floating-dock.js +35 -29
  317. package/dist/floating-toolbar.js +22 -15
  318. package/dist/form.js +56 -52
  319. package/dist/heatmap.css +1 -1
  320. package/dist/heatmap.js +96 -36
  321. package/dist/hero.js +1 -1
  322. package/dist/highlight.js +1 -1
  323. package/dist/input-field.js +2 -100
  324. package/dist/input-phone-field.js +43 -48
  325. package/dist/input-phone.js +2 -88
  326. package/dist/input.js +14 -13
  327. package/dist/inputphone.css +1 -0
  328. package/dist/label.css +1 -1
  329. package/dist/language-switcher.css +1 -1
  330. package/dist/language-switcher.js +28 -25
  331. package/dist/legal-footer-nav.js +3 -0
  332. package/dist/legal-footer.js +9 -11
  333. package/dist/link.css +1 -1
  334. package/dist/list.js +8 -8
  335. package/dist/loading-region.js +34 -33
  336. package/dist/loading-state.css +1 -1
  337. package/dist/loading-state.js +29 -28
  338. package/dist/logo.css +1 -1
  339. package/dist/menu-button.js +2 -28
  340. package/dist/menu.css +1 -1
  341. package/dist/message-composer.js +32 -29
  342. package/dist/messages.js +10 -7
  343. package/dist/modal.css +1 -1
  344. package/dist/modal.js +2 -61
  345. package/dist/multi-select-field.js +43 -47
  346. package/dist/multi-select.js +2 -124
  347. package/dist/not-found-page.js +1 -1
  348. package/dist/notification-button.js +2 -32
  349. package/dist/notification-list.js +23 -16
  350. package/dist/notification-panel.css +1 -1
  351. package/dist/notification-panel.js +54 -46
  352. package/dist/notificationbutton.css +1 -0
  353. package/dist/number-badge.css +1 -1
  354. package/dist/number-badge.js +15 -11
  355. package/dist/number-input-field.js +44 -48
  356. package/dist/number-input.js +2 -99
  357. package/dist/onboarding-shell.css +1 -1
  358. package/dist/onboarding-shell.js +37 -34
  359. package/dist/org-chart.css +1 -1
  360. package/dist/org-chart.js +46 -35
  361. package/dist/org-switcher.css +1 -1
  362. package/dist/org-switcher.js +26 -23
  363. package/dist/otp-field.js +44 -47
  364. package/dist/otp-input.js +2 -115
  365. package/dist/otpinput.css +1 -0
  366. package/dist/page-intro.js +1 -1
  367. package/dist/pagination.css +1 -1
  368. package/dist/pagination.js +2 -179
  369. package/dist/paragraph.css +1 -1
  370. package/dist/paragraph.js +16 -10
  371. package/dist/password-field.css +1 -1
  372. package/dist/password-field.js +56 -57
  373. package/dist/planning-grid.css +1 -1
  374. package/dist/planning-grid.js +89 -75
  375. package/dist/prev-next-nav.js +2 -84
  376. package/dist/prevnextnav.css +1 -0
  377. package/dist/project-card.css +1 -1
  378. package/dist/project-card.js +41 -32
  379. package/dist/public-page-shell.js +2 -39
  380. package/dist/radio-field.js +29 -39
  381. package/dist/recurrence-field.css +1 -1
  382. package/dist/recurrence-field.js +129 -94
  383. package/dist/search-form.js +2 -61
  384. package/dist/searchform.css +1 -0
  385. package/dist/select-field.js +49 -54
  386. package/dist/select.js +2 -159
  387. package/dist/sheet.css +1 -1
  388. package/dist/sheet.js +2 -54
  389. package/dist/sidebar-nav.css +1 -1
  390. package/dist/sidebar-nav.js +33 -26
  391. package/dist/sidebar.css +1 -1
  392. package/dist/sidebar.js +66 -59
  393. package/dist/site-footer.js +1 -1
  394. package/dist/site-header.css +1 -1
  395. package/dist/site-header.js +37 -34
  396. package/dist/site-nav.css +1 -1
  397. package/dist/site-nav.js +17 -14
  398. package/dist/site-search.css +1 -1
  399. package/dist/site-search.js +70 -54
  400. package/dist/skip-link.css +1 -1
  401. package/dist/slider.css +1 -1
  402. package/dist/slider.js +2 -34
  403. package/dist/sparkline.js +37 -35
  404. package/dist/spinner.js +19 -18
  405. package/dist/star-rating.js +2 -2
  406. package/dist/stat-tile.js +27 -23
  407. package/dist/step-marker.css +1 -1
  408. package/dist/step-marker.js +19 -16
  409. package/dist/stepper.css +1 -1
  410. package/dist/stepper.js +25 -16
  411. package/dist/switcher-field.js +39 -55
  412. package/dist/switcher.css +1 -1
  413. package/dist/table-of-contents.css +1 -1
  414. package/dist/table-of-contents.js +33 -28
  415. package/dist/table.css +1 -1
  416. package/dist/table.js +2 -133
  417. package/dist/tabs.css +1 -1
  418. package/dist/tag.css +1 -1
  419. package/dist/tag.js +16 -10
  420. package/dist/text.css +1 -1
  421. package/dist/textarea-field.js +41 -45
  422. package/dist/theme-switcher.css +1 -1
  423. package/dist/theme-switcher.js +47 -41
  424. package/dist/time-field.js +42 -47
  425. package/dist/time-select.js +2 -84
  426. package/dist/timeline.js +14 -11
  427. package/dist/toaster.css +1 -1
  428. package/dist/toaster.js +32 -29
  429. package/dist/toggle.js +33 -13
  430. package/dist/tokens.css +379 -197
  431. package/dist/tooltip.js +48 -34
  432. package/dist/tree-view.css +1 -1
  433. package/dist/tree-view.js +60 -60
  434. package/dist/typing-indicator.js +2 -29
  435. package/dist/{typing-indicator.css → typingindicator.css} +1 -1
  436. package/dist/uptime-bars.js +36 -33
  437. package/dist/user-menu.css +1 -1
  438. package/dist/user-menu.js +29 -26
  439. package/package.json +2 -2
  440. package/src/tokens/colors.ts +6 -6
  441. package/src/tokens/components/accordion.css +1 -1
  442. package/src/tokens/components/app-header.css +2 -2
  443. package/src/tokens/components/async-multi-select.css +1 -1
  444. package/src/tokens/components/breadcrumb.css +2 -2
  445. package/src/tokens/components/button.css +9 -2
  446. package/src/tokens/components/card.css +3 -3
  447. package/src/tokens/components/checkbox.css +5 -5
  448. package/src/tokens/components/collapsible.css +1 -0
  449. package/src/tokens/components/embed-frame.css +8 -0
  450. package/src/tokens/components/file-upload.css +5 -5
  451. package/src/tokens/components/floating-dock.css +2 -2
  452. package/src/tokens/components/floating-panel.css +2 -2
  453. package/src/tokens/components/input.css +2 -2
  454. package/src/tokens/components/kbd.css +1 -1
  455. package/src/tokens/components/label.css +2 -0
  456. package/src/tokens/components/link.css +20 -6
  457. package/src/tokens/components/logo.css +1 -1
  458. package/src/tokens/components/message-bubble.css +2 -2
  459. package/src/tokens/components/multi-select.css +2 -2
  460. package/src/tokens/components/number-badge.css +3 -3
  461. package/src/tokens/components/otp-input.css +1 -1
  462. package/src/tokens/components/select.css +2 -2
  463. package/src/tokens/components/sidebar.css +2 -2
  464. package/src/tokens/components/site-header.css +5 -5
  465. package/src/tokens/components/slider.css +1 -1
  466. package/src/tokens/components/spinner.css +3 -3
  467. package/src/tokens/components/step.css +4 -4
  468. package/src/tokens/components/switcher.css +3 -3
  469. package/src/tokens/components/tabs.css +5 -4
  470. package/src/tokens/components/tag.css +4 -4
  471. package/src/tokens/components/text-inline.css +3 -1
  472. package/src/tokens/components/text.css +2 -2
  473. package/src/tokens/components/textarea.css +2 -2
  474. package/src/tokens/components/tooltip.css +2 -2
  475. package/src/tokens/components/typing-indicator.css +1 -1
  476. package/src/tokens/deprecated-aliases.css +74 -0
  477. package/src/tokens/global/colors.css +2 -2
  478. package/src/tokens/global/shadow.css +4 -4
  479. package/src/tokens/index.css +6 -0
  480. package/src/tokens/molecules/alert.css +1 -0
  481. package/src/tokens/molecules/annotation-thread.css +0 -2
  482. package/src/tokens/molecules/app-launcher.css +1 -1
  483. package/src/tokens/molecules/calendar-planner.css +2 -1
  484. package/src/tokens/molecules/calendar-roster.css +9 -9
  485. package/src/tokens/molecules/calendar.css +5 -4
  486. package/src/tokens/molecules/carousel.css +3 -3
  487. package/src/tokens/molecules/chart.css +3 -3
  488. package/src/tokens/molecules/chat-shell.css +2 -2
  489. package/src/tokens/molecules/color-picker.css +2 -2
  490. package/src/tokens/molecules/command-palette.css +1 -0
  491. package/src/tokens/molecules/consent.css +3 -3
  492. package/src/tokens/molecules/conversation-list.css +1 -0
  493. package/src/tokens/molecules/date-picker.css +1 -1
  494. package/src/tokens/molecules/docs-search.css +1 -1
  495. package/src/tokens/molecules/dropdown-field.css +2 -1
  496. package/src/tokens/molecules/filter-bar.css +1 -1
  497. package/src/tokens/molecules/heatmap.css +33 -6
  498. package/src/tokens/molecules/loading-state.css +2 -2
  499. package/src/tokens/molecules/menu.css +2 -1
  500. package/src/tokens/molecules/message-composer.css +1 -1
  501. package/src/tokens/molecules/modal.css +5 -5
  502. package/src/tokens/molecules/notification-panel.css +2 -2
  503. package/src/tokens/molecules/org-chart.css +4 -4
  504. package/src/tokens/molecules/pagination.css +1 -0
  505. package/src/tokens/molecules/password-field.css +2 -2
  506. package/src/tokens/molecules/planning-grid.css +7 -7
  507. package/src/tokens/molecules/recurrence-field.css +5 -0
  508. package/src/tokens/molecules/search-form.css +1 -1
  509. package/src/tokens/molecules/sheet.css +2 -2
  510. package/src/tokens/molecules/site-nav.css +3 -1
  511. package/src/tokens/molecules/site-search.css +4 -4
  512. package/src/tokens/molecules/table-of-contents.css +1 -1
  513. package/src/tokens/molecules/table.css +3 -3
  514. package/src/tokens/molecules/toast.css +1 -0
  515. package/src/tokens/scss/_index.legacy.scss +1 -0
  516. package/src/tokens/scss/_index.scss +1 -0
  517. package/src/tokens/scss/components/_accordion.scss +4 -1
  518. package/src/tokens/scss/components/_async-multi-select.scss +4 -1
  519. package/src/tokens/scss/components/_breadcrumb.scss +4 -1
  520. package/src/tokens/scss/components/_button.scss +7 -2
  521. package/src/tokens/scss/components/_card.scss +1 -1
  522. package/src/tokens/scss/components/_checkbox.scss +6 -2
  523. package/src/tokens/scss/components/_collapsible.scss +1 -0
  524. package/src/tokens/scss/components/_embed-frame.scss +9 -0
  525. package/src/tokens/scss/components/_file-upload.scss +4 -1
  526. package/src/tokens/scss/components/_floating-dock.scss +6 -2
  527. package/src/tokens/scss/components/_label.scss +1 -0
  528. package/src/tokens/scss/components/_link.scss +16 -6
  529. package/src/tokens/scss/components/_logo.scss +4 -1
  530. package/src/tokens/scss/components/_number-badge.scss +6 -2
  531. package/src/tokens/scss/components/_otp-input.scss +4 -1
  532. package/src/tokens/scss/components/_site-header.scss +1 -1
  533. package/src/tokens/scss/components/_slider.scss +4 -1
  534. package/src/tokens/scss/components/_spinner.scss +3 -3
  535. package/src/tokens/scss/components/_step.scss +6 -2
  536. package/src/tokens/scss/components/_switcher.scss +5 -2
  537. package/src/tokens/scss/components/_tabs.scss +7 -2
  538. package/src/tokens/scss/components/_tag.scss +6 -2
  539. package/src/tokens/scss/components/_text-inline.scss +2 -1
  540. package/src/tokens/scss/components/_text.scss +4 -1
  541. package/src/tokens/scss/components/_typing-indicator.scss +4 -1
  542. package/src/tokens/scss/global/_colors.scss +6 -2
  543. package/src/tokens/scss/global/_shadow.scss +4 -4
  544. package/src/tokens/scss/molecules/_alert.scss +1 -0
  545. package/src/tokens/scss/molecules/_annotation-thread.scss +0 -2
  546. package/src/tokens/scss/molecules/_app-launcher.scss +4 -1
  547. package/src/tokens/scss/molecules/_calendar-planner.scss +1 -0
  548. package/src/tokens/scss/molecules/_calendar.scss +9 -3
  549. package/src/tokens/scss/molecules/_carousel.scss +8 -3
  550. package/src/tokens/scss/molecules/_chart.scss +1 -1
  551. package/src/tokens/scss/molecules/_color-picker.scss +6 -2
  552. package/src/tokens/scss/molecules/_command-palette.scss +1 -0
  553. package/src/tokens/scss/molecules/_consent.scss +4 -1
  554. package/src/tokens/scss/molecules/_conversation-list.scss +1 -0
  555. package/src/tokens/scss/molecules/_date-picker.scss +4 -1
  556. package/src/tokens/scss/molecules/_docs-search.scss +4 -1
  557. package/src/tokens/scss/molecules/_dropdown-field.scss +1 -0
  558. package/src/tokens/scss/molecules/_filter-bar.scss +4 -1
  559. package/src/tokens/scss/molecules/_heatmap.scss +15 -2
  560. package/src/tokens/scss/molecules/_loading-state.scss +6 -2
  561. package/src/tokens/scss/molecules/_menu.scss +2 -1
  562. package/src/tokens/scss/molecules/_modal.scss +7 -3
  563. package/src/tokens/scss/molecules/_notification-panel.scss +6 -2
  564. package/src/tokens/scss/molecules/_org-chart.scss +6 -2
  565. package/src/tokens/scss/molecules/_pagination.scss +1 -0
  566. package/src/tokens/scss/molecules/_password-field.scss +4 -1
  567. package/src/tokens/scss/molecules/_planning-grid.scss +3 -2
  568. package/src/tokens/scss/molecules/_recurrence-field.scss +5 -0
  569. package/src/tokens/scss/molecules/_search-form.scss +4 -1
  570. package/src/tokens/scss/molecules/_sheet.scss +6 -2
  571. package/src/tokens/scss/molecules/_site-nav.scss +2 -1
  572. package/src/tokens/scss/molecules/_site-search.scss +10 -4
  573. package/src/tokens/scss/molecules/_table-of-contents.scss +4 -1
  574. package/src/tokens/scss/molecules/_table.scss +4 -1
  575. package/src/tokens/scss/molecules/_toast.scss +1 -0
  576. package/src/tokens/surface-dark-derived.css +1 -0
  577. package/src/tokens/surface-invert.css +57 -34
  578. package/src/tokens/surface-public.css +4 -2
  579. package/src/tokens/tokens.json +116 -11
  580. package/dist/async-multi-select.css +0 -1
  581. package/dist/input-phone.css +0 -1
  582. package/dist/notification-button.css +0 -1
  583. package/dist/otp-input.css +0 -1
  584. package/dist/prev-next-nav.css +0 -1
  585. package/dist/search-form.css +0 -1
  586. /package/dist/{async-select.css → asyncselect.css} +0 -0
  587. /package/dist/{close-button.css → closebutton.css} +0 -0
  588. /package/dist/{connector-request-summary.css → connectorrequestsummary.css} +0 -0
  589. /package/dist/{dots-button.css → dotsbutton.css} +0 -0
  590. /package/dist/{input-field.css → inputfield.css} +0 -0
  591. /package/dist/{menu-button.css → menubutton.css} +0 -0
  592. /package/dist/{multi-select.css → multiselect.css} +0 -0
  593. /package/dist/{number-input.css → numberinput.css} +0 -0
  594. /package/dist/{public-page-shell.css → publicpageshell.css} +0 -0
  595. /package/dist/{time-select.css → timeselect.css} +0 -0
@@ -1,7 +1,8 @@
1
1
  import { type ComponentPropsWithoutRef } from 'react';
2
2
  import './NumberInputField.css';
3
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
3
4
  import { type NumberInputCommitMode } from '../../atoms/NumberInput/NumberInput';
4
- export interface NumberInputFieldProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type' | 'value' | 'defaultValue' | 'onChange'> {
5
+ export interface NumberInputFieldProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type' | 'value' | 'defaultValue' | 'onChange'>, FieldOptionalProps {
5
6
  /** `id` del control. Si no se pasa, se genera con `useId`. */
6
7
  id?: string;
7
8
  label: string;
@@ -35,8 +35,9 @@ export interface OrgSwitcherProps {
35
35
  renderLink?: (props: MenuRenderLinkProps) => ReactNode;
36
36
  /**
37
37
  * Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye).
38
- * Va al disparador: es el único nodo que el componente pinta en su sitio (el
39
- * panel sale por un portal).
38
+ * **Va al disparador, que pinta el componente**: el panel sale por un
39
+ * portal y se personaliza con tokens (regla de `className` en componentes
40
+ * con portal, CLAUDE.md § Base UI).
40
41
  */
41
42
  className?: string;
42
43
  }
@@ -1,5 +1,6 @@
1
1
  import './OtpField.css';
2
- export interface OtpFieldProps {
2
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
3
+ export interface OtpFieldProps extends FieldOptionalProps {
3
4
  /** `id` del control. Si no se pasa, se genera con `useId`. */
4
5
  id?: string;
5
6
  label: string;
@@ -17,6 +18,8 @@ export interface OtpFieldProps {
17
18
  name?: string;
18
19
  disabled?: boolean;
19
20
  readOnly?: boolean;
21
+ /** Obligatorio: `required` nativo en cada celda (ver `OtpInput`). */
22
+ required?: boolean;
20
23
  /** Marca el control en error sin mensaje. Un `errorMessage` ya lo implica. */
21
24
  error?: boolean;
22
25
  /** Mensaje de error: se anuncia (`role="alert"`) y pone el control en error. */
@@ -14,7 +14,7 @@ export interface PageIntroProps {
14
14
  title: ReactNode;
15
15
  /**
16
16
  * La frase bajo el título, opcional: va como entradilla (`Paragraph
17
- * size="large"`, un peldaño por encima del cuerpo). Termina en punto (ver
17
+ * size="lg"`, un peldaño por encima del cuerpo). Termina en punto (ver
18
18
  * Foundations → Redacción). Lo que no llegue a frase, o cabe en el título,
19
19
  * o va en `children`.
20
20
  */
@@ -1,6 +1,15 @@
1
- import type { ComponentType, ReactNode } from 'react';
1
+ import { type AnchorHTMLAttributes, type ComponentType, type ReactNode } from 'react';
2
2
  import type { SelectOption } from '../../atoms/Select/Select';
3
3
  import './Pagination.css';
4
+ /**
5
+ * Lo que recibe `renderLink`: los atributos del `<a>` que pintaría el
6
+ * paginador. Hay que reenviarlos **todos** al enlace del router.
7
+ */
8
+ export type PaginationRenderLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
9
+ href: string;
10
+ className: string;
11
+ children: ReactNode;
12
+ };
4
13
  /**
5
14
  * Los textos que el paginador emite por su cuenta. Los nombres calcan el
6
15
  * espacio `pagination` del catálogo de la suite, así que montarlo es mapear
@@ -91,9 +100,19 @@ export interface PaginationProps {
91
100
  /** Mostrar "X resultados" antes de los controles. Default: false */
92
101
  showTotal?: boolean;
93
102
  /**
94
- * Componente Link del router. Default: "a" (recarga completa).
95
- * Acepta next/link, react-router Link, etc. — cualquier componente
96
- * que acepte las props estándar de <a> (href, className, …).
103
+ * Pinta cada enlace del paginador con el `Link` del router:
104
+ * `renderLink={(props) => <Link {...props} />}`. Recibe todos los atributos
105
+ * del `<a>` (`href`, `className`, `aria-label`, `onClick`, `children`) y
106
+ * tiene que reenviarlos todos. Sin él, un `<a>` (recarga completa).
107
+ *
108
+ * Es una función: desde un Server Component no cruza al cliente. Ahí, o se
109
+ * monta el paginador en un fichero de cliente propio, o se navega con
110
+ * `<a>` (sin `renderLink`).
111
+ */
112
+ renderLink?: (props: PaginationRenderLinkProps) => ReactNode;
113
+ /**
114
+ * @deprecated Usa `renderLink` (`renderLink={(props) => <Link {...props} />}`).
115
+ * Sigue funcionando y avisa en desarrollo; se retira en la v52.
97
116
  */
98
117
  linkComponent?: ComponentType<any>;
99
118
  /** Tamaño del componente. Default: "md" */
@@ -102,6 +121,8 @@ export interface PaginationProps {
102
121
  * `aria-label` del `<nav>`. Sin default: cuando no se pasa, sale de
103
122
  * `pagination.label` del `BrandMessagesProvider`.
104
123
  */
124
+ 'aria-label'?: string;
125
+ /** @deprecated Usa `aria-label`. Sigue funcionando y avisa en desarrollo; se retira en la v52. */
105
126
  ariaLabel?: string;
106
127
  /** `aria-label` de cada botón/enlace de página. Sin default: `pagination.goToPage`. */
107
128
  pageLabel?: (page: number) => string;
@@ -120,4 +141,4 @@ export interface PaginationProps {
120
141
  totalLabel?: (total: number) => string;
121
142
  className?: string;
122
143
  }
123
- export declare function Pagination({ mode, total, pageCount, page, pageSize, hrefs, previousHref, nextHref, onPrevious, onNext, onPageChange, hrefBuilder: hrefBuilderProp, linkComponent, onPageSizeChange, pageSizeOptions, afterPageSize, showTotal, size, ariaLabel, pageLabel, previousLabel, nextLabel, pagesGroupLabel, pageSizeLabel, totalLabel, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
144
+ export declare function Pagination({ mode, total, pageCount, page, pageSize, hrefs, previousHref, nextHref, onPrevious, onNext, onPageChange, hrefBuilder: hrefBuilderProp, renderLink: renderLinkProp, linkComponent, onPageSizeChange, pageSizeOptions, afterPageSize, showTotal, size, 'aria-label': ariaLabelProp, ariaLabel: ariaLabelDeprecated, pageLabel, previousLabel, nextLabel, pagesGroupLabel, pageSizeLabel, totalLabel, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,4 +1,5 @@
1
1
  import './PasswordField.css';
2
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
2
3
  /**
3
4
  * Los dos textos que el campo emite por su cuenta: las dos caras del
4
5
  * interruptor de mostrar/ocultar. Son cromo —dicen lo mismo en toda la
@@ -13,11 +14,11 @@ export interface PasswordFieldMessages {
13
14
  /** Nombre accesible del interruptor con la contraseña a la vista. */
14
15
  hide: string;
15
16
  }
16
- export interface PasswordFieldProps extends Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'type'> {
17
+ export interface PasswordFieldProps extends Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'type'>, FieldOptionalProps {
17
18
  /**
18
19
  * Etiqueta del campo. **Opcional**: si se omite, el componente renderiza solo
19
- * el campo + toggle (sin `<label>`, sin error ni ayuda), para componerlo
20
- * dentro de una capa de formulario propia.
20
+ * el campo + toggle, sin `<label>`, para componerlo dentro de una capa de
21
+ * formulario propia (el error y la ayuda se pintan igual si se pasan).
21
22
  */
22
23
  label?: string;
23
24
  /**
@@ -1,5 +1,14 @@
1
- import type { ComponentType, MouseEvent, ReactNode } from 'react';
1
+ import type { AnchorHTMLAttributes, ComponentType, MouseEvent, ReactNode } from 'react';
2
2
  import './PrevNextNav.css';
3
+ /**
4
+ * Lo que recibe `renderLink`: los atributos del `<a>` que pintaría el
5
+ * control. Hay que reenviarlos **todos** al enlace del router.
6
+ */
7
+ export type PrevNextNavRenderLinkProps = AnchorHTMLAttributes<HTMLAnchorElement> & {
8
+ href: string;
9
+ className: string;
10
+ children: ReactNode;
11
+ };
3
12
  export interface PrevNextNavProps {
4
13
  /** href del enlace anterior. Mutuamente exclusivo con prevOnClick */
5
14
  prevHref?: string;
@@ -44,8 +53,15 @@ export interface PrevNextNavProps {
44
53
  */
45
54
  labelId?: string;
46
55
  /**
47
- * Componente `Link` del router para los controles con `href`. Default: `"a"`.
48
- * Recibe `href` y el resto de props tal cual.
56
+ * Pinta los controles con `href` con el `Link` del router:
57
+ * `renderLink={(props) => <Link {...props} />}`. Recibe todos los atributos
58
+ * del `<a>` (`href`, `className`, `aria-label`, `onClick`, `children`) y
59
+ * tiene que reenviarlos todos. Sin él, un `<a>`.
60
+ */
61
+ renderLink?: (props: PrevNextNavRenderLinkProps) => ReactNode;
62
+ /**
63
+ * @deprecated Usa `renderLink` (`renderLink={(props) => <Link {...props} />}`).
64
+ * Sigue funcionando y avisa en desarrollo; se retira en la v52.
49
65
  */
50
66
  linkComponent?: ComponentType<any>;
51
67
  /** Variante de densidad. Default: "md" */
@@ -64,4 +80,4 @@ export interface PrevNextNavMessages {
64
80
  /** Rótulo del control siguiente. */
65
81
  next: string;
66
82
  }
67
- export declare function PrevNextNav({ prevHref, nextHref, prevOnClick, nextOnClick, prevLabel, nextLabel, prevTitle, nextTitle, label, labelId, linkComponent, size, className, }: PrevNextNavProps): import("react/jsx-runtime").JSX.Element;
83
+ export declare function PrevNextNav({ prevHref, nextHref, prevOnClick, nextOnClick, prevLabel, nextLabel, prevTitle, nextTitle, label, labelId, renderLink: renderLinkProp, linkComponent, size, className, }: PrevNextNavProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { type HeadingLevel, type HeadingSize } from '../../atoms/Heading/Heading';
3
- import { type TagVariant } from '../../atoms/Tag/Tag';
3
+ import { type TagTone, type TagVariant } from '../../atoms/Tag/Tag';
4
4
  import type { CardMedia } from '../Card/Card';
5
5
  import './ProjectCard.css';
6
6
  /**
@@ -12,11 +12,17 @@ export interface ProjectCardMessages {
12
12
  /** Nombre accesible de la lista de etiquetas de categoría. */
13
13
  tags: string;
14
14
  }
15
- export type { TagVariant };
15
+ export type { TagTone, TagVariant };
16
16
  export interface ProjectCardTag {
17
17
  /** Clave de React. Sin ella se usa la etiqueta. */
18
18
  id?: string;
19
19
  label: string;
20
+ /** Color de la etiqueta (el `tone` de `Tag`). Default `'neutral'`. */
21
+ tone?: TagTone;
22
+ /**
23
+ * @deprecated Usa `tone`. `variant: 'danger'` es `tone: 'error'`. Sigue
24
+ * funcionando, con un aviso en desarrollo, hasta la v52.
25
+ */
20
26
  variant?: TagVariant;
21
27
  }
22
28
  export interface ProjectCardProps {
@@ -3,6 +3,14 @@ import './RadioField.css';
3
3
  export interface RadioFieldProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type' | 'id'> {
4
4
  /** Texto de la opción, a la derecha de la marca. Acepta JSX (un enlace, por ejemplo). */
5
5
  label: ReactNode;
6
+ /**
7
+ * Oculta el texto de la opción **visualmente**, sin quitarlo del árbol de
8
+ * accesibilidad: el radio conserva su nombre. Misma prop que en
9
+ * `CheckboxField` y `SwitcherField`. Default: `false`.
10
+ * Sin valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no
11
+ * es la primera de la lista, la etiqueta se oculta sola.
12
+ */
13
+ labelHidden?: boolean;
6
14
  /** `id` del control. Si no se pasa, se genera con `useId`. */
7
15
  id?: string;
8
16
  /** Talla del sistema. Sin ella, la del `Form` que lo envuelva; sin `Form`, `md`. */
@@ -10,7 +10,7 @@ export interface RecoveryCodesLabels {
10
10
  /**
11
11
  * Aviso del botón de copiar si el portapapeles falla (contexto no seguro,
12
12
  * permiso denegado). Opcional: sin él sale de `copy.error` del
13
- * `BrandMessagesProvider`, y sin ninguno de los dos el componente lanza.
13
+ * `BrandMessagesProvider`, y sin ninguno de los dos, del castellano de respaldo.
14
14
  */
15
15
  error?: string;
16
16
  }
@@ -57,8 +57,26 @@ export interface RecurrenceFieldProps {
57
57
  * texto del catálogo, pásale `recurrenceField.legend`.
58
58
  */
59
59
  legend?: ReactNode;
60
+ /**
61
+ * Oculta la leyenda a la vista (sigue nombrando el grupo para el lector de
62
+ * pantalla): la `legendHidden` del `Fieldset`. Por defecto `false`. Sin
63
+ * valor, lo decide quien lo envuelva: dentro de un `FieldRow` que no es la
64
+ * primera de la lista, se oculta sola, como la etiqueta de los demás campos.
65
+ * Sin `legend` no hace nada.
66
+ */
67
+ labelHidden?: boolean;
60
68
  /** Deshabilita el editor entero. */
61
69
  disabled?: boolean;
70
+ /**
71
+ * Texto de ayuda del editor entero, bajo los campos. Describe el grupo
72
+ * (`aria-describedby` en el `fieldset`, o en el `role="group"` sin `legend`).
73
+ */
74
+ helperText?: string;
75
+ /**
76
+ * Mensaje de error del editor entero (una regla que no cuadra con el
77
+ * evento). Se anuncia (`role="alert"`) y describe el grupo, como la ayuda.
78
+ */
79
+ errorMessage?: string;
62
80
  /** Talla de los campos. Sin ella, la del contexto de formulario. */
63
81
  size?: 'sm' | 'md' | 'lg';
64
82
  /** Locale de los nombres de los días y del campo de fecha. Default `'es-ES'`. */
@@ -95,4 +113,4 @@ export interface RecurrenceFieldProps {
95
113
  * Es **controlado**, como el resto de campos del sistema: recibe `value` y
96
114
  * llama a `onValueChange` con el valor entero. `null` es «no se repite».
97
115
  */
98
- export declare function RecurrenceField({ value, onValueChange, id: idProp, legend, disabled, size, locale, weekStartsOn, minDate, maxDate, today, className, frequencyLabel, weekdaysLabel, endLabel, }: RecurrenceFieldProps): import("react/jsx-runtime").JSX.Element;
116
+ export declare function RecurrenceField({ value, onValueChange, id: idProp, legend, labelHidden: labelHiddenProp, disabled, helperText, errorMessage, size, locale, weekStartsOn, minDate, maxDate, today, className, frequencyLabel, weekdaysLabel, endLabel, }: RecurrenceFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import './SelectField.css';
2
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
2
3
  import type { SelectOptionOrGroup } from '../../atoms/Select/Select';
3
- export interface SelectFieldProps {
4
+ export interface SelectFieldProps extends FieldOptionalProps {
4
5
  /** `id` del control. Si no se pasa, se genera con `useId`. */
5
6
  id?: string;
6
7
  label: string;
@@ -54,6 +54,11 @@ export interface SheetProps extends Omit<React.ComponentPropsWithoutRef<'div'>,
54
54
  * Sirve para desmontar el panel solo después de que haya salido de pantalla.
55
55
  */
56
56
  onAnimationEndCapture?: (event: React.AnimationEvent) => void;
57
+ /**
58
+ * Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye).
59
+ * **Va al panel; el disparador, si lo hay, es tuyo y ya lleva tus clases**
60
+ * (regla de `className` en componentes con portal, CLAUDE.md § Base UI).
61
+ */
57
62
  className?: string;
58
63
  }
59
64
  /**
@@ -73,7 +73,12 @@ export interface TableRowProps extends Omit<React.HTMLAttributes<HTMLTableRowEle
73
73
  onClick?: () => void;
74
74
  /** Alternativa explícita a onClick para control manual */
75
75
  interactive?: boolean;
76
- /** Marca la fila como seleccionada: se dice con tinta y peso, sin fondo. */
76
+ /**
77
+ * Marca la fila como seleccionada: **solo visual** (`table__row--selected`,
78
+ * tinta y peso, sin fondo). No emite `aria-selected`, que fuera de un
79
+ * `role="grid"` no es válido en una fila: el estado lo anuncia el control
80
+ * de la fila —normalmente una casilla, como en `DataTable`—.
81
+ */
77
82
  selected?: boolean;
78
83
  /**
79
84
  * Nombre accesible de la fila. Por defecto el rol `row` toma su nombre del
@@ -20,6 +20,8 @@ export interface TableOfContentsProps extends Omit<React.ComponentPropsWithoutRe
20
20
  * Nombre accesible del `nav`. **Sin default**: sin él, sale de
21
21
  * `tableOfContents.label` del `BrandMessagesProvider`.
22
22
  */
23
+ 'aria-label'?: string;
24
+ /** @deprecated Usa `aria-label`. Sigue funcionando y avisa en desarrollo; se retira en la v52. */
23
25
  ariaLabel?: string;
24
26
  /** Rótulo visible sobre la lista. Sin él, no se pinta ninguno. */
25
27
  title?: string;
@@ -44,7 +46,7 @@ export interface TableOfContentsProps extends Omit<React.ComponentPropsWithoutRe
44
46
  * sigue al hash y para uno estático.
45
47
  *
46
48
  * `{...rest}` (`id`, `data-*`, `role`…) se reenvía al `<nav>`. El nombre
47
- * accesible sigue siendo `ariaLabel`.
49
+ * accesible es `aria-label`.
48
50
  */
49
51
  /**
50
52
  * El único texto que el índice dice por su cuenta, y es **cromo**: «En esta
@@ -1,6 +1,7 @@
1
1
  import { type ComponentPropsWithoutRef } from 'react';
2
2
  import './TextareaField.css';
3
- export interface TextareaFieldProps extends Omit<ComponentPropsWithoutRef<'textarea'>, 'value' | 'defaultValue' | 'rows'> {
3
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
4
+ export interface TextareaFieldProps extends Omit<ComponentPropsWithoutRef<'textarea'>, 'value' | 'defaultValue' | 'rows'>, FieldOptionalProps {
4
5
  id: string;
5
6
  label: string;
6
7
  /**
@@ -1,6 +1,7 @@
1
+ import { type FieldOptionalProps } from '../_shared/FieldShell';
1
2
  import type { TimeValue } from '../../atoms/TimeSelect/TimeSelect';
2
3
  import './TimeField.css';
3
- export interface TimeFieldProps {
4
+ export interface TimeFieldProps extends FieldOptionalProps {
4
5
  /** `id` del control. Si no se pasa, se genera con `useId`. */
5
6
  id?: string;
6
7
  label: string;
@@ -1,5 +1,5 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
- import { type StepMarkerTone } from '../../atoms/StepMarker/StepMarker';
2
+ import { type StepMarkerTone, type StepMarkerToneDeprecated } from '../../atoms/StepMarker/StepMarker';
3
3
  import type { IconName } from '../../atoms/Icon/Icon';
4
4
  import './Timeline.css';
5
5
  /**
@@ -14,8 +14,11 @@ export interface TimelineMessages {
14
14
  /** Lo que se lee tras el título del hito vigente: «estado actual». */
15
15
  current: string;
16
16
  }
17
- /** El tono de la marca: los mismos ocho que `StepMarker`, sin traducción. */
18
- export type TimelineTone = StepMarkerTone;
17
+ /**
18
+ * El tono de la marca: los mismos ocho que `StepMarker`, sin traducción. Admite
19
+ * todavía el obsoleto `danger` (hoy `error`), que la marca traduce y avisa.
20
+ */
21
+ export type TimelineTone = StepMarkerTone | StepMarkerToneDeprecated;
19
22
  /** Un hito del historial: un cambio de estado, con su fecha y quien lo firmó. */
20
23
  export interface TimelineItem {
21
24
  id: string;
@@ -32,8 +32,9 @@ export interface UserMenuProps {
32
32
  defaultOpen?: boolean;
33
33
  /**
34
34
  * Se añade DESPUÉS de las clases propias (el consumidor añade, no sustituye).
35
- * Va al disparador: es el único nodo que el componente pinta en su sitio (el
36
- * panel sale por un portal).
35
+ * **Va al disparador, que pinta el componente**: el panel sale por un
36
+ * portal y se personaliza con tokens (regla de `className` en componentes
37
+ * con portal, CLAUDE.md § Base UI).
37
38
  */
38
39
  className?: string;
39
40
  }
@@ -0,0 +1,130 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import type { FormSize } from '../../constants/form-size';
3
+ /**
4
+ * El espacio `field` del catálogo: los textos que pinta el armazón común de
5
+ * los campos. Como todo el catálogo, opcional en `BrandMessages`: sin él
6
+ * la marca cae al castellano «(opcional)».
7
+ */
8
+ export interface FieldMessages {
9
+ /** La marca tras la etiqueta de un campo `optional`. Castellano: «(opcional)». */
10
+ optional: string;
11
+ /**
12
+ * La descripción oculta que anuncia un campo obligatorio cuyo disparador es
13
+ * un botón, que no admite `aria-required` (D73): `ColorPickerField` y
14
+ * `DropdownField`. Castellano: «obligatorio».
15
+ */
16
+ required: string;
17
+ }
18
+ /**
19
+ * La marca de campo opcional (D70), común a todos los `*Field`. Se marca lo
20
+ * **opcional**, no lo obligatorio: en un formulario donde casi todo es
21
+ * obligatorio, lo que hay que señalar es la excepción. Es explícita —un campo
22
+ * sin `required` no la lleva sola—, porque un campo suelto (un buscador, un
23
+ * filtro) no es «opcional» de ningún formulario.
24
+ */
25
+ export interface FieldOptionalProps {
26
+ /**
27
+ * Pinta « (opcional)» tras la etiqueta, en la tinta apagada de la etiqueta.
28
+ * Va dentro del `<label>`, así que el lector de pantalla la lee como parte
29
+ * del nombre del campo. No se combina con `required`. Sin valor, lo decide
30
+ * el `Form` que lo envuelva: con `markOptional`, todo campo sin `required`
31
+ * la lleva (D74); `optional={false}` la apaga en un campo concreto. Sin
32
+ * `Form markOptional`, por defecto `false`.
33
+ */
34
+ optional?: boolean;
35
+ /**
36
+ * Texto de la marca de opcional. **Sin default en la prop**: sin ella, sale
37
+ * de `field.optional` del `BrandMessagesProvider` y, si el catálogo no la
38
+ * trae, del castellano «(opcional)».
39
+ */
40
+ optionalLabel?: string;
41
+ }
42
+ /**
43
+ * Lo obligatorio de un campo cuyo disparador es un botón (D73). ARIA 1.2 no
44
+ * admite `aria-required` ni en `role="button"` ni en `role="group"`, así que
45
+ * lo obligatorio va en la **descripción** del disparador: un texto oculto
46
+ * («obligatorio») enlazado por su `aria-describedby`, detrás de la ayuda y el
47
+ * error. El `<form>` lo sigue validando el campo oculto con `required`.
48
+ */
49
+ export interface FieldRequiredProps {
50
+ /**
51
+ * Texto que anuncia lo obligatorio. **Sin default en la prop**: sin ella,
52
+ * sale de `field.required` del `BrandMessagesProvider` y, si el catálogo no
53
+ * la trae, del castellano «obligatorio». Solo se lee con `required`.
54
+ */
55
+ requiredLabel?: string;
56
+ }
57
+ /** El `id` del texto oculto de obligatorio de un control. */
58
+ export declare function requiredTextId(controlId: string): string;
59
+ /**
60
+ * El texto oculto «obligatorio» al que apunta el `aria-describedby` del
61
+ * disparador (ver `FieldRequiredProps`). Se pinta solo con `required`.
62
+ */
63
+ export declare function FieldRequiredText({ id, label }: {
64
+ id: string;
65
+ label?: string;
66
+ }): import("react/jsx-runtime").JSX.Element;
67
+ /** Une ids para un `aria-*` de referencias; sin ninguno, `undefined` (no un atributo vacío). */
68
+ export declare function joinIds(...ids: Array<string | false | null | undefined>): string | undefined;
69
+ export interface FieldShellOptions {
70
+ /** `id` del control. Sin él, uno de `useId`. */
71
+ id?: string;
72
+ /** Error sin mensaje. Un `errorMessage` ya lo implica. */
73
+ error?: boolean;
74
+ errorMessage?: string;
75
+ helperText?: string;
76
+ /** `aria-describedby` que trae el consumidor: se suma detrás de los propios. */
77
+ describedBy?: string;
78
+ }
79
+ export interface FieldShellState {
80
+ /** `id` del control (el del consumidor o uno generado). */
81
+ id: string;
82
+ /** `id` de la etiqueta, para los controles que se nombran por `aria-labelledby`. */
83
+ labelId: string;
84
+ errorId?: string;
85
+ helperId?: string;
86
+ /** Lo que va en el `aria-describedby` del control. */
87
+ describedBy?: string;
88
+ /** Error con o sin mensaje: lo que pone el control en error. */
89
+ hasError: boolean;
90
+ errorMessage?: string;
91
+ helperText?: string;
92
+ }
93
+ export declare function useFieldShell({ id: idProp, error, errorMessage, helperText, describedBy }: FieldShellOptions): FieldShellState;
94
+ export interface FieldShellProps {
95
+ /** El estado de `useFieldShell`. */
96
+ field: FieldShellState;
97
+ /** Bloque BEM del campo (`input-field`): clase raíz y prefijo de `__helper`/`__label`/`__control`. */
98
+ block: string;
99
+ /** Clases de modificador ya formadas (`checkbox-field--sm`); los falsos se descartan. */
100
+ modifiers?: Array<string | false | null | undefined>;
101
+ /** Se añade DESPUÉS de las clases propias. */
102
+ className?: string;
103
+ /** Talla de la etiqueta (`stack`). */
104
+ size?: FormSize;
105
+ /** Texto de la etiqueta. Sin él no se pinta etiqueta (el control se nombra por otra vía). */
106
+ label?: ReactNode;
107
+ /** Marca de campo opcional tras la etiqueta (ver `FieldOptionalProps`). */
108
+ optional?: boolean;
109
+ /** Texto de la marca; sin él, `field.optional` del catálogo o «(opcional)». */
110
+ optionalLabel?: string;
111
+ /** Etiqueta oculta a la vista, presente para el lector de pantalla. */
112
+ labelHidden?: boolean;
113
+ /**
114
+ * - `stack` (por defecto): `Label` encima del control.
115
+ * - `inline`: un `<label>` (`__control`) envuelve el control y, a su derecha,
116
+ * el texto (`__label`): casilla, radio, interruptor.
117
+ */
118
+ layout?: 'stack' | 'inline';
119
+ /** A qué apunta el `htmlFor` de la etiqueta. Default: `field.id`. */
120
+ labelFor?: string;
121
+ /** La etiqueta lleva `id` (`field.labelId`) para que la apunte un `aria-labelledby`. */
122
+ labelIdentified?: boolean;
123
+ /** Atributos del contenedor (el `role="group"` de un editor compuesto). */
124
+ rootProps?: HTMLAttributes<HTMLDivElement>;
125
+ /** El control (y lo que vaya pegado a él). */
126
+ children: ReactNode;
127
+ /** Lo que va tras la ayuda: la acción de `PasswordField`. */
128
+ footer?: ReactNode;
129
+ }
130
+ export declare function FieldShell({ field, block, modifiers, className, size, label, optional, optionalLabel, labelHidden, layout, labelFor, labelIdentified, rootProps, children, footer, }: FieldShellProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export interface RequiredInputProps {
2
+ name?: string;
3
+ value: string;
4
+ required?: boolean;
5
+ /** El control al que se devuelve el foco cuando el navegador lo pide para avisar. */
6
+ focusTarget?: () => HTMLElement | null | undefined;
7
+ }
8
+ export declare function RequiredInput({ name, value, required, focusTarget }: RequiredInputProps): import("react/jsx-runtime").JSX.Element | null;
@@ -68,8 +68,9 @@ export interface AnnotationThreadProps extends React.ComponentPropsWithoutRef<'a
68
68
  replies?: AnnotationEntry[];
69
69
  /**
70
70
  * Estado del hilo, en orden de flujo. `open` pide atención; `acknowledged`
71
- * es el hilo que alguien ya ha mirado y da un paso atrás sin cerrarse;
72
- * `resolved` se retira visualmente sin desaparecer.
71
+ * es el hilo que alguien ya ha mirado, sin cerrarse; `resolved` está
72
+ * cerrado. Lo dice la etiqueta de estado que abre el hilo: el hilo se lee
73
+ * a contraste pleno en los tres.
73
74
  */
74
75
  status?: AnnotationThreadStatus;
75
76
  /**
@@ -55,7 +55,7 @@ export interface DataTableServerPagination {
55
55
  /** Etiquetas accesibles que la tabla reenvía a sus cabeceras ordenables. */
56
56
  export type DataTableHeaderLabels = Pick<TableHeaderProps, 'actionsLabel' | 'sortedAscLabel' | 'sortedDescLabel' | 'sortableLabel'>;
57
57
  /** Etiquetas accesibles que la tabla reenvía a su paginación. */
58
- export type DataTablePaginationLabels = Pick<PaginationProps, 'ariaLabel' | 'pageLabel' | 'previousLabel' | 'nextLabel' | 'pagesGroupLabel' | 'pageSizeLabel' | 'totalLabel' | 'pageSizeOptions'>;
58
+ export type DataTablePaginationLabels = Pick<PaginationProps, 'aria-label' | 'ariaLabel' | 'pageLabel' | 'previousLabel' | 'nextLabel' | 'pagesGroupLabel' | 'pageSizeLabel' | 'totalLabel' | 'pageSizeOptions'>;
59
59
  export interface DataTableProps<TData, TValue> {
60
60
  columns: ColumnDef<TData, TValue>[];
61
61
  data: TData[];
@@ -21,6 +21,11 @@ export interface PlanningGridMessages {
21
21
  remaining: string;
22
22
  /** Lo que se lee tras un resto negativo: hay más horas asignadas que disponibles. */
23
23
  over: string;
24
+ /**
25
+ * Lo que anuncia la marca de guardado de un cruce en vuelo («Guardando…»).
26
+ * **Opcional**: un catálogo sin ella compila, y la rejilla cae al castellano.
27
+ */
28
+ saving?: string;
24
29
  }
25
30
  /** Una fila: un proyecto, una persona. Lo que se planifica. */
26
31
  export interface PlanningGridRow {
@@ -56,7 +61,7 @@ export interface PlanningGridCell {
56
61
  value: number | null;
57
62
  /** Este cruce en concreto no se edita. */
58
63
  readOnly?: boolean;
59
- /** El cambio está en vuelo: la celda se atenúa. */
64
+ /** El cambio está en vuelo: la cifra sigue a contraste pleno y la celda lleva una marca de guardado (un `Spinner` pequeño). */
60
65
  pending?: boolean;
61
66
  /** Lo que falló al guardar este cruce. Pone el campo en error y se anuncia. */
62
67
  error?: string;
@@ -103,6 +108,12 @@ export interface PlanningGridProps extends Omit<ComponentPropsWithoutRef<'div'>,
103
108
  label?: string;
104
109
  /** Nombre accesible del campo de un cruce. Sin él, sale de `planningGrid.cellLabel`. */
105
110
  cellLabel?: (row: string, column: string) => string;
111
+ /**
112
+ * Lo que anuncia la marca de guardado de un cruce en vuelo. Sin ella, sale
113
+ * de `planningGrid.saving` del catálogo y, si el catálogo no la trae, del
114
+ * default castellano «Guardando…». Solo se lee cuando hay un cruce en vuelo.
115
+ */
116
+ savingLabel?: string;
106
117
  }
107
118
  /**
108
119
  * La rejilla editable de horas: fila × columna —persona por semana, proyecto
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type HeadingLevel, type HeadingSize } from '../../atoms/Heading/Heading';
3
3
  import { type IconName } from '../../atoms/Icon/Icon';
4
- import { type StepMarkerTone } from '../../atoms/StepMarker/StepMarker';
4
+ import { type StepMarkerTone, type StepMarkerToneDeprecated } from '../../atoms/StepMarker/StepMarker';
5
5
  import './Steps.css';
6
6
  export interface StepItem {
7
7
  /** Clave de React. Sin ella se usa la posición. */
@@ -23,9 +23,9 @@ export interface StepsProps {
23
23
  /** Uno debajo de otro (por defecto) o en fila. */
24
24
  orientation?: 'vertical' | 'horizontal';
25
25
  /** Color de la marca. Por defecto `primary`. */
26
- tone?: StepMarkerTone;
26
+ tone?: StepMarkerTone | StepMarkerToneDeprecated;
27
27
  /** @deprecated Usar `tone`. Se mantiene como alias por compatibilidad. */
28
- badgeVariant?: StepMarkerTone;
28
+ badgeVariant?: StepMarkerTone | StepMarkerToneDeprecated;
29
29
  /** Nivel semántico del título de cada paso. Por defecto `3`. */
30
30
  titleLevel?: HeadingLevel;
31
31
  /** Talla del título de cada paso. Por defecto `1` (14px, la de la etiqueta de `Stepper`). */
@@ -5,7 +5,7 @@ export interface HeroProps {
5
5
  /** El título de la portada: un `Heading` de nivel 1 a talla 10 (display). */
6
6
  title: ReactNode;
7
7
  /**
8
- * La frase bajo el título, opcional: `Paragraph size="large"`. Termina en
8
+ * La frase bajo el título, opcional: `Paragraph size="lg"`. Termina en
9
9
  * punto (ver Foundations → Redacción).
10
10
  */
11
11
  description?: ReactNode;
@@ -49,5 +49,10 @@ export interface LegalFooterProps {
49
49
  * (`--legal-footer-padding-block`) y el contenido acotado por su `Container`
50
50
  * interior. Es el pie de las aplicaciones de la suite; la web tiene su pie
51
51
  * propio con más cosas.
52
+ *
53
+ * Se puede renderizar desde un Server Component, con su `renderLink` incluido:
54
+ * no lee ningún contexto. Lo único que sale del catálogo, el nombre del `nav`,
55
+ * lo resuelve una isla cliente (`LegalFooterNav`) que recibe los enlaces ya
56
+ * pintados.
52
57
  */
53
58
  export declare function LegalFooter({ label, title, links, renderLink, width, surface, as: Root, className, }: LegalFooterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface LegalFooterNavProps {
3
+ /** El `label` de `LegalFooter`: sin él, sale de `legalFooter.label` del catálogo. */
4
+ label?: string;
5
+ children: ReactNode;
6
+ }
7
+ /**
8
+ * La isla cliente de `LegalFooter`: el `<nav>` y nada más, porque su nombre
9
+ * accesible es lo único del pie que lee el catálogo (`BrandMessagesProvider`),
10
+ * y leer un contexto solo se puede en cliente. Así `LegalFooter` —y con él
11
+ * `SiteFooter`— se renderiza desde un Server Component, y su `renderLink`, que
12
+ * es una función, se queda en el servidor: aquí solo llegan los enlaces ya
13
+ * pintados, como `children`.
14
+ *
15
+ * Interno: es una entrada de `entry-points.mjs` (para que salga a `dist/` como
16
+ * módulo `'use client'`, la frontera que el servidor necesita) pero no tiene
17
+ * subruta en `package.json#exports`.
18
+ */
19
+ export declare function LegalFooterNav({ label, children }: LegalFooterNavProps): import("react/jsx-runtime").JSX.Element;