valtech-components 2.0.741 → 2.0.743

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 (62) hide show
  1. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
  3. package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
  4. package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
  5. package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
  6. package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
  7. package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
  8. package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
  9. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
  10. package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
  11. package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
  12. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +3 -3
  13. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
  14. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
  15. package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
  16. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
  17. package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
  18. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
  19. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
  20. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +5 -11
  21. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +5 -11
  22. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
  23. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +3 -3
  24. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
  25. package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
  26. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
  27. package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
  28. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
  29. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +23 -5
  30. package/esm2022/lib/components/molecules/notes-box/types.mjs +1 -1
  31. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
  32. package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
  33. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  34. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
  35. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
  36. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
  37. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
  38. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
  39. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
  40. package/esm2022/lib/components/organisms/article/article.component.mjs +5 -2
  41. package/esm2022/lib/components/organisms/article/types.mjs +2 -2
  42. package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
  43. package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
  44. package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
  45. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
  46. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
  47. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
  48. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
  49. package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +3 -3
  50. package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
  51. package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +3 -1
  52. package/esm2022/lib/version.mjs +2 -2
  53. package/fesm2022/valtech-components.mjs +126 -115
  54. package/fesm2022/valtech-components.mjs.map +1 -1
  55. package/lib/components/molecules/notes-box/types.d.ts +6 -2
  56. package/lib/components/organisms/article/types.d.ts +6 -2
  57. package/lib/version.d.ts +1 -1
  58. package/package.json +1 -1
  59. package/src/lib/components/styles/alert.scss +13 -12
  60. package/src/lib/components/styles/media-queries.scss +22 -1
  61. package/src/lib/components/styles/overrides.scss +5 -4
  62. package/src/lib/components/styles/variables.scss +28 -23
@@ -4,11 +4,13 @@ import { Color } from '@ionic/core';
4
4
  *
5
5
  * @property color - The background color of the box.
6
6
  * @property textColor - The color of the text.
7
- * @property prefix - Optional prefix text (bold).
8
- * @property text - The main text content.
7
+ * @property prefix - Optional prefix text (bold). Pass `''` (empty string) to suppress the prefix entirely.
8
+ * @property text - The main text content. May contain `<strong>` / `<b>` tags when `allowPartialBold` is enabled.
9
9
  * @property size - The size of the text and box ('small' | 'medium' | 'large' | 'xlarge').
10
10
  * @property rounded - Whether the box has rounded corners.
11
11
  * @property padding - Custom padding for the box (optional).
12
+ * @property allowPartialBold - Render inline `<strong>`/`<b>` tags in `text` as bold via innerHTML. Default `false`.
13
+ * @property processLinks - Auto-process URLs and `[text](url)` markdown links in `text`. Default `false`.
12
14
  */
13
15
  export interface NotesBoxMetadata {
14
16
  color: Color;
@@ -18,4 +20,6 @@ export interface NotesBoxMetadata {
18
20
  size: 'small' | 'medium' | 'large' | 'xlarge';
19
21
  rounded: boolean;
20
22
  padding?: string;
23
+ allowPartialBold?: boolean;
24
+ processLinks?: boolean;
21
25
  }
@@ -105,9 +105,9 @@ export interface ArticleCodeElement extends BaseArticleElement {
105
105
  export interface ArticleNoteElement extends BaseArticleElement {
106
106
  type: 'note';
107
107
  props: {
108
- /** Texto principal de la nota */
108
+ /** Texto principal de la nota. Puede contener `<strong>`/`<b>` si `allowPartialBold` está activo. */
109
109
  text: string;
110
- /** Prefijo en negrita (ej: "Nota:") */
110
+ /** Prefijo en negrita (ej: "Nota:"). Pasa `''` (string vacío) para suprimir el prefijo. */
111
111
  prefix?: string;
112
112
  /** Color de fondo */
113
113
  color?: Color;
@@ -119,6 +119,10 @@ export interface ArticleNoteElement extends BaseArticleElement {
119
119
  rounded?: boolean;
120
120
  /** Padding personalizado */
121
121
  padding?: string;
122
+ /** Renderiza `<strong>`/`<b>` inline en `text` via innerHTML. Default `false`. */
123
+ allowPartialBold?: boolean;
124
+ /** Procesa URLs y `[text](url)` en `text`. Default `false`. */
125
+ processLinks?: boolean;
122
126
  };
123
127
  }
124
128
  /**
package/lib/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export declare const VERSION = "2.0.741";
5
+ export declare const VERSION = "2.0.743";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "2.0.741",
3
+ "version": "2.0.743",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"
@@ -117,16 +117,17 @@ ion-alert.val-alert {
117
117
  }
118
118
  }
119
119
 
120
- /* Dark mode — overrides explícitos via prefers-color-scheme */
121
- @media (prefers-color-scheme: dark) {
122
- ion-alert.val-alert {
123
- --val-alert-bg: var(--ion-background-color, #1c1c1e);
124
- --val-alert-border: rgba(255, 255, 255, 0.08);
125
- --val-alert-text: var(--ion-text-color, #ffffff);
126
- --val-alert-text-muted: rgba(255, 255, 255, 0.7);
127
- --val-alert-btn-bg: rgba(255, 255, 255, 0.06);
128
- --val-alert-btn-bg-hover: rgba(255, 255, 255, 0.12);
129
- --val-alert-btn-bg-active: rgba(255, 255, 255, 0.18);
130
- --val-alert-btn-border: rgba(255, 255, 255, 0.06);
131
- }
120
+ /* Dark mode — class-based (ThemeService toggle `body.dark`/`html.ion-palette-dark`).
121
+ No usar `@media (prefers-color-scheme: dark)` porque pisaba el manual toggle. */
122
+ body.dark ion-alert.val-alert,
123
+ html.ion-palette-dark ion-alert.val-alert,
124
+ body[data-theme='dark'] ion-alert.val-alert {
125
+ --val-alert-bg: var(--ion-background-color, #1c1c1e);
126
+ --val-alert-border: rgba(255, 255, 255, 0.08);
127
+ --val-alert-text: var(--ion-text-color, #ffffff);
128
+ --val-alert-text-muted: rgba(255, 255, 255, 0.7);
129
+ --val-alert-btn-bg: rgba(255, 255, 255, 0.06);
130
+ --val-alert-btn-bg-hover: rgba(255, 255, 255, 0.12);
131
+ --val-alert-btn-bg-active: rgba(255, 255, 255, 0.18);
132
+ --val-alert-btn-border: rgba(255, 255, 255, 0.06);
132
133
  }
@@ -59,8 +59,29 @@
59
59
  }
60
60
  }
61
61
 
62
+ // Class-based dark mode. Apps deben usar `dark.class.css` palette de Ionic
63
+ // + ThemeService que toggle `body.dark` / `html.ion-palette-dark`.
64
+ // El mixin se mantiene para compatibilidad con consumers existentes,
65
+ // pero ya NO usa `@media (prefers-color-scheme: dark)` para evitar
66
+ // pintar dark según OS aunque el user tenga tema light manual.
67
+ //
68
+ // Uso desde un component-level .scss (top-level, NO dentro de `:host`):
69
+ // @include dark { ... }
62
70
  @mixin dark {
63
- @media (prefers-color-scheme: dark) {
71
+ :host-context(.dark),
72
+ :host-context(.ion-palette-dark),
73
+ :host-context(html.ion-palette-dark),
74
+ :host-context(body.dark),
75
+ :host-context([data-theme='dark']) {
76
+ @content;
77
+ }
78
+ }
79
+
80
+ // Variante global (no usa :host-context) — para SCSS NO de componente.
81
+ @mixin dark-global {
82
+ body.dark,
83
+ html.ion-palette-dark,
84
+ [data-theme='dark'] {
64
85
  @content;
65
86
  }
66
87
  }
@@ -185,10 +185,11 @@ ion-modal {
185
185
 
186
186
  .img-black {
187
187
  filter: invert(0);
188
-
189
- @media (prefers-color-scheme: dark) {
190
- filter: invert(1);
191
- }
188
+ }
189
+ body.dark .img-black,
190
+ html.ion-palette-dark .img-black,
191
+ body[data-theme='dark'] .img-black {
192
+ filter: invert(1);
192
193
  }
193
194
 
194
195
  .ion-datetime-button-overlay ion-datetime.datetime-grid {
@@ -125,34 +125,39 @@ $color-default-placeholder: #afbacc;
125
125
  --ion-color-medium-shade: #8b8b8b;
126
126
  --ion-color-medium-tint: #a8a8a8;
127
127
 
128
- @media (prefers-color-scheme: dark) {
129
- --ion-color-texti: #8fc1ff;
130
- --ion-color-texti-rgb: 143, 193, 255;
131
- --ion-color-texti-contrast: #000000;
132
- --ion-color-texti-contrast-rgb: 0, 0, 0;
133
- --ion-color-texti-shade: #7eaae0;
134
- --ion-color-texti-tint: #9ac7ff;
135
-
136
- --ion-color-darki: #ffffff;
137
- --ion-color-darki-rgb: 255, 255, 255;
138
- --ion-color-darki-contrast: #000000;
139
- --ion-color-darki-contrast-rgb: 0, 0, 0;
140
- --ion-color-darki-shade: #e0e0e0;
141
- --ion-color-darki-tint: #ffffff;
142
-
143
- --ion-color-primary: #8f49f8;
144
- --ion-color-primary-rgb: 143, 73, 248;
145
- --ion-color-primary-contrast: #ffffff;
146
- --ion-color-primary-contrast-rgb: 255, 255, 255;
147
- --ion-color-primary-shade: #7e40da;
148
- --ion-color-primary-tint: #9a5bf9;
149
- }
150
-
151
128
  --swiper-pagination-color: var(--ion-color-primary);
152
129
  --swiper-navigation-color: var(--ion-color-primary);
153
130
  --swiper-pagination-bullet-inactive-color: var(--ion-color-medium);
154
131
  }
155
132
 
133
+ // Class-based dark mode (ThemeService toggle body.dark/html.ion-palette-dark).
134
+ // Reemplaza la regla `@media (prefers-color-scheme: dark)` previa que pisaba el
135
+ // manual toggle del user.
136
+ body.dark,
137
+ html.ion-palette-dark,
138
+ body[data-theme='dark'] {
139
+ --ion-color-texti: #8fc1ff;
140
+ --ion-color-texti-rgb: 143, 193, 255;
141
+ --ion-color-texti-contrast: #000000;
142
+ --ion-color-texti-contrast-rgb: 0, 0, 0;
143
+ --ion-color-texti-shade: #7eaae0;
144
+ --ion-color-texti-tint: #9ac7ff;
145
+
146
+ --ion-color-darki: #ffffff;
147
+ --ion-color-darki-rgb: 255, 255, 255;
148
+ --ion-color-darki-contrast: #000000;
149
+ --ion-color-darki-contrast-rgb: 0, 0, 0;
150
+ --ion-color-darki-shade: #e0e0e0;
151
+ --ion-color-darki-tint: #ffffff;
152
+
153
+ --ion-color-primary: #8f49f8;
154
+ --ion-color-primary-rgb: 143, 73, 248;
155
+ --ion-color-primary-contrast: #ffffff;
156
+ --ion-color-primary-contrast-rgb: 255, 255, 255;
157
+ --ion-color-primary-shade: #7e40da;
158
+ --ion-color-primary-tint: #9a5bf9;
159
+ }
160
+
156
161
  .ion-color-texti {
157
162
  --ion-color-base: var(--ion-color-texti);
158
163
  --ion-color-base-rgb: var(--ion-color-texti-rgb);