@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
@@ -0,0 +1,299 @@
1
+ import * as _caribeng_ui_chat from '@caribeng/ui/chat';
2
+ import * as _angular_core from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
4
+ import { cbFormat } from '@caribeng/ui';
5
+
6
+ /** Quién escribe el mensaje. */
7
+ type CbChatRole = 'user' | 'assistant' | 'system';
8
+ /** Estado de envío de un mensaje propio. */
9
+ type CbChatStatus = 'sending' | 'sent' | 'error';
10
+ /** Valoración de una respuesta. */
11
+ type CbChatFeedback = 'up' | 'down' | null;
12
+ /** Archivo adjunto a un mensaje. */
13
+ interface CbChatAttachment {
14
+ readonly name: string;
15
+ /** Tipo MIME (`image/png`); las imágenes se muestran en miniatura. */
16
+ readonly type?: string;
17
+ /** Tamaño en bytes. */
18
+ readonly size?: number;
19
+ /** URL para ver o descargar (y la miniatura de las imágenes). */
20
+ readonly url?: string;
21
+ }
22
+ /**
23
+ * Mensaje de chat de CaribeNG: burbuja con autor, hora, avatar y estado de
24
+ * envío. `text` se pinta como markdown seguro y sus bloques de código con
25
+ * `cb-code-block` (resaltado y copiar). Admite adjuntos, valoración 👍/👎 y
26
+ * "Regenerar"; con `streaming` muestra un cursor mientras llega la respuesta.
27
+ * El contenido proyectado (p. ej. `cb-chat-reasoning`, `cb-chat-tool`) va
28
+ * antes del texto.
29
+ *
30
+ * @example
31
+ * ```html
32
+ * <cb-chat-message role="user" text="¿Cuál es mi saldo?" time="10:30" />
33
+ * <cb-chat-message role="assistant" [text]="respuesta" [streaming]="generando" copyable showFeedback [(feedback)]="voto" />
34
+ * ```
35
+ */
36
+ declare class CbChatMessage {
37
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
38
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
39
+ readonly role: _angular_core.InputSignal<CbChatRole>;
40
+ /** Contenido del mensaje (markdown por defecto). */
41
+ readonly text: _angular_core.InputSignal<string>;
42
+ /** Interpreta `text` como markdown seguro. Con `false` se muestra tal cual. */
43
+ readonly markdown: _angular_core.InputSignalWithTransform<boolean, unknown>;
44
+ /** Nombre del autor. Por defecto, "Tú" o "Asistente". */
45
+ readonly author: _angular_core.InputSignal<string | undefined>;
46
+ /** Hora o fecha ya formateada ("10:30"). */
47
+ readonly time: _angular_core.InputSignal<string>;
48
+ /** Imagen del avatar. Sin ella, iniciales (usuario) o un icono (asistente). */
49
+ readonly avatar: _angular_core.InputSignal<string>;
50
+ readonly showAvatar: _angular_core.InputSignalWithTransform<boolean, unknown>;
51
+ readonly showAuthor: _angular_core.InputSignalWithTransform<boolean, unknown>;
52
+ /** Estado de envío (mensajes propios). `error` muestra "Reintentar". */
53
+ readonly status: _angular_core.InputSignal<CbChatStatus | undefined>;
54
+ /** La respuesta sigue llegando: muestra un cursor y marca el mensaje como ocupado. */
55
+ readonly streaming: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
+ /** Botón para copiar el texto (cuando termina de llegar). */
57
+ readonly copyable: _angular_core.InputSignalWithTransform<boolean, unknown>;
58
+ /** Archivos adjuntos (las imágenes con URL, en miniatura). */
59
+ readonly attachments: _angular_core.InputSignal<readonly CbChatAttachment[]>;
60
+ /** Muestra los botones 👍 / 👎. */
61
+ readonly showFeedback: _angular_core.InputSignalWithTransform<boolean, unknown>;
62
+ /** Valoración elegida (bidireccional). Pulsar la misma la quita. */
63
+ readonly feedback: _angular_core.ModelSignal<CbChatFeedback>;
64
+ /** Muestra el botón "Regenerar respuesta". */
65
+ readonly regenerable: _angular_core.InputSignalWithTransform<boolean, unknown>;
66
+ /** Se pulsó "Reintentar" en un mensaje con error. */
67
+ readonly retry: _angular_core.OutputEmitterRef<void>;
68
+ /** Se pulsó "Regenerar respuesta". */
69
+ readonly regenerate: _angular_core.OutputEmitterRef<void>;
70
+ protected readonly blocks: _angular_core.Signal<_caribeng_ui_chat.CbMarkdownBlock[]>;
71
+ protected readonly authorName: _angular_core.Signal<string>;
72
+ protected readonly initials: _angular_core.Signal<string>;
73
+ protected readonly label: _angular_core.Signal<string | null>;
74
+ protected isImage(a: CbChatAttachment): boolean;
75
+ protected size(a: CbChatAttachment): string;
76
+ protected vote(value: 'up' | 'down'): void;
77
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbChatMessage, never>;
78
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbChatMessage, "cb-chat-message", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "markdown": { "alias": "markdown"; "required": false; "isSignal": true; }; "author": { "alias": "author"; "required": false; "isSignal": true; }; "time": { "alias": "time"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "showAuthor": { "alias": "showAuthor"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "streaming": { "alias": "streaming"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "attachments": { "alias": "attachments"; "required": false; "isSignal": true; }; "showFeedback": { "alias": "showFeedback"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; "regenerable": { "alias": "regenerable"; "required": false; "isSignal": true; }; }, { "feedback": "feedbackChange"; "retry": "retry"; "regenerate": "regenerate"; }, never, ["cb-chat-reasoning, cb-chat-tool, [cb-chat-message-before]", "*", "[cb-chat-message-actions]"], true, never>;
79
+ }
80
+
81
+ /**
82
+ * Lista de mensajes de chat de CaribeNG (`role="log"`). Se mantiene pegada al
83
+ * final mientras llegan mensajes o se alarga una respuesta en streaming, pero
84
+ * no mueve el scroll si el usuario subió a leer: entonces ofrece "Ir al último
85
+ * mensaje". Con `typing` muestra el indicador de escritura.
86
+ *
87
+ * Accesibilidad: con `busy` (respuesta generándose) el log se marca
88
+ * `aria-busy` para que el lector no lea cada fragmento, y al terminar se
89
+ * anuncia "Respuesta lista".
90
+ *
91
+ * @example
92
+ * ```html
93
+ * <cb-chat-messages [busy]="generando()" [typing]="pensando()" style="height: 30rem">
94
+ * @for (m of mensajes(); track m.id) {
95
+ * <cb-chat-message [role]="m.role" [text]="m.text" />
96
+ * }
97
+ * </cb-chat-messages>
98
+ * ```
99
+ */
100
+ declare class CbChatMessages {
101
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
102
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
103
+ private readonly document;
104
+ private readonly destroyRef;
105
+ private readonly scroller;
106
+ private readonly content;
107
+ /** Una respuesta se está generando (marca el log como ocupado). */
108
+ readonly busy: _angular_core.InputSignalWithTransform<boolean, unknown>;
109
+ /** Muestra el indicador "Escribiendo…". */
110
+ readonly typing: _angular_core.InputSignalWithTransform<boolean, unknown>;
111
+ /** Texto del indicador (p. ej. "Laura está escribiendo…"). */
112
+ readonly typingLabel: _angular_core.InputSignal<string | undefined>;
113
+ /** Nombre del log. Por defecto, "Conversación". */
114
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
115
+ /** La vista está en el final (sigue los mensajes nuevos). */
116
+ readonly pinned: _angular_core.WritableSignal<boolean>;
117
+ protected readonly announcement: _angular_core.WritableSignal<string>;
118
+ private wasBusy;
119
+ constructor();
120
+ protected onScroll(): void;
121
+ /** Lleva la vista al último mensaje y vuelve a seguir los nuevos. */
122
+ scrollToBottom(smooth?: boolean): void;
123
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbChatMessages, never>;
124
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbChatMessages, "cb-chat-messages", never, { "busy": { "alias": "busy"; "required": false; "isSignal": true; }; "typing": { "alias": "typing"; "required": false; "isSignal": true; }; "typingLabel": { "alias": "typingLabel"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
125
+ }
126
+
127
+ /** Mensaje que el usuario envía. */
128
+ interface CbChatSendEvent {
129
+ readonly text: string;
130
+ readonly files: readonly File[];
131
+ }
132
+ /**
133
+ * Campo para escribir mensajes (prompt) de CaribeNG: crece con el texto hasta
134
+ * `maxRows`, envía con Enter (Shift + Enter = salto de línea, respetando la
135
+ * composición de teclados asiáticos), adjunta archivos (botón, pegar o
136
+ * arrastrar), muestra sugerencias y, mientras se genera una respuesta, cambia
137
+ * "Enviar" por "Detener".
138
+ *
139
+ * @example
140
+ * ```html
141
+ * <cb-chat-input [streaming]="generando()" attachments (send)="enviar($event)" (stop)="detener()" />
142
+ * ```
143
+ */
144
+ declare class CbChatInput {
145
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
146
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
147
+ protected readonly fmt: typeof cbFormat;
148
+ private readonly injector;
149
+ private readonly textarea;
150
+ protected readonly inputId: string;
151
+ /** Texto escrito (bidireccional). */
152
+ readonly value: _angular_core.ModelSignal<string>;
153
+ /** Archivos adjuntos (bidireccional). */
154
+ readonly files: _angular_core.ModelSignal<readonly File[]>;
155
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
156
+ /** Nombre del campo. Por defecto, "Mensaje". */
157
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
158
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
159
+ /** Se está generando una respuesta: muestra "Detener" y no deja enviar. */
160
+ readonly streaming: _angular_core.InputSignalWithTransform<boolean, unknown>;
161
+ /** Permite adjuntar archivos (botón, pegar o arrastrar). */
162
+ readonly attachments: _angular_core.InputSignalWithTransform<boolean, unknown>;
163
+ /** Tipos aceptados (`image/*,.pdf`). */
164
+ readonly accept: _angular_core.InputSignal<string>;
165
+ readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
166
+ /** Máximo de caracteres, con contador. 0 = sin límite. */
167
+ readonly maxLength: _angular_core.InputSignal<number>;
168
+ /** Filas máximas antes de hacer scroll. */
169
+ readonly maxRows: _angular_core.InputSignal<number>;
170
+ /** Enter envía (Shift + Enter, salto de línea). Con `false`, Ctrl/⌘ + Enter envía. */
171
+ readonly submitOnEnter: _angular_core.InputSignalWithTransform<boolean, unknown>;
172
+ /** Vacía el campo y los adjuntos al enviar. */
173
+ readonly clearOnSend: _angular_core.InputSignalWithTransform<boolean, unknown>;
174
+ /** Sugerencias de inicio (se muestran con el campo vacío; al pulsar, se envían). */
175
+ readonly suggestions: _angular_core.InputSignal<readonly string[]>;
176
+ /** El usuario envió un mensaje. */
177
+ readonly send: _angular_core.OutputEmitterRef<CbChatSendEvent>;
178
+ /** El usuario pidió detener la respuesta. */
179
+ readonly stop: _angular_core.OutputEmitterRef<void>;
180
+ protected readonly dragging: _angular_core.WritableSignal<boolean>;
181
+ protected readonly canSend: _angular_core.Signal<boolean>;
182
+ /** URLs temporales de las miniaturas, por archivo. */
183
+ private readonly previews;
184
+ constructor();
185
+ /** Miniatura de una imagen adjunta (`null` si no es imagen o el navegador no la admite). */
186
+ protected preview(file: File): string | null;
187
+ /** Enfoca el campo. */
188
+ focus(): void;
189
+ /** Envía el mensaje si hay texto o adjuntos. */
190
+ submit(): void;
191
+ protected size(file: File): string;
192
+ protected onInput(event: Event): void;
193
+ protected onKeydown(event: KeyboardEvent): void;
194
+ protected useSuggestion(text: string): void;
195
+ protected onFilesChosen(event: Event): void;
196
+ protected onPaste(event: ClipboardEvent): void;
197
+ protected onDragOver(event: DragEvent): void;
198
+ protected onDrop(event: DragEvent): void;
199
+ protected removeFile(index: number): void;
200
+ private addFiles;
201
+ private isAccepted;
202
+ private resize;
203
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbChatInput, never>;
204
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbChatInput, "cb-chat-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "streaming": { "alias": "streaming"; "required": false; "isSignal": true; }; "attachments": { "alias": "attachments"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "maxRows": { "alias": "maxRows"; "required": false; "isSignal": true; }; "submitOnEnter": { "alias": "submitOnEnter"; "required": false; "isSignal": true; }; "clearOnSend": { "alias": "clearOnSend"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "files": "filesChange"; "send": "send"; "stop": "stop"; }, never, never, true, never>;
205
+ }
206
+
207
+ /**
208
+ * Razonamiento del modelo ("Pensando…"), plegable. Mientras llega se abre y
209
+ * muestra un brillo; al terminar se pliega solo (`autoCollapse`) y resume
210
+ * "Razonó durante N s". El texto admite markdown seguro.
211
+ *
212
+ * @example
213
+ * ```html
214
+ * <cb-chat-reasoning [text]="m.reasoning" [streaming]="m.pensando" [duration]="m.segundos" />
215
+ * ```
216
+ */
217
+ declare class CbChatReasoning {
218
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
219
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
220
+ protected readonly uid: string;
221
+ /** Texto del razonamiento (markdown). */
222
+ readonly text: _angular_core.InputSignal<string>;
223
+ /** El razonamiento sigue llegando. */
224
+ readonly streaming: _angular_core.InputSignalWithTransform<boolean, unknown>;
225
+ /** Segundos que duró (se muestra al terminar). */
226
+ readonly duration: _angular_core.InputSignal<number | undefined>;
227
+ /** Desplegado. */
228
+ readonly open: _angular_core.ModelSignal<boolean>;
229
+ /** Se abre mientras llega y se pliega al terminar. */
230
+ readonly autoCollapse: _angular_core.InputSignalWithTransform<boolean, unknown>;
231
+ protected readonly html: _angular_core.Signal<string>;
232
+ protected readonly summary: _angular_core.Signal<string>;
233
+ constructor();
234
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbChatReasoning, never>;
235
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbChatReasoning, "cb-chat-reasoning", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "streaming": { "alias": "streaming"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "autoCollapse": { "alias": "autoCollapse"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
236
+ }
237
+
238
+ /** Estado de una llamada a herramienta. */
239
+ type CbChatToolStatus = 'running' | 'done' | 'error';
240
+ /**
241
+ * Llamada a una herramienta (función) del asistente: nombre, estado
242
+ * ("Usando buscar_movimientos…", "Usó…", "Falló…") y, al desplegar, la
243
+ * entrada y el resultado como JSON resaltado.
244
+ *
245
+ * @example
246
+ * ```html
247
+ * <cb-chat-tool name="buscar_movimientos" status="done" [input]="{ cuenta: '4829' }" [output]="resultado" />
248
+ * ```
249
+ */
250
+ declare class CbChatTool {
251
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
252
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
253
+ protected readonly uid: string;
254
+ /** Nombre de la herramienta (`buscar_movimientos`). */
255
+ readonly name: _angular_core.InputSignal<string>;
256
+ /** Texto que sustituye al nombre en la cabecera ("Buscando movimientos"). */
257
+ readonly title: _angular_core.InputSignal<string>;
258
+ readonly status: _angular_core.InputSignal<CbChatToolStatus>;
259
+ /** Argumentos (objeto o JSON). */
260
+ readonly input: _angular_core.InputSignal<unknown>;
261
+ /** Resultado (objeto, JSON o texto). */
262
+ readonly output: _angular_core.InputSignal<unknown>;
263
+ /** Desplegado. */
264
+ readonly open: _angular_core.ModelSignal<boolean>;
265
+ protected readonly shownInput: _angular_core.Signal<{
266
+ code: string;
267
+ language: string;
268
+ } | null>;
269
+ protected readonly shownOutput: _angular_core.Signal<{
270
+ code: string;
271
+ language: string;
272
+ } | null>;
273
+ protected readonly label: _angular_core.Signal<string>;
274
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbChatTool, never>;
275
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbChatTool, "cb-chat-tool", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "input": { "alias": "input"; "required": false; "isSignal": true; }; "output": { "alias": "output"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
276
+ }
277
+
278
+ /** URL permitida en un enlace, o `null`. */
279
+ declare function cbSafeUrl(url: string): string | null;
280
+ /** Trozo de un mensaje: HTML seguro o un bloque de código para pintar aparte. */
281
+ type CbMarkdownBlock = {
282
+ readonly kind: 'html';
283
+ readonly html: string;
284
+ } | {
285
+ readonly kind: 'code';
286
+ readonly code: string;
287
+ readonly language: string;
288
+ };
289
+ /** Convierte markdown en HTML seguro (todo el HTML de entrada se escapa). */
290
+ declare function cbMarkdownToHtml(markdown: string): string;
291
+ /**
292
+ * Como `cbMarkdownToHtml`, pero separa los bloques de código del nivel
293
+ * superior para pintarlos con un componente (resaltado, copiar).
294
+ */
295
+ declare function cbMarkdownToBlocks(markdown: string): CbMarkdownBlock[];
296
+
297
+ export { CbChatInput, CbChatMessage, CbChatMessages, CbChatReasoning, CbChatTool, cbMarkdownToBlocks, cbMarkdownToHtml, cbSafeUrl };
298
+ export type { CbChatAttachment, CbChatFeedback, CbChatRole, CbChatSendEvent, CbChatStatus, CbChatToolStatus, CbMarkdownBlock };
299
+ //# sourceMappingURL=caribeng-ui-chat.d.ts.map
@@ -1,10 +1,16 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat } from '@caribeng/ui';
2
4
 
3
5
  /**
4
6
  * Chip de CaribeNG: píldora compacta para representar entidades, filtros o etiquetas
5
7
  * individuales con imagen, icono y botón de cierre opcional.
6
8
  */
7
9
  declare class CbChip {
10
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
11
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
12
+ /** Rellena `{0}`, `{1}`… de un texto traducido. */
13
+ protected readonly fmt: typeof cbFormat;
8
14
  readonly label: _angular_core.InputSignal<string>;
9
15
  readonly icon: _angular_core.InputSignal<string>;
10
16
  readonly image: _angular_core.InputSignal<string>;
@@ -1,6 +1,6 @@
1
- import * as _caribeng_ui from '@caribeng/ui';
2
- import { CbSize } from '@caribeng/ui';
3
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat, CbSize } from '@caribeng/ui';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
 
6
6
  /**
@@ -13,6 +13,10 @@ import { ControlValueAccessor } from '@angular/forms';
13
13
  * ```
14
14
  */
15
15
  declare class CbChips implements ControlValueAccessor {
16
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
17
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
18
+ /** Rellena `{0}`, `{1}`… de un texto traducido. */
19
+ protected readonly fmt: typeof cbFormat;
16
20
  readonly value: _angular_core.ModelSignal<string[]>;
17
21
  readonly placeholder: _angular_core.InputSignal<string>;
18
22
  readonly size: _angular_core.InputSignal<CbSize>;
@@ -0,0 +1,65 @@
1
+ import * as _caribeng_ui_code_block from '@caribeng/ui/code-block';
2
+ import * as _angular_core from '@angular/core';
3
+
4
+ /**
5
+ * Bloque de código de CaribeNG con resaltado de sintaxis propio (sin
6
+ * dependencias), nombre de archivo o lenguaje, botón de copiar, números de
7
+ * línea y líneas destacadas. Sigue el tema claro u oscuro.
8
+ *
9
+ * El código se pinta como texto (tokens), nunca como HTML.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <cb-code-block language="ts" filename="app.config.ts" [code]="codigo" lineNumbers highlightLines="3-4" />
14
+ * ```
15
+ */
16
+ declare class CbCodeBlock {
17
+ /** Código a mostrar. */
18
+ readonly code: _angular_core.InputSignal<string>;
19
+ /** Lenguaje (`ts`, `html`, `css`, `json`, `bash`, `python`, `sql`…). Desconocido = texto. */
20
+ readonly language: _angular_core.InputSignal<string>;
21
+ /** Nombre de archivo en la cabecera (en lugar del lenguaje). */
22
+ readonly filename: _angular_core.InputSignal<string>;
23
+ readonly lineNumbers: _angular_core.InputSignalWithTransform<boolean, unknown>;
24
+ /** Número de la primera línea. */
25
+ readonly startLine: _angular_core.InputSignal<number>;
26
+ /** Líneas destacadas: `"2,5-7"` o `[2, 5, 6, 7]`. */
27
+ readonly highlightLines: _angular_core.InputSignal<string | readonly number[]>;
28
+ /** Parte las líneas largas en lugar de hacer scroll horizontal. */
29
+ readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
30
+ readonly copyable: _angular_core.InputSignalWithTransform<boolean, unknown>;
31
+ /** Muestra la cabecera (lenguaje o archivo y copiar). */
32
+ readonly header: _angular_core.InputSignalWithTransform<boolean, unknown>;
33
+ /** Alto máximo con scroll (`20rem`). */
34
+ readonly maxHeight: _angular_core.InputSignal<string>;
35
+ /** Nombre del bloque. Por defecto, el archivo o el lenguaje. */
36
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
37
+ /** Tokens por línea (sin la línea vacía final que deja un salto de línea al terminar). */
38
+ protected readonly lines: _angular_core.Signal<_caribeng_ui_code_block.CbCodeToken[][]>;
39
+ protected readonly highlighted: _angular_core.Signal<ReadonlySet<number>>;
40
+ protected readonly languageLabel: _angular_core.Signal<string>;
41
+ protected readonly showHeader: _angular_core.Signal<boolean>;
42
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbCodeBlock, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbCodeBlock, "cb-code-block", never, { "code": { "alias": "code"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "filename": { "alias": "filename"; "required": false; "isSignal": true; }; "lineNumbers": { "alias": "lineNumbers"; "required": false; "isSignal": true; }; "startLine": { "alias": "startLine"; "required": false; "isSignal": true; }; "highlightLines": { "alias": "highlightLines"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
44
+ }
45
+
46
+ type CbCodeTokenType = 'plain' | 'keyword' | 'builtin' | 'string' | 'number' | 'comment' | 'function' | 'operator' | 'punctuation' | 'tag' | 'attr' | 'property' | 'variable';
47
+ interface CbCodeToken {
48
+ readonly type: CbCodeTokenType;
49
+ readonly text: string;
50
+ }
51
+ /** Nombre visible de un lenguaje ("ts" → "TypeScript"). */
52
+ declare function cbCodeLanguageLabel(language: string): string;
53
+ /** Si hay reglas de resaltado para el lenguaje. */
54
+ declare function cbCodeSupports(language: string): boolean;
55
+ /**
56
+ * Tokeniza `code` y lo reparte en líneas (los comentarios y strings de varias
57
+ * líneas se parten en cada salto). Lenguaje desconocido = texto plano.
58
+ */
59
+ declare function cbHighlight(code: string, language?: string): CbCodeToken[][];
60
+ /** Interpreta `"1,3-5"` o `[1, 3, 4, 5]` como conjunto de números de línea. */
61
+ declare function cbParseLineSet(value: string | readonly number[] | null | undefined): ReadonlySet<number>;
62
+
63
+ export { CbCodeBlock, cbCodeLanguageLabel, cbCodeSupports, cbHighlight, cbParseLineSet };
64
+ export type { CbCodeToken, CbCodeTokenType };
65
+ //# sourceMappingURL=caribeng-ui-code-block.d.ts.map
@@ -1,6 +1,6 @@
1
- import * as _caribeng_ui from '@caribeng/ui';
2
- import { CbSize } from '@caribeng/ui';
3
1
  import * as _angular_core from '@angular/core';
2
+ import * as _caribeng_ui from '@caribeng/ui';
3
+ import { cbFormat, CbSize } from '@caribeng/ui';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
5
  import { ConnectedPosition } from '@angular/cdk/overlay';
6
6
 
@@ -15,6 +15,10 @@ import { ConnectedPosition } from '@angular/cdk/overlay';
15
15
  * ```
16
16
  */
17
17
  declare class CbColorPicker implements ControlValueAccessor {
18
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
19
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
20
+ protected readonly fmt: typeof cbFormat;
21
+ private readonly injector;
18
22
  /** Color seleccionado (hex `#rrggbb`). Two-way opcional fuera de Forms. */
19
23
  readonly value: _angular_core.ModelSignal<string>;
20
24
  readonly size: _angular_core.InputSignal<CbSize>;
@@ -48,6 +52,8 @@ declare class CbColorPicker implements ControlValueAccessor {
48
52
  protected toggle(): void;
49
53
  protected close(): void;
50
54
  protected onOverlayKeydown(event: KeyboardEvent): void;
55
+ protected onSvKeydown(event: KeyboardEvent): void;
56
+ protected onHueKeydown(event: KeyboardEvent): void;
51
57
  protected onSvPointerDown(event: PointerEvent): void;
52
58
  protected onHuePointerDown(event: PointerEvent): void;
53
59
  private drag;
@@ -0,0 +1,133 @@
1
+ import * as _caribeng_ui_command_palette from '@caribeng/ui/command-palette';
2
+ import * as _angular_core from '@angular/core';
3
+ import * as _caribeng_ui from '@caribeng/ui';
4
+
5
+ /** Acción o página de la paleta de comandos. */
6
+ interface CbCommandItem {
7
+ /** Identificador estable (para `track`). Por defecto, el `label`. */
8
+ id?: string;
9
+ label: string;
10
+ /** Texto secundario bajo el label. */
11
+ description?: string;
12
+ icon?: string;
13
+ /** Grupo en el que se muestra ("Páginas", "Acciones"…). */
14
+ group?: string;
15
+ /** Sinónimos que también encuentran el item (no se muestran). */
16
+ keywords?: readonly string[];
17
+ /** Atajo que se muestra a la derecha, en el formato de `cb-kbd` (`['mod', 'S']`). */
18
+ shortcut?: readonly string[];
19
+ disabled?: boolean;
20
+ /** Acción al elegirlo (además del evento `itemSelect`). */
21
+ command?: (event: CbCommandSelectEvent) => void;
22
+ }
23
+ /** Item elegido en la paleta. */
24
+ interface CbCommandSelectEvent {
25
+ readonly item: CbCommandItem;
26
+ /** Texto buscado en ese momento. */
27
+ readonly query: string;
28
+ readonly originalEvent?: Event;
29
+ }
30
+ /** Grupo de resultados ya filtrados y ordenados. */
31
+ interface CbCommandGroup {
32
+ readonly label: string;
33
+ readonly items: readonly CbCommandItem[];
34
+ }
35
+ /** Minúsculas y sin tildes, carácter a carácter (conserva las posiciones). */
36
+ declare function cbCommandNormalize(text: string): string;
37
+ /**
38
+ * Relevancia de `item` para `query` (0 = no coincide). Prioriza el label que
39
+ * empieza por la búsqueda, luego el inicio de una palabra, el texto contenido,
40
+ * los sinónimos y la descripción, y por último las letras en orden ("cfg" → "Configuración").
41
+ */
42
+ declare function cbCommandScore(item: CbCommandItem, query: string): number;
43
+ /**
44
+ * Filtra, ordena y agrupa los items. Sin búsqueda conserva el orden original;
45
+ * con búsqueda ordena por relevancia y los grupos siguen a su mejor resultado.
46
+ */
47
+ declare function cbCommandFilter(items: readonly CbCommandItem[], query: string, filter?: boolean): CbCommandGroup[];
48
+ /** Partes del label para resaltar la coincidencia contigua con la búsqueda. */
49
+ declare function cbCommandHighlight(label: string, query: string): {
50
+ text: string;
51
+ match: boolean;
52
+ }[];
53
+
54
+ /**
55
+ * Paleta de comandos de CaribeNG (Ctrl/⌘ + K): buscador global de páginas y
56
+ * acciones con teclado. Filtra sin tildes ni mayúsculas, agrupa, resalta la
57
+ * coincidencia y muestra atajos con `cb-kbd`.
58
+ *
59
+ * Accesibilidad: diálogo modal con un combobox (`aria-activedescendant`) que
60
+ * controla una lista de opciones; el foco no sale del campo y vuelve al
61
+ * elemento anterior al cerrar.
62
+ *
63
+ * @example
64
+ * ```html
65
+ * <cb-command-palette [items]="comandos" (itemSelect)="ir($event.item)" />
66
+ * ```
67
+ */
68
+ declare class CbCommandPalette {
69
+ /** Textos de interfaz en el idioma activo (`provideCaribeNG({ locale })`). */
70
+ protected readonly t: _angular_core.Signal<_caribeng_ui.CbTranslation>;
71
+ private readonly overlay;
72
+ private readonly vcr;
73
+ private readonly document;
74
+ private readonly injector;
75
+ private readonly tpl;
76
+ private readonly inputEl;
77
+ private overlayRef;
78
+ private previouslyFocused;
79
+ protected readonly listId: string;
80
+ /** Páginas y acciones. */
81
+ readonly items: _angular_core.InputSignal<readonly CbCommandItem[]>;
82
+ /** Abierta o cerrada. */
83
+ readonly visible: _angular_core.ModelSignal<boolean>;
84
+ /** Texto buscado (bidireccional, para búsquedas en servidor). */
85
+ readonly query: _angular_core.ModelSignal<string>;
86
+ /** Atajo global que abre o cierra la paleta. `''` lo desactiva. */
87
+ readonly shortcut: _angular_core.InputSignal<string>;
88
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
89
+ /** Mensaje sin resultados. Por defecto, "Sin resultados". */
90
+ readonly emptyMessage: _angular_core.InputSignal<string | undefined>;
91
+ /** Nombre del diálogo. Por defecto, "Paleta de comandos". */
92
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
93
+ /** Filtra `items` con la búsqueda. Desactívalo si los resultados llegan ya filtrados (servidor). */
94
+ readonly filter: _angular_core.InputSignalWithTransform<boolean, unknown>;
95
+ /** Muestra "Cargando" mientras no hay resultados. */
96
+ readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
97
+ /** Cierra la paleta al elegir un item. */
98
+ readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
99
+ /** Item elegido (con clic o Enter). */
100
+ readonly itemSelect: _angular_core.OutputEmitterRef<CbCommandSelectEvent>;
101
+ protected readonly label: _angular_core.Signal<string>;
102
+ protected readonly groups: _angular_core.Signal<_caribeng_ui_command_palette.CbCommandGroup[]>;
103
+ /** Resultados en el orden en que se muestran (para el teclado). */
104
+ protected readonly flat: _angular_core.Signal<CbCommandItem[]>;
105
+ private readonly enabled;
106
+ protected readonly activeItem: _angular_core.WritableSignal<CbCommandItem | null>;
107
+ protected readonly activeOptionId: _angular_core.Signal<string | null>;
108
+ protected readonly announcement: _angular_core.Signal<string>;
109
+ constructor();
110
+ open(): void;
111
+ close(): void;
112
+ toggle(): void;
113
+ protected optionId(item: CbCommandItem): string;
114
+ protected highlight(item: CbCommandItem): {
115
+ text: string;
116
+ match: boolean;
117
+ }[];
118
+ protected onDocumentKeydown(event: KeyboardEvent): void;
119
+ protected onInput(event: Event): void;
120
+ protected hover(item: CbCommandItem): void;
121
+ protected onKeydown(event: KeyboardEvent): void;
122
+ /** Elige un item: ejecuta su `command`, emite `itemSelect` y cierra (según `closeOnSelect`). */
123
+ select(item: CbCommandItem, originalEvent?: Event): void;
124
+ private setActive;
125
+ private attach;
126
+ private detach;
127
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CbCommandPalette, never>;
128
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CbCommandPalette, "cb-command-palette", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "query": "queryChange"; "itemSelect": "itemSelect"; }, never, never, true, never>;
129
+ }
130
+
131
+ export { CbCommandPalette, cbCommandFilter, cbCommandHighlight, cbCommandNormalize, cbCommandScore };
132
+ export type { CbCommandGroup, CbCommandItem, CbCommandSelectEvent };
133
+ //# sourceMappingURL=caribeng-ui-command-palette.d.ts.map