@telefonica/mistica 17.9.0 → 17.11.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 (272) hide show
  1. package/css/blau.css +40 -0
  2. package/css/community/cyber.css +40 -0
  3. package/css/esimflag.css +40 -0
  4. package/css/mistica.css +1 -1
  5. package/css/movistar.css +40 -0
  6. package/css/o2.css +41 -0
  7. package/css/telefonica.css +42 -0
  8. package/css/vivo-evolution.css +48 -0
  9. package/css/vivo.css +40 -0
  10. package/dist/accordion.css-mistica.js +8 -8
  11. package/dist/align.css-mistica.js +1 -1
  12. package/dist/autocomplete.css-mistica.js +4 -4
  13. package/dist/avatar.css-mistica.js +3 -3
  14. package/dist/badge.css-mistica.js +3 -3
  15. package/dist/box.css-mistica.js +13 -13
  16. package/dist/boxed.css-mistica.js +24 -24
  17. package/dist/button-group.css-mistica.js +3 -3
  18. package/dist/button-layout.css-mistica.js +15 -15
  19. package/dist/button.css-mistica.js +64 -64
  20. package/dist/callout.css-mistica.js +11 -11
  21. package/dist/card-internal.css-mistica.js +34 -34
  22. package/dist/carousel.css-mistica.js +35 -35
  23. package/dist/checkbox.css-mistica.js +15 -15
  24. package/dist/chip.css-mistica.js +20 -20
  25. package/dist/circle.css-mistica.js +1 -1
  26. package/dist/community/advanced-data-card.css-mistica.js +18 -18
  27. package/dist/community/ai-card.css-mistica.js +9 -9
  28. package/dist/community/blocks.css-mistica.js +3 -3
  29. package/dist/community/cyber/example-component.css-mistica.js +1 -1
  30. package/dist/community/example-component.css-mistica.js +1 -1
  31. package/dist/community/skins/cyber-skin.js +20 -0
  32. package/dist/counter.css-mistica.js +7 -7
  33. package/dist/cover-hero.css-mistica.js +13 -13
  34. package/dist/credit-card-number-field.css-mistica.js +5 -5
  35. package/dist/date-field.css-mistica.js +1 -1
  36. package/dist/date-time-picker.css-mistica.js +1 -1
  37. package/dist/dialog.css-mistica.js +8 -8
  38. package/dist/divider.css-mistica.js +5 -5
  39. package/dist/double-field.css-mistica.js +4 -4
  40. package/dist/drawer.css-mistica.js +10 -10
  41. package/dist/drawer.d.ts +5 -1
  42. package/dist/drawer.js +131 -82
  43. package/dist/empty-state-card.css-mistica.js +1 -1
  44. package/dist/empty-state.css-mistica.js +12 -12
  45. package/dist/fade-in.css-mistica.js +1 -1
  46. package/dist/fade-out.css-mistica.js +1 -1
  47. package/dist/feedback.css-mistica.js +3 -3
  48. package/dist/file-upload.css-mistica.js +12 -12
  49. package/dist/fixed-footer-layout.css-mistica.js +5 -5
  50. package/dist/form.css-mistica.js +1 -1
  51. package/dist/form.d.ts +1 -1
  52. package/dist/grid-layout.css-mistica.js +3 -3
  53. package/dist/grid-layout.d.ts +6 -1
  54. package/dist/grid-layout.js +33 -18
  55. package/dist/grid.css-mistica.js +120 -120
  56. package/dist/header.css-mistica.js +1 -1
  57. package/dist/hero.css-mistica.js +9 -9
  58. package/dist/horizontal-scroll.css-mistica.js +1 -1
  59. package/dist/icon-button.css-mistica.js +58 -58
  60. package/dist/icons/icon-chevron.css-mistica.js +2 -2
  61. package/dist/icons/icon-error.css-mistica.js +1 -1
  62. package/dist/image.css-mistica.js +7 -7
  63. package/dist/index.d.ts +2 -0
  64. package/dist/index.js +4 -0
  65. package/dist/inline.css-mistica.js +11 -11
  66. package/dist/list.css-mistica.js +32 -32
  67. package/dist/loading-bar.css-mistica.js +1 -1
  68. package/dist/loading-screen.css-mistica.js +9 -9
  69. package/dist/logo.css-mistica.js +5 -5
  70. package/dist/menu.css-mistica.js +12 -12
  71. package/dist/message.css-mistica.js +172 -0
  72. package/dist/message.css.d.ts +40 -0
  73. package/dist/message.d.ts +48 -0
  74. package/dist/message.js +389 -0
  75. package/dist/mosaic.css-mistica.js +1 -1
  76. package/dist/navigation-bar.css-mistica.js +20 -20
  77. package/dist/navigation-breadcrumbs.css-mistica.js +1 -1
  78. package/dist/navigation-shared.css-mistica.js +18 -18
  79. package/dist/package-version.js +1 -1
  80. package/dist/pagination.css-mistica.js +30 -29
  81. package/dist/pagination.css.d.ts +1 -2
  82. package/dist/pagination.d.ts +0 -16
  83. package/dist/pagination.js +108 -115
  84. package/dist/pin-field.css-mistica.js +8 -8
  85. package/dist/popover.css-mistica.js +1 -1
  86. package/dist/progress-bar.css-mistica.js +7 -7
  87. package/dist/radio-button.css-mistica.js +32 -32
  88. package/dist/rating.css-mistica.js +4 -4
  89. package/dist/responsive-layout.css-mistica.js +6 -6
  90. package/dist/screen-reader-only.css-mistica.js +1 -1
  91. package/dist/select.css-mistica.js +22 -22
  92. package/dist/sheet-action-row.css-mistica.js +2 -2
  93. package/dist/sheet-common.css-mistica.js +9 -9
  94. package/dist/sheet-info.css-mistica.js +3 -3
  95. package/dist/sidenav-bar-layout.css-mistica.js +2 -2
  96. package/dist/sidenav-bar.css-mistica.js +107 -107
  97. package/dist/skeletons.css-mistica.js +10 -10
  98. package/dist/skins/blau.js +20 -0
  99. package/dist/skins/esimflag.js +20 -0
  100. package/dist/skins/movistar.js +20 -0
  101. package/dist/skins/o2.d.ts +1 -0
  102. package/dist/skins/o2.js +21 -0
  103. package/dist/skins/skin-contract.css-mistica.js +769 -749
  104. package/dist/skins/skin-contract.css.d.ts +20 -0
  105. package/dist/skins/telefonica.js +20 -0
  106. package/dist/skins/types/colors.d.ts +10 -0
  107. package/dist/skins/vivo-evolution.js +20 -0
  108. package/dist/skins/vivo.js +20 -0
  109. package/dist/skip-link.css-mistica.js +2 -2
  110. package/dist/slider.css-mistica.js +27 -27
  111. package/dist/snackbar.css-mistica.js +17 -17
  112. package/dist/spinner.css-mistica.js +5 -5
  113. package/dist/square.css-mistica.js +1 -1
  114. package/dist/stack.css-mistica.js +5 -5
  115. package/dist/stacking-group.css-mistica.js +2 -2
  116. package/dist/stepper.css-mistica.js +10 -10
  117. package/dist/switch-component.css-mistica.js +39 -39
  118. package/dist/table.css-mistica.js +9 -9
  119. package/dist/tabs.css-mistica.js +19 -19
  120. package/dist/tag.css-mistica.js +1 -1
  121. package/dist/text-field-base.css-mistica.js +26 -26
  122. package/dist/text-field-components.css-mistica.js +12 -12
  123. package/dist/text-link.css-mistica.js +6 -6
  124. package/dist/text-tokens.d.ts +2 -0
  125. package/dist/text-tokens.js +46 -30
  126. package/dist/text.css-mistica.js +6 -6
  127. package/dist/timeline.css-mistica.js +13 -13
  128. package/dist/timer.css-mistica.js +8 -8
  129. package/dist/tooltip.css-mistica.js +3 -3
  130. package/dist/tooltip.js +88 -88
  131. package/dist/touchable.css-mistica.js +5 -5
  132. package/dist/utils/aspect-ratio-support.css-mistica.js +4 -4
  133. package/dist/video.css-mistica.js +2 -2
  134. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  135. package/dist-es/accordion.css-mistica.js +7 -7
  136. package/dist-es/align.css-mistica.js +1 -1
  137. package/dist-es/autocomplete.css-mistica.js +2 -2
  138. package/dist-es/avatar.css-mistica.js +2 -2
  139. package/dist-es/badge.css-mistica.js +2 -2
  140. package/dist-es/box.css-mistica.js +13 -13
  141. package/dist-es/boxed.css-mistica.js +23 -23
  142. package/dist-es/button-group.css-mistica.js +2 -2
  143. package/dist-es/button-layout.css-mistica.js +15 -15
  144. package/dist-es/button.css-mistica.js +43 -43
  145. package/dist-es/callout.css-mistica.js +11 -11
  146. package/dist-es/card-internal.css-mistica.js +23 -23
  147. package/dist-es/carousel.css-mistica.js +10 -10
  148. package/dist-es/checkbox.css-mistica.js +13 -13
  149. package/dist-es/chip.css-mistica.js +17 -17
  150. package/dist-es/circle.css-mistica.js +1 -1
  151. package/dist-es/community/advanced-data-card.css-mistica.js +9 -9
  152. package/dist-es/community/ai-card.css-mistica.js +3 -3
  153. package/dist-es/community/blocks.css-mistica.js +2 -2
  154. package/dist-es/community/cyber/example-component.css-mistica.js +1 -1
  155. package/dist-es/community/example-component.css-mistica.js +1 -1
  156. package/dist-es/community/skins/cyber-skin.js +20 -0
  157. package/dist-es/counter.css-mistica.js +2 -2
  158. package/dist-es/cover-hero.css-mistica.js +3 -3
  159. package/dist-es/credit-card-number-field.css-mistica.js +4 -4
  160. package/dist-es/date-field.css-mistica.js +1 -1
  161. package/dist-es/date-time-picker.css-mistica.js +1 -1
  162. package/dist-es/dialog.css-mistica.js +5 -5
  163. package/dist-es/divider.css-mistica.js +5 -5
  164. package/dist-es/double-field.css-mistica.js +4 -4
  165. package/dist-es/drawer.css-mistica.js +2 -2
  166. package/dist-es/drawer.js +167 -118
  167. package/dist-es/empty-state-card.css-mistica.js +1 -1
  168. package/dist-es/empty-state.css-mistica.js +7 -7
  169. package/dist-es/fade-in.css-mistica.js +1 -1
  170. package/dist-es/fade-out.css-mistica.js +1 -1
  171. package/dist-es/feedback.css-mistica.js +2 -2
  172. package/dist-es/file-upload.css-mistica.js +8 -8
  173. package/dist-es/fixed-footer-layout.css-mistica.js +3 -3
  174. package/dist-es/form.css-mistica.js +1 -1
  175. package/dist-es/grid-layout.css-mistica.js +3 -3
  176. package/dist-es/grid-layout.js +37 -22
  177. package/dist-es/grid.css-mistica.js +120 -120
  178. package/dist-es/header.css-mistica.js +1 -1
  179. package/dist-es/hero.css-mistica.js +3 -3
  180. package/dist-es/horizontal-scroll.css-mistica.js +1 -1
  181. package/dist-es/icon-button.css-mistica.js +56 -56
  182. package/dist-es/icons/icon-chevron.css-mistica.js +2 -2
  183. package/dist-es/icons/icon-error.css-mistica.js +1 -1
  184. package/dist-es/image.css-mistica.js +4 -4
  185. package/dist-es/index.js +2355 -2354
  186. package/dist-es/inline.css-mistica.js +11 -11
  187. package/dist-es/list.css-mistica.js +8 -8
  188. package/dist-es/loading-bar.css-mistica.js +1 -1
  189. package/dist-es/loading-screen.css-mistica.js +5 -5
  190. package/dist-es/logo.css-mistica.js +5 -5
  191. package/dist-es/menu.css-mistica.js +12 -12
  192. package/dist-es/message.css-mistica.js +41 -0
  193. package/dist-es/message.js +334 -0
  194. package/dist-es/mosaic.css-mistica.js +1 -1
  195. package/dist-es/navigation-bar.css-mistica.js +10 -10
  196. package/dist-es/navigation-breadcrumbs.css-mistica.js +1 -1
  197. package/dist-es/navigation-shared.css-mistica.js +10 -10
  198. package/dist-es/package-version.js +1 -1
  199. package/dist-es/pagination.css-mistica.js +23 -19
  200. package/dist-es/pagination.js +137 -141
  201. package/dist-es/pin-field.css-mistica.js +2 -2
  202. package/dist-es/popover.css-mistica.js +1 -1
  203. package/dist-es/progress-bar.css-mistica.js +7 -7
  204. package/dist-es/radio-button.css-mistica.js +24 -24
  205. package/dist-es/rating.css-mistica.js +4 -4
  206. package/dist-es/responsive-layout.css-mistica.js +6 -6
  207. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  208. package/dist-es/select.css-mistica.js +18 -18
  209. package/dist-es/sheet-action-row.css-mistica.js +2 -2
  210. package/dist-es/sheet-common.css-mistica.js +2 -2
  211. package/dist-es/sheet-info.css-mistica.js +2 -2
  212. package/dist-es/sidenav-bar-layout.css-mistica.js +2 -2
  213. package/dist-es/sidenav-bar.css-mistica.js +72 -72
  214. package/dist-es/skeletons.css-mistica.js +7 -7
  215. package/dist-es/skins/blau.js +20 -0
  216. package/dist-es/skins/esimflag.js +20 -0
  217. package/dist-es/skins/movistar.js +20 -0
  218. package/dist-es/skins/o2.js +21 -0
  219. package/dist-es/skins/skin-contract.css-mistica.js +769 -749
  220. package/dist-es/skins/telefonica.js +20 -0
  221. package/dist-es/skins/vivo-evolution.js +20 -0
  222. package/dist-es/skins/vivo.js +20 -0
  223. package/dist-es/skip-link.css-mistica.js +2 -2
  224. package/dist-es/slider.css-mistica.js +20 -20
  225. package/dist-es/snackbar.css-mistica.js +5 -5
  226. package/dist-es/spinner.css-mistica.js +2 -2
  227. package/dist-es/square.css-mistica.js +1 -1
  228. package/dist-es/stack.css-mistica.js +5 -5
  229. package/dist-es/stacking-group.css-mistica.js +2 -2
  230. package/dist-es/stepper.css-mistica.js +4 -4
  231. package/dist-es/style.css +1 -1
  232. package/dist-es/switch-component.css-mistica.js +37 -37
  233. package/dist-es/table.css-mistica.js +9 -9
  234. package/dist-es/tabs.css-mistica.js +18 -18
  235. package/dist-es/tag.css-mistica.js +1 -1
  236. package/dist-es/text-field-base.css-mistica.js +17 -17
  237. package/dist-es/text-field-components.css-mistica.js +4 -4
  238. package/dist-es/text-link.css-mistica.js +6 -6
  239. package/dist-es/text-tokens.js +26 -16
  240. package/dist-es/text.css-mistica.js +6 -6
  241. package/dist-es/timeline.css-mistica.js +10 -10
  242. package/dist-es/timer.css-mistica.js +7 -7
  243. package/dist-es/tooltip.css-mistica.js +2 -2
  244. package/dist-es/tooltip.js +109 -109
  245. package/dist-es/touchable.css-mistica.js +2 -2
  246. package/dist-es/utils/aspect-ratio-support.css-mistica.js +3 -3
  247. package/dist-es/video.css-mistica.js +2 -2
  248. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  249. package/doc/layout.md +1 -1
  250. package/doc/llms/figma-mcp.md +1 -0
  251. package/package.json +1 -1
  252. package/src/community/skins/cyber-skin.tsx +20 -0
  253. package/src/drawer.tsx +43 -12
  254. package/src/form.tsx +1 -1
  255. package/src/grid-layout.tsx +20 -0
  256. package/src/index.tsx +2 -0
  257. package/src/message.css.ts +148 -0
  258. package/src/message.tsx +303 -0
  259. package/src/package-version.tsx +1 -1
  260. package/src/pagination.css.ts +15 -18
  261. package/src/pagination.tsx +100 -102
  262. package/src/skins/blau.tsx +20 -0
  263. package/src/skins/esimflag.tsx +20 -0
  264. package/src/skins/movistar.tsx +20 -0
  265. package/src/skins/o2.tsx +21 -0
  266. package/src/skins/skin-contract.css.ts +10 -0
  267. package/src/skins/telefonica.tsx +20 -0
  268. package/src/skins/types/colors.tsx +10 -0
  269. package/src/skins/vivo-evolution.tsx +20 -0
  270. package/src/skins/vivo.tsx +20 -0
  271. package/src/text-tokens.tsx +14 -0
  272. package/src/tooltip.tsx +5 -2
@@ -78,15 +78,15 @@ function _object_without_properties_loose(source, excluded) {
78
78
  }
79
79
  return target;
80
80
  }
81
- import { jsx as i, jsxs as k, Fragment as _t } from "react/jsx-runtime";
81
+ import { jsx as n, jsxs as k, Fragment as wt } from "react/jsx-runtime";
82
82
  import * as s from "react";
83
- import { useTheme as wt, useBoundingRect as tt, useWindowSize as Ct } from "./hooks.js";
83
+ import { useTheme as _t, useBoundingRect as tt, useWindowSize as Ct } from "./hooks.js";
84
84
  import { Portal as Nt } from "./portal.js";
85
85
  import { Transition as yt } from "react-transition-group";
86
- import { content as Lt, tooltipTransitionClasses as kt, tooltip as Ft, closeButtonIcon as $t, contentContainer as At, tooltipCenter as Dt, arrowContainer as Bt, arrow as Pt, container as Wt, CONTENT_MIN_WIDTH as zt } from "./tooltip.css-mistica.js";
86
+ import { content as Lt, tooltipTransitionClasses as kt, tooltip as Ft, closeButtonIcon as $t, contentContainer as At, tooltipCenter as Bt, arrowContainer as Dt, arrow as Pt, container as Wt, CONTENT_MIN_WIDTH as zt } from "./tooltip.css-mistica.js";
87
87
  import Xt from "./stack.js";
88
88
  import { Text2 as dt } from "./text.js";
89
- import { TAB as Ht, ESC as Yt } from "./utils/keys.js";
89
+ import { TAB as Yt, ESC as Ht } from "./utils/keys.js";
90
90
  import { isTouchableDevice as Vt } from "./utils/environment.js";
91
91
  import { isEqual as pt } from "./utils/helpers.js";
92
92
  import et from "classnames";
@@ -98,7 +98,7 @@ import { isRunningAcceptanceTest as qt } from "./utils/platform.js";
98
98
  import { IconButton as Jt } from "./icon-button.js";
99
99
  import Qt from "./generated/mistica-icons/icon-close-regular.js";
100
100
  import { closeButtonLabel as te } from "./text-tokens.js";
101
- const ft = (e)=>({
101
+ const mt = (e)=>({
102
102
  border: `1px solid ${({
103
103
  default: L.colors.border,
104
104
  alternative: L.colors.border,
@@ -106,87 +106,87 @@ const ft = (e)=>({
106
106
  negative: L.colors.backgroundContainer,
107
107
  media: L.colors.backgroundContainer
108
108
  })[e]}`
109
- }), mt = 496, ee = 300, oe = 500, re = 100, l = 20, I = 6, z = 1, w = I + l / 2 + z, se = {
109
+ }), ft = 496, ee = 300, oe = 500, re = 100, c = 20, S = 6, z = 1, _ = S + c / 2 + z, se = {
110
110
  top: "bottom",
111
111
  bottom: "top",
112
112
  left: "right",
113
113
  right: "left"
114
- }, ie = (e)=>{
114
+ }, ne = (e)=>{
115
115
  switch(e){
116
116
  case "left":
117
- return `translateX(-${I}px)`;
117
+ return `translateX(-${S}px)`;
118
118
  case "right":
119
- return `translateX(${I}px)`;
119
+ return `translateX(${S}px)`;
120
120
  case "top":
121
- return `translateY(-${I}px)`;
121
+ return `translateY(-${S}px)`;
122
122
  case "bottom":
123
- return `translateY(${I}px)`;
123
+ return `translateY(${S}px)`;
124
124
  default:
125
125
  return "";
126
126
  }
127
127
  }, ut = (e)=>{
128
- const u = parseFloat(getComputedStyle(e, null).paddingLeft) + parseFloat(getComputedStyle(e, null).paddingRight), n = parseFloat(getComputedStyle(e, null).paddingTop) + parseFloat(getComputedStyle(e, null).paddingBottom), x = e.offsetWidth - u, h = e.offsetHeight - n;
128
+ const u = parseFloat(getComputedStyle(e, null).paddingLeft) + parseFloat(getComputedStyle(e, null).paddingRight), i = parseFloat(getComputedStyle(e, null).paddingTop) + parseFloat(getComputedStyle(e, null).paddingBottom), b = e.getBoundingClientRect(), h = b.width - u, a = b.height - i;
129
129
  return {
130
- width: x,
131
- height: h
130
+ width: h,
131
+ height: a
132
132
  };
133
- }, ne = (e, u, n, x, h, p)=>{
133
+ }, ie = (e, u, i, b, h, a)=>{
134
134
  if (!e || !u) return;
135
- const f = {
135
+ const m = {
136
136
  top: e.top,
137
- bottom: x - e.bottom,
137
+ bottom: b - e.bottom,
138
138
  left: e.left,
139
139
  right: h - e.right
140
- }, F = ut(u), $ = F.width, A = p === void 0 ? F.height : p + 2 * z, C = (n === "top" || n === "bottom" ? A : $) + w, D = se[n], r = f[n] < C && f[D] > f[n] ? D : n;
141
- return (r === "left" || r === "right") && f[r] < C ? f.bottom > f.top ? "bottom" : "top" : r;
140
+ }, F = ut(u), $ = F.width, A = a === void 0 ? F.height : a + 2 * z, C = (i === "top" || i === "bottom" ? A : $) + _, B = se[i], r = m[i] < C && m[B] > m[i] ? B : i;
141
+ return (r === "left" || r === "right") && m[r] < C ? m.bottom > m.top ? "bottom" : "top" : r;
142
142
  }, ae = (param)=>{
143
- let { content: e, target: u, targetStyle: n, width: x, position: h = "top", alignment: p = "middle", dataAttributes: f, delay: F = !0, centerContent: $, open: A, onClose: C, closeButtonLabel: D, hasPointerInteractionOnly: r = !1, trackingEvent: ht } = param;
144
- var _a_top, _a_bottom;
145
- const { texts: Tt, t: gt, borderRadii: bt } = wt(), m = parseFloat(bt.popup), X = Math.max(zt, 2 * (m + z) + l), E = s.useId(), { openTooltipId: vt } = jt(), { openTooltip: ot, closeTooltip: rt } = Zt(), [B, H] = s.useState(), [Y, V] = s.useState(), G = s.useRef(null), K = s.useRef(null), st = s.useRef(null), [P, xt] = s.useState(null), T = Vt(), U = F ? oe : 0, [it, j] = s.useState(!1), [Z, N] = s.useState(!1), q = A !== void 0, [nt, J] = s.useState(!1), b = q ? A : E === vt, at = Gt(), a = tt(G, b), lt = tt(K, b, !0), Et = tt(st, b, !0), g = Ct(), c = ne(a, P, h, g.height, g.width, Et === null || Et === void 0 ? void 0 : Et.height), St = Math.max(0, (c === "top" ? (_a_top = a === null || a === void 0 ? void 0 : a.top) !== null && _a_top !== void 0 ? _a_top : g.height : c === "bottom" ? g.height - ((_a_bottom = a === null || a === void 0 ? void 0 : a.bottom) !== null && _a_bottom !== void 0 ? _a_bottom : 0) : g.height) - (c === "top" || c === "bottom" ? w : 0) - 2 * z), S = s.useCallback(()=>{
143
+ let { content: e, target: u, targetStyle: i, width: b, position: h = "top", alignment: a = "middle", dataAttributes: m, delay: F = !0, centerContent: $, open: A, onClose: C, closeButtonLabel: B, hasPointerInteractionOnly: r = !1, trackingEvent: ht } = param;
144
+ var _l_top, _l_bottom;
145
+ const { texts: Tt, t: gt, borderRadii: bt } = _t(), f = parseFloat(bt.popup), X = Math.max(zt, 2 * (f + z) + c), E = s.useId(), { openTooltipId: vt } = jt(), { openTooltip: ot, closeTooltip: rt } = Zt(), [D, Y] = s.useState(), [H, V] = s.useState(), G = s.useRef(null), K = s.useRef(null), st = s.useRef(null), [P, xt] = s.useState(null), T = Vt(), U = F ? oe : 0, [nt, j] = s.useState(!1), [Z, N] = s.useState(!1), q = A !== void 0, [it, J] = s.useState(!1), v = q ? A : E === vt, at = Gt(), l = tt(G, v), lt = tt(K, v, !0), Et = tt(st, v, !0), g = Ct(), d = ie(l, P, h, g.height, g.width, Et === null || Et === void 0 ? void 0 : Et.height), Rt = Math.max(0, (d === "top" ? (_l_top = l === null || l === void 0 ? void 0 : l.top) !== null && _l_top !== void 0 ? _l_top : g.height : d === "bottom" ? g.height - ((_l_bottom = l === null || l === void 0 ? void 0 : l.bottom) !== null && _l_bottom !== void 0 ? _l_bottom : 0) : g.height) - (d === "top" || d === "bottom" ? _ : 0) - 2 * z), R = s.useCallback(()=>{
146
146
  J(!1), j(!1), N(!1);
147
147
  }, []);
148
148
  s.useEffect(()=>{
149
- b || S();
149
+ v || R();
150
150
  }, [
151
- b,
152
- S
151
+ v,
152
+ R
153
153
  ]), s.useEffect(()=>{
154
- if (!P || !b) return;
155
- if (!c || !a) {
156
- H(void 0), V(void 0), S();
154
+ if (!P || !v) return;
155
+ if (!d || !l) {
156
+ Y(void 0), V(void 0), R();
157
157
  return;
158
158
  }
159
159
  let o, t;
160
- const { left: v, right: d, top: y, bottom: W } = a, { width: R, height: O } = ut(P), Rt = g.width - R, Ot = g.height - O, ct = p === "start" ? 0 : p === "end" ? 1 : 0.5, M = Math.max(0, Math.min(Rt, v + (d - v - R) * ct)), _ = Math.max(0, Math.min(Ot, y + (W - y - O) * ct));
161
- switch(c){
160
+ const { left: x, right: p, top: y, bottom: W } = l, { width: I, height: O } = ut(P), It = g.width - I, Ot = g.height - O, ct = a === "start" ? 0 : a === "end" ? 1 : 0.5, M = Math.max(0, Math.min(It, x + (p - x - I) * ct)), w = Math.max(0, Math.min(Ot, y + (W - y - O) * ct));
161
+ switch(d){
162
162
  case "top":
163
163
  o = {
164
164
  left: M,
165
- top: y - O - l / 2,
166
- padding: `0px 0px ${w}px 0px`
165
+ top: y - O - c / 2,
166
+ padding: `0px 0px ${_}px 0px`
167
167
  }, t = {
168
- left: Math.max(M + m, Math.min(M + R - m - l, (v + d - l) / 2)),
168
+ left: Math.max(M + f, Math.min(M + I - f - c, (x + p - c) / 2)),
169
169
  top: "100%"
170
170
  };
171
171
  break;
172
172
  case "bottom":
173
173
  o = {
174
174
  left: M,
175
- top: W - I,
176
- padding: `${w}px 0px 0px 0px`
175
+ top: W - S,
176
+ padding: `${_}px 0px 0px 0px`
177
177
  }, t = {
178
- left: Math.max(M + m, Math.min(M + R - m - l, (v + d - l) / 2)),
178
+ left: Math.max(M + f, Math.min(M + I - f - c, (x + p - c) / 2)),
179
179
  bottom: "100%",
180
180
  transform: "rotate(180deg)"
181
181
  };
182
182
  break;
183
183
  case "left":
184
184
  o = {
185
- left: v - R - l / 2,
186
- top: _,
187
- padding: `0px ${w}px 0px 0px`
185
+ left: x - I - c / 2,
186
+ top: w,
187
+ padding: `0px ${_}px 0px 0px`
188
188
  }, t = {
189
- top: Math.max(_ + m, Math.min(_ + O - m - l, (y + W - l) / 2)),
189
+ top: Math.max(w + f, Math.min(w + O - f - c, (y + W - c) / 2)),
190
190
  left: "100%",
191
191
  transform: "rotate(-90deg)",
192
192
  transformOrigin: "bottom"
@@ -194,11 +194,11 @@ const ft = (e)=>({
194
194
  break;
195
195
  case "right":
196
196
  o = {
197
- left: d - I,
198
- top: _,
199
- padding: `0px 0px 0px ${w}px`
197
+ left: p - S,
198
+ top: w,
199
+ padding: `0px 0px 0px ${_}px`
200
200
  }, t = {
201
- top: Math.max(_ + m, Math.min(_ + O - m - l, (y + W - l) / 2)),
201
+ top: Math.max(w + f, Math.min(w + O - f - c, (y + W - c) / 2)),
202
202
  right: "100%",
203
203
  transform: "rotate(90deg)",
204
204
  transformOrigin: "bottom"
@@ -206,64 +206,64 @@ const ft = (e)=>({
206
206
  break;
207
207
  default:
208
208
  {
209
- const Mt = c;
209
+ const Mt = d;
210
210
  throw new Error(`Invalid tooltip position: ${Mt}`);
211
211
  }
212
212
  }
213
- typeof t.top == "number" && (t.top -= o.top, t.top = `${t.top / O * 100}%`), typeof t.left == "number" && (t.left -= o.left, t.left = `${t.left / R * 100}%`), pt(o, B) || H(o), pt(t, Y) || V(t);
213
+ typeof t.top == "number" && (t.top -= o.top, t.top = `${t.top / O * 100}%`), typeof t.left == "number" && (t.left -= o.left, t.left = `${t.left / I * 100}%`), pt(o, D) || Y(o), pt(t, H) || V(t);
214
214
  }, [
215
215
  P,
216
- a,
216
+ l,
217
217
  lt,
218
- b,
219
- c,
220
- p,
218
+ v,
219
+ d,
220
+ a,
221
221
  g,
222
- B,
223
- Y,
224
- m,
222
+ D,
223
+ H,
224
+ f,
225
225
  T,
226
226
  E,
227
- S
227
+ R
228
228
  ]);
229
229
  const Q = s.useRef(!1);
230
230
  s.useEffect(()=>{
231
- const o = (d)=>{
232
- switch(d.key){
233
- case Yt:
234
- r || S();
235
- break;
231
+ const o = (p)=>{
232
+ switch(p.key){
236
233
  case Ht:
234
+ r || R();
235
+ break;
236
+ case Yt:
237
237
  Q.current = !0;
238
238
  break;
239
239
  }
240
- }, t = ()=>Q.current = !1, v = (d)=>{
241
- !r && T && a && (d.clientX < a.left || d.clientX > a.right || d.clientY < a.top || d.clientY > a.bottom) && S();
240
+ }, t = ()=>Q.current = !1, x = (p)=>{
241
+ !r && T && l && (p.clientX < l.left || p.clientX > l.right || p.clientY < l.top || p.clientY > l.bottom) && R();
242
242
  };
243
- return document.addEventListener("keydown", o, !1), document.addEventListener("keyup", t, !1), document.addEventListener("click", v, !1), ()=>{
244
- document.removeEventListener("keydown", o, !1), document.removeEventListener("keyup", t, !1), document.removeEventListener("click", v, !1);
243
+ return document.addEventListener("keydown", o, !1), document.addEventListener("keyup", t, !1), document.addEventListener("click", x, !1), ()=>{
244
+ document.removeEventListener("keydown", o, !1), document.removeEventListener("keyup", t, !1), document.removeEventListener("click", x, !1);
245
245
  };
246
246
  }, [
247
247
  T,
248
- S,
249
- a,
248
+ R,
249
+ l,
250
250
  r
251
251
  ]), s.useEffect(()=>{
252
- q || (Z || it || nt ? ot(E) : rt(E));
252
+ q || (Z || nt || it ? ot(E) : rt(E));
253
253
  }, [
254
254
  Z,
255
- it,
256
255
  nt,
256
+ it,
257
257
  E,
258
258
  ot,
259
259
  rt,
260
260
  q
261
261
  ]);
262
- const It = $ !== void 0 ? $ : (lt === null || lt === void 0 ? void 0 : lt.width) === X;
263
- return /* @__PURE__ */ k(_t, {
262
+ const St = $ !== void 0 ? $ : (lt === null || lt === void 0 ? void 0 : lt.width) === X;
263
+ return /* @__PURE__ */ k(wt, {
264
264
  children: [
265
- /* @__PURE__ */ i("div", {
266
- style: n,
265
+ /* @__PURE__ */ n("div", {
266
+ style: i,
267
267
  ref: (o)=>{
268
268
  const t = o === null || o === void 0 ? void 0 : o.firstElementChild;
269
269
  t && t !== G.current && (G.current = t);
@@ -286,41 +286,41 @@ const ft = (e)=>({
286
286
  "aria-describedby": E,
287
287
  children: u
288
288
  }),
289
- /* @__PURE__ */ i(Nt, {
290
- children: /* @__PURE__ */ i(yt, {
291
- in: b,
289
+ /* @__PURE__ */ n(Nt, {
290
+ children: /* @__PURE__ */ n(yt, {
291
+ in: v,
292
292
  nodeRef: K,
293
293
  timeout: qt() ? 0 : {
294
294
  enter: ee + U,
295
295
  exit: re
296
296
  },
297
297
  onExited: ()=>{
298
- H(void 0), V(void 0);
298
+ Y(void 0), V(void 0);
299
299
  },
300
300
  mountOnEnter: !0,
301
301
  unmountOnExit: !0,
302
- children: (o)=>/* @__PURE__ */ i("div", _object_spread_props(_object_spread({
302
+ children: (o)=>/* @__PURE__ */ n("div", _object_spread_props(_object_spread({
303
303
  style: {
304
304
  /**
305
305
  * Hack to prevent text from wrapping automatically when touching the viewport's edges,
306
306
  * even if the content's width didn't reach the max width.
307
307
  * https://stackoverflow.com/questions/66106629/how-to-disable-text-wrapping-when-viewport-border-is-reached
308
- */ width: `calc(100vw + ${mt}px)`,
308
+ */ width: `calc(100vw + ${ft}px)`,
309
309
  top: 0,
310
310
  left: 0,
311
311
  position: "fixed",
312
- visibility: B ? "visible" : "hidden"
312
+ visibility: D ? "visible" : "hidden"
313
313
  }
314
- }, f), {
314
+ }, m), {
315
315
  role: "tooltip",
316
316
  "aria-label": E,
317
317
  tabIndex: -1,
318
- children: /* @__PURE__ */ i("div", {
318
+ children: /* @__PURE__ */ n("div", {
319
319
  className: et(Wt),
320
320
  style: _object_spread_props(_object_spread({
321
321
  pointerEvents: o === "entered" ? "auto" : "none",
322
- transform: ie(c)
323
- }, B, kt[o]), {
322
+ transform: ne(d)
323
+ }, D, kt[o]), {
324
324
  transition: o === "entering" ? `opacity .1s linear ${U}ms,transform .3s cubic-bezier(0.215,0.61,0.335,1) ${U}ms` : "opacity .1s linear"
325
325
  }),
326
326
  ref: Ut(xt, K),
@@ -333,35 +333,35 @@ const ft = (e)=>({
333
333
  children: /* @__PURE__ */ k("div", {
334
334
  className: Ft,
335
335
  style: _object_spread_props(_object_spread({
336
- width: x,
336
+ width: b,
337
337
  minWidth: X,
338
- minHeight: c === "left" || c === "right" ? X : void 0
339
- }, ft(at)), {
340
- maxWidth: Math.min(mt, g.width)
338
+ minHeight: d === "left" || d === "right" ? X : void 0
339
+ }, mt(at)), {
340
+ maxWidth: Math.min(ft, g.width)
341
341
  }),
342
342
  children: [
343
- /* @__PURE__ */ i("div", {
343
+ /* @__PURE__ */ n("div", {
344
344
  style: {
345
- maxHeight: St
345
+ maxHeight: Rt
346
346
  },
347
347
  className: et(At, {
348
- [Dt]: It
348
+ [Bt]: St
349
349
  }),
350
350
  children: /* @__PURE__ */ k(Kt, {
351
351
  variant: "default",
352
352
  children: [
353
- /* @__PURE__ */ i("div", {
353
+ /* @__PURE__ */ n("div", {
354
354
  ref: st,
355
355
  children: e
356
356
  }),
357
- C && /* @__PURE__ */ i("div", {
357
+ C && /* @__PURE__ */ n("div", {
358
358
  className: $t,
359
- children: /* @__PURE__ */ i(Jt, {
359
+ children: /* @__PURE__ */ n(Jt, {
360
360
  onPress: ()=>{
361
361
  N(!1), C();
362
362
  },
363
363
  trackingEvent: ht,
364
- "aria-label": D || Tt.closeButtonLabel || gt(te),
364
+ "aria-label": B || Tt.closeButtonLabel || gt(te),
365
365
  Icon: Qt,
366
366
  small: !0
367
367
  })
@@ -369,12 +369,12 @@ const ft = (e)=>({
369
369
  ]
370
370
  })
371
371
  }),
372
- /* @__PURE__ */ i("div", {
373
- className: Bt,
374
- style: Y,
375
- children: /* @__PURE__ */ i("div", {
372
+ /* @__PURE__ */ n("div", {
373
+ className: Dt,
374
+ style: H,
375
+ children: /* @__PURE__ */ n("div", {
376
376
  className: et(Pt),
377
- style: ft(at)
377
+ style: mt(at)
378
378
  })
379
379
  })
380
380
  ]
@@ -385,8 +385,8 @@ const ft = (e)=>({
385
385
  })
386
386
  ]
387
387
  });
388
- }, _e = (_param)=>{
389
- var { centerContent: e, slot: u, children: n, dataAttributes: x, title: h, description: p } = _param, f = _object_without_properties(_param, [
388
+ }, we = (_param)=>{
389
+ var { centerContent: e, slot: u, children: i, dataAttributes: b, title: h, description: a } = _param, m = _object_without_properties(_param, [
390
390
  "centerContent",
391
391
  "slot",
392
392
  "children",
@@ -394,30 +394,30 @@ const ft = (e)=>({
394
394
  "title",
395
395
  "description"
396
396
  ]);
397
- return /* @__PURE__ */ i(ae, _object_spread({
397
+ return /* @__PURE__ */ n(ae, _object_spread({
398
398
  content: /* @__PURE__ */ k("div", {
399
399
  className: Lt,
400
400
  children: [
401
- (h || p) && /* @__PURE__ */ k(Xt, {
401
+ (h || a) && /* @__PURE__ */ k(Xt, {
402
402
  space: 4,
403
403
  children: [
404
- h && /* @__PURE__ */ i(dt, {
404
+ h && /* @__PURE__ */ n(dt, {
405
405
  medium: !0,
406
406
  children: h
407
407
  }),
408
- p && /* @__PURE__ */ i(dt, {
408
+ a && /* @__PURE__ */ n(dt, {
409
409
  regular: !0,
410
- children: p
410
+ children: a
411
411
  })
412
412
  ]
413
413
  }),
414
- u !== null && u !== void 0 ? u : n
414
+ u !== null && u !== void 0 ? u : i
415
415
  ]
416
416
  }),
417
417
  centerContent: e,
418
418
  dataAttributes: _object_spread({
419
419
  testid: "Tooltip"
420
- }, x)
421
- }, f));
420
+ }, b)
421
+ }, m));
422
422
  };
423
- export { ae as BaseTooltip, _e as default };
423
+ export { ae as BaseTooltip, we as default };
@@ -1,2 +1,2 @@
1
- /* empty css */ /* empty css */ var t = "v17_9_mhti6u0", h = "v17_9_mhti6u2 v17_9_mhti6u1 v17_9_1y2v1nfuh", n = "v17_9_mhti6u4 v17_9_mhti6u2 v17_9_mhti6u1 v17_9_1y2v1nfuh v17_9_mhti6u3 v17_9_1y2v1nfh7 v17_9_1y2v1nfig v17_9_1y2v1nfjp v17_9_1y2v1nfky v17_9_1y2v1nfrg v17_9_1y2v1nftw v17_9_1y2v1nfs1 v17_9_1y2v1nf8k v17_9_1y2v1nfh6 v17_9_1y2v1nfuj", u = "v17_9_mhti6u5";
2
- export { h as base, t as marginReset, u as notTouchable, n as touchable };
1
+ /* empty css */ /* empty css */ var n = "v17_11_mhti6u0", t = "v17_11_mhti6u2 v17_11_mhti6u1 v17_11_1y2v1nfv1", f = "v17_11_mhti6u4 v17_11_mhti6u2 v17_11_mhti6u1 v17_11_1y2v1nfv1 v17_11_mhti6u3 v17_11_1y2v1nfhr v17_11_1y2v1nfj0 v17_11_1y2v1nfk9 v17_11_1y2v1nfli v17_11_1y2v1nfs0 v17_11_1y2v1nfug v17_11_1y2v1nfsl v17_11_1y2v1nf8u v17_11_1y2v1nfhq v17_11_1y2v1nfv3", h = "v17_11_mhti6u5";
2
+ export { t as base, n as marginReset, h as notTouchable, f as touchable };
@@ -1,4 +1,4 @@
1
1
  /* empty css */ /* empty css */ var r = {
2
- aspectRatio: "var(--v17_9_yqswj60)"
3
- }, a = "v17_9_yqswj61 v17_9_1y2v1nfui v17_9_1y2v1nftt v17_9_1y2v1nftu v17_9_1y2v1nfr8", n = "v17_9_yqswj62", y = "v17_9_yqswj63 v17_9_1y2v1nfs1 v17_9_1y2v1nfsi v17_9_1y2v1nfuo v17_9_1y2v1nfv3";
4
- export { n as container, y as containerWithWrapper, r as vars, a as wrapper };
2
+ aspectRatio: "var(--v17_11_yqswj60)"
3
+ }, n = "v17_11_yqswj61 v17_11_1y2v1nfv2 v17_11_1y2v1nfud v17_11_1y2v1nfue v17_11_1y2v1nfrs", a = "v17_11_yqswj62", y = "v17_11_yqswj63 v17_11_1y2v1nfsl v17_11_1y2v1nft2 v17_11_1y2v1nfv8 v17_11_1y2v1nfvn";
4
+ export { a as container, y as containerWithWrapper, r as vars, n as wrapper };
@@ -1,2 +1,2 @@
1
- /* empty css */ /* empty css */ var f = "v17_9_19h163j0 v17_9_1y2v1nfuo v17_9_1y2v1nfv3 v17_9_1y2v1nfrg v17_9_1y2v1nfh6 v17_9_1y2v1nftt v17_9_1y2v1nftu v17_9_1y2v1nfwc";
2
- export { f as video };
1
+ /* empty css */ /* empty css */ var n = "v17_11_19h163j0 v17_11_1y2v1nfv8 v17_11_1y2v1nfvn v17_11_1y2v1nfs0 v17_11_1y2v1nfhq v17_11_1y2v1nfud v17_11_1y2v1nfue v17_11_1y2v1nfww";
2
+ export { n as video };
@@ -1,2 +1,2 @@
1
- /* empty css */ var a = "v17_9_1ezqdj90", r = "v17_9_1ezqdj91";
1
+ /* empty css */ var a = "v17_11_1ezqdj90", r = "v17_11_1ezqdj91";
2
2
  export { a as container, r as waveFadeOut };
package/doc/layout.md CHANGED
@@ -466,7 +466,7 @@ A 12-column grid with predefined templates for common page layouts. Must be used
466
466
 
467
467
  Available templates:
468
468
 
469
- - Split layouts (use `left`/`right` props): `'6+6'`, `'8+4'`, `'5+4'`, `'4+6'`, `'3+9'`
469
+ - Split layouts (use `left`/`right` props): `'6+6'`, `'8+4'`, `'7+5'`, `'5+4'`, `'4+6'`, `'3+9'`
470
470
  - Centered single-column layouts (use `children`): `'10'`, `'8'`
471
471
  - No template (raw 12-column grid, use `children`)
472
472
 
@@ -70,6 +70,7 @@ tablet), and each direct child carries a `col-[start/span_N]` class. Read the `s
70
70
  | ---------------------------- | ------------------------------------------------- |
71
71
  | 6, 6 | `template="6+6"` (`left` / `right`) |
72
72
  | 8, 4 | `template="8+4"` (`left` / `right`) |
73
+ | 7, 5 | `template="7+5"` (`left` / `right`) |
73
74
  | 4, 6 | `template="4+6"` (`left` / `right`) |
74
75
  | 3, 9 | `template="3+9"` (`left` / `right`) |
75
76
  | 5, 4 | `template="5+4"` (`left` / `right`) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "17.9.0",
3
+ "version": "17.11.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -125,6 +125,16 @@ export const getCyberSkin = (): Skin => {
125
125
  backgroundDropZoneNegativeDragover: applyAlpha(palette.white, 0.17),
126
126
  backgroundDropZoneMediaHover: applyAlpha(palette.brand80, 0.2),
127
127
  backgroundDropZoneMediaDragover: applyAlpha(palette.brand80, 0.4),
128
+ messageBubbleBackgroundOutgoing: palette.brand15,
129
+ messageBubbleBackgroundOutgoingBrand: palette.brand15,
130
+ messageBubbleBackgroundOutgoingAlternative: palette.brand15,
131
+ messageBubbleBackgroundOutgoingNegative: palette.brand15,
132
+ messageBubbleBackgroundOutgoingMedia: palette.brand15,
133
+ messageBubbleBackgroundIncoming: palette.brand10,
134
+ messageBubbleBackgroundIncomingBrand: palette.white,
135
+ messageBubbleBackgroundIncomingAlternative: palette.white,
136
+ messageBubbleBackgroundIncomingNegative: palette.white,
137
+ messageBubbleBackgroundIncomingMedia: palette.white,
128
138
  skeletonWave: palette.grey100,
129
139
  borderLow: palette.grey15,
130
140
  border: palette.grey100,
@@ -434,6 +444,16 @@ export const getCyberSkin = (): Skin => {
434
444
  backgroundDropZoneNegativeDragover: applyAlpha(palette.white, 0.05),
435
445
  backgroundDropZoneMediaHover: applyAlpha(palette.white, 0.03),
436
446
  backgroundDropZoneMediaDragover: applyAlpha(palette.white, 0.05),
447
+ messageBubbleBackgroundOutgoing: palette.brandDark,
448
+ messageBubbleBackgroundOutgoingBrand: palette.brandDark,
449
+ messageBubbleBackgroundOutgoingAlternative: palette.brandDark,
450
+ messageBubbleBackgroundOutgoingNegative: palette.brandDark,
451
+ messageBubbleBackgroundOutgoingMedia: palette.brandDark,
452
+ messageBubbleBackgroundIncoming: palette.darkModeGrey,
453
+ messageBubbleBackgroundIncomingBrand: palette.darkModeGrey,
454
+ messageBubbleBackgroundIncomingAlternative: palette.darkModeGrey,
455
+ messageBubbleBackgroundIncomingNegative: palette.darkModeGrey,
456
+ messageBubbleBackgroundIncomingMedia: palette.darkModeGrey,
437
457
  skeletonWave: palette.grey700,
438
458
  borderLow: palette.darkModeBlack,
439
459
  border: palette.grey800,