@caribeng/ui 22.1.1 → 22.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +134 -12
  2. package/fesm2022/caribeng-ui-accordion.mjs +4 -4
  3. package/fesm2022/caribeng-ui-anchor.mjs +169 -0
  4. package/fesm2022/caribeng-ui-autocomplete.mjs +10 -8
  5. package/fesm2022/caribeng-ui-avatar.mjs +2 -2
  6. package/fesm2022/caribeng-ui-avatargroup.mjs +9 -3
  7. package/fesm2022/caribeng-ui-badge.mjs +8 -2
  8. package/fesm2022/caribeng-ui-blockui.mjs +12 -4
  9. package/fesm2022/caribeng-ui-breadcrumb.mjs +17 -7
  10. package/fesm2022/caribeng-ui-button.mjs +22 -2
  11. package/fesm2022/caribeng-ui-caribe-alert.mjs +5 -2
  12. package/fesm2022/caribeng-ui-caribe-animation-lottie.mjs +6 -3
  13. package/fesm2022/caribeng-ui-caribe-button-group.mjs +6 -3
  14. package/fesm2022/caribeng-ui-caribe-calendar.mjs +11 -6
  15. package/fesm2022/caribeng-ui-caribe-card-content.mjs +6 -3
  16. package/fesm2022/caribeng-ui-caribe-card-move.mjs +29 -7
  17. package/fesm2022/caribeng-ui-caribe-card-select.mjs +56 -14
  18. package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +10 -7
  19. package/fesm2022/caribeng-ui-caribe-coachmark.mjs +42 -19
  20. package/fesm2022/caribeng-ui-caribe-data-table.mjs +15 -9
  21. package/fesm2022/caribeng-ui-caribe-dots-indicator.mjs +38 -5
  22. package/fesm2022/caribeng-ui-caribe-expansion-panel.mjs +16 -5
  23. package/fesm2022/caribeng-ui-caribe-fab-menu.mjs +56 -7
  24. package/fesm2022/caribeng-ui-caribe-file-download.mjs +68 -27
  25. package/fesm2022/caribeng-ui-caribe-file-select.mjs +22 -17
  26. package/fesm2022/caribeng-ui-caribe-float-menu.mjs +6 -3
  27. package/fesm2022/caribeng-ui-caribe-footer.mjs +8 -4
  28. package/fesm2022/caribeng-ui-caribe-header.mjs +6 -3
  29. package/fesm2022/caribeng-ui-caribe-icon-button.mjs +6 -3
  30. package/fesm2022/caribeng-ui-caribe-illustration.mjs +6 -3
  31. package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +5 -2
  32. package/fesm2022/caribeng-ui-caribe-input-search.mjs +14 -10
  33. package/fesm2022/caribeng-ui-caribe-input-select.mjs +12 -10
  34. package/fesm2022/caribeng-ui-caribe-input-token.mjs +61 -11
  35. package/fesm2022/caribeng-ui-caribe-link.mjs +7 -2
  36. package/fesm2022/caribeng-ui-caribe-loader.mjs +8 -5
  37. package/fesm2022/caribeng-ui-caribe-modal.mjs +32 -16
  38. package/fesm2022/caribeng-ui-caribe-off-canvas.mjs +26 -12
  39. package/fesm2022/caribeng-ui-caribe-onboarding.mjs +44 -19
  40. package/fesm2022/caribeng-ui-caribe-pictogram.mjs +6 -3
  41. package/fesm2022/caribeng-ui-caribe-pop-over.mjs +34 -10
  42. package/fesm2022/caribeng-ui-caribe-preloader.mjs +9 -6
  43. package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +5 -2
  44. package/fesm2022/caribeng-ui-caribe-shortcut.mjs +8 -3
  45. package/fesm2022/caribeng-ui-caribe-step-indicator.mjs +12 -5
  46. package/fesm2022/caribeng-ui-caribe-stroke.mjs +6 -3
  47. package/fesm2022/caribeng-ui-caribe-switch.mjs +5 -3
  48. package/fesm2022/caribeng-ui-caribe-tag-button.mjs +1 -1
  49. package/fesm2022/caribeng-ui-caribe-tracker.mjs +5 -2
  50. package/fesm2022/caribeng-ui-caribe-transaction-status.mjs +1 -1
  51. package/fesm2022/caribeng-ui-caribe-voucher.mjs +11 -8
  52. package/fesm2022/caribeng-ui-carousel.mjs +49 -14
  53. package/fesm2022/caribeng-ui-cascadeselect.mjs +22 -8
  54. package/fesm2022/caribeng-ui-chart.mjs +2601 -303
  55. package/fesm2022/caribeng-ui-chat.mjs +1303 -0
  56. package/fesm2022/caribeng-ui-chip.mjs +9 -4
  57. package/fesm2022/caribeng-ui-chips.mjs +9 -5
  58. package/fesm2022/caribeng-ui-code-block.mjs +332 -0
  59. package/fesm2022/caribeng-ui-colorpicker.mjs +107 -11
  60. package/fesm2022/caribeng-ui-command-palette.mjs +476 -0
  61. package/fesm2022/caribeng-ui-confirmdialog.mjs +140 -10
  62. package/fesm2022/caribeng-ui-confirmpopup.mjs +209 -9
  63. package/fesm2022/caribeng-ui-contextmenu.mjs +13 -6
  64. package/fesm2022/caribeng-ui-copy-button.mjs +230 -0
  65. package/fesm2022/caribeng-ui-dataview.mjs +214 -6
  66. package/fesm2022/caribeng-ui-datepicker.mjs +1630 -393
  67. package/fesm2022/caribeng-ui-descriptions.mjs +124 -0
  68. package/fesm2022/caribeng-ui-dialog.mjs +10 -7
  69. package/fesm2022/caribeng-ui-dock.mjs +58 -15
  70. package/fesm2022/caribeng-ui-drawer.mjs +17 -9
  71. package/fesm2022/caribeng-ui-dynamicdialog.mjs +210 -6
  72. package/fesm2022/caribeng-ui-editor.mjs +4413 -243
  73. package/fesm2022/caribeng-ui-empty.mjs +80 -0
  74. package/fesm2022/caribeng-ui-fieldset.mjs +2 -2
  75. package/fesm2022/caribeng-ui-file-card.mjs +136 -19
  76. package/fesm2022/caribeng-ui-fileupload.mjs +96 -19
  77. package/fesm2022/caribeng-ui-floatlabel.mjs +4 -2
  78. package/fesm2022/caribeng-ui-folder-card.mjs +132 -15
  79. package/fesm2022/caribeng-ui-galleria.mjs +76 -45
  80. package/fesm2022/caribeng-ui-image.mjs +52 -29
  81. package/fesm2022/caribeng-ui-inlinemessage.mjs +2 -2
  82. package/fesm2022/caribeng-ui-inplace.mjs +22 -6
  83. package/fesm2022/caribeng-ui-input-number.mjs +9 -7
  84. package/fesm2022/caribeng-ui-inputgroup.mjs +2 -2
  85. package/fesm2022/caribeng-ui-inputmask.mjs +22 -13
  86. package/fesm2022/caribeng-ui-inputotp.mjs +12 -6
  87. package/fesm2022/caribeng-ui-kanban.mjs +4612 -0
  88. package/fesm2022/caribeng-ui-kbd.mjs +122 -0
  89. package/fesm2022/caribeng-ui-keyfilter.mjs +72 -0
  90. package/fesm2022/caribeng-ui-listbox.mjs +13 -11
  91. package/fesm2022/caribeng-ui-megamenu.mjs +228 -32
  92. package/fesm2022/caribeng-ui-mentions.mjs +495 -0
  93. package/fesm2022/caribeng-ui-menu.mjs +18 -8
  94. package/fesm2022/caribeng-ui-menubar.mjs +17 -8
  95. package/fesm2022/caribeng-ui-message.mjs +13 -7
  96. package/fesm2022/caribeng-ui-metergroup.mjs +29 -11
  97. package/fesm2022/caribeng-ui-multiselect.mjs +399 -97
  98. package/fesm2022/caribeng-ui-orderlist.mjs +230 -11
  99. package/fesm2022/caribeng-ui-organizationchart.mjs +16 -15
  100. package/fesm2022/caribeng-ui-paginator.mjs +18 -15
  101. package/fesm2022/caribeng-ui-panel.mjs +11 -8
  102. package/fesm2022/caribeng-ui-panelmenu.mjs +14 -8
  103. package/fesm2022/caribeng-ui-password.mjs +8 -6
  104. package/fesm2022/caribeng-ui-pdfviewer.mjs +1553 -0
  105. package/fesm2022/caribeng-ui-phone-input.mjs +688 -0
  106. package/fesm2022/caribeng-ui-picklist.mjs +251 -14
  107. package/fesm2022/caribeng-ui-pricing.mjs +272 -75
  108. package/fesm2022/caribeng-ui-qrcode.mjs +564 -0
  109. package/fesm2022/caribeng-ui-rating.mjs +7 -3
  110. package/fesm2022/caribeng-ui-repeater.mjs +223 -0
  111. package/fesm2022/caribeng-ui-result.mjs +91 -0
  112. package/fesm2022/caribeng-ui-ripple.mjs +2 -0
  113. package/fesm2022/caribeng-ui-scrollpanel.mjs +6 -3
  114. package/fesm2022/caribeng-ui-scrolltop.mjs +9 -4
  115. package/fesm2022/caribeng-ui-select.mjs +379 -87
  116. package/fesm2022/caribeng-ui-selectbutton.mjs +2 -2
  117. package/fesm2022/caribeng-ui-sidebar.mjs +573 -0
  118. package/fesm2022/caribeng-ui-slider.mjs +171 -75
  119. package/fesm2022/caribeng-ui-speeddial.mjs +7 -4
  120. package/fesm2022/caribeng-ui-spinner.mjs +5 -2
  121. package/fesm2022/caribeng-ui-splitbutton.mjs +163 -0
  122. package/fesm2022/caribeng-ui-splitter.mjs +5 -2
  123. package/fesm2022/caribeng-ui-statistic.mjs +183 -0
  124. package/fesm2022/caribeng-ui-stepper.mjs +17 -7
  125. package/fesm2022/caribeng-ui-steps.mjs +6 -3
  126. package/fesm2022/caribeng-ui-table.mjs +716 -84
  127. package/fesm2022/caribeng-ui-tabmenu.mjs +13 -6
  128. package/fesm2022/caribeng-ui-tag.mjs +2 -2
  129. package/fesm2022/caribeng-ui-terminal.mjs +45 -9
  130. package/fesm2022/caribeng-ui-themetoggle.mjs +82 -0
  131. package/fesm2022/caribeng-ui-tieredmenu.mjs +113 -20
  132. package/fesm2022/caribeng-ui-timeline.mjs +175 -6
  133. package/fesm2022/caribeng-ui-toast.mjs +7 -4
  134. package/fesm2022/caribeng-ui-togglebutton.mjs +8 -6
  135. package/fesm2022/caribeng-ui-toolbar.mjs +6 -3
  136. package/fesm2022/caribeng-ui-tree.mjs +302 -6
  137. package/fesm2022/caribeng-ui-treeselect.mjs +26 -10
  138. package/fesm2022/caribeng-ui-treetable.mjs +269 -6
  139. package/fesm2022/caribeng-ui-virtualscroller.mjs +123 -10
  140. package/fesm2022/caribeng-ui.mjs +1216 -6
  141. package/package.json +93 -3
  142. package/schematics/collection.json +15 -0
  143. package/schematics/migrate-from-primeng/core-icons.json +1 -0
  144. package/schematics/migrate-from-primeng/icons.js +269 -0
  145. package/schematics/migrate-from-primeng/index.js +290 -0
  146. package/schematics/migrate-from-primeng/mappings/button.js +93 -0
  147. package/schematics/migrate-from-primeng/mappings/card.js +33 -0
  148. package/schematics/migrate-from-primeng/mappings/checkbox.js +44 -0
  149. package/schematics/migrate-from-primeng/mappings/confirm.js +221 -0
  150. package/schematics/migrate-from-primeng/mappings/datepicker.js +121 -0
  151. package/schematics/migrate-from-primeng/mappings/dialog.js +84 -0
  152. package/schematics/migrate-from-primeng/mappings/index.js +88 -0
  153. package/schematics/migrate-from-primeng/mappings/inputnumber.js +62 -0
  154. package/schematics/migrate-from-primeng/mappings/inputtext.js +60 -0
  155. package/schematics/migrate-from-primeng/mappings/menu.js +468 -0
  156. package/schematics/migrate-from-primeng/mappings/multiselect.js +49 -0
  157. package/schematics/migrate-from-primeng/mappings/radiobutton.js +22 -0
  158. package/schematics/migrate-from-primeng/mappings/rules.js +206 -0
  159. package/schematics/migrate-from-primeng/mappings/select.js +97 -0
  160. package/schematics/migrate-from-primeng/mappings/service-calls.js +100 -0
  161. package/schematics/migrate-from-primeng/mappings/table.js +613 -0
  162. package/schematics/migrate-from-primeng/mappings/tabs.js +225 -0
  163. package/schematics/migrate-from-primeng/mappings/tag.js +29 -0
  164. package/schematics/migrate-from-primeng/mappings/textarea.js +44 -0
  165. package/schematics/migrate-from-primeng/mappings/toast.js +173 -0
  166. package/schematics/migrate-from-primeng/mappings/toggleswitch.js +37 -0
  167. package/schematics/migrate-from-primeng/mappings/tooltip.js +44 -0
  168. package/schematics/migrate-from-primeng/mappings/types.js +10 -0
  169. package/schematics/migrate-from-primeng/report.js +79 -0
  170. package/schematics/migrate-from-primeng/schema.js +2 -0
  171. package/schematics/migrate-from-primeng/schema.json +34 -0
  172. package/schematics/migrate-from-primeng/template.js +387 -0
  173. package/schematics/migrate-from-primeng/todo.js +5 -0
  174. package/schematics/migrate-from-primeng/typescript.js +442 -0
  175. package/schematics/migrate-from-primeng/workspace.js +117 -0
  176. package/schematics/ng-add/index.js +140 -0
  177. package/schematics/ng-add/schema.js +2 -0
  178. package/schematics/ng-add/schema.json +66 -0
  179. package/types/caribeng-ui-anchor.d.ts +50 -0
  180. package/types/caribeng-ui-autocomplete.d.ts +4 -2
  181. package/types/caribeng-ui-avatargroup.d.ts +3 -1
  182. package/types/caribeng-ui-badge.d.ts +3 -1
  183. package/types/caribeng-ui-blockui.d.ts +9 -4
  184. package/types/caribeng-ui-breadcrumb.d.ts +11 -0
  185. package/types/caribeng-ui-button.d.ts +9 -1
  186. package/types/caribeng-ui-caribe-alert.d.ts +3 -0
  187. package/types/caribeng-ui-caribe-animation-lottie.d.ts +4 -1
  188. package/types/caribeng-ui-caribe-button-group.d.ts +4 -1
  189. package/types/caribeng-ui-caribe-calendar.d.ts +5 -1
  190. package/types/caribeng-ui-caribe-card-content.d.ts +4 -1
  191. package/types/caribeng-ui-caribe-card-move.d.ts +13 -13
  192. package/types/caribeng-ui-caribe-card-select.d.ts +10 -1
  193. package/types/caribeng-ui-caribe-circle-loading.d.ts +4 -1
  194. package/types/caribeng-ui-caribe-coachmark.d.ts +6 -0
  195. package/types/caribeng-ui-caribe-data-table.d.ts +7 -2
  196. package/types/caribeng-ui-caribe-dots-indicator.d.ts +9 -0
  197. package/types/caribeng-ui-caribe-expansion-panel.d.ts +7 -10
  198. package/types/caribeng-ui-caribe-fab-menu.d.ts +10 -1
  199. package/types/caribeng-ui-caribe-file-download.d.ts +8 -10
  200. package/types/caribeng-ui-caribe-file-select.d.ts +7 -1
  201. package/types/caribeng-ui-caribe-float-menu.d.ts +4 -1
  202. package/types/caribeng-ui-caribe-header.d.ts +3 -0
  203. package/types/caribeng-ui-caribe-icon-button.d.ts +4 -1
  204. package/types/caribeng-ui-caribe-illustration.d.ts +4 -1
  205. package/types/caribeng-ui-caribe-inline-alert.d.ts +3 -0
  206. package/types/caribeng-ui-caribe-input-search.d.ts +4 -2
  207. package/types/caribeng-ui-caribe-input-select.d.ts +4 -2
  208. package/types/caribeng-ui-caribe-input-token.d.ts +16 -1
  209. package/types/caribeng-ui-caribe-link.d.ts +3 -0
  210. package/types/caribeng-ui-caribe-loader.d.ts +4 -1
  211. package/types/caribeng-ui-caribe-modal.d.ts +7 -10
  212. package/types/caribeng-ui-caribe-off-canvas.d.ts +6 -1
  213. package/types/caribeng-ui-caribe-onboarding.d.ts +6 -0
  214. package/types/caribeng-ui-caribe-pictogram.d.ts +4 -1
  215. package/types/caribeng-ui-caribe-pop-over.d.ts +7 -10
  216. package/types/caribeng-ui-caribe-preloader.d.ts +4 -1
  217. package/types/caribeng-ui-caribe-progress-bar.d.ts +3 -0
  218. package/types/caribeng-ui-caribe-shortcut.d.ts +3 -1
  219. package/types/caribeng-ui-caribe-step-indicator.d.ts +6 -0
  220. package/types/caribeng-ui-caribe-stroke.d.ts +4 -1
  221. package/types/caribeng-ui-caribe-switch.d.ts +3 -1
  222. package/types/caribeng-ui-caribe-tracker.d.ts +3 -0
  223. package/types/caribeng-ui-caribe-voucher.d.ts +5 -2
  224. package/types/caribeng-ui-carousel.d.ts +10 -1
  225. package/types/caribeng-ui-cascadeselect.d.ts +7 -2
  226. package/types/caribeng-ui-chart.d.ts +471 -44
  227. package/types/caribeng-ui-chat.d.ts +299 -0
  228. package/types/caribeng-ui-chip.d.ts +6 -0
  229. package/types/caribeng-ui-chips.d.ts +6 -2
  230. package/types/caribeng-ui-code-block.d.ts +65 -0
  231. package/types/caribeng-ui-colorpicker.d.ts +8 -2
  232. package/types/caribeng-ui-command-palette.d.ts +133 -0
  233. package/types/caribeng-ui-confirmdialog.d.ts +57 -6
  234. package/types/caribeng-ui-confirmpopup.d.ts +74 -5
  235. package/types/caribeng-ui-contextmenu.d.ts +11 -1
  236. package/types/caribeng-ui-copy-button.d.ts +90 -0
  237. package/types/caribeng-ui-dataview.d.ts +65 -5
  238. package/types/caribeng-ui-datepicker.d.ts +186 -21
  239. package/types/caribeng-ui-descriptions.d.ts +63 -0
  240. package/types/caribeng-ui-dialog.d.ts +4 -1
  241. package/types/caribeng-ui-dock.d.ts +17 -2
  242. package/types/caribeng-ui-drawer.d.ts +7 -2
  243. package/types/caribeng-ui-dynamicdialog.d.ts +93 -3
  244. package/types/caribeng-ui-editor.d.ts +486 -13
  245. package/types/caribeng-ui-empty.d.ts +34 -0
  246. package/types/caribeng-ui-file-card.d.ts +28 -3
  247. package/types/caribeng-ui-fileupload.d.ts +27 -4
  248. package/types/caribeng-ui-folder-card.d.ts +31 -6
  249. package/types/caribeng-ui-galleria.d.ts +9 -0
  250. package/types/caribeng-ui-image.d.ts +10 -0
  251. package/types/caribeng-ui-inplace.d.ts +8 -0
  252. package/types/caribeng-ui-input-number.d.ts +3 -1
  253. package/types/caribeng-ui-inputmask.d.ts +8 -1
  254. package/types/caribeng-ui-inputotp.d.ts +7 -2
  255. package/types/caribeng-ui-kanban.d.ts +783 -0
  256. package/types/caribeng-ui-kbd.d.ts +36 -0
  257. package/types/caribeng-ui-keyfilter.d.ts +30 -0
  258. package/types/caribeng-ui-listbox.d.ts +5 -3
  259. package/types/caribeng-ui-megamenu.d.ts +37 -2
  260. package/types/caribeng-ui-mentions.d.ts +127 -0
  261. package/types/caribeng-ui-menu.d.ts +14 -2
  262. package/types/caribeng-ui-menubar.d.ts +12 -1
  263. package/types/caribeng-ui-message.d.ts +5 -0
  264. package/types/caribeng-ui-metergroup.d.ts +9 -1
  265. package/types/caribeng-ui-multiselect.d.ts +71 -10
  266. package/types/caribeng-ui-orderlist.d.ts +58 -6
  267. package/types/caribeng-ui-organizationchart.d.ts +7 -1
  268. package/types/caribeng-ui-paginator.d.ts +3 -0
  269. package/types/caribeng-ui-panel.d.ts +3 -0
  270. package/types/caribeng-ui-panelmenu.d.ts +11 -1
  271. package/types/caribeng-ui-password.d.ts +4 -2
  272. package/types/caribeng-ui-pdfviewer.d.ts +258 -0
  273. package/types/caribeng-ui-phone-input.d.ts +168 -0
  274. package/types/caribeng-ui-picklist.d.ts +67 -7
  275. package/types/caribeng-ui-pricing.d.ts +49 -9
  276. package/types/caribeng-ui-qrcode.d.ts +88 -0
  277. package/types/caribeng-ui-rating.d.ts +6 -2
  278. package/types/caribeng-ui-repeater.d.ts +79 -0
  279. package/types/caribeng-ui-result.d.ts +35 -0
  280. package/types/caribeng-ui-scrollpanel.d.ts +4 -1
  281. package/types/caribeng-ui-scrolltop.d.ts +4 -1
  282. package/types/caribeng-ui-select.d.ts +73 -9
  283. package/types/caribeng-ui-sidebar.d.ts +167 -0
  284. package/types/caribeng-ui-slider.d.ts +63 -10
  285. package/types/caribeng-ui-speeddial.d.ts +5 -2
  286. package/types/caribeng-ui-spinner.d.ts +3 -0
  287. package/types/caribeng-ui-splitbutton.d.ts +49 -0
  288. package/types/caribeng-ui-splitter.d.ts +3 -0
  289. package/types/caribeng-ui-statistic.d.ts +65 -0
  290. package/types/caribeng-ui-stepper.d.ts +5 -0
  291. package/types/caribeng-ui-steps.d.ts +4 -1
  292. package/types/caribeng-ui-table.d.ts +185 -17
  293. package/types/caribeng-ui-tabmenu.d.ts +11 -1
  294. package/types/caribeng-ui-terminal.d.ts +10 -0
  295. package/types/caribeng-ui-themetoggle.d.ts +32 -0
  296. package/types/caribeng-ui-tieredmenu.d.ts +22 -3
  297. package/types/caribeng-ui-timeline.d.ts +63 -4
  298. package/types/caribeng-ui-toast.d.ts +3 -0
  299. package/types/caribeng-ui-togglebutton.d.ts +5 -3
  300. package/types/caribeng-ui-toolbar.d.ts +7 -4
  301. package/types/caribeng-ui-tree.d.ts +76 -4
  302. package/types/caribeng-ui-treeselect.d.ts +10 -2
  303. package/types/caribeng-ui-treetable.d.ts +68 -4
  304. package/types/caribeng-ui-virtualscroller.d.ts +45 -5
  305. package/types/caribeng-ui.d.ts +775 -12
@@ -4,29 +4,76 @@ import * as _angular_core from '@angular/core';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import { ConnectedPosition } from '@angular/cdk/overlay';
6
6
 
7
+ /** Rango de fechas `[inicio, fin]`; `fin` es `null` mientras se elige. */
8
+ type CbDateRange = readonly [Date, Date | null];
9
+ /** Valor que la DatePicker entrega a Angular Forms: una fecha, un rango (`selectionMode="range"`) o `null`. */
10
+ type CbDatepickerValue = Date | CbDateRange | null;
11
+ /** Qué se elige: un día, un mes (día 1) o un año (1 de enero). */
12
+ type CbDatepickerView = 'date' | 'month' | 'year';
13
+ /** Atajos predefinidos (con textos traducidos): rangos relativos a hoy. */
14
+ type CbDatePresetKey = 'today' | 'yesterday' | 'last7Days' | 'last30Days' | 'thisMonth' | 'lastMonth' | 'thisYear' | 'lastYear';
15
+ /** Atajo propio: un texto y una fecha o un rango (o una función que los calcula al abrir). */
16
+ interface CbDatePreset {
17
+ label: string;
18
+ value: Date | CbDateRange | (() => Date | CbDateRange);
19
+ }
7
20
  interface DayCell {
8
21
  date: Date;
9
22
  day: number;
23
+ label: string;
10
24
  otherMonth: boolean;
25
+ /** Día de otro mes en un calendario de varios meses: la celda queda vacía. */
26
+ hidden: boolean;
11
27
  today: boolean;
12
28
  selected: boolean;
29
+ rangeStart: boolean;
30
+ rangeEnd: boolean;
31
+ inRange: boolean;
32
+ disabled: boolean;
33
+ active: boolean;
34
+ }
35
+ /** Celda de la vista de meses o de años. */
36
+ interface UnitCell {
37
+ date: Date;
38
+ text: string;
39
+ label: string;
40
+ /** Año fuera de la década mostrada (primero y último de la cuadrícula). */
41
+ outside: boolean;
42
+ current: boolean;
43
+ selected: boolean;
44
+ rangeStart: boolean;
45
+ rangeEnd: boolean;
46
+ inRange: boolean;
13
47
  disabled: boolean;
14
48
  active: boolean;
15
49
  }
50
+ type TimeTarget = 'single' | 'start' | 'end';
16
51
  /**
17
- * Selector de fecha de CaribeNG. Campo de solo lectura que abre un calendario
18
- * sobre CDK Overlay, con navegación por teclado y rango min/max. Integrado con
19
- * Angular Forms vía `ControlValueAccessor`. El modelo es `Date | null`.
52
+ * Selector de fecha de CaribeNG. Abre un calendario sobre CDK Overlay, con
53
+ * navegación por teclado (patrón WAI-ARIA *date picker dialog*), rango
54
+ * min/max, selección de rangos, hora y vistas de mes y año. Integrado con
55
+ * Angular Forms vía `ControlValueAccessor`.
56
+ *
57
+ * - `selectionMode="single"` (por defecto): `[(value)]` es `Date | null`.
58
+ * - `selectionMode="range"`: `[(range)]` es `[inicio, fin] | null`; muestra dos meses (`numberOfMonths`).
59
+ * - `view="month"` / `view="year"`: se elige un mes (día 1) o un año (1 de enero).
60
+ * - `showTime`: añade horas y minutos (`hourFormat` 24 o 12), también en rangos.
61
+ * - `dateFormat`: formato con la sintaxis de PrimeNG (`dd/mm/yy`, `d 'de' MM`…); `editable` permite escribir la fecha.
20
62
  *
21
63
  * @example
22
64
  * ```html
23
- * <cb-datepicker formControlName="fecha" locale="es-CO"
24
- * [minDate]="hoy" placeholder="Elige una fecha" />
65
+ * <cb-datepicker formControlName="fecha" locale="es-CO" [minDate]="hoy" />
66
+ * <cb-datepicker selectionMode="range" [(range)]="viaje" />
67
+ * <cb-datepicker showTime hourFormat="12" [(value)]="cita" />
68
+ * <cb-datepicker view="month" dateFormat="mm/yy" [(value)]="vencimiento" />
69
+ * <cb-datepicker editable dateFormat="dd/mm/yy" [(value)]="nacimiento" />
25
70
  * ```
26
71
  */
27
72
  declare class CbDatepicker implements ControlValueAccessor {
28
- /** Fecha seleccionada (two-way opcional fuera de Angular Forms). */
73
+ /** Fecha seleccionada en modo `single` (two-way opcional fuera de Angular Forms). */
29
74
  readonly value: _angular_core.ModelSignal<Date | null>;
75
+ /** Rango seleccionado en modo `range` (two-way opcional fuera de Angular Forms). */
76
+ readonly range: _angular_core.ModelSignal<CbDateRange | null>;
30
77
  readonly label: _angular_core.InputSignal<string>;
31
78
  readonly hint: _angular_core.InputSignal<string>;
32
79
  readonly error: _angular_core.InputSignal<string>;
@@ -34,64 +81,182 @@ declare class CbDatepicker implements ControlValueAccessor {
34
81
  readonly size: _angular_core.InputSignal<CbSize>;
35
82
  readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
36
83
  readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
37
- /** Indicador de obligatoriedad de este campo; si se omite usa el global de `provideCaribeNG()`. */
84
+ /** Cómo se marca un campo obligatorio u opcional; por defecto el global de `provideCaribeNG`. */
38
85
  readonly requiredIndicator: _angular_core.InputSignal<CbRequiredIndicator | undefined>;
39
- /** Estado de validación: inputs manuales + estado de Angular Forms. */
86
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
87
+ private readonly injector;
40
88
  protected readonly fieldState: _caribeng_ui.CbFieldState;
41
89
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
42
90
  readonly inputId: _angular_core.InputSignal<string>;
43
91
  /** Locale BCP 47 para nombres y formato (por defecto el del navegador). */
44
92
  readonly locale: _angular_core.InputSignal<string | undefined>;
45
- /** Primer día de la semana: 0 = domingo (por defecto), 1 = lunes. */
93
+ /** Primer día de la semana: 0 = domingo, 1 = lunes. */
46
94
  readonly firstDayOfWeek: _angular_core.InputSignal<number>;
47
- /** Fecha mínima seleccionable. */
95
+ /** Fecha mínima elegible (incluida). */
48
96
  readonly minDate: _angular_core.InputSignal<Date | null>;
49
- /** Fecha máxima seleccionable. */
97
+ /** Fecha máxima elegible (incluida). */
50
98
  readonly maxDate: _angular_core.InputSignal<Date | null>;
99
+ /** `single` (una fecha) o `range` (inicio y fin). */
100
+ readonly selectionMode: _angular_core.InputSignal<"single" | "range">;
101
+ /** Qué se elige: un día (`date`), un mes (`month`, día 1) o un año (`year`, 1 de enero). */
102
+ readonly view: _angular_core.InputSignal<CbDatepickerView>;
103
+ /** Meses visibles a la vez (vista de días). Por defecto 2 en rangos y 1 en fecha simple. */
104
+ readonly numberOfMonths: _angular_core.InputSignal<number | undefined>;
105
+ /** Añade horas y minutos (en rangos, del inicio y del fin). Solo con `view="date"`. */
106
+ readonly showTime: _angular_core.InputSignalWithTransform<boolean, unknown>;
107
+ /** Formato de la hora: 24 h o 12 h (AM/PM). */
108
+ readonly hourFormat: _angular_core.InputSignal<"24" | "12">;
109
+ /** Paso de los minutos (p. ej. 15). */
110
+ readonly stepMinute: _angular_core.InputSignal<number>;
111
+ /**
112
+ * Formato de la fecha con la sintaxis de PrimeNG: `d`, `dd`, `o`, `oo`, `D`, `DD`,
113
+ * `m`, `mm`, `M`, `MM`, `y`, `yy`, `@`, `!` y `'texto'`. Sin él, el campo usa el
114
+ * formato largo del `locale` (o el numérico si es `editable`).
115
+ */
116
+ readonly dateFormat: _angular_core.InputSignal<string | undefined>;
117
+ /** Permite escribir la fecha en el campo con `dateFormat` (Enter o al salir del campo la aplica). */
118
+ readonly editable: _angular_core.InputSignalWithTransform<boolean, unknown>;
119
+ /**
120
+ * Atajos junto al calendario: claves predefinidas (`'last7Days'`, `'thisMonth'`…)
121
+ * u objetos `{ label, value }`. En fecha simple, un atajo de rango elige su inicio.
122
+ */
123
+ readonly presets: _angular_core.InputSignal<readonly (CbDatePresetKey | CbDatePreset)[]>;
51
124
  protected readonly open: _angular_core.WritableSignal<boolean>;
52
- /** Primer día del mes mostrado. */
125
+ /** Día (o mes, o año) bajo el puntero: previsualiza el rango mientras se elige el final. */
126
+ protected readonly hoverDate: _angular_core.WritableSignal<Date | null>;
127
+ /** Primer mes mostrado (vista de días) o fecha de referencia del año / la década. */
53
128
  private readonly viewDate;
54
- /** Día con foco dentro del calendario. */
129
+ /** Día, mes o año con foco dentro del calendario. */
55
130
  private readonly activeDate;
56
- private readonly triggerRef;
131
+ /** Vista del panel: puede pasar a meses o años para navegar aunque se elija un día. */
132
+ protected readonly panelView: _angular_core.WritableSignal<CbDatepickerView>;
133
+ /** Texto escrito en el campo (`editable`) que aún no se ha aplicado. */
134
+ protected readonly draft: _angular_core.WritableSignal<string | null>;
135
+ /** El texto escrito no es una fecha válida (o elegible). */
136
+ protected readonly typedInvalid: _angular_core.WritableSignal<boolean>;
137
+ /** Día del mes que se conserva al navegar por meses y años para volver a los días. */
138
+ private navDay;
57
139
  private readonly fieldRef;
58
140
  private readonly panelRef;
59
141
  private readonly cvaDisabled;
60
142
  protected readonly isDisabled: _angular_core.Signal<boolean>;
143
+ protected readonly isRange: _angular_core.Signal<boolean>;
144
+ /** La hora solo tiene sentido al elegir días. */
145
+ private readonly withTime;
146
+ protected readonly monthCount: _angular_core.Signal<number>;
147
+ protected readonly fieldInvalid: _angular_core.Signal<boolean>;
61
148
  protected readonly errorId: _angular_core.Signal<string>;
62
149
  protected readonly hintId: _angular_core.Signal<string>;
63
150
  protected readonly describedBy: _angular_core.Signal<string | null>;
64
151
  protected readonly positions: ConnectedPosition[];
152
+ /** La fecha (modo simple) o `null`. */
153
+ private readonly single;
154
+ /** El rango (modo rango) o `null`. */
155
+ private readonly activeRange;
156
+ /** Hay fecha inicial y falta la final. */
157
+ protected readonly choosingEnd: _angular_core.Signal<boolean>;
158
+ /** Hay algo elegido (para mostrar "Limpiar"). */
159
+ protected readonly hasValue: _angular_core.Signal<boolean>;
160
+ private readonly names;
161
+ /** Formato con el que se escribe y se lee el campo (si hay `dateFormat` o es editable). */
162
+ private readonly pattern;
163
+ /** Ayuda del formato para el placeholder y el error (`dd/mm/yyyy`, con la hora si la hay). */
164
+ protected readonly formatHint: _angular_core.Signal<string>;
165
+ protected readonly invalidMessage: _angular_core.Signal<string>;
166
+ private formatOne;
167
+ private timeText;
65
168
  protected readonly display: _angular_core.Signal<string>;
66
- protected readonly monthYearLabel: _angular_core.Signal<string>;
169
+ protected readonly fieldText: _angular_core.Signal<string>;
170
+ private monthTitle;
171
+ protected readonly panelLabel: _angular_core.Signal<string>;
67
172
  protected readonly weekdays: _angular_core.Signal<{
68
173
  index: number;
69
174
  short: string;
70
175
  long: string;
71
176
  }[]>;
72
- protected readonly weeks: _angular_core.Signal<DayCell[][]>;
177
+ /** Inicio y fin del rango (o del rango en curso hasta el puntero), ordenados y en la unidad `unit`. */
178
+ private rangeBounds;
179
+ protected readonly months: _angular_core.Signal<{
180
+ date: Date;
181
+ title: string;
182
+ weeks: DayCell[][];
183
+ }[]>;
184
+ /** Título de la vista de meses (el año) o de años (la década). */
185
+ protected readonly unitTitle: _angular_core.Signal<string>;
186
+ protected readonly unitRows: _angular_core.Signal<UnitCell[][]>;
187
+ protected readonly presetItems: _angular_core.Signal<{
188
+ label: string;
189
+ value: Date | CbDateRange;
190
+ selected: boolean;
191
+ disabled: boolean;
192
+ }[]>;
193
+ private presetLabel;
194
+ /** Ajusta el atajo al modo (fecha o rango), a la unidad de `view` y, con hora, al día completo. */
195
+ private presetValue;
196
+ /** Aplica un atajo y cierra (con hora, el panel sigue abierto para ajustarla). */
197
+ protected applyPreset(value: Date | CbDateRange): void;
198
+ protected readonly timeRows: _angular_core.Signal<{
199
+ target: TimeTarget;
200
+ label: string;
201
+ caption: string;
202
+ enabled: boolean;
203
+ }[]>;
204
+ private dateOf;
205
+ /** Hora y minutos de la fecha (o 00:00). */
206
+ protected timeOf(target: TimeTarget): {
207
+ hours: number;
208
+ minutes: number;
209
+ };
210
+ protected displayHour(target: TimeTarget): string;
73
211
  constructor();
74
212
  private onChange;
75
213
  private onTouched;
76
- writeValue(value: Date | null): void;
77
- registerOnChange(fn: (value: Date | null) => void): void;
214
+ writeValue(value: CbDatepickerValue): void;
215
+ registerOnChange(fn: (value: CbDatepickerValue) => void): void;
78
216
  registerOnTouched(fn: () => void): void;
79
217
  setDisabledState(isDisabled: boolean): void;
80
218
  protected toggle(): void;
219
+ protected onFieldClick(): void;
81
220
  private openPanel;
82
221
  protected close(): void;
83
222
  protected onBlur(): void;
223
+ /** Elige un valor en la unidad de `view` (día, mes o año), en modo simple o rango. */
224
+ private pick;
84
225
  protected selectDate(date: Date): void;
226
+ /** Clic en un mes o un año: lo elige (si es la unidad de `view`) o baja a la vista siguiente. */
227
+ protected selectUnit(date: Date): void;
228
+ /** Del título de un mes a la vista de meses de su año. */
229
+ protected showMonths(month: Date): void;
230
+ protected showYears(): void;
231
+ private isSameMonthShown;
85
232
  protected goToday(): void;
86
233
  protected clear(): void;
87
234
  protected shiftMonth(delta: number): void;
235
+ /** Año anterior / siguiente (vista de meses) o década (vista de años). */
236
+ protected shiftPage(delta: number): void;
237
+ protected setHour(target: TimeTarget, raw: string): void;
238
+ protected setMinute(target: TimeTarget, raw: string): void;
239
+ protected togglePeriod(target: TimeTarget): void;
240
+ private setTime;
241
+ protected pad(n: number): string;
242
+ /** Aplica lo escrito: fecha válida y elegible → valor; vacío → `null`; si no, marca el error. */
243
+ private applyDraft;
244
+ /** Lee una fecha (y la hora, si `showTime`) con el formato del campo. */
245
+ private parseOne;
88
246
  protected onFieldKeydown(event: KeyboardEvent): void;
89
247
  protected onPanelKeydown(event: KeyboardEvent): void;
90
- private focusActiveDay;
91
- private isDisabledDate;
248
+ /** Flechas en la cuadrícula de meses o años (3 columnas). */
249
+ private onUnitKeydown;
250
+ /** Enfoca el elemento activo tras el render: el panel vive en un overlay que se pinta en el ciclo siguiente. */
251
+ private focusActive;
252
+ /** Guarda en el modelo del modo activo y avisa a Angular Forms. */
253
+ private commit;
254
+ /** El día, mes o año queda entero fuera de [minDate, maxDate]. */
255
+ private isDisabledIn;
92
256
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDatepicker, never>;
93
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDatepicker, "cb-datepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "requiredIndicator": { "alias": "requiredIndicator"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
257
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDatepicker, "cb-datepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "requiredIndicator": { "alias": "requiredIndicator"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "numberOfMonths": { "alias": "numberOfMonths"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "stepMinute": { "alias": "stepMinute"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "range": "rangeChange"; }, never, never, true, never>;
94
258
  }
95
259
 
96
260
  export { CbDatepicker };
261
+ export type { CbDatePreset, CbDatePresetKey, CbDateRange, CbDatepickerValue, CbDatepickerView };
97
262
  //# sourceMappingURL=caribeng-ui-datepicker.d.ts.map
@@ -0,0 +1,63 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+
4
+ /** Un par etiqueta / valor. */
5
+ interface CbDescriptionItem {
6
+ label: string;
7
+ value?: string | number | null;
8
+ /** Identificador para una plantilla `cbDescriptionsValue="key"`. */
9
+ key?: string;
10
+ /** Columnas que ocupa (1 por defecto). */
11
+ span?: number;
12
+ }
13
+ interface CbDescriptionsValueContext<T = any> {
14
+ /** Valor del elemento. */
15
+ $implicit: T;
16
+ item: CbDescriptionItem;
17
+ }
18
+ /** Plantilla del valor de un elemento: `<ng-template cbDescriptionsValue="estado" let-valor>`. */
19
+ declare class CbDescriptionsValue {
20
+ readonly cbDescriptionsValue: _angular_core.InputSignal<string>;
21
+ readonly template: TemplateRef<CbDescriptionsValueContext<any>>;
22
+ static ngTemplateContextGuard(_dir: CbDescriptionsValue, ctx: unknown): ctx is CbDescriptionsValueContext;
23
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDescriptionsValue, never>;
24
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CbDescriptionsValue, "ng-template[cbDescriptionsValue]", never, { "cbDescriptionsValue": { "alias": "cbDescriptionsValue"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
25
+ }
26
+ /**
27
+ * Descriptions de CaribeNG: lista de pares etiqueta / valor (detalle de un
28
+ * cliente, de una transacción…) en una o varias columnas, sobre una lista de
29
+ * descripción (`<dl>`) nativa.
30
+ *
31
+ * @example
32
+ * ```html
33
+ * <cb-descriptions title="Detalle de la transferencia" [columns]="2" [items]="[
34
+ * { label: 'Origen', value: 'Ahorros **** 1234' },
35
+ * { label: 'Valor', value: '$ 250.000' },
36
+ * { label: 'Estado', key: 'estado', value: 'Aprobada' },
37
+ * ]">
38
+ * <ng-template cbDescriptionsValue="estado" let-estado><cb-tag [value]="estado" severity="success" /></ng-template>
39
+ * </cb-descriptions>
40
+ * ```
41
+ */
42
+ declare class CbDescriptions {
43
+ private readonly valueTemplates;
44
+ protected readonly titleId: string;
45
+ readonly items: _angular_core.InputSignal<readonly CbDescriptionItem[]>;
46
+ /** Título del bloque (se anuncia como encabezado). */
47
+ readonly title: _angular_core.InputSignal<string>;
48
+ /** Nivel del encabezado del título (por defecto 3). */
49
+ readonly headingLevel: _angular_core.InputSignal<number>;
50
+ /** Columnas en pantallas anchas (en móvil siempre 1). */
51
+ readonly columns: _angular_core.InputSignal<number>;
52
+ /** Etiqueta encima del valor (`vertical`) o a su lado (`horizontal`). */
53
+ readonly layout: _angular_core.InputSignal<"horizontal" | "vertical">;
54
+ /** Bordes entre elementos. */
55
+ readonly bordered: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
+ protected valueTemplate(item: CbDescriptionItem): CbDescriptionsValue | undefined;
57
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDescriptions, never>;
58
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDescriptions, "cb-descriptions", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, ["valueTemplates"], never, true, never>;
59
+ }
60
+
61
+ export { CbDescriptions, CbDescriptionsValue };
62
+ export type { CbDescriptionItem, CbDescriptionsValueContext };
63
+ //# sourceMappingURL=caribeng-ui-descriptions.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  /**
4
5
  * Dialog (modal) de CaribeNG sobre CDK Overlay con trampa de foco (FocusTrap),
@@ -17,6 +18,8 @@ import * as _angular_core from '@angular/core';
17
18
  * ```
18
19
  */
19
20
  declare class CbDialog {
21
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
22
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
20
23
  private readonly overlay;
21
24
  private readonly vcr;
22
25
  private readonly document;
@@ -33,7 +36,7 @@ declare class CbDialog {
33
36
  /** Ancho del panel. */
34
37
  readonly width: _angular_core.InputSignal<string>;
35
38
  /** Nombre accesible cuando no hay `header`. */
36
- readonly ariaLabel: _angular_core.InputSignal<string>;
39
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
37
40
  /** Se emite cuando el diálogo se cierra. */
38
41
  readonly onHide: _angular_core.OutputEmitterRef<void>;
39
42
  /** Se emite cuando el diálogo se abre. */
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  type CbDockPosition = 'top' | 'right' | 'bottom' | 'left';
4
5
  interface CbDockItem {
@@ -7,13 +8,27 @@ interface CbDockItem {
7
8
  url?: string;
8
9
  disabled?: boolean;
9
10
  }
10
- /** Compact application launcher with configurable orientation. */
11
+ /**
12
+ * Compact application launcher with configurable orientation.
13
+ *
14
+ * Sigue el patrón WAI-ARIA *toolbar*: un solo elemento entra en el orden de
15
+ * tabulación y las flechas (según la orientación), Inicio y Fin recorren el resto.
16
+ */
11
17
  declare class CbDock {
18
+ private readonly host;
19
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
20
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
12
21
  readonly items: _angular_core.InputSignal<readonly CbDockItem[]>;
13
22
  readonly position: _angular_core.InputSignal<CbDockPosition>;
14
- readonly ariaLabel: _angular_core.InputSignal<string>;
23
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
15
24
  readonly itemSelect: _angular_core.OutputEmitterRef<CbDockItem>;
25
+ protected readonly vertical: _angular_core.Signal<boolean>;
26
+ /** Último elemento enfocado (el que recibe Tab al volver). */
27
+ protected readonly active: _angular_core.WritableSignal<number>;
28
+ /** Elemento con `tabindex="0"`: el activo si se puede enfocar, si no el primero habilitado. */
29
+ protected readonly tabStop: _angular_core.Signal<number>;
16
30
  select(item: CbDockItem): void;
31
+ protected onKeydown(event: KeyboardEvent): void;
17
32
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDock, never>;
18
33
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDock, "cb-dock", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
19
34
  }
@@ -1,4 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
2
3
 
3
4
  type CbDrawerPosition = 'left' | 'right' | 'top' | 'bottom';
4
5
  /**
@@ -14,6 +15,8 @@ type CbDrawerPosition = 'left' | 'right' | 'top' | 'bottom';
14
15
  * ```
15
16
  */
16
17
  declare class CbDrawer {
18
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
19
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
17
20
  private readonly overlay;
18
21
  private readonly vcr;
19
22
  private readonly document;
@@ -23,7 +26,9 @@ declare class CbDrawer {
23
26
  readonly closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
24
27
  readonly dismissableMask: _angular_core.InputSignalWithTransform<boolean, unknown>;
25
28
  readonly closeOnEscape: _angular_core.InputSignalWithTransform<boolean, unknown>;
26
- readonly ariaLabel: _angular_core.InputSignal<string>;
29
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
30
+ /** Ancho (izquierda/derecha) o alto (arriba/abajo) del panel, p. ej. `'32rem'`. */
31
+ readonly size: _angular_core.InputSignal<string>;
27
32
  readonly onShow: _angular_core.OutputEmitterRef<void>;
28
33
  readonly onHide: _angular_core.OutputEmitterRef<void>;
29
34
  protected readonly titleId: string;
@@ -36,7 +41,7 @@ declare class CbDrawer {
36
41
  private edgePosition;
37
42
  private disposeOverlay;
38
43
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDrawer, never>;
39
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDrawer, "cb-drawer", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "dismissableMask": { "alias": "dismissableMask"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "onShow": "onShow"; "onHide": "onHide"; }, never, ["*", "[cb-drawer-footer]"], true, never>;
44
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDrawer, "cb-drawer", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "dismissableMask": { "alias": "dismissableMask"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "onShow": "onShow"; "onHide": "onHide"; }, never, ["*", "[cb-drawer-footer]"], true, never>;
40
45
  }
41
46
 
42
47
  export { CbDrawer };
@@ -1,14 +1,104 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, Type, Injector } from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
4
+ import { Observable } from 'rxjs';
2
5
 
6
+ /**
7
+ * Variante declarativa del diálogo dinámico: un `cb-dialog` con título y
8
+ * texto, para casos simples. Para abrir **componentes** con datos y recibir un
9
+ * resultado, usa `CbDialogService.open()`.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <cb-dynamic-dialog [(visible)]="visible" header="Detalle" content="Tu solicitud fue enviada." />
14
+ * ```
15
+ */
3
16
  declare class CbDynamicDialog {
17
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
18
+ /** Visibilidad (two-way). */
4
19
  readonly visible: _angular_core.ModelSignal<boolean>;
5
- readonly header: _angular_core.InputSignal<string>;
20
+ /** Título. Por defecto, "Diálogo" del idioma activo. */
21
+ readonly header: _angular_core.InputSignal<string | undefined>;
22
+ /** Texto del cuerpo (también se puede proyectar contenido). */
6
23
  readonly content: _angular_core.InputSignal<string>;
24
+ /** Se emite al cerrarse. */
7
25
  readonly closed: _angular_core.OutputEmitterRef<void>;
8
- protected close(): void;
9
26
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDynamicDialog, never>;
10
27
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDynamicDialog, "cb-dynamic-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "closed": "closed"; }, never, ["*"], true, never>;
11
28
  }
12
29
 
13
- export { CbDynamicDialog };
30
+ /** Opciones de `CbDialogService.open()`. */
31
+ interface CbDynamicDialogConfig<D = unknown> {
32
+ /** Título del diálogo; si se omite, se usa `ariaLabel` como nombre accesible. */
33
+ header?: string;
34
+ /** Datos para el componente abierto (inyéctalos con `CB_DYNAMIC_DIALOG_DATA`). */
35
+ data?: D;
36
+ /** Ancho del panel. Por defecto `32rem`. */
37
+ width?: string;
38
+ /** Muestra el botón de cerrar. Por defecto `true`. */
39
+ closable?: boolean;
40
+ /** Cierra con Escape. Por defecto `true`. */
41
+ closeOnEscape?: boolean;
42
+ /** Cierra al hacer clic en el fondo. Por defecto `true`. */
43
+ dismissableMask?: boolean;
44
+ /** Nombre accesible cuando no hay `header`. */
45
+ ariaLabel?: string;
46
+ }
47
+ /** Datos pasados en `config.data`, para inyectar en el componente abierto. */
48
+ declare const CB_DYNAMIC_DIALOG_DATA: InjectionToken<unknown>;
49
+ /**
50
+ * Referencia a un diálogo abierto con `CbDialogService`. El componente abierto
51
+ * puede inyectarla para cerrarse devolviendo un resultado.
52
+ */
53
+ declare class CbDynamicDialogRef<R = unknown> {
54
+ private readonly dispose;
55
+ private readonly closed$;
56
+ private isClosed;
57
+ /** Emite el resultado (o `undefined` si se cerró sin él) y completa. */
58
+ readonly onClose: Observable<R | undefined>;
59
+ /** @internal */
60
+ constructor(dispose: () => void);
61
+ /** Cierra el diálogo devolviendo un resultado opcional. */
62
+ close(result?: R): void;
63
+ }
64
+ /** Contenedor visual del diálogo dinámico (uso interno de CbDialogService). */
65
+ declare class CbDynamicDialogContainer {
66
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
67
+ protected readonly config: CbDynamicDialogConfig<unknown>;
68
+ protected readonly ref: CbDynamicDialogRef<any>;
69
+ protected readonly component: Type<unknown>;
70
+ protected readonly injector: Injector;
71
+ protected readonly titleId: string;
72
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDynamicDialogContainer, never>;
73
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbDynamicDialogContainer, "cb-dynamic-dialog-container", never, {}, {}, never, never, true, never>;
74
+ }
75
+ /**
76
+ * Abre componentes dentro de un diálogo modal (como `DialogService` de PrimeNG):
77
+ * trampa de foco, cierre con Escape y fondo, y devolución del foco al cerrar.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const ref = inject(CbDialogService).open(EditarCliente, {
82
+ * header: 'Editar cliente',
83
+ * data: { id: 42 },
84
+ * });
85
+ * ref.onClose.subscribe((guardado) => { … });
86
+ *
87
+ * // Dentro de EditarCliente:
88
+ * readonly data = inject<{ id: number }>(CB_DYNAMIC_DIALOG_DATA);
89
+ * readonly ref = inject(CbDynamicDialogRef);
90
+ * guardar() { this.ref.close(true); }
91
+ * ```
92
+ */
93
+ declare class CbDialogService {
94
+ private readonly overlay;
95
+ private readonly injector;
96
+ private readonly document;
97
+ open<T, D = unknown, R = unknown>(component: Type<T>, config?: CbDynamicDialogConfig<D>): CbDynamicDialogRef<R>;
98
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbDialogService, never>;
99
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CbDialogService>;
100
+ }
101
+
102
+ export { CB_DYNAMIC_DIALOG_DATA, CbDialogService, CbDynamicDialog, CbDynamicDialogContainer, CbDynamicDialogRef };
103
+ export type { CbDynamicDialogConfig };
14
104
  //# sourceMappingURL=caribeng-ui-dynamicdialog.d.ts.map