tailjng 0.1.6 → 0.1.8

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 (175) hide show
  1. package/README.md +27 -5
  2. package/cli/execute/init-app.js +5 -2
  3. package/cli/execute/sync-app.js +14 -2
  4. package/cli/settings/colors-config-utils.js +69 -11
  5. package/cli/settings/icons-config-utils.js +62 -0
  6. package/cli/settings/path-utils.js +32 -2
  7. package/cli/settings/project-utils.js +7 -1
  8. package/cli/templates/app.generator.js +8 -5
  9. package/fesm2022/tailjng.mjs +247 -80
  10. package/fesm2022/tailjng.mjs.map +1 -1
  11. package/lib/services/static/theme.service.d.ts +39 -1
  12. package/lib/utils/theme/theme-variables.util.d.ts +31 -0
  13. package/package.json +1 -1
  14. package/public-api.d.ts +2 -1
  15. package/registry/components.json +41 -18
  16. package/src/colors.safelist.css +2 -2
  17. package/src/lib/components/.config/README.md +11 -0
  18. package/src/lib/components/.config/colors/README.md +40 -0
  19. package/src/lib/components/{colors-config → .config/colors}/colors.config.ts +5 -5
  20. package/src/lib/components/{colors-config → .config/colors}/colors.safelist.css +2 -2
  21. package/src/lib/components/.config/icons/README.md +26 -0
  22. package/src/lib/components/.config/icons/icons.lucide.ts +134 -0
  23. package/src/lib/components/.config/input/README.md +24 -0
  24. package/src/lib/components/.config/input/input.classes.ts +119 -0
  25. package/src/lib/components/alert/alert-dialog/dialog-alert.component.css +177 -6
  26. package/src/lib/components/alert/alert-dialog/dialog-alert.component.html +24 -37
  27. package/src/lib/components/alert/alert-dialog/dialog-alert.component.ts +66 -56
  28. package/src/lib/components/alert/alert-dialog/dialog-alert.types.ts +19 -0
  29. package/src/lib/components/alert/alert-toast/toast-alert.component.css +494 -14
  30. package/src/lib/components/alert/alert-toast/toast-alert.component.html +106 -102
  31. package/src/lib/components/alert/alert-toast/toast-alert.component.ts +485 -128
  32. package/src/lib/components/alert/alert-toast/toast-alert.types.ts +25 -0
  33. package/src/lib/components/badge/badge.component.html +34 -21
  34. package/src/lib/components/badge/badge.component.ts +140 -31
  35. package/src/lib/components/button/button.component.html +16 -10
  36. package/src/lib/components/button/button.component.ts +162 -22
  37. package/src/lib/components/card/card-complete/complete-card.component.html +2 -2
  38. package/src/lib/components/card/card-complete/complete-card.component.ts +26 -16
  39. package/src/lib/components/card/card-crud-complete/complete-crud-card.component.html +2 -2
  40. package/src/lib/components/card/card-crud-complete/complete-crud-card.component.ts +26 -16
  41. package/src/lib/components/checkbox/checkbox-input/input-checkbox.component.css +30 -0
  42. package/src/lib/components/checkbox/checkbox-input/input-checkbox.component.html +58 -46
  43. package/src/lib/components/checkbox/checkbox-input/input-checkbox.component.ts +135 -64
  44. package/src/lib/components/checkbox/checkbox-input/input-checkbox.types.ts +3 -0
  45. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.css +62 -0
  46. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.html +39 -25
  47. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.component.ts +74 -15
  48. package/src/lib/components/checkbox/checkbox-switch/switch-checkbox.types.ts +1 -0
  49. package/src/lib/components/coach-mark/coach-mark.component.html +6 -24
  50. package/src/lib/components/coach-mark/coach-mark.component.scss +1 -7
  51. package/src/lib/components/coach-mark/coach-mark.component.ts +51 -18
  52. package/src/lib/components/coach-mark/coach-mark.directive.ts +133 -78
  53. package/src/lib/components/coach-mark/coach-mark.types.ts +12 -0
  54. package/src/lib/components/dialog/dialog.component.css +1 -1
  55. package/src/lib/components/dialog/dialog.component.html +56 -65
  56. package/src/lib/components/dialog/dialog.component.ts +136 -110
  57. package/src/lib/components/dialog/dialog.types.ts +19 -0
  58. package/src/lib/components/filter/filter-complete/complete-filter.component.html +17 -20
  59. package/src/lib/components/filter/filter-complete/complete-filter.component.scss +25 -0
  60. package/src/lib/components/filter/filter-complete/complete-filter.component.ts +58 -34
  61. package/src/lib/components/filter/filter-complete/complete-filter.types.ts +7 -0
  62. package/src/lib/components/filter/filter-complete/complete-filter.util.ts +16 -0
  63. package/src/lib/components/form/form-container/container-form.component.css +4 -0
  64. package/src/lib/components/form/form-container/container-form.component.html +2 -2
  65. package/src/lib/components/form/form-container/container-form.component.ts +72 -16
  66. package/src/lib/components/form/form-container/container-form.types.ts +42 -0
  67. package/src/lib/components/form/form-container/form-col-span.directive.ts +25 -0
  68. package/src/lib/components/form/form-sidebar/sidebar-form.component.css +45 -0
  69. package/src/lib/components/form/form-sidebar/sidebar-form.component.html +128 -124
  70. package/src/lib/components/form/form-sidebar/sidebar-form.component.ts +114 -34
  71. package/src/lib/components/form/form-sidebar/sidebar-form.types.ts +3 -0
  72. package/src/lib/components/{toggle-radio/toggle-radio.component.css → form/form-validation/validation-form.component.css} +0 -1
  73. package/src/lib/components/form/form-validation/validation-form.component.html +10 -6
  74. package/src/lib/components/form/form-validation/validation-form.component.ts +99 -12
  75. package/src/lib/components/form/form-validation/validation-form.types.ts +33 -0
  76. package/src/lib/components/icon/icon.component.html +8 -5
  77. package/src/lib/components/icon/icon.component.ts +111 -9
  78. package/src/lib/components/input/input/input.component.css +0 -14
  79. package/src/lib/components/input/input/input.component.html +19 -16
  80. package/src/lib/components/input/input/input.component.ts +130 -53
  81. package/src/lib/components/input/input/input.types.ts +8 -0
  82. package/src/lib/components/input/input-file/file-input.component.html +65 -56
  83. package/src/lib/components/input/input-file/file-input.component.ts +276 -173
  84. package/src/lib/components/input/input-file/file-input.types.ts +2 -0
  85. package/src/lib/components/input/input-range/range-input.component.css +67 -0
  86. package/src/lib/components/input/input-range/range-input.component.html +50 -58
  87. package/src/lib/components/input/input-range/range-input.component.ts +148 -60
  88. package/src/lib/components/input/input-range/range-input.types.ts +7 -0
  89. package/src/lib/components/input/input-textarea/textarea-input.component.html +16 -7
  90. package/src/lib/components/input/input-textarea/textarea-input.component.ts +140 -50
  91. package/src/lib/components/input/input-textarea/textarea-input.types.ts +2 -0
  92. package/src/lib/components/label/label.component.html +17 -16
  93. package/src/lib/components/label/label.component.ts +94 -16
  94. package/src/lib/components/label/label.types.ts +2 -0
  95. package/src/lib/components/menu/menu-options-table/menu-options-defaults.ts +34 -0
  96. package/src/lib/components/menu/menu-options-table/options-table-menu.component.html +34 -20
  97. package/src/lib/components/menu/menu-options-table/options-table-menu.component.ts +211 -58
  98. package/src/lib/components/menu/menu-options-table/options-table-menu.types.ts +38 -0
  99. package/src/lib/components/menu/options-coach-menu/options-coach-menu.component.html +49 -52
  100. package/src/lib/components/menu/options-coach-menu/options-coach-menu.component.ts +112 -24
  101. package/src/lib/components/menu/options-coach-menu/options-coach-menu.types.ts +9 -0
  102. package/src/lib/components/mode-toggle/mode-toggle.component.html +11 -16
  103. package/src/lib/components/mode-toggle/mode-toggle.component.ts +69 -33
  104. package/src/lib/components/paginator/paginator-complete/complete-paginator.component.html +4 -4
  105. package/src/lib/components/paginator/paginator-complete/complete-paginator.component.ts +31 -7
  106. package/src/lib/components/paginator/paginator-complete/complete-paginator.types.ts +12 -0
  107. package/src/lib/components/paginator/paginator-complete/complete-paginator.util.ts +36 -0
  108. package/src/lib/components/progress-bar/progress-bar.component.html +41 -40
  109. package/src/lib/components/progress-bar/progress-bar.component.ts +95 -11
  110. package/src/lib/components/progress-bar/progress-bar.types.ts +2 -0
  111. package/src/lib/components/select/select-dropdown/dropdown-select.component.html +56 -46
  112. package/src/lib/components/select/select-dropdown/dropdown-select.component.ts +450 -509
  113. package/src/lib/components/select/select-dropdown/dropdown-select.types.ts +43 -0
  114. package/src/lib/components/select/select-dropdown/dropdown-select.util.ts +179 -0
  115. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.component.html +131 -42
  116. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.component.ts +491 -475
  117. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.types.ts +22 -0
  118. package/src/lib/components/select/select-multi-dropdown/multi-dropdown-select.util.ts +20 -0
  119. package/src/lib/components/select/select-multi-table/multi-table-select.component.css +4 -0
  120. package/src/lib/components/select/select-multi-table/multi-table-select.component.html +76 -60
  121. package/src/lib/components/select/select-multi-table/multi-table-select.component.ts +250 -313
  122. package/src/lib/components/select/select-multi-table/multi-table-select.types.ts +10 -0
  123. package/src/lib/components/select/select-multi-table/multi-table-select.util.ts +5 -0
  124. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.css +155 -0
  125. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.html +72 -53
  126. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.ts +84 -27
  127. package/src/lib/components/sidebar/sidebar-static/static-sidebar.types.ts +2 -0
  128. package/src/lib/components/table/table-complete/complete-table.component.html +21 -23
  129. package/src/lib/components/table/table-complete/complete-table.component.ts +190 -338
  130. package/src/lib/components/table/table-complete/complete-table.types.ts +28 -0
  131. package/src/lib/components/table/table-complete/complete-table.util.ts +236 -0
  132. package/src/lib/components/table/table-complete/index.ts +2 -0
  133. package/src/lib/components/table/table-crud-complete/complete-crud-table.animations.ts +34 -0
  134. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.html +87 -142
  135. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.scss +0 -63
  136. package/src/lib/components/table/table-crud-complete/complete-crud-table.component.ts +544 -831
  137. package/src/lib/components/table/table-crud-complete/complete-crud-table.types.ts +57 -0
  138. package/src/lib/components/table/table-crud-complete/complete-crud-table.util.ts +723 -0
  139. package/src/lib/components/table/table-crud-complete/index.ts +3 -0
  140. package/src/lib/components/theme-generator/theme-generator.component.css +21 -0
  141. package/src/lib/components/theme-generator/theme-generator.component.html +141 -116
  142. package/src/lib/components/theme-generator/theme-generator.component.ts +44 -24
  143. package/src/lib/components/toggle-radio/shared/toggle-options.types.ts +8 -0
  144. package/src/lib/components/toggle-radio/shared/toggle-options.util.ts +62 -0
  145. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.css +22 -0
  146. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.html +65 -0
  147. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.component.ts +192 -0
  148. package/src/lib/components/toggle-radio/toggle-radio/toggle-radio.types.ts +1 -0
  149. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.css +34 -0
  150. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.html +47 -0
  151. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.component.ts +187 -0
  152. package/src/lib/components/toggle-radio/toggle-segment/segment-toggle.types.ts +1 -0
  153. package/src/lib/components/tooltip/tooltip.directive.ts +12 -9
  154. package/src/lib/components/tooltip/tooltip.service.ts +331 -133
  155. package/src/lib/components/tooltip/tooltip.types.ts +9 -0
  156. package/src/lib/components/viewer/viewer-image/image-viewer.component.css +14 -4
  157. package/src/lib/components/viewer/viewer-image/image-viewer.component.html +61 -95
  158. package/src/lib/components/viewer/viewer-image/image-viewer.component.ts +182 -177
  159. package/src/lib/components/viewer/viewer-image/image-viewer.types.ts +3 -0
  160. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.css +25 -0
  161. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.html +95 -24
  162. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.ts +168 -15
  163. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.types.ts +1 -0
  164. package/src/styles.css +2 -2
  165. package/lib/services/static/icons.service.d.ts +0 -65
  166. package/src/lib/components/colors-config/README.md +0 -38
  167. package/src/lib/components/form/form-sidebar/sidebar-form.component.scss +0 -0
  168. package/src/lib/components/form/form-validation/validation-form.component.scss +0 -0
  169. package/src/lib/components/menu/menu-options-table/options-table-menu.component.scss +0 -0
  170. package/src/lib/components/menu/options-coach-menu/options-coach-menu.component.scss +0 -12
  171. package/src/lib/components/sidebar/sidebar-static/static-sidebar.component.scss +0 -0
  172. package/src/lib/components/toggle-radio/toggle-radio.component.html +0 -51
  173. package/src/lib/components/toggle-radio/toggle-radio.component.ts +0 -222
  174. package/src/lib/components/viewer/viewer-pdf/pdf-viewer.component.scss +0 -0
  175. package/tailjng-0.1.6.tgz +0 -0
@@ -1,119 +1,123 @@
1
- <div [ngClass]="getPositionClass()">
2
- @for (toast of toasts(); track toast.id) {
3
- <div
4
- @toastTransition
5
- class="j-toast group relative ml-auto w-full overflow-hidden rounded-xl border border-border/40 dark:border-dark-border/40 backdrop-blur-xl shadow-lg shadow-black/5 dark:shadow-black/40 pointer-events-auto"
6
- [ngClass]="getToastSurfaceClass(toast.config.type)"
7
- role="alert"
8
- aria-live="polite"
1
+ <div
2
+ [ngClass]="stackClasses()"
3
+ [ngStyle]="stackStyle()"
4
+ (mouseenter)="onStackEnter()"
5
+ (mouseleave)="onStackLeave()"
6
+ >
7
+ @if (stackable && toasts().length > 1 && !expanded) {
8
+ <span
9
+ class="j-alert-toast-stack-hint absolute -top-[0.35rem] -right-[0.35rem] z-50 inline-flex items-center justify-center min-w-5 h-5 px-[0.3rem] rounded-full bg-primary text-primary-foreground text-[0.625rem] font-bold leading-none shadow-[0_2px_8px_rgb(0_0_0/0.18)] pointer-events-none opacity-0 scale-[0.85] transition-[opacity,transform] duration-200 ease-in-out"
10
+ aria-hidden="true"
9
11
  >
10
- <div
11
- class="absolute left-0 top-0 w-1 z-[1]"
12
- [ngClass]="getAccentBarClass(toast.config.type)"
13
- [class.bottom-0]="!hasAutoClose(toast)"
14
- [class.bottom-1]="hasAutoClose(toast)"
15
- ></div>
16
-
17
- <!-- Icono decorativo grande -->
18
- <div
19
- class="j-toast-watermark j-toast-watermark--lg absolute -bottom-8 -left-5 z-0 pointer-events-none select-none"
20
- [ngClass]="{ 'animate-spin': toast.config.type === 'loading' }"
21
- >
22
- <lucide-icon
23
- [name]="getIcon(toast.config.type)"
24
- [size]="104"
25
- [ngClass]="getWatermarkIconClass(toast.config.type)"
26
- ></lucide-icon>
27
- </div>
12
+ {{ toasts().length }}
13
+ </span>
14
+ }
28
15
 
29
- <!-- Icono decorativo pequeño -->
16
+ <div
17
+ class="j-alert-toast-scroll-shell relative w-full transition-[max-height] duration-[320ms] ease-[cubic-bezier(0.16,1,0.3,1)]"
18
+ [class.j-alert-toast-scroll-shell--expanded]="stackable && toasts().length > 1 && expanded"
19
+ >
20
+ <div
21
+ #stackInner
22
+ [ngClass]="innerClasses()"
23
+ [ngStyle]="scrollFadeStyle()"
24
+ (scroll)="onStackScroll()"
25
+ (transitionend)="onInnerTransitionEnd($event)"
26
+ >
27
+ @for (toast of displayToasts(); track toast.id) {
30
28
  <div
31
- class="j-toast-watermark j-toast-watermark--sm absolute top-2 z-0 pointer-events-none select-none"
32
- [class.right-9]="toast.btnClose"
33
- [class.right-3]="!toast.btnClose"
34
- [ngClass]="{ 'animate-spin': toast.config.type === 'loading' }"
29
+ @toastTransition
30
+ class="j-alert-toast-card relative w-full min-h-[4.5rem] ml-auto overflow-hidden rounded-xl backdrop-blur-[16px] pointer-events-auto"
31
+ [ngClass]="cardClasses(toast.config.type, toastIndex(toast), toasts().length)"
32
+ [ngStyle]="cardAnchorStyle(toastIndex(toast), toasts().length)"
33
+ [style.z-index]="cardZIndex(toastIndex(toast), toasts().length)"
34
+ role="alert"
35
+ aria-live="polite"
35
36
  >
36
- <lucide-icon
37
- [name]="getIcon(toast.config.type)"
38
- [size]="32"
39
- [ngClass]="getWatermarkIconClass(toast.config.type, true)"
40
- ></lucide-icon>
41
- </div>
37
+ <div [ngClass]="accentBarClasses(toast)"></div>
42
38
 
43
- <!-- Texto -->
44
- <div
45
- class="relative z-10 pl-5 pr-4 pt-3.5"
46
- [class.pr-10]="toast.btnClose"
47
- [class.pb-2]="hasActions(toast)"
48
- [class.pb-3.5]="!hasActions(toast) && !hasAutoClose(toast)"
49
- [class.pb-4]="!hasActions(toast) && hasAutoClose(toast)"
50
- >
51
- <h3 class="m-0 text-sm font-semibold leading-tight text-foreground dark:text-white">
52
- {{ toast.config.title }}
53
- </h3>
39
+ <div [ngClass]="watermarkClasses(toast.config.type)">
40
+ <JIcon
41
+ [icon]="typeIcon(toast.config.type)"
42
+ [size]="104"
43
+ [inheritParentColor]="true"
44
+ [ariaHidden]="true"
45
+ />
46
+ </div>
54
47
 
55
- @if (toast.config.description) {
56
- <p
57
- class="m-0 mt-1 text-xs leading-relaxed text-muted-foreground dark:text-dark-muted-foreground [&_b]:font-semibold [&_b]:text-foreground dark:[&_b]:text-white"
58
- [innerHTML]="toast.config.description"
59
- ></p>
60
- }
48
+ <div [ngClass]="watermarkSmClasses(toast)">
49
+ <JIcon
50
+ [icon]="typeIcon(toast.config.type)"
51
+ [size]="32"
52
+ [inheritParentColor]="true"
53
+ [ariaHidden]="true"
54
+ />
55
+ </div>
61
56
 
62
- @if (toast.btnClose) {
63
- <button
64
- type="button"
65
- class="absolute top-2.5 right-2.5 z-20 flex h-7 w-7 items-center justify-center rounded-lg transition-all duration-200 hover:bg-black/5 dark:hover:bg-white/10 cursor-pointer"
66
- [ngClass]="getIconClass(toast.config.type)"
67
- [attr.aria-label]="'Cerrar notificación'"
68
- (click)="closeToast(toast.id)"
69
- >
70
- <lucide-icon [name]="iconsService.icons.close" [size]="15"></lucide-icon>
71
- </button>
72
- }
73
- </div>
57
+ <div [ngClass]="bodyClasses(toast)">
58
+ <h3 class="m-0 text-sm font-semibold leading-[1.3] tracking-[-0.01em] text-foreground dark:text-dark-foreground">{{ toast.config.title }}</h3>
74
59
 
75
- <!-- Acciones: alineadas a la card, no al bloque de texto -->
76
- @if (hasActions(toast)) {
77
- <div
78
- class="relative z-10 flex flex-wrap justify-end gap-1.5 pl-5 pr-4"
79
- [class.pb-3.5]="!hasAutoClose(toast)"
80
- [class.pb-4]="hasAutoClose(toast)"
81
- >
82
- @if (toast.config.type !== 'success' && toast.onCancelCallback) {
83
- <JButton
84
- size="xs"
85
- (clicked)="handleAction(toast.id, 'cancel')"
86
- [disabled]="toast.isCancelLoading || toast.isActionLoading"
87
- [isLoading]="toast.isCancelLoading"
88
- [ngClasses]="getButtonSecondaryClass(toast.config.type)"
89
- >
90
- {{ toast.config.titleBtnCancel || 'Cancelar' }}
91
- </JButton>
60
+ @if (toast.config.description) {
61
+ <p
62
+ class="j-alert-toast-description mt-1 mb-0 text-xs leading-[1.55] text-muted-foreground dark:text-dark-muted-foreground"
63
+ [innerHTML]="toast.config.description"
64
+ ></p>
92
65
  }
93
66
 
94
- @if (toast.config.type !== 'loading' && toast.onActionCallback) {
95
- <JButton
96
- size="xs"
97
- (clicked)="handleAction(toast.id, 'action')"
98
- [disabled]="toast.isCancelLoading || toast.isActionLoading"
99
- [isLoading]="toast.isActionLoading"
100
- [ngClasses]="getButtonClass(toast.config.type)"
67
+ @if (toast.btnClose) {
68
+ <button
69
+ type="button"
70
+ class="absolute top-2.5 right-2.5 z-20 inline-flex items-center justify-center w-7 h-7 m-0 p-0 border-0 rounded-lg bg-transparent text-muted-foreground dark:text-dark-muted-foreground leading-none cursor-pointer transition-[color,background-color,transform] duration-150 ease-in-out hover:text-foreground hover:bg-muted/45 dark:hover:text-dark-foreground dark:hover:bg-dark-muted/45 active:scale-[0.94] focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2"
71
+ aria-label="Cerrar notificación"
72
+ (click)="closeToast(toast.id)"
101
73
  >
102
- {{ toast.actionNameButton }}
103
- </JButton>
74
+ <JIcon [icon]="Icons.X" [size]="15" [inheritParentColor]="true" [ariaHidden]="true" />
75
+ </button>
104
76
  }
105
77
  </div>
106
- }
107
78
 
108
- @if (hasAutoClose(toast)) {
109
- <div class="j-toast-timeline absolute inset-x-0 bottom-0 z-20 h-1 bg-black/5 dark:bg-white/10">
79
+ @if (hasActions(toast)) {
110
80
  <div
111
- class="j-toast-progress h-full origin-left"
112
- [ngClass]="getAccentBarClass(toast.config.type)"
113
- [style.animation-duration.ms]="getAutoCloseDelay(toast)"
114
- ></div>
115
- </div>
116
- }
81
+ class="j-alert-toast-actions relative z-10 flex flex-wrap justify-end gap-1.5 py-0 pr-4 pb-3.5 pl-5"
82
+ [class.j-alert-toast-actions--with-timeline]="hasAutoClose(toast)"
83
+ >
84
+ @if (toast.config.type !== 'success' && toast.onCancelCallback) {
85
+ <JButton
86
+ size="xs"
87
+ (clicked)="handleAction(toast.id, 'cancel')"
88
+ [disabled]="isActionDisabled(toast)"
89
+ [isLoading]="toast.isCancelLoading"
90
+ [ngClasses]="getButtonSecondaryClass(toast.config.type)"
91
+ >
92
+ {{ toast.config.titleBtnCancel || 'Cancelar' }}
93
+ </JButton>
94
+ }
95
+
96
+ @if (toast.config.type !== 'loading' && toast.onActionCallback) {
97
+ <JButton
98
+ size="xs"
99
+ (clicked)="handleAction(toast.id, 'action')"
100
+ [disabled]="isActionDisabled(toast)"
101
+ [isLoading]="toast.isActionLoading"
102
+ [ngClasses]="getButtonClass(toast.config.type)"
103
+ >
104
+ {{ toast.actionNameButton }}
105
+ </JButton>
106
+ }
107
+ </div>
108
+ }
109
+
110
+ @if (hasAutoClose(toast)) {
111
+ <div class="j-alert-toast-timeline absolute inset-x-0 bottom-0 z-30 h-[var(--j-toast-timeline-height)] m-0 overflow-hidden rounded-b-[inherit]">
112
+ <div
113
+ class="j-alert-toast-progress w-full h-full origin-left"
114
+ [ngClass]="progressClasses(toast.config.type)"
115
+ [ngStyle]="progressStyle(toast)"
116
+ ></div>
117
+ </div>
118
+ }
119
+ </div>
120
+ }
117
121
  </div>
118
- }
122
+ </div>
119
123
  </div>