@c80/ui 1.0.56 → 1.0.58

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 (115) hide show
  1. package/esm2022/index.js +12 -8
  2. package/esm2022/index.js.map +1 -1
  3. package/esm2022/lib/action-list/action-list.component.js +7 -0
  4. package/esm2022/lib/action-list/action-list.component.js.map +1 -1
  5. package/esm2022/lib/action-list/action-list.types.js.map +1 -1
  6. package/esm2022/lib/card-level/card-level.component.js +3 -0
  7. package/esm2022/lib/card-level/card-level.component.js.map +1 -1
  8. package/esm2022/lib/header/header.component.js +8 -2
  9. package/esm2022/lib/header/header.component.js.map +1 -1
  10. package/esm2022/lib/header/header.types.js.map +1 -1
  11. package/esm2022/lib/icon/icon.component.js +10 -2
  12. package/esm2022/lib/icon/icon.component.js.map +1 -1
  13. package/esm2022/lib/icon/icon.definitions.js +34 -1
  14. package/esm2022/lib/icon/icon.definitions.js.map +1 -1
  15. package/esm2022/lib/icon/icon.types.js.map +1 -1
  16. package/esm2022/lib/icon/icon.utils.js +7 -0
  17. package/esm2022/lib/icon/icon.utils.js.map +1 -1
  18. package/esm2022/lib/icon/theme.service.js +17 -0
  19. package/esm2022/lib/icon/theme.service.js.map +1 -1
  20. package/esm2022/lib/info-list/info-list.component.js +3 -0
  21. package/esm2022/lib/info-list/info-list.component.js.map +1 -1
  22. package/esm2022/lib/input-field/input-field.component.js +19 -2
  23. package/esm2022/lib/input-field/input-field.component.js.map +1 -1
  24. package/esm2022/lib/input-search/c80-input-search.component.js +26 -0
  25. package/esm2022/lib/input-search/c80-input-search.component.js.map +1 -0
  26. package/esm2022/lib/input-search/index.js +2 -0
  27. package/esm2022/lib/input-search/index.js.map +1 -0
  28. package/esm2022/lib/modal/modal.component.js +59 -2
  29. package/esm2022/lib/modal/modal.component.js.map +1 -1
  30. package/esm2022/lib/modal/modal.service.js +60 -3
  31. package/esm2022/lib/modal/modal.service.js.map +1 -1
  32. package/esm2022/lib/profile-stats/profile-stats.component.js +6 -2
  33. package/esm2022/lib/profile-stats/profile-stats.component.js.map +1 -1
  34. package/esm2022/lib/profile-stats/profile-stats.types.js.map +1 -1
  35. package/esm2022/lib/rating-display/index.js +2 -0
  36. package/esm2022/lib/rating-display/index.js.map +1 -0
  37. package/esm2022/lib/rating-display/rating-display.component.js +24 -0
  38. package/esm2022/lib/rating-display/rating-display.component.js.map +1 -0
  39. package/esm2022/lib/rating-stars/index.js +2 -0
  40. package/esm2022/lib/rating-stars/index.js.map +1 -0
  41. package/esm2022/lib/rating-stars/rating-stars.component.js +33 -0
  42. package/esm2022/lib/rating-stars/rating-stars.component.js.map +1 -0
  43. package/esm2022/lib/select/select.component.js +27 -0
  44. package/esm2022/lib/select/select.component.js.map +1 -1
  45. package/esm2022/lib/snackbar/snackbar.component.js +19 -2
  46. package/esm2022/lib/snackbar/snackbar.component.js.map +1 -1
  47. package/esm2022/lib/snackbar/snackbar.service.js +9 -0
  48. package/esm2022/lib/snackbar/snackbar.service.js.map +1 -1
  49. package/esm2022/lib/spinner/index.js +2 -0
  50. package/esm2022/lib/spinner/index.js.map +1 -0
  51. package/esm2022/lib/spinner/spinner.component.js +22 -0
  52. package/esm2022/lib/spinner/spinner.component.js.map +1 -0
  53. package/esm2022/lib/stat-card/stat-card.component.js +3 -0
  54. package/esm2022/lib/stat-card/stat-card.component.js.map +1 -1
  55. package/esm2022/lib/tab/c80-tab.component.js +19 -2
  56. package/esm2022/lib/tab/c80-tab.component.js.map +1 -1
  57. package/esm2022/lib/tab/directives/c80-tab-item.directive.js +3 -0
  58. package/esm2022/lib/tab/directives/c80-tab-item.directive.js.map +1 -1
  59. package/esm2022/lib/tab/directives/c80-tab-label.directive.js +3 -0
  60. package/esm2022/lib/tab/directives/c80-tab-label.directive.js.map +1 -1
  61. package/esm2022/lib/table/table-column-visibility.service.js +27 -34
  62. package/esm2022/lib/table/table-column-visibility.service.js.map +1 -1
  63. package/esm2022/lib/table/table-crud-state.service.js +7 -7
  64. package/esm2022/lib/table/table-crud-state.service.js.map +1 -1
  65. package/esm2022/lib/table/table-data-converter.service.js +18 -10
  66. package/esm2022/lib/table/table-data-converter.service.js.map +1 -1
  67. package/esm2022/lib/table/table-data-utils.service.js +17 -1
  68. package/esm2022/lib/table/table-data-utils.service.js.map +1 -1
  69. package/esm2022/lib/table/table-selection.service.js +14 -3
  70. package/esm2022/lib/table/table-selection.service.js.map +1 -1
  71. package/esm2022/lib/table/table.component.js +60 -18
  72. package/esm2022/lib/table/table.component.js.map +1 -1
  73. package/esm2022/lib/table/table.types.js.map +1 -1
  74. package/esm2022/lib/table/table.utils.js +7 -0
  75. package/esm2022/lib/table/table.utils.js.map +1 -1
  76. package/index.d.ts +12 -8
  77. package/lib/action-list/action-list.component.d.ts +7 -0
  78. package/lib/action-list/action-list.types.d.ts +2 -1
  79. package/lib/card-level/card-level.component.d.ts +3 -0
  80. package/lib/header/header.component.d.ts +7 -1
  81. package/lib/header/header.types.d.ts +2 -0
  82. package/lib/icon/icon.component.d.ts +9 -1
  83. package/lib/icon/icon.types.d.ts +2 -0
  84. package/lib/icon/icon.utils.d.ts +7 -0
  85. package/lib/icon/theme.service.d.ts +17 -0
  86. package/lib/info-list/info-list.component.d.ts +3 -0
  87. package/lib/input-field/input-field.component.d.ts +17 -0
  88. package/lib/input-search/c80-input-search.component.d.ts +16 -0
  89. package/lib/input-search/index.d.ts +1 -0
  90. package/lib/modal/modal.component.d.ts +57 -0
  91. package/lib/modal/modal.service.d.ts +72 -3
  92. package/lib/profile-stats/profile-stats.component.d.ts +4 -0
  93. package/lib/profile-stats/profile-stats.types.d.ts +6 -2
  94. package/lib/rating-display/index.d.ts +1 -0
  95. package/lib/rating-display/rating-display.component.d.ts +12 -0
  96. package/lib/rating-stars/index.d.ts +1 -0
  97. package/lib/rating-stars/rating-stars.component.d.ts +19 -0
  98. package/lib/select/select.component.d.ts +27 -0
  99. package/lib/snackbar/snackbar.component.d.ts +18 -1
  100. package/lib/snackbar/snackbar.service.d.ts +9 -0
  101. package/lib/spinner/index.d.ts +1 -0
  102. package/lib/spinner/spinner.component.d.ts +12 -0
  103. package/lib/stat-card/stat-card.component.d.ts +3 -0
  104. package/lib/tab/c80-tab.component.d.ts +17 -0
  105. package/lib/tab/directives/c80-tab-item.directive.d.ts +3 -0
  106. package/lib/tab/directives/c80-tab-label.directive.d.ts +3 -0
  107. package/lib/table/table-column-visibility.service.d.ts +19 -6
  108. package/lib/table/table-crud-state.service.d.ts +23 -13
  109. package/lib/table/table-data-converter.service.d.ts +2 -0
  110. package/lib/table/table-data-utils.service.d.ts +7 -0
  111. package/lib/table/table-selection.service.d.ts +14 -12
  112. package/lib/table/table.component.d.ts +3 -0
  113. package/lib/table/table.types.d.ts +1 -0
  114. package/lib/table/table.utils.d.ts +2 -0
  115. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Transform function para convertir valores string/boolean a boolean
3
3
  * Usado en @Input() con transform para habilitar sintaxis de atributos booleanos
4
+ * @param value
5
+ * @returns Valor convertido a boolean
4
6
  * @example [searchable]="true" o simplemente searchable
5
7
  */
6
8
  export function booleanAttribute(value) {
@@ -53,6 +55,9 @@ function convertInputValueByType(rawValue, type) {
53
55
  }
54
56
  /**
55
57
  * Convierte string a number o integer
58
+ * @param value
59
+ * @param isInteger
60
+ * @returns Número convertido o undefined si no es válido
56
61
  */
57
62
  function convertToNumber(value, isInteger) {
58
63
  if (value === '' || value === null || value === undefined) {
@@ -66,6 +71,8 @@ function convertToNumber(value, isInteger) {
66
71
  }
67
72
  /**
68
73
  * Convierte valor de enum (intenta convertir a número si es posible)
74
+ * @param value
75
+ * @returns Valor convertido a número si es posible, sino string
69
76
  */
70
77
  function convertEnumValue(value) {
71
78
  const num = Number(value);
@@ -1 +1 @@
1
- {"version":3,"file":"table.utils.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/table/table.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TableColDef, CustomTableAction } from './table.types';\n\n/**\n * Transform function para convertir valores string/boolean a boolean\n * Usado en @Input() con transform para habilitar sintaxis de atributos booleanos\n * @example [searchable]=\"true\" o simplemente searchable\n */\nexport function booleanAttribute(value: boolean | string): boolean {\n return value === '' || value === true || value === 'true';\n}\n\n/**\n * Extrae mensaje de error de forma segura desde un objeto unknown\n * @param err - Error desconocido (puede ser Error, string, object, etc.)\n * @returns Mensaje de error legible\n */\nexport function getErrorMessage(err: unknown): string {\n const error = err as { message?: string };\n return error?.message ?? 'Error al cargar datos';\n}\n\n/**\n * Obtiene el valor de un input HTML según el tipo de columna\n * IMPORTANTE: Convierte el valor al tipo correcto antes de retornarlo\n * @param event - Evento del input\n * @param col - Definición de columna (opcional)\n * @returns Valor extraído y convertido según el tipo de columna\n */\nexport function getInputValue(event: Event, col?: TableColDef): unknown {\n if (col?.type === 'boolean') {\n return (event.target as HTMLInputElement).checked;\n }\n\n const target = event.target as HTMLInputElement | HTMLSelectElement;\n const rawValue = target?.value;\n\n if (!col) {\n return rawValue;\n }\n\n return convertInputValueByType(rawValue, col.type);\n}\n\n/**\n * Convierte un valor de input según el tipo de columna especificado\n * @param rawValue - Valor crudo del input (string)\n * @param type - Tipo de columna\n * @returns Valor convertido al tipo apropiado\n */\nfunction convertInputValueByType(\n rawValue: string,\n type?: 'string' | 'number' | 'integer' | 'boolean' | 'password' | 'enum' | 'date'\n): unknown {\n if (!type || type === 'string' || type === 'password' || type === 'date') {\n return rawValue;\n }\n\n if (type === 'integer' || type === 'number') {\n return convertToNumber(rawValue, type === 'integer');\n }\n\n if (type === 'enum') {\n return convertEnumValue(rawValue);\n }\n\n return rawValue;\n}\n\n/**\n * Convierte string a number o integer\n */\nfunction convertToNumber(value: string, isInteger: boolean): number | undefined {\n if (value === '' || value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n return isInteger ? Math.floor(num) : num;\n}\n\n/**\n * Convierte valor de enum (intenta convertir a número si es posible)\n */\nfunction convertEnumValue(value: string): string | number {\n const num = Number(value);\n return Number.isNaN(num) ? value : num;\n}\n\n/**\n * Extrae el ID de una fila para usar como trackBy en ngFor\n * @param index - Índice de la fila\n * @param row - Fila de datos\n * @returns ID como string o índice como fallback\n */\nexport function trackById<T extends Record<string, unknown>>(index: number, row: T): string | number {\n const id = row && typeof row === 'object' && 'id' in row\n ? (row as Record<string, unknown>)['id']\n : undefined;\n return typeof id === 'string' ? id : index;\n}\n\n/**\n * Verifica si una acción debe mostrarse para una fila específica\n * CREATE se excluye porque se maneja con el botón \"+\" en el header\n * @param action - Acción a verificar\n * @param row - Fila de datos\n * @returns true si la acción debe mostrarse\n */\nexport function shouldShowAction<T extends Record<string, unknown>>(\n action: CustomTableAction,\n row: T\n): boolean {\n if (action.name === 'create') {\n return false;\n }\n return !action.condition || action.condition(row);\n}\n\n/**\n * Obtiene el tooltip de una acción (usa tooltip personalizado o name por defecto)\n * @param action - Acción\n * @returns Texto del tooltip\n */\nexport function getActionTooltip(action: CustomTableAction): string {\n return action.tooltip ?? action.name;\n}\n"]}
1
+ {"version":3,"file":"table.utils.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/table/table.utils.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,MAAM,KAAK,GAAG,GAA2B,CAAC;IAC1C,OAAO,KAAK,EAAE,OAAO,IAAI,uBAAuB,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAY,EAAE,GAAiB;IAC3D,IAAI,GAAG,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAQ,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAA8C,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,EAAE,KAAK,CAAC;IAE/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,QAAgB,EAChB,IAAiF;IAEjF,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACzE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAa,EAAE,SAAkB;IACxD,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAoC,KAAa,EAAE,GAAM;IAChF,MAAM,EAAE,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG;QACtD,CAAC,CAAE,GAA+B,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,EACzB,GAAM;IAEN,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACxD,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;AACvC,CAAC","sourcesContent":["import type { TableColDef, CustomTableAction } from './table.types';\n\n/**\n * Transform function para convertir valores string/boolean a boolean\n * Usado en @Input() con transform para habilitar sintaxis de atributos booleanos\n * @param value\n * @returns Valor convertido a boolean\n * @example [searchable]=\"true\" o simplemente searchable\n */\nexport function booleanAttribute(value: boolean | string): boolean {\n return value === '' || value === true || value === 'true';\n}\n\n/**\n * Extrae mensaje de error de forma segura desde un objeto unknown\n * @param err - Error desconocido (puede ser Error, string, object, etc.)\n * @returns Mensaje de error legible\n */\nexport function getErrorMessage(err: unknown): string {\n const error = err as { message?: string };\n return error?.message ?? 'Error al cargar datos';\n}\n\n/**\n * Obtiene el valor de un input HTML según el tipo de columna\n * IMPORTANTE: Convierte el valor al tipo correcto antes de retornarlo\n * @param event - Evento del input\n * @param col - Definición de columna (opcional)\n * @returns Valor extraído y convertido según el tipo de columna\n */\nexport function getInputValue(event: Event, col?: TableColDef): unknown {\n if (col?.type === 'boolean') {\n return (event.target as HTMLInputElement).checked;\n }\n\n const target = event.target as HTMLInputElement | HTMLSelectElement;\n const rawValue = target?.value;\n\n if (!col) {\n return rawValue;\n }\n\n return convertInputValueByType(rawValue, col.type);\n}\n\n/**\n * Convierte un valor de input según el tipo de columna especificado\n * @param rawValue - Valor crudo del input (string)\n * @param type - Tipo de columna\n * @returns Valor convertido al tipo apropiado\n */\nfunction convertInputValueByType(\n rawValue: string,\n type?: 'string' | 'number' | 'integer' | 'boolean' | 'password' | 'enum' | 'date'\n): unknown {\n if (!type || type === 'string' || type === 'password' || type === 'date') {\n return rawValue;\n }\n\n if (type === 'integer' || type === 'number') {\n return convertToNumber(rawValue, type === 'integer');\n }\n\n if (type === 'enum') {\n return convertEnumValue(rawValue);\n }\n\n return rawValue;\n}\n\n/**\n * Convierte string a number o integer\n * @param value\n * @param isInteger\n * @returns Número convertido o undefined si no es válido\n */\nfunction convertToNumber(value: string, isInteger: boolean): number | undefined {\n if (value === '' || value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n if (Number.isNaN(num)) {\n return undefined;\n }\n return isInteger ? Math.floor(num) : num;\n}\n\n/**\n * Convierte valor de enum (intenta convertir a número si es posible)\n * @param value\n * @returns Valor convertido a número si es posible, sino string\n */\nfunction convertEnumValue(value: string): string | number {\n const num = Number(value);\n return Number.isNaN(num) ? value : num;\n}\n\n/**\n * Extrae el ID de una fila para usar como trackBy en ngFor\n * @param index - Índice de la fila\n * @param row - Fila de datos\n * @returns ID como string o índice como fallback\n */\nexport function trackById<T extends Record<string, unknown>>(index: number, row: T): string | number {\n const id = row && typeof row === 'object' && 'id' in row\n ? (row as Record<string, unknown>)['id']\n : undefined;\n return typeof id === 'string' ? id : index;\n}\n\n/**\n * Verifica si una acción debe mostrarse para una fila específica\n * CREATE se excluye porque se maneja con el botón \"+\" en el header\n * @param action - Acción a verificar\n * @param row - Fila de datos\n * @returns true si la acción debe mostrarse\n */\nexport function shouldShowAction<T extends Record<string, unknown>>(\n action: CustomTableAction,\n row: T\n): boolean {\n if (action.name === 'create') {\n return false;\n }\n return !action.condition || action.condition(row);\n}\n\n/**\n * Obtiene el tooltip de una acción (usa tooltip personalizado o name por defecto)\n * @param action - Acción\n * @returns Texto del tooltip\n */\nexport function getActionTooltip(action: CustomTableAction): string {\n return action.tooltip ?? action.name;\n}\n"]}
package/index.d.ts CHANGED
@@ -1,13 +1,17 @@
1
- export * from './lib/table';
2
- export * from './lib/icon';
3
- export * from './lib/stat-card';
1
+ export * from './lib/action-list';
4
2
  export * from './lib/card-level';
3
+ export * from './lib/header';
4
+ export * from './lib/icon';
5
+ export * from './lib/info-list';
6
+ export * from './lib/input-field';
7
+ export * from './lib/input-search';
5
8
  export * from './lib/modal';
9
+ export * from './lib/profile-stats';
10
+ export * from './lib/rating-display';
11
+ export * from './lib/rating-stars';
6
12
  export * from './lib/select';
7
13
  export * from './lib/snackbar';
14
+ export * from './lib/spinner';
15
+ export * from './lib/stat-card';
8
16
  export * from './lib/tab';
9
- export * from './lib/info-list';
10
- export * from './lib/action-list';
11
- export * from './lib/header';
12
- export * from './lib/profile-stats';
13
- export * from './lib//input-field';
17
+ export * from './lib/table';
@@ -1,9 +1,16 @@
1
1
  import type { ActionItem } from './action-list.types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class ActionListComponent {
4
7
  title: import("@angular/core").InputSignal<string>;
5
8
  actions: import("@angular/core").InputSignal<ActionItem[]>;
6
9
  actionClick: import("@angular/core").OutputEmitterRef<string>;
10
+ /**
11
+ *
12
+ * @param action
13
+ */
7
14
  protected onActionClick(action: ActionItem): void;
8
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionListComponent, never>;
9
16
  static ɵcmp: i0.ɵɵComponentDeclaration<ActionListComponent, "c80-action-list", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
@@ -1,7 +1,8 @@
1
+ import { IconType } from "../icon";
1
2
  export interface ActionItem {
2
3
  label: string;
3
4
  description?: string;
4
- icon?: string;
5
+ icon?: IconType;
5
6
  action?: string | (() => void);
6
7
  isDanger?: boolean;
7
8
  isNavigable?: boolean;
@@ -1,5 +1,8 @@
1
1
  import type { CardLevelData } from './card-level.interface';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class CardLevelComponent {
4
7
  cardLevelData: import("@angular/core").InputSignal<CardLevelData>;
5
8
  size: import("@angular/core").InputSignal<number>;
@@ -1,9 +1,15 @@
1
1
  import type { HeaderConfig } from './header.types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class HeaderComponent {
4
7
  private readonly location;
5
8
  config: import("@angular/core").InputSignal<HeaderConfig>;
9
+ /**
10
+ *
11
+ */
6
12
  protected onBackClick(): void;
7
13
  static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "c80-header", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "c80-header", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
15
  }
@@ -1,3 +1,5 @@
1
1
  export interface HeaderConfig {
2
2
  title: string;
3
+ showBackButton?: boolean;
4
+ showBorder?: boolean;
3
5
  }
@@ -1,5 +1,8 @@
1
1
  import type { ColorType, ButtonType } from './icon.types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class IconComponent {
4
7
  private readonly themeService;
5
8
  readonly icon: import("@angular/core").InputSignal<string>;
@@ -17,18 +20,23 @@ export declare class IconComponent {
17
20
  readonly iconSize: import("@angular/core").Signal<number>;
18
21
  readonly isDarkMode: import("@angular/core").Signal<boolean>;
19
22
  readonly iconColor: import("@angular/core").Signal<string>;
20
- readonly iconOpacity: import("@angular/core").Signal<0.5 | 0.7 | 1>;
23
+ readonly iconOpacity: import("@angular/core").Signal<1 | 0.5 | 0.7>;
21
24
  readonly iconDefinition: import("@angular/core").Signal<import("@c80/ui").IconDefinition>;
22
25
  readonly iconPath: import("@angular/core").Signal<string>;
23
26
  readonly additionalShapes: import("@angular/core").Signal<import("@c80/ui").ShapeAttributes[]>;
24
27
  readonly shouldFillIcon: import("@angular/core").Signal<boolean>;
25
28
  readonly multiColorIcon: import("@angular/core").Signal<import("@c80/ui").MultiColorIconConfig | undefined>;
26
29
  readonly hasMultiPaths: import("@angular/core").Signal<boolean>;
30
+ readonly iconStrokeWidth: import("@angular/core").Signal<string>;
27
31
  readonly svgStrokeAttrs: {
28
32
  readonly strokeWidth: "1";
29
33
  readonly strokeLinecap: "round";
30
34
  readonly strokeLinejoin: "round";
31
35
  };
36
+ /**
37
+ *
38
+ * @param event
39
+ */
32
40
  onButtonClick(event: Event): void;
33
41
  static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
34
42
  static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "c80-icon", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "customColor": { "alias": "customColor"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "textLeft": { "alias": "textLeft"; "required": false; "isSignal": true; }; "textRight": { "alias": "textRight"; "required": false; "isSignal": true; }; "dark": { "alias": "dark"; "required": false; "isSignal": true; }; }, { "iconClick": "iconClick"; }, never, never, true, never>;
@@ -40,6 +40,8 @@ export interface IconDefinition {
40
40
  multiColor?: MultiColorIconConfig;
41
41
  /** Especifica si el path principal debe ser relleno (fill) en lugar de outline (stroke) */
42
42
  fill?: boolean;
43
+ /** Grosor del stroke personalizado (por defecto '1') */
44
+ strokeWidth?: string;
43
45
  }
44
46
  export type IconType = keyof typeof ICON_DEFINITIONS;
45
47
  export {};
@@ -1,6 +1,13 @@
1
1
  import type { IconType } from './icon.types';
2
+ /**
3
+ *
4
+ * @param val
5
+ * @returns Valor convertido a boolean
6
+ */
2
7
  export declare function transformToBoolean(val: boolean | string | null | undefined): boolean;
3
8
  /**
4
9
  * Determina si un icono debería usar fill basado en su definición explícita
10
+ * @param iconName
11
+ * @returns true si el icono debe usar fill
5
12
  */
6
13
  export declare function shouldIconUseFill(iconName: IconType): boolean;
@@ -1,9 +1,26 @@
1
1
  import * as i0 from "@angular/core";
2
+ /**
3
+ *
4
+ */
2
5
  export declare class ThemeService {
3
6
  readonly isDark: import("@angular/core").WritableSignal<boolean>;
7
+ /**
8
+ *
9
+ * @returns true si el tema es oscuro
10
+ */
4
11
  private getInitialTheme;
12
+ /**
13
+ *
14
+ */
5
15
  toggle(): void;
16
+ /**
17
+ *
18
+ * @param isDark
19
+ */
6
20
  private applyTheme;
21
+ /**
22
+ *
23
+ */
7
24
  initialize(): void;
8
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
9
26
  static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
@@ -1,5 +1,8 @@
1
1
  import type { InfoItem } from './info-list.types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class InfoListComponent {
4
7
  readonly items: import("@angular/core").InputSignal<InfoItem[]>;
5
8
  static ɵfac: i0.ɵɵFactoryDeclaration<InfoListComponent, never>;
@@ -1,4 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
+ /**
3
+ *
4
+ */
2
5
  export declare class InputFieldComponent {
3
6
  readonly label: import("@angular/core").WritableSignal<string>;
4
7
  readonly value: import("@angular/core").WritableSignal<string>;
@@ -10,9 +13,23 @@ export declare class InputFieldComponent {
10
13
  valueChange: import("@angular/core").OutputEmitterRef<string>;
11
14
  enterPressed: import("@angular/core").OutputEmitterRef<void>;
12
15
  protected readonly isFocused: import("@angular/core").WritableSignal<boolean>;
16
+ /**
17
+ *
18
+ * @param event
19
+ */
13
20
  protected onValueChange(event: Event): void;
21
+ /**
22
+ *
23
+ */
14
24
  protected onFocus(): void;
25
+ /**
26
+ *
27
+ */
15
28
  protected onBlur(): void;
29
+ /**
30
+ *
31
+ * @param event
32
+ */
16
33
  protected onKeyDown(event: KeyboardEvent): void;
17
34
  static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
18
35
  static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "c80-input-field", never, {}, { "valueChange": "valueChange"; "enterPressed": "enterPressed"; }, never, never, true, never>;
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ *
4
+ */
5
+ export declare class InputSearchComponent {
6
+ readonly value: import("@angular/core").InputSignal<string>;
7
+ readonly placeholder: import("@angular/core").InputSignal<string>;
8
+ readonly inputChange: import("@angular/core").OutputEmitterRef<string>;
9
+ /**
10
+ *
11
+ * @param event
12
+ */
13
+ protected onInput(event: Event): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputSearchComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSearchComponent, "c80-input-search", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "inputChange": "inputChange"; }, never, never, true, never>;
16
+ }
@@ -0,0 +1 @@
1
+ export * from './c80-input-search.component';
@@ -14,25 +14,82 @@ export interface ModalResult {
14
14
  action: 'confirm' | 'cancel' | 'yes' | 'no';
15
15
  confirmed: boolean;
16
16
  }
17
+ /**
18
+ *
19
+ */
17
20
  export declare class ModalComponent {
18
21
  private readonly modalService;
19
22
  readonly isOpen: import("@angular/core").Signal<boolean>;
20
23
  readonly config: import("@angular/core").Signal<ModalConfig>;
21
24
  readonly isVisible: import("@angular/core").Signal<boolean>;
25
+ /**
26
+ *
27
+ */
22
28
  constructor();
29
+ /**
30
+ * Maneja la confirmación del modal
31
+ */
23
32
  onConfirm(): void;
33
+ /**
34
+ * Maneja la cancelación del modal
35
+ */
24
36
  onCancel(): void;
37
+ /**
38
+ * Maneja la respuesta afirmativa del modal
39
+ */
25
40
  onYes(): void;
41
+ /**
42
+ * Maneja la respuesta negativa del modal
43
+ */
26
44
  onNo(): void;
45
+ /**
46
+ * Cierra el modal actual
47
+ */
27
48
  closeModal(): void;
49
+ /**
50
+ * Maneja el clic en el backdrop del modal
51
+ * @param event - Evento de clic
52
+ */
28
53
  onBackdropClick(event: Event): void;
54
+ /**
55
+ *
56
+ * @returns Clase CSS del botón primario según el tipo de modal
57
+ */
29
58
  getPrimaryButtonClass(): string;
59
+ /**
60
+ *
61
+ * @returns true si debe mostrar botones Sí/No
62
+ */
30
63
  showYesNoButtons(): boolean;
64
+ /**
65
+ *
66
+ * @returns true si debe mostrar botones Confirmar/Cancelar
67
+ */
31
68
  showConfirmButtons(): boolean;
69
+ /**
70
+ *
71
+ * @returns true si debe mostrar botón OK
72
+ */
32
73
  showOkButton(): boolean;
74
+ /**
75
+ *
76
+ * @returns Texto del botón de confirmación
77
+ */
33
78
  getConfirmText(): string;
79
+ /**
80
+ *
81
+ * @returns Texto del botón de cancelar
82
+ */
34
83
  getCancelText(): string;
84
+ /**
85
+ *
86
+ * @returns Texto del botón Sí
87
+ */
35
88
  getYesText(): string;
89
+ /**
90
+ *
91
+ * @returns Texto del botón No
92
+ */
36
93
  getNoText(): string;
37
94
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
38
95
  static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "c80-modal", never, {}, {}, never, never, true, never>;
@@ -1,5 +1,8 @@
1
1
  import type { ModalConfig, ModalResult } from './modal.component';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class ModalService {
4
7
  private readonly isOpen;
5
8
  private readonly config;
@@ -8,13 +11,79 @@ export declare class ModalService {
8
11
  isOpen: import("@angular/core").Signal<boolean>;
9
12
  config: import("@angular/core").Signal<ModalConfig>;
10
13
  };
14
+ /**
15
+ *
16
+ * @param config
17
+ */
11
18
  showModal(config: ModalConfig): Promise<ModalResult>;
12
- confirm(title: string, message: string, confirmText?: string, cancelText?: string): Promise<boolean>;
13
- yesNo(title: string, message: string, yesText?: string, noText?: string): Promise<boolean>;
19
+ /**
20
+ *
21
+ * @param options
22
+ * @param options.title
23
+ * @param options.message
24
+ * @param options.confirmText
25
+ * @param options.cancelText
26
+ * @returns Promise que resuelve true si se confirmó
27
+ */
28
+ confirm(options: {
29
+ title: string;
30
+ message: string;
31
+ confirmText?: string;
32
+ cancelText?: string;
33
+ }): Promise<boolean>;
34
+ /**
35
+ *
36
+ * @param options
37
+ * @param options.title
38
+ * @param options.message
39
+ * @param options.yesText
40
+ * @param options.noText
41
+ * @returns Promise que resuelve true si se eligió Sí
42
+ */
43
+ yesNo(options: {
44
+ title: string;
45
+ message: string;
46
+ yesText?: string;
47
+ noText?: string;
48
+ }): Promise<boolean>;
49
+ /**
50
+ *
51
+ * @param title
52
+ * @param message
53
+ * @returns Promise que resuelve cuando se cierra el modal
54
+ */
14
55
  info(title: string, message: string): Promise<void>;
15
- warning(title: string, message: string, confirmText?: string, cancelText?: string): Promise<boolean>;
56
+ /**
57
+ *
58
+ * @param options
59
+ * @param options.title
60
+ * @param options.message
61
+ * @param options.confirmText
62
+ * @param options.cancelText
63
+ * @returns Promise que resuelve true si se confirmó
64
+ */
65
+ warning(options: {
66
+ title: string;
67
+ message: string;
68
+ confirmText?: string;
69
+ cancelText?: string;
70
+ }): Promise<boolean>;
71
+ /**
72
+ *
73
+ * @param title
74
+ * @param message
75
+ * @param confirmText
76
+ * @returns Promise que resuelve true si se confirmó
77
+ */
16
78
  error(title: string, message: string, confirmText?: string): Promise<void>;
79
+ /**
80
+ * Maneja el resultado del modal y resuelve la promesa
81
+ * @param result - Resultado de la acción del modal
82
+ */
17
83
  handleResult(result: ModalResult): void;
84
+ /**
85
+ * Cierra el modal actual
86
+ */
18
87
  closeModal(): void;
19
88
  static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
20
89
  static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
@@ -1,5 +1,9 @@
1
1
  import type { StatItem } from './profile-stats.types';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * Componente para mostrar estadísticas del usuario
5
+ * Soporta valores con etiquetas o botones de acción
6
+ */
3
7
  export declare class ProfileStatsComponent {
4
8
  stats: import("@angular/core").InputSignal<StatItem[]>;
5
9
  static ɵfac: i0.ɵɵFactoryDeclaration<ProfileStatsComponent, never>;
@@ -1,4 +1,8 @@
1
1
  export interface StatItem {
2
- label: string;
3
- value: number | string;
2
+ value?: number | string;
3
+ label?: string;
4
+ button?: {
5
+ text: string;
6
+ onClick: () => void;
7
+ };
4
8
  }
@@ -0,0 +1 @@
1
+ export * from './rating-display.component';
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ *
4
+ */
5
+ export declare class RatingDisplayComponent {
6
+ rating: import("@angular/core").InputSignal<number>;
7
+ size: import("@angular/core").InputSignal<number>;
8
+ spacing: import("@angular/core").InputSignal<number>;
9
+ protected readonly stars: import("@angular/core").Signal<unknown[]>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<RatingDisplayComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<RatingDisplayComponent, "c80-rating-display", never, { "rating": { "alias": "rating"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "spacing": { "alias": "spacing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ }
@@ -0,0 +1 @@
1
+ export * from './rating-stars.component';
@@ -0,0 +1,19 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ *
4
+ */
5
+ export declare class RatingStarsComponent {
6
+ rating: import("@angular/core").InputSignal<number>;
7
+ showLabel: import("@angular/core").InputSignal<boolean>;
8
+ readonly: import("@angular/core").InputSignal<boolean>;
9
+ ratingChange: import("@angular/core").OutputEmitterRef<number>;
10
+ protected readonly currentRating: import("@angular/core").Signal<number>;
11
+ protected readonly stars: import("@angular/core").Signal<boolean[]>;
12
+ /**
13
+ *
14
+ * @param rating
15
+ */
16
+ protected onStarClick(rating: number): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<RatingStarsComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<RatingStarsComponent, "c80-rating-stars", never, { "rating": { "alias": "rating"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "ratingChange": "ratingChange"; }, never, never, true, never>;
19
+ }
@@ -1,6 +1,9 @@
1
1
  import { type ElementRef } from '@angular/core';
2
2
  import type { SelectOption } from './select.model';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ *
6
+ */
4
7
  export declare class SelectComponent<T = string> {
5
8
  readonly label: import("@angular/core").InputSignal<string>;
6
9
  readonly placeholder: import("@angular/core").InputSignal<string>;
@@ -18,12 +21,36 @@ export declare class SelectComponent<T = string> {
18
21
  readonly controlId: string;
19
22
  readonly searchInput: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
20
23
  readonly filteredOptions: import("@angular/core").Signal<SelectOption<T>[]>;
24
+ /**
25
+ *
26
+ */
21
27
  toggleDropdown(): void;
28
+ /**
29
+ *
30
+ * @param option
31
+ */
22
32
  selectOption(option: SelectOption<T>): void;
33
+ /**
34
+ *
35
+ */
23
36
  selectNull(): void;
37
+ /**
38
+ *
39
+ * @returns Etiqueta del valor seleccionado o placeholder
40
+ */
24
41
  getSelectedLabel(): string;
42
+ /**
43
+ *
44
+ */
25
45
  closeDropdown(): void;
46
+ /**
47
+ *
48
+ * @param term
49
+ */
26
50
  onSearchChange(term: string): void;
51
+ /**
52
+ *
53
+ */
27
54
  clearSearch(): void;
28
55
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
29
56
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent<any>, "c80-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "opened": "opened"; }, never, never, true, never>;
@@ -1,5 +1,8 @@
1
1
  import type { SnackbarData } from './snackbar.model';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class SnackbarComponent {
4
7
  private readonly elementRef;
5
8
  private readonly renderer;
@@ -8,10 +11,24 @@ export declare class SnackbarComponent {
8
11
  readonly visible: import("@angular/core").WritableSignal<boolean>;
9
12
  private timerId?;
10
13
  readonly panelClasses: import("@angular/core").Signal<string>;
14
+ /**
15
+ *
16
+ * @param data
17
+ */
11
18
  show(data: SnackbarData): void;
19
+ /**
20
+ *
21
+ */
12
22
  dismiss(): void;
23
+ /**
24
+ *
25
+ */
13
26
  private clearTimer;
27
+ /**
28
+ *
29
+ * @param config
30
+ */
14
31
  private applyPosition;
15
32
  static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarComponent, "k-snackbar", never, {}, {}, never, never, true, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarComponent, "c80-snackbar", never, {}, {}, never, never, true, never>;
17
34
  }
@@ -1,10 +1,19 @@
1
1
  import type { SnackbarConfig } from './snackbar.model';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ */
3
6
  export declare class SnackbarService {
4
7
  private readonly appRef;
5
8
  private readonly injector;
6
9
  private componentRef?;
7
10
  private readonly defaultConfig;
11
+ /**
12
+ *
13
+ * @param message
14
+ * @param action
15
+ * @param config
16
+ */
8
17
  open(message: string, action?: string, config?: SnackbarConfig): void;
9
18
  static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarService, never>;
10
19
  static ɵprov: i0.ɵɵInjectableDeclaration<SnackbarService>;
@@ -0,0 +1 @@
1
+ export * from './spinner.component';