@studiolxd/brand 47.1.0 → 48.1.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 (59) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/dist/_shared/progressbar.js +19 -18
  3. package/dist/_shared/tokens.js +0 -1
  4. package/dist/_types/atoms/CopyableValue/CopyableValue.d.ts +4 -4
  5. package/dist/_types/atoms/DescriptionList/DescriptionList.d.ts +5 -4
  6. package/dist/_types/atoms/DotsButton/DotsButton.d.ts +15 -0
  7. package/dist/_types/atoms/ProgressBar/ProgressBar.d.ts +12 -2
  8. package/dist/_types/atoms/Slider/Slider.d.ts +19 -2
  9. package/dist/_types/atoms/Spinner/Spinner.d.ts +15 -1
  10. package/dist/_types/constants/copy-to-clipboard.d.ts +22 -0
  11. package/dist/_types/messages/BrandMessages.d.ts +35 -1
  12. package/dist/_types/messages/index.d.ts +1 -1
  13. package/dist/_types/molecules/CalendarPlanner/CalendarPlanner.d.ts +13 -3
  14. package/dist/_types/molecules/CalendarRoster/CalendarRoster.d.ts +38 -5
  15. package/dist/_types/molecules/Carousel/Carousel.d.ts +65 -13
  16. package/dist/_types/molecules/CodeBlock/CodeBlock.d.ts +20 -6
  17. package/dist/_types/molecules/ContextMenu/ContextMenu.d.ts +5 -1
  18. package/dist/_types/molecules/CopyButton/CopyButton.d.ts +5 -6
  19. package/dist/_types/molecules/FilterBar/FilterBar.d.ts +4 -3
  20. package/dist/_types/molecules/LanguageSwitcher/LanguageSwitcher.d.ts +13 -1
  21. package/dist/_types/molecules/NotificationList/NotificationList.d.ts +33 -3
  22. package/dist/_types/molecules/Pagination/Pagination.d.ts +16 -2
  23. package/dist/_types/molecules/ProjectCard/ProjectCard.d.ts +14 -1
  24. package/dist/_types/molecules/Stepper/Stepper.d.ts +32 -7
  25. package/dist/_types/molecules/TreeView/TreeView.d.ts +11 -2
  26. package/dist/_types/molecules/UptimeBars/UptimeBars.d.ts +20 -2
  27. package/dist/_types/organisms/Chart/Chart.d.ts +46 -8
  28. package/dist/_types/sections/LegalFooter/LegalFooter.d.ts +13 -1
  29. package/dist/_types/templates/PublicPageShell/PublicPageShell.d.ts +15 -1
  30. package/dist/brand.css +2 -4
  31. package/dist/calendar-planner.js +47 -47
  32. package/dist/calendar-roster.js +28 -25
  33. package/dist/carousel.js +69 -67
  34. package/dist/chart.js +250 -249
  35. package/dist/code-block.js +34 -34
  36. package/dist/context-menu.js +1 -1
  37. package/dist/copy-button.js +35 -34
  38. package/dist/copyable-value.js +43 -42
  39. package/dist/description-list.js +1 -1
  40. package/dist/dots-button.js +18 -17
  41. package/dist/filter-bar.css +1 -1
  42. package/dist/language-switcher.js +43 -41
  43. package/dist/legal-footer.js +21 -18
  44. package/dist/notification-list.js +40 -38
  45. package/dist/pagination.js +12 -12
  46. package/dist/progress-bar.js +1 -0
  47. package/dist/project-card.js +31 -30
  48. package/dist/public-page-shell.js +12 -11
  49. package/dist/slider.js +24 -23
  50. package/dist/spinner.js +19 -14
  51. package/dist/stepper.js +35 -38
  52. package/dist/tokens.css +2 -4
  53. package/dist/tree-view.js +86 -85
  54. package/dist/uptime-bars.js +54 -53
  55. package/package.json +1 -1
  56. package/src/tokens/molecules/filter-bar.css +1 -2
  57. package/src/tokens/scss/molecules/_filter-bar.scss +1 -2
  58. package/src/tokens/surface-public.css +0 -1
  59. package/src/tokens/tokens.json +0 -1
package/dist/tree-view.js CHANGED
@@ -1,165 +1,166 @@
1
1
  'use client';
2
2
  import './tree-view.css';
3
- import { Icon as e } from "./icon.js";
4
- import { useCallback as t, useId as n, useMemo as r, useRef as i, useState as a } from "react";
5
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { Icon as t } from "./icon.js";
5
+ import { useCallback as n, useId as r, useMemo as i, useRef as a, useState as o } from "react";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
7
  //#region src/stories/molecules/TreeView/TreeView.tsx
7
- var c = 500;
8
- function l(e, t, n = 1, r) {
8
+ var l = 500;
9
+ function u(e, t, n = 1, r) {
9
10
  return e.flatMap((e) => [{
10
11
  node: e,
11
12
  level: n,
12
13
  parentId: r
13
- }, ...e.children && t.has(e.id) ? l(e.children, t, n + 1, e.id) : []]);
14
+ }, ...e.children && t.has(e.id) ? u(e.children, t, n + 1, e.id) : []]);
14
15
  }
15
- function u({ items: u, expanded: d, defaultExpanded: f, onExpandedChange: p, selected: m, defaultSelected: h, onSelectedChange: g, label: _ = "Árbol", truncateFromLevel: v = 4, nodeRef: y, className: b, ...x }) {
16
- let S = n(), C = i(null), [w, T] = a(f ?? []), E = d !== void 0, D = E ? d : w, [O, k] = a(h), A = m !== void 0, j = A ? m : O, M = r(() => new Set(D), [D]), N = r(() => l(u, M), [u, M]), [P, F] = a(void 0), I = P && N.some((e) => e.node.id === P) ? P : j && N.some((e) => e.node.id === j) ? j : N[0]?.node.id, L = i(""), R = i(0), z = t((e) => {
17
- E || T(e), p?.(e);
18
- }, [E, p]), B = t((e, t) => {
19
- let n = M.has(e), r = t ?? !n;
20
- r !== n && z(r ? [...D, e] : D.filter((t) => t !== e));
16
+ function d({ items: d, expanded: f, defaultExpanded: p, onExpandedChange: m, selected: h, defaultSelected: g, onSelectedChange: _, label: v, truncateFromLevel: y = 4, nodeRef: b, className: x, ...S }) {
17
+ let C = e("treeView"), w = r(), T = a(null), [E, D] = o(p ?? []), O = f !== void 0, k = O ? f : E, [A, j] = o(g), M = h !== void 0, N = M ? h : A, P = i(() => new Set(k), [k]), F = i(() => u(d, P), [d, P]), [I, L] = o(void 0), R = I && F.some((e) => e.node.id === I) ? I : N && F.some((e) => e.node.id === N) ? N : F[0]?.node.id, z = a(""), B = a(0), V = n((e) => {
18
+ O || D(e), m?.(e);
19
+ }, [O, m]), H = n((e, t) => {
20
+ let n = P.has(e), r = t ?? !n;
21
+ r !== n && V(r ? [...k, e] : k.filter((t) => t !== e));
21
22
  }, [
22
- D,
23
- M,
24
- z
25
- ]), V = t((e) => {
26
- A || k(e), g?.(e);
27
- }, [A, g]), H = t((e) => {
28
- let t = N.filter((t) => t.parentId === e.parentId && t.node.children?.length).map((e) => e.node.id).filter((e) => !M.has(e));
29
- t.length !== 0 && z([...D, ...t]);
23
+ k,
24
+ P,
25
+ V
26
+ ]), U = n((e) => {
27
+ M || j(e), _?.(e);
28
+ }, [M, _]), W = n((e) => {
29
+ let t = F.filter((t) => t.parentId === e.parentId && t.node.children?.length).map((e) => e.node.id).filter((e) => !P.has(e));
30
+ t.length !== 0 && V([...k, ...t]);
30
31
  }, [
31
- D,
32
- N,
33
- M,
34
- z
35
- ]), U = t((e) => `${S}-${e}`, [S]), W = t((e) => {
36
- e && (F(e), C.current?.querySelector(`[data-tree-item="${CSS.escape(e)}"]`)?.focus());
37
- }, []), G = t((e, t) => {
38
- let n = Date.now(), r = n - R.current > c ? e : L.current + e;
39
- L.current = r, R.current = n;
32
+ k,
33
+ F,
34
+ P,
35
+ V
36
+ ]), G = n((e) => `${w}-${e}`, [w]), K = n((e) => {
37
+ e && (L(e), T.current?.querySelector(`[data-tree-item="${CSS.escape(e)}"]`)?.focus());
38
+ }, []), q = n((e, t) => {
39
+ let n = Date.now(), r = n - B.current > l ? e : z.current + e;
40
+ z.current = r, B.current = n;
40
41
  let i = r.length === 1 ? t + 1 : Math.max(t, 0), a = r.toLowerCase();
41
- for (let e = 0; e < N.length; e++) {
42
- let t = N[(i + e) % N.length].node.id;
43
- if ((C.current?.querySelector(`[data-tree-item="${CSS.escape(t)}"] > .tree-view__row .tree-view__label`)?.textContent ?? "").trim().toLowerCase().startsWith(a)) {
44
- W(t);
42
+ for (let e = 0; e < F.length; e++) {
43
+ let t = F[(i + e) % F.length].node.id;
44
+ if ((T.current?.querySelector(`[data-tree-item="${CSS.escape(t)}"] > .tree-view__row .tree-view__label`)?.textContent ?? "").trim().toLowerCase().startsWith(a)) {
45
+ K(t);
45
46
  return;
46
47
  }
47
48
  }
48
- }, [N, W]);
49
- function K(e, t) {
50
- let { node: n, parentId: r } = t, i = N.findIndex((e) => e.node.id === n.id), a = !!n.children?.length, o = M.has(n.id);
49
+ }, [F, K]);
50
+ function J(e, t) {
51
+ let { node: n, parentId: r } = t, i = F.findIndex((e) => e.node.id === n.id), a = !!n.children?.length, o = P.has(n.id);
51
52
  switch (e.key) {
52
53
  case "ArrowDown":
53
- e.preventDefault(), W(N[i + 1]?.node.id);
54
+ e.preventDefault(), K(F[i + 1]?.node.id);
54
55
  break;
55
56
  case "ArrowUp":
56
- e.preventDefault(), W(N[i - 1]?.node.id);
57
+ e.preventDefault(), K(F[i - 1]?.node.id);
57
58
  break;
58
59
  case "ArrowRight":
59
- e.preventDefault(), a && !o ? B(n.id, !0) : a && o && W(N[i + 1]?.node.id);
60
+ e.preventDefault(), a && !o ? H(n.id, !0) : a && o && K(F[i + 1]?.node.id);
60
61
  break;
61
62
  case "ArrowLeft":
62
- e.preventDefault(), a && o ? B(n.id, !1) : r && W(r);
63
+ e.preventDefault(), a && o ? H(n.id, !1) : r && K(r);
63
64
  break;
64
65
  case "Home":
65
- e.preventDefault(), W(N[0]?.node.id);
66
+ e.preventDefault(), K(F[0]?.node.id);
66
67
  break;
67
68
  case "End":
68
- e.preventDefault(), W(N[N.length - 1]?.node.id);
69
+ e.preventDefault(), K(F[F.length - 1]?.node.id);
69
70
  break;
70
71
  case "Enter":
71
72
  case " ":
72
- e.preventDefault(), n.disabled || V(n.id);
73
+ e.preventDefault(), n.disabled || U(n.id);
73
74
  break;
74
75
  case "*":
75
- e.preventDefault(), H(t);
76
+ e.preventDefault(), W(t);
76
77
  break;
77
78
  default:
78
- e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), G(e.key, i));
79
+ e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), q(e.key, i));
79
80
  break;
80
81
  }
81
82
  }
82
- function q(t, n, r) {
83
- return t.map((t) => {
84
- let i = !!t.children?.length, a = i && M.has(t.id), c = j === t.id, l = a && t.iconExpanded || t.icon, u = n >= v, d = u && typeof t.label == "string" ? t.label : void 0, f = t.dropTarget ? "target" : t.dropDisabled ? "disabled" : void 0;
85
- return /* @__PURE__ */ s("li", {
83
+ function Y(e, n, r) {
84
+ return e.map((e) => {
85
+ let i = !!e.children?.length, a = i && P.has(e.id), o = N === e.id, l = a && e.iconExpanded || e.icon, u = n >= y, d = u && typeof e.label == "string" ? e.label : void 0, f = e.dropTarget ? "target" : e.dropDisabled ? "disabled" : void 0;
86
+ return /* @__PURE__ */ c("li", {
86
87
  role: "treeitem",
87
- "data-tree-item": t.id,
88
- "aria-labelledby": U(t.id),
88
+ "data-tree-item": e.id,
89
+ "aria-labelledby": G(e.id),
89
90
  "aria-expanded": i ? a : void 0,
90
- "aria-selected": c,
91
+ "aria-selected": o,
91
92
  "aria-level": n,
92
- "aria-disabled": t.disabled || void 0,
93
+ "aria-disabled": e.disabled || void 0,
93
94
  "data-drop": f,
94
- tabIndex: I === t.id ? 0 : -1,
95
+ tabIndex: R === e.id ? 0 : -1,
95
96
  className: [
96
97
  "tree-view__item",
97
- c ? "tree-view__item--selected" : "",
98
- t.disabled ? "tree-view__item--disabled" : "",
99
- t.dropTarget ? "tree-view__item--drop-target" : "",
100
- t.dropDisabled ? "tree-view__item--drop-disabled" : ""
98
+ o ? "tree-view__item--selected" : "",
99
+ e.disabled ? "tree-view__item--disabled" : "",
100
+ e.dropTarget ? "tree-view__item--drop-target" : "",
101
+ e.dropDisabled ? "tree-view__item--drop-disabled" : ""
101
102
  ].filter(Boolean).join(" "),
102
- onKeyDown: (e) => {
103
- e.target === e.currentTarget && K(e, {
104
- node: t,
103
+ onKeyDown: (t) => {
104
+ t.target === t.currentTarget && J(t, {
105
+ node: e,
105
106
  level: n,
106
107
  parentId: r
107
108
  });
108
109
  },
109
- onFocus: (e) => {
110
- e.target === e.currentTarget && F(t.id);
110
+ onFocus: (t) => {
111
+ t.target === t.currentTarget && L(e.id);
111
112
  },
112
- onClick: t.disabled ? void 0 : (e) => {
113
- e.stopPropagation(), i && B(t.id), V(t.id), W(t.id);
113
+ onClick: e.disabled ? void 0 : (t) => {
114
+ t.stopPropagation(), i && H(e.id), U(e.id), K(e.id);
114
115
  },
115
- children: [/* @__PURE__ */ s("span", {
116
+ children: [/* @__PURE__ */ c("span", {
116
117
  className: "tree-view__row",
117
- ref: y ? (e) => y(t.id, e) : void 0,
118
+ ref: b ? (t) => b(e.id, t) : void 0,
118
119
  children: [
119
- /* @__PURE__ */ o("span", {
120
+ /* @__PURE__ */ s("span", {
120
121
  className: "tree-view__chevron-slot",
121
122
  "aria-hidden": "true",
122
- children: i && /* @__PURE__ */ o(e, {
123
+ children: i && /* @__PURE__ */ s(t, {
123
124
  name: "chevron",
124
125
  className: "tree-view__chevron",
125
126
  size: "sm"
126
127
  })
127
128
  }),
128
- l && /* @__PURE__ */ o("span", {
129
+ l && /* @__PURE__ */ s("span", {
129
130
  className: "tree-view__icon",
130
131
  "aria-hidden": "true",
131
132
  children: l
132
133
  }),
133
- /* @__PURE__ */ o("span", {
134
+ /* @__PURE__ */ s("span", {
134
135
  className: ["tree-view__label", u ? "tree-view__label--truncated" : ""].filter(Boolean).join(" "),
135
- id: U(t.id),
136
+ id: G(e.id),
136
137
  title: d,
137
- children: t.label
138
+ children: e.label
138
139
  }),
139
- t.actions && /* @__PURE__ */ o("span", {
140
+ e.actions && /* @__PURE__ */ s("span", {
140
141
  className: "tree-view__actions",
141
142
  onClick: (e) => e.stopPropagation(),
142
143
  onKeyDown: (e) => e.stopPropagation(),
143
144
  onKeyUp: (e) => e.stopPropagation(),
144
- children: t.actions
145
+ children: e.actions
145
146
  })
146
147
  ]
147
- }), i && a && /* @__PURE__ */ o("ul", {
148
+ }), i && a && /* @__PURE__ */ s("ul", {
148
149
  role: "group",
149
150
  className: "tree-view__group",
150
- children: q(t.children, n + 1, t.id)
151
+ children: Y(e.children, n + 1, e.id)
151
152
  })]
152
- }, t.id);
153
+ }, e.id);
153
154
  });
154
155
  }
155
- return /* @__PURE__ */ o("ul", {
156
- ref: C,
156
+ return /* @__PURE__ */ s("ul", {
157
+ ref: T,
157
158
  role: "tree",
158
- "aria-label": _,
159
- className: ["tree-view", b].filter(Boolean).join(" "),
160
- ...x,
161
- children: q(u, 1)
159
+ "aria-label": C("label", v),
160
+ className: ["tree-view", x].filter(Boolean).join(" "),
161
+ ...S,
162
+ children: Y(d, 1)
162
163
  });
163
164
  }
164
165
  //#endregion
165
- export { u as TreeView };
166
+ export { d as TreeView };
@@ -1,33 +1,34 @@
1
1
  'use client';
2
2
  import './uptime-bars.css';
3
- import { Tooltip as e } from "./tooltip.js";
4
- import { forwardRef as t, useRef as n, useState as r } from "react";
5
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { Tooltip as t } from "./tooltip.js";
5
+ import { forwardRef as n, useRef as r, useState as i } from "react";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
7
  //#region src/stories/molecules/UptimeBars/uptimeStatus.ts
7
- var o = {
8
+ var s = {
8
9
  ok: 99.65,
9
10
  degraded: 95.83
10
11
  };
11
- function s(e, t) {
12
+ function c(e, t) {
12
13
  return e === null || !Number.isFinite(e) ? "empty" : e >= t.ok ? "ok" : e >= t.degraded ? "degraded" : "down";
13
14
  }
14
15
  //#endregion
15
16
  //#region src/stories/molecules/UptimeBars/UptimeBars.tsx
16
- var c = t(function({ points: t, summary: c, label: l = "Disponibilidad", startLabel: u, endLabel: d, thresholds: f, locale: p = "es-ES", maximumFractionDigits: m = 2, pointLabel: h, noDataLabel: g = "sin datos", tooltips: _ = !0, className: v, ...y }, b) {
17
- let x = {
18
- ...o,
19
- ...f
20
- }, S = n([]), [C, w] = r(0), T = new Intl.NumberFormat(p, {
17
+ var l = n(function({ points: n, summary: l, label: u, startLabel: d, endLabel: f, thresholds: p, locale: m = "es-ES", maximumFractionDigits: h = 2, pointLabel: g, noDataLabel: _, tooltips: v = !0, className: y, ...b }, x) {
18
+ let S = e("uptimeBars"), C = {
19
+ ...s,
20
+ ...p
21
+ }, w = r([]), [T, E] = i(0), D = new Intl.NumberFormat(m, {
21
22
  style: "percent",
22
- maximumFractionDigits: m
23
- }), E = (e) => e === null || !Number.isFinite(e) ? null : T.format(e / 100), D = (e, t) => {
24
- if (h) return h(e, t);
25
- let n = `${e.label}: ${t ?? g}`;
23
+ maximumFractionDigits: h
24
+ }), O = (e) => e === null || !Number.isFinite(e) ? null : D.format(e / 100), k = (e, t) => {
25
+ if (g) return g(e, t);
26
+ let n = `${e.label}: ${t ?? S("noData", _)}`;
26
27
  return e.detail ? `${n}. ${e.detail}` : n;
27
- }, O = (e) => {
28
- let n = Math.max(0, Math.min(t.length - 1, e));
29
- w(n), S.current[n]?.focus();
30
- }, k = (e, n) => {
28
+ }, A = (e) => {
29
+ let t = Math.max(0, Math.min(n.length - 1, e));
30
+ E(t), w.current[t]?.focus();
31
+ }, j = (e, t) => {
31
32
  let r = {
32
33
  ArrowRight: 1,
33
34
  ArrowDown: 1,
@@ -35,66 +36,66 @@ var c = t(function({ points: t, summary: c, label: l = "Disponibilidad", startLa
35
36
  ArrowUp: -1
36
37
  }[e.key];
37
38
  if (r) {
38
- e.preventDefault(), O(n + r);
39
+ e.preventDefault(), A(t + r);
39
40
  return;
40
41
  }
41
- e.key === "Home" ? (e.preventDefault(), O(0)) : e.key === "End" && (e.preventDefault(), O(t.length - 1));
42
- }, A = Math.max(0, Math.min(C, t.length - 1));
43
- return /* @__PURE__ */ a("div", {
44
- ref: b,
45
- className: ["uptime-bars", v].filter(Boolean).join(" "),
46
- ...y,
47
- children: [/* @__PURE__ */ i("ol", {
42
+ e.key === "Home" ? (e.preventDefault(), A(0)) : e.key === "End" && (e.preventDefault(), A(n.length - 1));
43
+ }, M = Math.max(0, Math.min(T, n.length - 1));
44
+ return /* @__PURE__ */ o("div", {
45
+ ref: x,
46
+ className: ["uptime-bars", y].filter(Boolean).join(" "),
47
+ ...b,
48
+ children: [/* @__PURE__ */ a("ol", {
48
49
  className: "uptime-bars__list",
49
- "aria-label": l,
50
- children: t.map((t, n) => {
51
- let r = E(t.value), o = /* @__PURE__ */ i("span", {
52
- className: `uptime-bars__bar uptime-bars__bar--${s(t.value, x)}`,
50
+ "aria-label": S("label", u),
51
+ children: n.map((e, n) => {
52
+ let r = O(e.value), i = /* @__PURE__ */ a("span", {
53
+ className: `uptime-bars__bar uptime-bars__bar--${c(e.value, C)}`,
53
54
  role: "img",
54
- "aria-label": D(t, r),
55
- tabIndex: _ ? n === A ? 0 : -1 : void 0,
56
- onKeyDown: _ ? (e) => k(e, n) : void 0,
57
- onFocus: _ ? () => w(n) : void 0
55
+ "aria-label": k(e, r),
56
+ tabIndex: v ? n === M ? 0 : -1 : void 0,
57
+ onKeyDown: v ? (e) => j(e, n) : void 0,
58
+ onFocus: v ? () => E(n) : void 0
58
59
  });
59
- return /* @__PURE__ */ i("li", {
60
+ return /* @__PURE__ */ a("li", {
60
61
  className: "uptime-bars__item",
61
- children: _ ? /* @__PURE__ */ i(e, {
62
+ children: v ? /* @__PURE__ */ a(t, {
62
63
  ref: (e) => {
63
- S.current[n] = e;
64
+ w.current[n] = e;
64
65
  },
65
- label: /* @__PURE__ */ a("span", {
66
+ label: /* @__PURE__ */ o("span", {
66
67
  className: "uptime-bars__tooltip",
67
68
  children: [
68
- /* @__PURE__ */ i("span", {
69
+ /* @__PURE__ */ a("span", {
69
70
  className: "uptime-bars__tooltip-label",
70
- children: t.label
71
+ children: e.label
71
72
  }),
72
- /* @__PURE__ */ i("span", { children: r ?? g }),
73
- t.detail ? /* @__PURE__ */ i("span", { children: t.detail }) : null
73
+ /* @__PURE__ */ a("span", { children: r ?? S("noData", _) }),
74
+ e.detail ? /* @__PURE__ */ a("span", { children: e.detail }) : null
74
75
  ]
75
76
  }),
76
- children: o
77
- }) : o
78
- }, `${t.label}-${n}`);
77
+ children: i
78
+ }) : i
79
+ }, `${e.label}-${n}`);
79
80
  })
80
- }), /* @__PURE__ */ a("p", {
81
+ }), /* @__PURE__ */ o("p", {
81
82
  className: "uptime-bars__footer",
82
83
  children: [
83
- /* @__PURE__ */ i("span", {
84
+ /* @__PURE__ */ a("span", {
84
85
  className: "uptime-bars__edge",
85
- children: u
86
+ children: d
86
87
  }),
87
- /* @__PURE__ */ i("span", {
88
+ /* @__PURE__ */ a("span", {
88
89
  className: "uptime-bars__summary",
89
- children: c
90
+ children: l
90
91
  }),
91
- /* @__PURE__ */ i("span", {
92
+ /* @__PURE__ */ a("span", {
92
93
  className: "uptime-bars__edge uptime-bars__edge--end",
93
- children: d
94
+ children: f
94
95
  })
95
96
  ]
96
97
  })]
97
98
  });
98
99
  });
99
100
  //#endregion
100
- export { c as UptimeBars };
101
+ export { l as UptimeBars };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiolxd/brand",
3
- "version": "47.1.0",
3
+ "version": "48.1.0",
4
4
  "description": "El sistema de diseño de Studio LXD: componentes React, tokens y documentación de la suite SLXD.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,10 +3,9 @@
3
3
  */
4
4
 
5
5
  :root {
6
- --filter-bar-column-min-inline-size: var(--field-row-cell-md); /** Ancho mínimo de una columna de filtros (192px, el de una celda normal de `FieldRow`): es lo que decide cuántas caben por fila —tres o cuatro en una tabla de administración— antes de apilarse */
7
6
  --filter-bar-gap: var(--form-gap); /** Aire entre la línea del buscador y la de los filtros: el mismo que separa dos campos de un formulario, porque eso es lo que son */
8
7
  --filter-bar-column-gap: var(--field-row-column-gap); /** Aire entre las columnas de filtros — el de las celdas de una fila de campos */
9
- --filter-bar-row-gap: var(--field-row-row-gap); /** Aire entre las filas de filtros cuando la rejilla envuelve, y entre los filtros apilados en móvil */
8
+ --filter-bar-row-gap: var(--field-row-row-gap); /** Aire entre las filas de filtros cuando hay más de las que caben por punto de corte, y entre los filtros apilados en móvil */
10
9
  --filter-bar-actions-gap: var(--form-actions-gap); /** Aire entre las acciones de la barra — el de los botones de un formulario: la fila de acciones del sistema es una sola */
11
10
  --filter-bar-label-offset: calc(var(--label-font-size) * var(--label-line-height) + var(--input-field-gap)); /** El renglón que ocupa un rótulo sobre su control: cuerpo × interlineado del `Label` más el aire que los separa en un campo (29px en la aplicación; en la superficie pública el rótulo es mayor y el renglón sube con él). Es lo que la barra reserva sobre lo que NO lleva rótulo —un interruptor, el botón de limpiar— para que no se suba a la línea de las etiquetas */
12
11
  --filter-bar-control-block-size: var(--control-height); /** La caja de un campo de una línea (40px, la talla md del sistema; 48px en la superficie pública, que parte de lg). Es la referencia contra la que se centra lo que no lleva rótulo: el interruptor queda a la altura óptica del recuadro que tiene al lado, no del renglón entero —que con un control alto al lado sería otra altura cada vez— */
@@ -3,8 +3,7 @@
3
3
 
4
4
  $lxd-filter-bar-gap: 1.5rem; // Aire entre la línea del buscador y la de los filtros: el mismo que separa dos campos de un formulario, porque eso es lo que son
5
5
  $lxd-filter-bar-column-gap: 1rem; // Aire entre las columnas de filtros — el de las celdas de una fila de campos
6
- $lxd-filter-bar-row-gap: 0.75rem; // Aire entre las filas de filtros cuando la rejilla envuelve, y entre los filtros apilados en móvil
7
- $lxd-filter-bar-column-min-inline-size: 12rem; // Ancho mínimo de una columna de filtros (192px, el de una celda normal de `FieldRow`): es lo que decide cuántas caben por fila —tres o cuatro en una tabla de administración— antes de apilarse
6
+ $lxd-filter-bar-row-gap: 0.75rem; // Aire entre las filas de filtros cuando hay más de las que caben por punto de corte, y entre los filtros apilados en móvil
8
7
  $lxd-filter-bar-actions-gap: 0.75rem; // Aire entre las acciones de la barra — el de los botones de un formulario: la fila de acciones del sistema es una sola
9
8
  $lxd-filter-bar-label-offset: calc(0.875rem * 1.5 + 0.5rem); // El renglón que ocupa un rótulo sobre su control: cuerpo × interlineado del `Label` más el aire que los separa en un campo (29px en la aplicación; en la superficie pública el rótulo es mayor y el renglón sube con él). Es lo que la barra reserva sobre lo que NO lleva rótulo —un interruptor, el botón de limpiar— para que no se suba a la línea de las etiquetas
10
9
  $lxd-filter-bar-control-block-size: 2.5rem; // La caja de un campo de una línea (40px, la talla md del sistema; 48px en la superficie pública, que parte de lg). Es la referencia contra la que se centra lo que no lleva rótulo: el interruptor queda a la altura óptica del recuadro que tiene al lado, no del renglón entero —que con un control alto al lado sería otra altura cada vez—
@@ -207,7 +207,6 @@
207
207
  --field-row-empty-font-size: var(--text-paragraph-small-font-size);
208
208
  --file-upload-field-error-font-size: var(--form-error-font-size);
209
209
  --file-upload-field-helper-font-size: var(--form-helper-font-size);
210
- --filter-bar-column-min-inline-size: var(--field-row-cell-md);
211
210
  --filter-bar-label-offset: calc(var(--label-font-size) * var(--label-line-height) + var(--input-field-gap));
212
211
  --filter-bar-control-block-size: var(--control-height);
213
212
  --input-field-search-input-padding-inline-start: var(--input-field-search-slot-size);
@@ -2544,7 +2544,6 @@
2544
2544
  "--filter-bar-gap": "1.5rem",
2545
2545
  "--filter-bar-column-gap": "1rem",
2546
2546
  "--filter-bar-row-gap": "0.75rem",
2547
- "--filter-bar-column-min-inline-size": "12rem",
2548
2547
  "--filter-bar-actions-gap": "0.75rem",
2549
2548
  "--filter-bar-label-offset": "calc(0.875rem * 1.5 + 0.5rem)",
2550
2549
  "--filter-bar-control-block-size": "2.5rem",