@caribeng/ui 22.4.0 → 22.5.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 (186) hide show
  1. package/README.md +311 -313
  2. package/fesm2022/caribeng-ui-account-picker.mjs +533 -0
  3. package/fesm2022/caribeng-ui-aging.mjs +488 -0
  4. package/fesm2022/{caribeng-ui-caribe-alert.mjs → caribeng-ui-alert.mjs} +45 -45
  5. package/fesm2022/caribeng-ui-amount.mjs +249 -0
  6. package/fesm2022/caribeng-ui-anchor.mjs +2 -2
  7. package/fesm2022/{caribeng-ui-caribe-animation-lottie.mjs → caribeng-ui-animation-lottie.mjs} +41 -41
  8. package/fesm2022/caribeng-ui-audit-log.mjs +323 -0
  9. package/fesm2022/caribeng-ui-avatar.mjs +2 -2
  10. package/fesm2022/caribeng-ui-breadcrumb.mjs +13 -3
  11. package/fesm2022/{caribeng-ui-caribe-button-group.mjs → caribeng-ui-button-group.mjs} +15 -15
  12. package/fesm2022/caribeng-ui-button.mjs +2 -2
  13. package/fesm2022/{caribeng-ui-caribe-card-content.mjs → caribeng-ui-card-content.mjs} +39 -39
  14. package/fesm2022/{caribeng-ui-caribe-card-move.mjs → caribeng-ui-card-move.mjs} +65 -65
  15. package/fesm2022/{caribeng-ui-caribe-card-primary.mjs → caribeng-ui-card-primary.mjs} +31 -31
  16. package/fesm2022/{caribeng-ui-caribe-card-select.mjs → caribeng-ui-card-select.mjs} +67 -67
  17. package/fesm2022/caribeng-ui-carousel.mjs +2 -2
  18. package/fesm2022/caribeng-ui-cascadeselect.mjs +45 -9
  19. package/fesm2022/caribeng-ui-chat.mjs +2 -2
  20. package/fesm2022/{caribeng-ui-caribe-coachmark.mjs → caribeng-ui-coachmark.mjs} +85 -85
  21. package/fesm2022/caribeng-ui-command-palette.mjs +2 -2
  22. package/fesm2022/caribeng-ui-comments.mjs +864 -0
  23. package/fesm2022/caribeng-ui-datagrid.mjs +1635 -0
  24. package/fesm2022/caribeng-ui-dataview.mjs +2 -2
  25. package/fesm2022/caribeng-ui-datepicker.mjs +2 -2
  26. package/fesm2022/caribeng-ui-document.mjs +495 -0
  27. package/fesm2022/{caribeng-ui-caribe-dots-indicator.mjs → caribeng-ui-dots-indicator.mjs} +41 -41
  28. package/fesm2022/caribeng-ui-dynamic-form.mjs +1581 -0
  29. package/fesm2022/caribeng-ui-editor.mjs +2303 -1311
  30. package/fesm2022/{caribeng-ui-caribe-expansion-panel.mjs → caribeng-ui-expansion-panel.mjs} +39 -39
  31. package/fesm2022/{caribeng-ui-caribe-fab-menu.mjs → caribeng-ui-fab-menu.mjs} +75 -75
  32. package/fesm2022/caribeng-ui-file-card.mjs +2 -2
  33. package/fesm2022/{caribeng-ui-caribe-file-download.mjs → caribeng-ui-file-download.mjs} +63 -63
  34. package/fesm2022/caribeng-ui-financial-report.mjs +380 -0
  35. package/fesm2022/{caribeng-ui-caribe-float-menu.mjs → caribeng-ui-float-menu.mjs} +31 -31
  36. package/fesm2022/caribeng-ui-floatlabel.mjs +2 -2
  37. package/fesm2022/caribeng-ui-flow.mjs +1508 -0
  38. package/fesm2022/{caribeng-ui-caribe-footer.mjs → caribeng-ui-footer.mjs} +19 -19
  39. package/fesm2022/caribeng-ui-gantt.mjs +1094 -0
  40. package/fesm2022/{caribeng-ui-caribe-header.mjs → caribeng-ui-header.mjs} +49 -49
  41. package/fesm2022/{caribeng-ui-caribe-icon-button.mjs → caribeng-ui-icon-button.mjs} +23 -23
  42. package/fesm2022/caribeng-ui-image-cropper.mjs +671 -0
  43. package/fesm2022/caribeng-ui-import-wizard.mjs +746 -0
  44. package/fesm2022/caribeng-ui-infinite-scroll.mjs +226 -0
  45. package/fesm2022/caribeng-ui-input-number.mjs +22 -6
  46. package/fesm2022/{caribeng-ui-caribe-input-search.mjs → caribeng-ui-input-search.mjs} +65 -65
  47. package/fesm2022/{caribeng-ui-caribe-input-token.mjs → caribeng-ui-input-token.mjs} +59 -59
  48. package/fesm2022/caribeng-ui-inputotp.mjs +2 -2
  49. package/fesm2022/caribeng-ui-journal-entry.mjs +340 -0
  50. package/fesm2022/caribeng-ui-kanban.mjs +6 -6
  51. package/fesm2022/caribeng-ui-kpi.mjs +189 -0
  52. package/fesm2022/{caribeng-ui-caribe-link.mjs → caribeng-ui-link.mjs} +37 -37
  53. package/fesm2022/caribeng-ui-masonry.mjs +93 -0
  54. package/fesm2022/caribeng-ui-media-player.mjs +821 -0
  55. package/fesm2022/caribeng-ui-mentions.mjs +2 -2
  56. package/fesm2022/caribeng-ui-notification-center.mjs +636 -0
  57. package/fesm2022/{caribeng-ui-caribe-off-canvas.mjs → caribeng-ui-off-canvas.mjs} +55 -55
  58. package/fesm2022/{caribeng-ui-caribe-onboarding.mjs → caribeng-ui-onboarding.mjs} +105 -105
  59. package/fesm2022/caribeng-ui-orderlist.mjs +2 -2
  60. package/fesm2022/caribeng-ui-pdfviewer.mjs +1755 -25
  61. package/fesm2022/caribeng-ui-period-picker.mjs +637 -0
  62. package/fesm2022/caribeng-ui-phone-input.mjs +2 -2
  63. package/fesm2022/caribeng-ui-picklist.mjs +2 -2
  64. package/fesm2022/caribeng-ui-pivot.mjs +419 -0
  65. package/fesm2022/caribeng-ui-pricing.mjs +2 -2
  66. package/fesm2022/caribeng-ui-rating.mjs +14 -17
  67. package/fesm2022/caribeng-ui-reconciliation.mjs +386 -0
  68. package/fesm2022/caribeng-ui-scheduler.mjs +1027 -0
  69. package/fesm2022/caribeng-ui-select.mjs +2 -2
  70. package/fesm2022/{caribeng-ui-caribe-shortcut.mjs → caribeng-ui-shortcut.mjs} +29 -29
  71. package/fesm2022/caribeng-ui-sidebar.mjs +2 -2
  72. package/fesm2022/caribeng-ui-signature-pad.mjs +654 -0
  73. package/fesm2022/{caribeng-ui-caribe-status.mjs → caribeng-ui-status.mjs} +11 -11
  74. package/fesm2022/{caribeng-ui-caribe-step-indicator.mjs → caribeng-ui-step-indicator.mjs} +53 -53
  75. package/fesm2022/caribeng-ui-stepper.mjs +2 -2
  76. package/fesm2022/caribeng-ui-steps.mjs +2 -2
  77. package/fesm2022/caribeng-ui-table.mjs +323 -15
  78. package/fesm2022/caribeng-ui-tabmenu.mjs +2 -2
  79. package/fesm2022/caribeng-ui-tabs.mjs +2 -2
  80. package/fesm2022/{caribeng-ui-caribe-tag-button.mjs → caribeng-ui-tag-button.mjs} +25 -25
  81. package/fesm2022/caribeng-ui-tag.mjs +2 -2
  82. package/fesm2022/caribeng-ui-tieredmenu.mjs +6 -6
  83. package/fesm2022/{caribeng-ui-caribe-tracker.mjs → caribeng-ui-tracker.mjs} +29 -29
  84. package/fesm2022/{caribeng-ui-caribe-transaction-status.mjs → caribeng-ui-transaction-status.mjs} +11 -11
  85. package/fesm2022/caribeng-ui-treeselect.mjs +44 -9
  86. package/fesm2022/caribeng-ui-treetable.mjs +236 -17
  87. package/fesm2022/{caribeng-ui-caribe-voucher.mjs → caribeng-ui-voucher.mjs} +45 -45
  88. package/fesm2022/caribeng-ui-xlsx.mjs +486 -0
  89. package/fesm2022/caribeng-ui.mjs +1181 -1
  90. package/package.json +217 -177
  91. package/types/caribeng-ui-account-picker.d.ts +142 -0
  92. package/types/caribeng-ui-aging.d.ts +123 -0
  93. package/types/{caribeng-ui-caribe-alert.d.ts → caribeng-ui-alert.d.ts} +2 -2
  94. package/types/caribeng-ui-amount.d.ts +82 -0
  95. package/types/{caribeng-ui-caribe-animation-lottie.d.ts → caribeng-ui-animation-lottie.d.ts} +2 -2
  96. package/types/caribeng-ui-audit-log.d.ts +86 -0
  97. package/types/caribeng-ui-breadcrumb.d.ts +2 -2
  98. package/types/{caribeng-ui-caribe-button-group.d.ts → caribeng-ui-button-group.d.ts} +2 -2
  99. package/types/{caribeng-ui-caribe-card-content.d.ts → caribeng-ui-card-content.d.ts} +2 -2
  100. package/types/{caribeng-ui-caribe-card-move.d.ts → caribeng-ui-card-move.d.ts} +1 -1
  101. package/types/{caribeng-ui-caribe-card-primary.d.ts → caribeng-ui-card-primary.d.ts} +2 -2
  102. package/types/{caribeng-ui-caribe-card-select.d.ts → caribeng-ui-card-select.d.ts} +2 -2
  103. package/types/caribeng-ui-cascadeselect.d.ts +6 -0
  104. package/types/{caribeng-ui-caribe-coachmark.d.ts → caribeng-ui-coachmark.d.ts} +2 -2
  105. package/types/caribeng-ui-comments.d.ts +214 -0
  106. package/types/caribeng-ui-datagrid.d.ts +269 -0
  107. package/types/caribeng-ui-document.d.ts +138 -0
  108. package/types/{caribeng-ui-caribe-dots-indicator.d.ts → caribeng-ui-dots-indicator.d.ts} +2 -2
  109. package/types/caribeng-ui-dynamic-form.d.ts +409 -0
  110. package/types/caribeng-ui-editor.d.ts +110 -12
  111. package/types/{caribeng-ui-caribe-expansion-panel.d.ts → caribeng-ui-expansion-panel.d.ts} +1 -1
  112. package/types/{caribeng-ui-caribe-fab-menu.d.ts → caribeng-ui-fab-menu.d.ts} +2 -2
  113. package/types/{caribeng-ui-caribe-file-download.d.ts → caribeng-ui-file-download.d.ts} +1 -1
  114. package/types/caribeng-ui-financial-report.d.ts +102 -0
  115. package/types/{caribeng-ui-caribe-float-menu.d.ts → caribeng-ui-float-menu.d.ts} +2 -2
  116. package/types/caribeng-ui-flow.d.ts +228 -0
  117. package/types/{caribeng-ui-caribe-footer.d.ts → caribeng-ui-footer.d.ts} +2 -2
  118. package/types/caribeng-ui-gantt.d.ts +244 -0
  119. package/types/{caribeng-ui-caribe-header.d.ts → caribeng-ui-header.d.ts} +2 -2
  120. package/types/{caribeng-ui-caribe-icon-button.d.ts → caribeng-ui-icon-button.d.ts} +2 -2
  121. package/types/{caribeng-ui-caribe-illustration.d.ts → caribeng-ui-illustration.d.ts} +1 -1
  122. package/types/caribeng-ui-image-cropper.d.ts +169 -0
  123. package/types/caribeng-ui-import-wizard.d.ts +149 -0
  124. package/types/caribeng-ui-infinite-scroll.d.ts +75 -0
  125. package/types/caribeng-ui-input-number.d.ts +1 -1
  126. package/types/{caribeng-ui-caribe-input-search.d.ts → caribeng-ui-input-search.d.ts} +2 -2
  127. package/types/{caribeng-ui-caribe-input-token.d.ts → caribeng-ui-input-token.d.ts} +2 -2
  128. package/types/caribeng-ui-journal-entry.d.ts +110 -0
  129. package/types/caribeng-ui-kpi.d.ts +64 -0
  130. package/types/{caribeng-ui-caribe-link.d.ts → caribeng-ui-link.d.ts} +2 -2
  131. package/types/{caribeng-ui-caribe-logo.d.ts → caribeng-ui-logo.d.ts} +1 -1
  132. package/types/caribeng-ui-masonry.d.ts +32 -0
  133. package/types/caribeng-ui-media-player.d.ts +140 -0
  134. package/types/caribeng-ui-notification-center.d.ts +153 -0
  135. package/types/{caribeng-ui-caribe-off-canvas.d.ts → caribeng-ui-off-canvas.d.ts} +2 -2
  136. package/types/{caribeng-ui-caribe-onboarding.d.ts → caribeng-ui-onboarding.d.ts} +2 -2
  137. package/types/caribeng-ui-pdfviewer.d.ts +245 -5
  138. package/types/caribeng-ui-period-picker.d.ts +148 -0
  139. package/types/caribeng-ui-pivot.d.ts +116 -0
  140. package/types/caribeng-ui-reconciliation.d.ts +109 -0
  141. package/types/caribeng-ui-scheduler.d.ts +188 -0
  142. package/types/{caribeng-ui-caribe-shortcut.d.ts → caribeng-ui-shortcut.d.ts} +2 -2
  143. package/types/caribeng-ui-signature-pad.d.ts +151 -0
  144. package/types/{caribeng-ui-caribe-status.d.ts → caribeng-ui-status.d.ts} +2 -2
  145. package/types/{caribeng-ui-caribe-step-indicator.d.ts → caribeng-ui-step-indicator.d.ts} +2 -2
  146. package/types/caribeng-ui-table.d.ts +66 -2
  147. package/types/{caribeng-ui-caribe-tag-button.d.ts → caribeng-ui-tag-button.d.ts} +2 -2
  148. package/types/{caribeng-ui-caribe-tracker.d.ts → caribeng-ui-tracker.d.ts} +2 -2
  149. package/types/{caribeng-ui-caribe-transaction-status.d.ts → caribeng-ui-transaction-status.d.ts} +2 -2
  150. package/types/caribeng-ui-treeselect.d.ts +6 -0
  151. package/types/caribeng-ui-treetable.d.ts +67 -2
  152. package/types/{caribeng-ui-caribe-voucher.d.ts → caribeng-ui-voucher.d.ts} +2 -2
  153. package/types/caribeng-ui-xlsx.d.ts +79 -0
  154. package/types/caribeng-ui.d.ts +711 -2
  155. package/fesm2022/caribeng-ui-caribe-calendar.mjs +0 -92
  156. package/fesm2022/caribeng-ui-caribe-circle-loading.mjs +0 -130
  157. package/fesm2022/caribeng-ui-caribe-data-table.mjs +0 -94
  158. package/fesm2022/caribeng-ui-caribe-file-select.mjs +0 -88
  159. package/fesm2022/caribeng-ui-caribe-inline-alert.mjs +0 -100
  160. package/fesm2022/caribeng-ui-caribe-input-date.mjs +0 -138
  161. package/fesm2022/caribeng-ui-caribe-input-select.mjs +0 -154
  162. package/fesm2022/caribeng-ui-caribe-loader.mjs +0 -48
  163. package/fesm2022/caribeng-ui-caribe-modal.mjs +0 -119
  164. package/fesm2022/caribeng-ui-caribe-pictogram.mjs +0 -52
  165. package/fesm2022/caribeng-ui-caribe-pop-over.mjs +0 -104
  166. package/fesm2022/caribeng-ui-caribe-preloader.mjs +0 -57
  167. package/fesm2022/caribeng-ui-caribe-progress-bar.mjs +0 -84
  168. package/fesm2022/caribeng-ui-caribe-stroke.mjs +0 -69
  169. package/fesm2022/caribeng-ui-caribe-switch.mjs +0 -182
  170. package/types/caribeng-ui-caribe-calendar.d.ts +0 -27
  171. package/types/caribeng-ui-caribe-circle-loading.d.ts +0 -28
  172. package/types/caribeng-ui-caribe-data-table.d.ts +0 -26
  173. package/types/caribeng-ui-caribe-file-select.d.ts +0 -31
  174. package/types/caribeng-ui-caribe-inline-alert.d.ts +0 -28
  175. package/types/caribeng-ui-caribe-input-date.d.ts +0 -40
  176. package/types/caribeng-ui-caribe-input-select.d.ts +0 -47
  177. package/types/caribeng-ui-caribe-loader.d.ts +0 -22
  178. package/types/caribeng-ui-caribe-modal.d.ts +0 -21
  179. package/types/caribeng-ui-caribe-pictogram.d.ts +0 -15
  180. package/types/caribeng-ui-caribe-pop-over.d.ts +0 -17
  181. package/types/caribeng-ui-caribe-preloader.d.ts +0 -24
  182. package/types/caribeng-ui-caribe-progress-bar.d.ts +0 -28
  183. package/types/caribeng-ui-caribe-stroke.d.ts +0 -17
  184. package/types/caribeng-ui-caribe-switch.d.ts +0 -55
  185. /package/fesm2022/{caribeng-ui-caribe-illustration.mjs → caribeng-ui-illustration.mjs} +0 -0
  186. /package/fesm2022/{caribeng-ui-caribe-logo.mjs → caribeng-ui-logo.mjs} +0 -0
@@ -3,7 +3,7 @@ import { input, output, ViewEncapsulation, ChangeDetectionStrategy, Component }
3
3
  import { injectCbTranslation } from '@caribeng/ui';
4
4
 
5
5
  /**
6
- * Card-content de Caribe Design: tarjeta de contenido con título, subtítulo,
6
+ * Card-content: tarjeta de contenido con título, subtítulo,
7
7
  * cuerpo proyectado y una acción al pie.
8
8
  *
9
9
  * @example
@@ -24,48 +24,48 @@ class CbCardContent {
24
24
  this.action = output();
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardContent, isStandalone: true, selector: "cb-card-content", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action" }, ngImport: i0, template: `
28
- <article class="cb-card-content">
29
- <header class="cb-card-content__head">
30
- <strong class="cb-card-content__title">{{ title() }}</strong>
31
- @if (subtitle()) {
32
- <span class="cb-card-content__subtitle">{{ subtitle() }}</span>
33
- }
34
- </header>
35
- <div class="cb-card-content__body"><ng-content /></div>
36
- <footer class="cb-card-content__foot">
37
- <button
38
- type="button"
39
- class="cb-card-content__action"
40
- (click)="action.emit()"
41
- >
42
- {{ (actionLabel() ?? t().viewDetails) }}
43
- </button>
44
- </footer>
45
- </article>
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardContent, isStandalone: true, selector: "cb-card-content", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action" }, ngImport: i0, template: `
28
+ <article class="cb-card-content">
29
+ <header class="cb-card-content__head">
30
+ <strong class="cb-card-content__title">{{ title() }}</strong>
31
+ @if (subtitle()) {
32
+ <span class="cb-card-content__subtitle">{{ subtitle() }}</span>
33
+ }
34
+ </header>
35
+ <div class="cb-card-content__body"><ng-content /></div>
36
+ <footer class="cb-card-content__foot">
37
+ <button
38
+ type="button"
39
+ class="cb-card-content__action"
40
+ (click)="action.emit()"
41
+ >
42
+ {{ (actionLabel() ?? t().viewDetails) }}
43
+ </button>
44
+ </footer>
45
+ </article>
46
46
  `, isInline: true, styles: [":host{display:block;width:100%;max-width:24rem}.cb-card-content{display:flex;flex-direction:column;gap:var(--cb-space-3, .75rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-sm, 0 1px 3px rgba(0, 0, 0, .08))}.cb-card-content__head{display:flex;flex-direction:column;gap:var(--cb-space-1, .2rem)}.cb-card-content__title{font-size:var(--cb-text-lg, 1rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-content__subtitle{font-size:var(--cb-text-sm, .8125rem);color:var(--cb-color-text-muted, #64748b)}.cb-card-content__body{font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text, #334155);line-height:var(--cb-line-height-relaxed, 1.6)}.cb-card-content__foot{display:flex;justify-content:flex-end}.cb-card-content__action{padding:var(--cb-space-2, .5rem) var(--cb-space-4, 1rem);font:inherit;font-size:var(--cb-text-sm, .875rem);font-weight:var(--cb-font-weight-semibold, 600);color:var(--cb-color-primary-700, #065f46);background-color:var(--cb-color-primary-50, #ecfdf5);border:none;border-radius:var(--cb-radius-md, .5rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-content__action:hover{background-color:var(--cb-color-primary-100, #d1fae5)}:host-context([data-theme=\"dark\"]) .cb-card-content{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-content__body{color:var(--cb-color-surface-200, #e2e8f0)}:host-context([data-theme=\"dark\"]) .cb-card-content__action{color:var(--cb-color-primary-200, #a7f3d0);background-color:color-mix(in srgb,var(--cb-color-primary-500, #10b981) 20%,transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardContent, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: 'cb-card-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
51
- <article class="cb-card-content">
52
- <header class="cb-card-content__head">
53
- <strong class="cb-card-content__title">{{ title() }}</strong>
54
- @if (subtitle()) {
55
- <span class="cb-card-content__subtitle">{{ subtitle() }}</span>
56
- }
57
- </header>
58
- <div class="cb-card-content__body"><ng-content /></div>
59
- <footer class="cb-card-content__foot">
60
- <button
61
- type="button"
62
- class="cb-card-content__action"
63
- (click)="action.emit()"
64
- >
65
- {{ (actionLabel() ?? t().viewDetails) }}
66
- </button>
67
- </footer>
68
- </article>
50
+ args: [{ selector: 'cb-card-content', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
51
+ <article class="cb-card-content">
52
+ <header class="cb-card-content__head">
53
+ <strong class="cb-card-content__title">{{ title() }}</strong>
54
+ @if (subtitle()) {
55
+ <span class="cb-card-content__subtitle">{{ subtitle() }}</span>
56
+ }
57
+ </header>
58
+ <div class="cb-card-content__body"><ng-content /></div>
59
+ <footer class="cb-card-content__foot">
60
+ <button
61
+ type="button"
62
+ class="cb-card-content__action"
63
+ (click)="action.emit()"
64
+ >
65
+ {{ (actionLabel() ?? t().viewDetails) }}
66
+ </button>
67
+ </footer>
68
+ </article>
69
69
  `, styles: [":host{display:block;width:100%;max-width:24rem}.cb-card-content{display:flex;flex-direction:column;gap:var(--cb-space-3, .75rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-sm, 0 1px 3px rgba(0, 0, 0, .08))}.cb-card-content__head{display:flex;flex-direction:column;gap:var(--cb-space-1, .2rem)}.cb-card-content__title{font-size:var(--cb-text-lg, 1rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-content__subtitle{font-size:var(--cb-text-sm, .8125rem);color:var(--cb-color-text-muted, #64748b)}.cb-card-content__body{font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text, #334155);line-height:var(--cb-line-height-relaxed, 1.6)}.cb-card-content__foot{display:flex;justify-content:flex-end}.cb-card-content__action{padding:var(--cb-space-2, .5rem) var(--cb-space-4, 1rem);font:inherit;font-size:var(--cb-text-sm, .875rem);font-weight:var(--cb-font-weight-semibold, 600);color:var(--cb-color-primary-700, #065f46);background-color:var(--cb-color-primary-50, #ecfdf5);border:none;border-radius:var(--cb-radius-md, .5rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-content__action:hover{background-color:var(--cb-color-primary-100, #d1fae5)}:host-context([data-theme=\"dark\"]) .cb-card-content{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-content__body{color:var(--cb-color-surface-200, #e2e8f0)}:host-context([data-theme=\"dark\"]) .cb-card-content__action{color:var(--cb-color-primary-200, #a7f3d0);background-color:color-mix(in srgb,var(--cb-color-primary-500, #10b981) 20%,transparent)}\n"] }]
70
70
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], actionLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionLabel", required: false }] }], action: [{ type: i0.Output, args: ["action"] }] } });
71
71
 
@@ -3,7 +3,7 @@ import { model, inject, ElementRef, Injector, afterNextRender, ViewEncapsulation
3
3
  import { injectCbTranslation } from '@caribeng/ui';
4
4
 
5
5
  /**
6
- * Card-move de Caribe Design: lista de elementos reordenables mediante botones
6
+ * Card-move: lista de elementos reordenables mediante botones
7
7
  * de subir/bajar.
8
8
  *
9
9
  * @example
@@ -42,74 +42,74 @@ class CbCardMove {
42
42
  }, { injector: this.injector });
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardMove, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardMove, isStandalone: true, selector: "cb-card-move", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, ngImport: i0, template: `
46
- <section class="cb-card-move">
47
- <ul class="cb-card-move__list">
48
- @for (item of items(); track $index) {
49
- <li class="cb-card-move__item">
50
- <span class="cb-card-move__label" [id]="uid + '-' + $index">{{ item }}</span>
51
- <span class="cb-card-move__controls">
52
- <button
53
- type="button"
54
- class="cb-card-move__btn"
55
- [attr.aria-label]="t().moveUp"
56
- [attr.aria-describedby]="uid + '-' + $index"
57
- [disabled]="$first"
58
- (click)="move($index, -1)"
59
- >
60
- ↑
61
- </button>
62
- <button
63
- type="button"
64
- class="cb-card-move__btn"
65
- [attr.aria-label]="t().moveDown"
66
- [attr.aria-describedby]="uid + '-' + $index"
67
- [disabled]="$last"
68
- (click)="move($index, 1)"
69
- >
70
- ↓
71
- </button>
72
- </span>
73
- </li>
74
- }
75
- </ul>
76
- </section>
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardMove, isStandalone: true, selector: "cb-card-move", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, ngImport: i0, template: `
46
+ <section class="cb-card-move">
47
+ <ul class="cb-card-move__list">
48
+ @for (item of items(); track $index) {
49
+ <li class="cb-card-move__item">
50
+ <span class="cb-card-move__label" [id]="uid + '-' + $index">{{ item }}</span>
51
+ <span class="cb-card-move__controls">
52
+ <button
53
+ type="button"
54
+ class="cb-card-move__btn"
55
+ [attr.aria-label]="t().moveUp"
56
+ [attr.aria-describedby]="uid + '-' + $index"
57
+ [disabled]="$first"
58
+ (click)="move($index, -1)"
59
+ >
60
+ ↑
61
+ </button>
62
+ <button
63
+ type="button"
64
+ class="cb-card-move__btn"
65
+ [attr.aria-label]="t().moveDown"
66
+ [attr.aria-describedby]="uid + '-' + $index"
67
+ [disabled]="$last"
68
+ (click)="move($index, 1)"
69
+ >
70
+ ↓
71
+ </button>
72
+ </span>
73
+ </li>
74
+ }
75
+ </ul>
76
+ </section>
77
77
  `, isInline: true, styles: [":host{display:block;width:100%;max-width:24rem}.cb-card-move{box-sizing:border-box;padding:var(--cb-space-2, .5rem);font-family:var(--cb-font-sans, inherit);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem)}.cb-card-move__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem)}.cb-card-move__item{display:flex;align-items:center;justify-content:space-between;gap:var(--cb-space-3, .75rem);padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-50, #f8fafc);border-radius:var(--cb-radius-md, .5rem)}.cb-card-move__controls{display:inline-flex;gap:var(--cb-space-1, .25rem)}.cb-card-move__btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;font-size:.9rem;color:var(--cb-color-text, #334155);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-sm, .375rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-move__btn:hover:not(:disabled){background-color:var(--cb-color-surface-100, #f1f5f9)}.cb-card-move__btn:disabled{opacity:.4;cursor:not-allowed}:host-context([data-theme=\"dark\"]) .cb-card-move{background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-move__item{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-900, #0f172a)}:host-context([data-theme=\"dark\"]) .cb-card-move__btn{color:var(--cb-color-surface-100, #f1f5f9);background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-move__btn:hover:not(:disabled){background-color:var(--cb-color-surface-700, #334155)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardMove, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'cb-card-move', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
82
- <section class="cb-card-move">
83
- <ul class="cb-card-move__list">
84
- @for (item of items(); track $index) {
85
- <li class="cb-card-move__item">
86
- <span class="cb-card-move__label" [id]="uid + '-' + $index">{{ item }}</span>
87
- <span class="cb-card-move__controls">
88
- <button
89
- type="button"
90
- class="cb-card-move__btn"
91
- [attr.aria-label]="t().moveUp"
92
- [attr.aria-describedby]="uid + '-' + $index"
93
- [disabled]="$first"
94
- (click)="move($index, -1)"
95
- >
96
- ↑
97
- </button>
98
- <button
99
- type="button"
100
- class="cb-card-move__btn"
101
- [attr.aria-label]="t().moveDown"
102
- [attr.aria-describedby]="uid + '-' + $index"
103
- [disabled]="$last"
104
- (click)="move($index, 1)"
105
- >
106
- ↓
107
- </button>
108
- </span>
109
- </li>
110
- }
111
- </ul>
112
- </section>
81
+ args: [{ selector: 'cb-card-move', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
82
+ <section class="cb-card-move">
83
+ <ul class="cb-card-move__list">
84
+ @for (item of items(); track $index) {
85
+ <li class="cb-card-move__item">
86
+ <span class="cb-card-move__label" [id]="uid + '-' + $index">{{ item }}</span>
87
+ <span class="cb-card-move__controls">
88
+ <button
89
+ type="button"
90
+ class="cb-card-move__btn"
91
+ [attr.aria-label]="t().moveUp"
92
+ [attr.aria-describedby]="uid + '-' + $index"
93
+ [disabled]="$first"
94
+ (click)="move($index, -1)"
95
+ >
96
+ ↑
97
+ </button>
98
+ <button
99
+ type="button"
100
+ class="cb-card-move__btn"
101
+ [attr.aria-label]="t().moveDown"
102
+ [attr.aria-describedby]="uid + '-' + $index"
103
+ [disabled]="$last"
104
+ (click)="move($index, 1)"
105
+ >
106
+ ↓
107
+ </button>
108
+ </span>
109
+ </li>
110
+ }
111
+ </ul>
112
+ </section>
113
113
  `, styles: [":host{display:block;width:100%;max-width:24rem}.cb-card-move{box-sizing:border-box;padding:var(--cb-space-2, .5rem);font-family:var(--cb-font-sans, inherit);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem)}.cb-card-move__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem)}.cb-card-move__item{display:flex;align-items:center;justify-content:space-between;gap:var(--cb-space-3, .75rem);padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-50, #f8fafc);border-radius:var(--cb-radius-md, .5rem)}.cb-card-move__controls{display:inline-flex;gap:var(--cb-space-1, .25rem)}.cb-card-move__btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;font-size:.9rem;color:var(--cb-color-text, #334155);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-sm, .375rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-move__btn:hover:not(:disabled){background-color:var(--cb-color-surface-100, #f1f5f9)}.cb-card-move__btn:disabled{opacity:.4;cursor:not-allowed}:host-context([data-theme=\"dark\"]) .cb-card-move{background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-move__item{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-900, #0f172a)}:host-context([data-theme=\"dark\"]) .cb-card-move__btn{color:var(--cb-color-surface-100, #f1f5f9);background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-move__btn:hover:not(:disabled){background-color:var(--cb-color-surface-700, #334155)}\n"] }]
114
114
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }] } });
115
115
 
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  /**
5
- * Card-primary de Caribe Design: tarjeta destacada para mostrar un valor
5
+ * Card-primary: tarjeta destacada para mostrar un valor
6
6
  * principal (p. ej. un saldo) con título y subtítulo.
7
7
  *
8
8
  * @example
@@ -20,39 +20,39 @@ class CbCardPrimary {
20
20
  ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
21
21
  }
22
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardPrimary, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardPrimary, isStandalone: true, selector: "cb-card-primary", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
24
- <article class="cb-card-primary">
25
- <header class="cb-card-primary__head">
26
- <span class="cb-card-primary__badge" aria-hidden="true">★</span>
27
- <strong class="cb-card-primary__title">{{ title() }}</strong>
28
- </header>
29
- @if (subtitle()) {
30
- <span class="cb-card-primary__subtitle">{{ subtitle() }}</span>
31
- }
32
- @if (value()) {
33
- <strong class="cb-card-primary__value">{{ value() }}</strong>
34
- }
35
- <ng-content />
36
- </article>
37
- `, isInline: true, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-primary{display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-primary-contrast, #ffffff);background:linear-gradient(135deg,var(--cb-color-primary-600, #047857),var(--cb-color-primary-800, #064e3b));border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-md, 0 6px 16px rgba(0, 0, 0, .18))}.cb-card-primary__head{display:flex;align-items:center;gap:var(--cb-space-2, .5rem)}.cb-card-primary__badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.8rem;background-color:#ffffff2e;border-radius:var(--cb-radius-full, 999px)}.cb-card-primary__title{font-size:var(--cb-text-base, .9375rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-primary__subtitle{font-size:var(--cb-text-sm, .8125rem);opacity:.8}.cb-card-primary__value{margin-top:var(--cb-space-2, .5rem);font-size:var(--cb-text-2xl, 1.75rem);font-weight:var(--cb-font-weight-bold, 700);letter-spacing:-.01em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardPrimary, isStandalone: true, selector: "cb-card-primary", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
24
+ <article class="cb-card-primary">
25
+ <header class="cb-card-primary__head">
26
+ <span class="cb-card-primary__badge" aria-hidden="true">★</span>
27
+ <strong class="cb-card-primary__title">{{ title() }}</strong>
28
+ </header>
29
+ @if (subtitle()) {
30
+ <span class="cb-card-primary__subtitle">{{ subtitle() }}</span>
31
+ }
32
+ @if (value()) {
33
+ <strong class="cb-card-primary__value">{{ value() }}</strong>
34
+ }
35
+ <ng-content />
36
+ </article>
37
+ `, isInline: true, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-primary{display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-primary-contrast, #ffffff);background:linear-gradient(135deg,var(--cb-color-primary-700, #047857),var(--cb-color-primary-900, #064e3b));border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-md, 0 6px 16px rgba(0, 0, 0, .18))}.cb-card-primary__head{display:flex;align-items:center;gap:var(--cb-space-2, .5rem)}.cb-card-primary__badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.8rem;background-color:#ffffff2e;border-radius:var(--cb-radius-full, 999px)}.cb-card-primary__title{font-size:var(--cb-text-base, .9375rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-primary__subtitle{font-size:var(--cb-text-sm, .8125rem);opacity:.8}.cb-card-primary__value{margin-top:var(--cb-space-2, .5rem);font-size:var(--cb-text-2xl, 1.75rem);font-weight:var(--cb-font-weight-bold, 700);letter-spacing:-.01em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardPrimary, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'cb-card-primary', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
42
- <article class="cb-card-primary">
43
- <header class="cb-card-primary__head">
44
- <span class="cb-card-primary__badge" aria-hidden="true">★</span>
45
- <strong class="cb-card-primary__title">{{ title() }}</strong>
46
- </header>
47
- @if (subtitle()) {
48
- <span class="cb-card-primary__subtitle">{{ subtitle() }}</span>
49
- }
50
- @if (value()) {
51
- <strong class="cb-card-primary__value">{{ value() }}</strong>
52
- }
53
- <ng-content />
54
- </article>
55
- `, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-primary{display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-primary-contrast, #ffffff);background:linear-gradient(135deg,var(--cb-color-primary-600, #047857),var(--cb-color-primary-800, #064e3b));border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-md, 0 6px 16px rgba(0, 0, 0, .18))}.cb-card-primary__head{display:flex;align-items:center;gap:var(--cb-space-2, .5rem)}.cb-card-primary__badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.8rem;background-color:#ffffff2e;border-radius:var(--cb-radius-full, 999px)}.cb-card-primary__title{font-size:var(--cb-text-base, .9375rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-primary__subtitle{font-size:var(--cb-text-sm, .8125rem);opacity:.8}.cb-card-primary__value{margin-top:var(--cb-space-2, .5rem);font-size:var(--cb-text-2xl, 1.75rem);font-weight:var(--cb-font-weight-bold, 700);letter-spacing:-.01em}\n"] }]
41
+ args: [{ selector: 'cb-card-primary', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
42
+ <article class="cb-card-primary">
43
+ <header class="cb-card-primary__head">
44
+ <span class="cb-card-primary__badge" aria-hidden="true">★</span>
45
+ <strong class="cb-card-primary__title">{{ title() }}</strong>
46
+ </header>
47
+ @if (subtitle()) {
48
+ <span class="cb-card-primary__subtitle">{{ subtitle() }}</span>
49
+ }
50
+ @if (value()) {
51
+ <strong class="cb-card-primary__value">{{ value() }}</strong>
52
+ }
53
+ <ng-content />
54
+ </article>
55
+ `, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-primary{display:flex;flex-direction:column;gap:var(--cb-space-1, .25rem);box-sizing:border-box;padding:var(--cb-space-5, 1.25rem);font-family:var(--cb-font-sans, inherit);color:var(--cb-color-primary-contrast, #ffffff);background:linear-gradient(135deg,var(--cb-color-primary-700, #047857),var(--cb-color-primary-900, #064e3b));border-radius:var(--cb-radius-lg, .75rem);box-shadow:var(--cb-shadow-md, 0 6px 16px rgba(0, 0, 0, .18))}.cb-card-primary__head{display:flex;align-items:center;gap:var(--cb-space-2, .5rem)}.cb-card-primary__badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.8rem;background-color:#ffffff2e;border-radius:var(--cb-radius-full, 999px)}.cb-card-primary__title{font-size:var(--cb-text-base, .9375rem);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-primary__subtitle{font-size:var(--cb-text-sm, .8125rem);opacity:.8}.cb-card-primary__value{margin-top:var(--cb-space-2, .5rem);font-size:var(--cb-text-2xl, 1.75rem);font-weight:var(--cb-font-weight-bold, 700);letter-spacing:-.01em}\n"] }]
56
56
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }] } });
57
57
 
58
58
  /**
@@ -3,7 +3,7 @@ import { input, model, output, inject, ElementRef, computed, ViewEncapsulation,
3
3
  import { injectCbTranslation } from '@caribeng/ui';
4
4
 
5
5
  /**
6
- * Card-select de Caribe Design: tarjeta con buscador y lista de opciones
6
+ * Card-select: tarjeta con buscador y lista de opciones
7
7
  * seleccionables.
8
8
  *
9
9
  * @example
@@ -55,76 +55,76 @@ class CbCardSelect {
55
55
  options[target].focus();
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardSelect, isStandalone: true, selector: "cb-card-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", selectionChange: "selectionChange", query: "queryChange" }, ngImport: i0, template: `
59
- <section class="cb-card-select">
60
- <input
61
- class="cb-card-select__search"
62
- type="search"
63
- [value]="query()"
64
- (input)="query.set($any($event.target).value)"
65
- [attr.aria-label]="t().filterOptions"
66
- [placeholder]="t().search"
67
- />
68
- <div
69
- class="cb-card-select__list"
70
- role="listbox"
71
- [attr.aria-label]="(label() ?? t().options)"
72
- (keydown)="onListKeydown($event)"
73
- >
74
- @for (item of filtered(); track $index) {
75
- <button
76
- type="button"
77
- class="cb-card-select__option"
78
- role="option"
79
- [class.cb-is-selected]="selected() === item"
80
- [attr.aria-selected]="selected() === item"
81
- [attr.tabindex]="$index === tabbable() ? 0 : -1"
82
- (click)="choose(item)"
83
- >
84
- {{ item }}
85
- </button>
86
- } @empty {
87
- <span class="cb-card-select__empty">{{ t().noResults }}</span>
88
- }
89
- </div>
90
- </section>
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CbCardSelect, isStandalone: true, selector: "cb-card-select", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selectedChange", selectionChange: "selectionChange", query: "queryChange" }, ngImport: i0, template: `
59
+ <section class="cb-card-select">
60
+ <input
61
+ class="cb-card-select__search"
62
+ type="search"
63
+ [value]="query()"
64
+ (input)="query.set($any($event.target).value)"
65
+ [attr.aria-label]="t().filterOptions"
66
+ [placeholder]="t().search"
67
+ />
68
+ <div
69
+ class="cb-card-select__list"
70
+ role="listbox"
71
+ [attr.aria-label]="(label() ?? t().options)"
72
+ (keydown)="onListKeydown($event)"
73
+ >
74
+ @for (item of filtered(); track $index) {
75
+ <button
76
+ type="button"
77
+ class="cb-card-select__option"
78
+ role="option"
79
+ [class.cb-is-selected]="selected() === item"
80
+ [attr.aria-selected]="selected() === item"
81
+ [attr.tabindex]="$index === tabbable() ? 0 : -1"
82
+ (click)="choose(item)"
83
+ >
84
+ {{ item }}
85
+ </button>
86
+ } @empty {
87
+ <span class="cb-card-select__empty">{{ t().noResults }}</span>
88
+ }
89
+ </div>
90
+ </section>
91
91
  `, isInline: true, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-select{display:flex;flex-direction:column;gap:var(--cb-space-2, .5rem);box-sizing:border-box;padding:var(--cb-space-3, .75rem);font-family:var(--cb-font-sans, inherit);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem)}.cb-card-select__search{box-sizing:border-box;width:100%;padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font:inherit;font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-50, #f8fafc);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-md, .5rem)}.cb-card-select__search:focus-visible{outline:2px solid var(--cb-color-focus-ring, var(--cb-color-primary-500, #10b981));outline-offset:0}.cb-card-select__list{display:flex;flex-direction:column;gap:2px;max-height:12rem;overflow-y:auto}.cb-card-select__option{padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font:inherit;font-size:var(--cb-text-sm, .875rem);text-align:left;color:var(--cb-color-text, #334155);background:transparent;border:none;border-radius:var(--cb-radius-md, .5rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-select__option:hover{background-color:var(--cb-color-surface-100, #f1f5f9)}.cb-card-select__option.cb-is-selected{color:var(--cb-color-primary-700, #065f46);background-color:var(--cb-color-primary-50, #ecfdf5);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-select__empty{padding:var(--cb-space-3, .75rem);font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-muted, #64748b);text-align:center}:host-context([data-theme=\"dark\"]) .cb-card-select{background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-select__search{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-900, #0f172a);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-select__option{color:var(--cb-color-surface-100, #f1f5f9)}:host-context([data-theme=\"dark\"]) .cb-card-select__option:hover{background-color:var(--cb-color-surface-700, #334155)}:host-context([data-theme=\"dark\"]) .cb-card-select__option.cb-is-selected{color:var(--cb-color-primary-200, #a7f3d0);background-color:color-mix(in srgb,var(--cb-color-primary-500, #10b981) 20%,transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
92
92
  }
93
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCardSelect, decorators: [{
94
94
  type: Component,
95
- args: [{ selector: 'cb-card-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
96
- <section class="cb-card-select">
97
- <input
98
- class="cb-card-select__search"
99
- type="search"
100
- [value]="query()"
101
- (input)="query.set($any($event.target).value)"
102
- [attr.aria-label]="t().filterOptions"
103
- [placeholder]="t().search"
104
- />
105
- <div
106
- class="cb-card-select__list"
107
- role="listbox"
108
- [attr.aria-label]="(label() ?? t().options)"
109
- (keydown)="onListKeydown($event)"
110
- >
111
- @for (item of filtered(); track $index) {
112
- <button
113
- type="button"
114
- class="cb-card-select__option"
115
- role="option"
116
- [class.cb-is-selected]="selected() === item"
117
- [attr.aria-selected]="selected() === item"
118
- [attr.tabindex]="$index === tabbable() ? 0 : -1"
119
- (click)="choose(item)"
120
- >
121
- {{ item }}
122
- </button>
123
- } @empty {
124
- <span class="cb-card-select__empty">{{ t().noResults }}</span>
125
- }
126
- </div>
127
- </section>
95
+ args: [{ selector: 'cb-card-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: `
96
+ <section class="cb-card-select">
97
+ <input
98
+ class="cb-card-select__search"
99
+ type="search"
100
+ [value]="query()"
101
+ (input)="query.set($any($event.target).value)"
102
+ [attr.aria-label]="t().filterOptions"
103
+ [placeholder]="t().search"
104
+ />
105
+ <div
106
+ class="cb-card-select__list"
107
+ role="listbox"
108
+ [attr.aria-label]="(label() ?? t().options)"
109
+ (keydown)="onListKeydown($event)"
110
+ >
111
+ @for (item of filtered(); track $index) {
112
+ <button
113
+ type="button"
114
+ class="cb-card-select__option"
115
+ role="option"
116
+ [class.cb-is-selected]="selected() === item"
117
+ [attr.aria-selected]="selected() === item"
118
+ [attr.tabindex]="$index === tabbable() ? 0 : -1"
119
+ (click)="choose(item)"
120
+ >
121
+ {{ item }}
122
+ </button>
123
+ } @empty {
124
+ <span class="cb-card-select__empty">{{ t().noResults }}</span>
125
+ }
126
+ </div>
127
+ </section>
128
128
  `, styles: [":host{display:block;width:100%;max-width:22rem}.cb-card-select{display:flex;flex-direction:column;gap:var(--cb-space-2, .5rem);box-sizing:border-box;padding:var(--cb-space-3, .75rem);font-family:var(--cb-font-sans, inherit);background-color:var(--cb-color-surface-0, #ffffff);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-lg, .75rem)}.cb-card-select__search{box-sizing:border-box;width:100%;padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font:inherit;font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-strong, #0f172a);background-color:var(--cb-color-surface-50, #f8fafc);border:1px solid var(--cb-color-border, #e2e8f0);border-radius:var(--cb-radius-md, .5rem)}.cb-card-select__search:focus-visible{outline:2px solid var(--cb-color-focus-ring, var(--cb-color-primary-500, #10b981));outline-offset:0}.cb-card-select__list{display:flex;flex-direction:column;gap:2px;max-height:12rem;overflow-y:auto}.cb-card-select__option{padding:var(--cb-space-2, .5rem) var(--cb-space-3, .75rem);font:inherit;font-size:var(--cb-text-sm, .875rem);text-align:left;color:var(--cb-color-text, #334155);background:transparent;border:none;border-radius:var(--cb-radius-md, .5rem);cursor:pointer;transition:background-color var(--cb-duration-fast, .12s) var(--cb-ease, ease)}.cb-card-select__option:hover{background-color:var(--cb-color-surface-100, #f1f5f9)}.cb-card-select__option.cb-is-selected{color:var(--cb-color-primary-700, #065f46);background-color:var(--cb-color-primary-50, #ecfdf5);font-weight:var(--cb-font-weight-semibold, 600)}.cb-card-select__empty{padding:var(--cb-space-3, .75rem);font-size:var(--cb-text-sm, .875rem);color:var(--cb-color-text-muted, #64748b);text-align:center}:host-context([data-theme=\"dark\"]) .cb-card-select{background-color:var(--cb-color-surface-800, #1e293b);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-select__search{color:var(--cb-color-surface-0, #f8fafc);background-color:var(--cb-color-surface-900, #0f172a);border-color:var(--cb-color-surface-600, #475569)}:host-context([data-theme=\"dark\"]) .cb-card-select__option{color:var(--cb-color-surface-100, #f1f5f9)}:host-context([data-theme=\"dark\"]) .cb-card-select__option:hover{background-color:var(--cb-color-surface-700, #334155)}:host-context([data-theme=\"dark\"]) .cb-card-select__option.cb-is-selected{color:var(--cb-color-primary-200, #a7f3d0);background-color:color-mix(in srgb,var(--cb-color-primary-500, #10b981) 20%,transparent)}\n"] }]
129
129
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }, { type: i0.Output, args: ["selectedChange"] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }] } });
130
130
 
@@ -134,7 +134,7 @@ class CbCarousel {
134
134
  }
135
135
  </div>
136
136
  }
137
- `, isInline: true, styles: [":host{display:block;width:100%;font-family:var(--cb-font-sans)}.cb-carousel__Stage{display:flex;align-items:center;gap:var(--cb-space-3)}.cb-carousel__viewport{flex:1;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:var(--cb-radius-lg);background:var(--cb-color-surface);color:var(--cb-color-text);overflow:hidden}.cb-carousel__slide{padding:var(--cb-space-4)}.cb-carousel__img{width:100%;max-height:180px;object-fit:cover;border-radius:var(--cb-radius-md);margin-bottom:var(--cb-space-3)}.cb-carousel__badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--cb-color-primary-500) 15%,transparent);color:var(--cb-color-primary-500);font-size:.75rem;font-weight:var(--cb-font-semibold);margin-bottom:.375rem}.cb-carousel__title{margin:0 0 .25rem;font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold)}.cb-carousel__desc{margin:0;font-size:var(--cb-text-sm);color:var(--cb-color-text-muted)}.cb-carousel__nav{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:999px;background:var(--cb-color-surface);color:var(--cb-color-text);cursor:pointer}.cb-carousel__indicators{display:flex;justify-content:center;gap:.5rem;margin-top:var(--cb-space-3)}.cb-carousel__dot{width:.55rem;height:.55rem;padding:0;border:none;border-radius:999px;background:var(--cb-color-border);cursor:pointer}.cb-carousel__dot.cb-is-active{width:1.4rem;background:var(--cb-color-primary-500)}\n"], dependencies: [{ kind: "component", type: CbIcon, selector: "cb-icon", inputs: ["name", "size", "spin", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
137
+ `, isInline: true, styles: [":host{display:block;width:100%;font-family:var(--cb-font-sans)}.cb-carousel__Stage{display:flex;align-items:center;gap:var(--cb-space-3)}.cb-carousel__viewport{flex:1;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:var(--cb-radius-lg);background:var(--cb-color-surface);color:var(--cb-color-text);overflow:hidden}.cb-carousel__slide{padding:var(--cb-space-4)}.cb-carousel__img{width:100%;max-height:180px;object-fit:cover;border-radius:var(--cb-radius-md);margin-bottom:var(--cb-space-3)}.cb-carousel__badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--cb-color-primary-500) 15%,transparent);color:var(--cb-color-primary-text);font-size:.75rem;font-weight:var(--cb-font-semibold);margin-bottom:.375rem}.cb-carousel__title{margin:0 0 .25rem;font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold)}.cb-carousel__desc{margin:0;font-size:var(--cb-text-sm);color:var(--cb-color-text-muted)}.cb-carousel__nav{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:999px;background:var(--cb-color-surface);color:var(--cb-color-text);cursor:pointer}.cb-carousel__indicators{display:flex;justify-content:center;gap:.5rem;margin-top:var(--cb-space-3)}.cb-carousel__dot{width:.55rem;height:.55rem;padding:0;border:none;border-radius:999px;background:var(--cb-color-border);cursor:pointer}.cb-carousel__dot.cb-is-active{width:1.4rem;background:var(--cb-color-primary-500)}\n"], dependencies: [{ kind: "component", type: CbIcon, selector: "cb-icon", inputs: ["name", "size", "spin", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
138
138
  }
139
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CbCarousel, decorators: [{
140
140
  type: Component,
@@ -208,7 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
208
208
  }
209
209
  </div>
210
210
  }
211
- `, styles: [":host{display:block;width:100%;font-family:var(--cb-font-sans)}.cb-carousel__Stage{display:flex;align-items:center;gap:var(--cb-space-3)}.cb-carousel__viewport{flex:1;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:var(--cb-radius-lg);background:var(--cb-color-surface);color:var(--cb-color-text);overflow:hidden}.cb-carousel__slide{padding:var(--cb-space-4)}.cb-carousel__img{width:100%;max-height:180px;object-fit:cover;border-radius:var(--cb-radius-md);margin-bottom:var(--cb-space-3)}.cb-carousel__badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--cb-color-primary-500) 15%,transparent);color:var(--cb-color-primary-500);font-size:.75rem;font-weight:var(--cb-font-semibold);margin-bottom:.375rem}.cb-carousel__title{margin:0 0 .25rem;font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold)}.cb-carousel__desc{margin:0;font-size:var(--cb-text-sm);color:var(--cb-color-text-muted)}.cb-carousel__nav{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:999px;background:var(--cb-color-surface);color:var(--cb-color-text);cursor:pointer}.cb-carousel__indicators{display:flex;justify-content:center;gap:.5rem;margin-top:var(--cb-space-3)}.cb-carousel__dot{width:.55rem;height:.55rem;padding:0;border:none;border-radius:999px;background:var(--cb-color-border);cursor:pointer}.cb-carousel__dot.cb-is-active{width:1.4rem;background:var(--cb-color-primary-500)}\n"] }]
211
+ `, styles: [":host{display:block;width:100%;font-family:var(--cb-font-sans)}.cb-carousel__Stage{display:flex;align-items:center;gap:var(--cb-space-3)}.cb-carousel__viewport{flex:1;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:var(--cb-radius-lg);background:var(--cb-color-surface);color:var(--cb-color-text);overflow:hidden}.cb-carousel__slide{padding:var(--cb-space-4)}.cb-carousel__img{width:100%;max-height:180px;object-fit:cover;border-radius:var(--cb-radius-md);margin-bottom:var(--cb-space-3)}.cb-carousel__badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--cb-color-primary-500) 15%,transparent);color:var(--cb-color-primary-text);font-size:.75rem;font-weight:var(--cb-font-semibold);margin-bottom:.375rem}.cb-carousel__title{margin:0 0 .25rem;font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold)}.cb-carousel__desc{margin:0;font-size:var(--cb-text-sm);color:var(--cb-color-text-muted)}.cb-carousel__nav{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:var(--cb-border-width) solid var(--cb-color-border);border-radius:999px;background:var(--cb-color-surface);color:var(--cb-color-text);cursor:pointer}.cb-carousel__indicators{display:flex;justify-content:center;gap:.5rem;margin-top:var(--cb-space-3)}.cb-carousel__dot{width:.55rem;height:.55rem;padding:0;border:none;border-radius:999px;background:var(--cb-color-border);cursor:pointer}.cb-carousel__dot.cb-is-active{width:1.4rem;background:var(--cb-color-primary-500)}\n"] }]
212
212
  }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], circular: [{ type: i0.Input, args: [{ isSignal: true, alias: "circular", required: false }] }], showNavigators: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNavigators", required: false }] }], showIndicators: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIndicators", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }] } });
213
213
 
214
214
  /**