@studiolxd/brand 38.13.0 → 38.15.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.
- package/CHANGELOG.md +45 -0
- package/dist/_types/molecules/Sheet/Sheet.d.ts +7 -1
- package/dist/banner.css +1 -1
- package/dist/chat-shell.css +1 -1
- package/dist/chat-shell.js +15 -2
- package/dist/consent.css +1 -1
- package/dist/description-list.css +1 -1
- package/dist/filter-bar.css +1 -1
- package/dist/highlight.js +1 -0
- package/dist/recovery-codes.js +1 -0
- package/dist/sheet.js +7 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,51 @@ El paquete sigue [semver](https://semver.org/lang/es/): **patch** para bug fixes
|
|
|
7
7
|
regeneración de `dist`, **minor** para componentes/props/variantes/tokens nuevos, **major**
|
|
8
8
|
para breaking changes.
|
|
9
9
|
|
|
10
|
+
## [38.15.0] — 2026-09-15
|
|
11
|
+
|
|
12
|
+
> **Minor.** El cajón de conversaciones del chat, en móvil: ocupa el ancho y su
|
|
13
|
+
> botón no cambia de forma al abrirse. `Sheet` gana `hideClose`.
|
|
14
|
+
|
|
15
|
+
El cajón medía 320px de 390 porque heredaba el ancho lateral del `Sheet`.
|
|
16
|
+
Mientras está abierto, la lista de conversaciones ES la pantalla: ahora mide lo
|
|
17
|
+
que el armazón. Sin media query, porque el cajón solo se monta por debajo de
|
|
18
|
+
`lg`.
|
|
19
|
+
|
|
20
|
+
Y al abrirse aparecía el aspa del `Sheet` encima del disparador, así que el
|
|
21
|
+
glifo cambiaba de «barra lateral» a «cerrar» según el estado. `Sheet` acepta
|
|
22
|
+
`hideClose` —por defecto no cambia para nadie— y el armazón pinta dentro del
|
|
23
|
+
cajón el MISMO botón que lo abrió, en el mismo sitio: pliega y despliega sin
|
|
24
|
+
cambiar de dibujo. Dos controles de cierre con formas distintas en la misma
|
|
25
|
+
pantalla son dos maneras de decir lo mismo.
|
|
26
|
+
|
|
27
|
+
## [38.14.0] — 2026-09-15
|
|
28
|
+
|
|
29
|
+
> **Minor.** En móvil, las acciones ocupan la línea porque lo decide el sitio
|
|
30
|
+
> donde viven, no cada botón. Ninguna prop cambia; el dibujo sí, en cinco
|
|
31
|
+
> componentes.
|
|
32
|
+
|
|
33
|
+
### La norma: el ancho lo decide el contenedor
|
|
34
|
+
|
|
35
|
+
`.form__actions` ya lo hacía y los otros catorce contenedores de acciones no,
|
|
36
|
+
así que un botón suelto solo se estiraba si alguien se acordaba de pedírselo
|
|
37
|
+
pieza por pieza. Ahora la norma es del sistema y está escrita en
|
|
38
|
+
`Foundations/Breakpoints`, con el patrón, dónde se aplica y —sobre todo—
|
|
39
|
+
dónde NO.
|
|
40
|
+
|
|
41
|
+
Entran `Banner`, `ConsentBanner`, `FilterBar`, `Highlight` y
|
|
42
|
+
`RecoveryCodes`. Se quedan fuera, a propósito, las acciones que viven DENTRO
|
|
43
|
+
de una fila y no son un pie: las de `NotificationList`, `TreeView` y
|
|
44
|
+
`MessageComposer` —estirarlas rompería la fila que les da sentido— y las de
|
|
45
|
+
`SiteHeader`, que en móvil ni se pintan. `AnnotationThread` queda anotado
|
|
46
|
+
como dudoso: vive en un panel estrecho también en escritorio, así que su caso
|
|
47
|
+
es de consulta de contenedor, no de anchura de ventana.
|
|
48
|
+
|
|
49
|
+
### `DescriptionList` mide su hueco
|
|
50
|
+
|
|
51
|
+
No fijaba su ancho, así que dependía de dónde se pusiera: dentro de un
|
|
52
|
+
contenedor que alinea al principio se encogía al contenido y los filetes
|
|
53
|
+
salían a media línea, en móvil y en escritorio. Ahora el ancho es de la ficha.
|
|
54
|
+
|
|
10
55
|
## [38.13.0] — 2026-09-15
|
|
11
56
|
|
|
12
57
|
> **Minor.** Las burbujas del chat parten el texto que no cabe, una fila puede
|
|
@@ -15,6 +15,12 @@ export interface SheetProps extends Omit<React.ComponentPropsWithoutRef<'div'>,
|
|
|
15
15
|
footer?: ReactNode;
|
|
16
16
|
children: ReactNode;
|
|
17
17
|
closeLabel?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Oculta el aspa de la esquina. Para un cajón cuyo propio disparador queda
|
|
20
|
+
* a la vista y ya sirve para cerrarlo: dos controles de cierre en la misma
|
|
21
|
+
* pantalla, con glifos distintos, son dos formas de decir lo mismo.
|
|
22
|
+
*/
|
|
23
|
+
hideClose?: boolean;
|
|
18
24
|
/** Elemento que abre el panel. Sin él, la apertura la controla el consumidor. */
|
|
19
25
|
trigger?: ReactNode;
|
|
20
26
|
/**
|
|
@@ -53,4 +59,4 @@ export declare function SheetFooter({ className, ...props }: React.HTMLAttribute
|
|
|
53
59
|
* handlers son lo que permite montar la barrera de eventos cuando el panel se
|
|
54
60
|
* abre desde dentro de una tarjeta clicable, sin `div`s de producto alrededor.
|
|
55
61
|
*/
|
|
56
|
-
export declare function Sheet({ open, onOpenChange, side, title, titleHidden, description, footer, children, closeLabel, trigger, container, onAnimationEndCapture, className, ...rest }: SheetProps): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export declare function Sheet({ open, onOpenChange, side, title, titleHidden, description, footer, children, closeLabel, hideClose, trigger, container, onAnimationEndCapture, className, ...rest }: SheetProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/banner.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--banner-padding-block:var(--spacing-3);--banner-padding-inline:var(--spacing-5);--banner-gap:var(--spacing-4);--banner-close-size:var(--size-component-sm);--banner-close-inset:var(--spacing-2);--banner-border-width:var(--border-width-default);--banner-font-size:var(--text-font-size);--banner-line-height:var(--text-line-height);--banner-info-bg:var(--color-primary);--banner-info-color:var(--color-text-on-dark);--banner-info-border-color:var(--color-text-on-dark);--banner-warning-bg:var(--color-warning-fill);--banner-warning-border-color:var(--color-warning-fill);--banner-warning-color:var(--color-warning-fill-text);--banner-warning-close-color:var(--color-warning-fill-text)}.banner{box-sizing:border-box;background-color:var(--banner-bg);inline-size:100%;color:var(--banner-color);border-block:var(--banner-border-width) solid var(--banner-border-color);padding-block:var(--banner-padding-block);padding-inline:var(--banner-padding-inline);font-size:var(--banner-font-size);line-height:var(--banner-line-height);align-items:flex-start;gap:var(--banner-gap);border-inline:0;flex-direction:column;display:flex;position:relative}.banner.banner--dismissible{padding-inline-end:calc(var(--banner-close-inset) * 2 + var(--banner-close-size))}.banner__content{min-inline-size:0}.banner__actions{align-items:
|
|
1
|
+
:root{--banner-padding-block:var(--spacing-3);--banner-padding-inline:var(--spacing-5);--banner-gap:var(--spacing-4);--banner-close-size:var(--size-component-sm);--banner-close-inset:var(--spacing-2);--banner-border-width:var(--border-width-default);--banner-font-size:var(--text-font-size);--banner-line-height:var(--text-line-height);--banner-info-bg:var(--color-primary);--banner-info-color:var(--color-text-on-dark);--banner-info-border-color:var(--color-text-on-dark);--banner-warning-bg:var(--color-warning-fill);--banner-warning-border-color:var(--color-warning-fill);--banner-warning-color:var(--color-warning-fill-text);--banner-warning-close-color:var(--color-warning-fill-text)}.banner{box-sizing:border-box;background-color:var(--banner-bg);inline-size:100%;color:var(--banner-color);border-block:var(--banner-border-width) solid var(--banner-border-color);padding-block:var(--banner-padding-block);padding-inline:var(--banner-padding-inline);font-size:var(--banner-font-size);line-height:var(--banner-line-height);align-items:flex-start;gap:var(--banner-gap);border-inline:0;flex-direction:column;display:flex;position:relative}.banner.banner--dismissible{padding-inline-end:calc(var(--banner-close-inset) * 2 + var(--banner-close-size))}.banner__content{min-inline-size:0}.banner__actions{align-self:stretch;align-items:stretch;gap:var(--banner-gap);flex-direction:column;display:flex}.banner__actions>*{inline-size:100%}.banner .banner__close{--close-button-size:var(--banner-close-size);position:absolute;inset-block-start:var(--banner-close-inset);inset-inline-end:var(--banner-close-inset)}@media (width>=768px){.banner{flex-direction:row;align-items:center}.banner__content{flex:1}.banner__actions{flex-flow:wrap;align-self:auto;align-items:center}.banner__actions>*{inline-size:auto}}.banner.banner--info{--banner-bg:var(--banner-info-bg);--banner-color:var(--banner-info-color);--banner-border-color:var(--banner-info-border-color)}.banner.banner--warning{--banner-bg:var(--banner-warning-bg);--banner-color:var(--banner-warning-color);--banner-border-color:var(--banner-warning-border-color);--close-button-color:var(--banner-warning-close-color);--close-button-focus-ring-color:var(--banner-warning-close-color)}
|
package/dist/chat-shell.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.chat-shell{background-color:var(--chat-shell-bg);flex-direction:column;block-size:100%;min-block-size:0;display:flex;position:relative}.chat-shell .chat-shell__drawer,.chat-shell .sheet__overlay{position:absolute}.chat-shell__list{inline-size:var(--chat-shell-list-width);flex-shrink:0;block-size:100%;overflow-y:auto}.chat-shell.chat-shell--with-list{gap:var(--chat-shell-gap);flex-direction:row}.chat-shell__main{flex-direction:column;flex:1;min-block-size:0;display:flex}.chat-shell__header{justify-content:space-between;align-items:center;gap:var(--chat-shell-header-gap);flex-shrink:0;display:flex}.chat-shell__list-trigger{flex-shrink:0}.chat-shell__header-content{justify-content:space-between;align-items:center;gap:var(--chat-shell-header-gap);flex:1;min-inline-size:0;display:flex}.chat-shell__thread{--conversation-thread-padding-inline:var(--chat-shell-thread-padding-inline);min-block-size:0;padding-block:var(--chat-shell-thread-padding-block);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-shell__composer{flex-shrink:0}
|
|
1
|
+
.chat-shell{background-color:var(--chat-shell-bg);flex-direction:column;block-size:100%;min-block-size:0;display:flex;position:relative}.chat-shell .chat-shell__drawer,.chat-shell .sheet__overlay{position:absolute}.chat-shell .chat-shell__drawer{--sheet-inline-size:100%}.chat-shell__list{inline-size:var(--chat-shell-list-width);flex-shrink:0;block-size:100%;overflow-y:auto}.chat-shell.chat-shell--with-list{gap:var(--chat-shell-gap);flex-direction:row}.chat-shell__main{flex-direction:column;flex:1;min-block-size:0;display:flex}.chat-shell__header{justify-content:space-between;align-items:center;gap:var(--chat-shell-header-gap);flex-shrink:0;display:flex}.chat-shell__list-trigger{flex-shrink:0}.chat-shell__header-content{justify-content:space-between;align-items:center;gap:var(--chat-shell-header-gap);flex:1;min-inline-size:0;display:flex}.chat-shell__thread{--conversation-thread-padding-inline:var(--chat-shell-thread-padding-inline);min-block-size:0;padding-block:var(--chat-shell-thread-padding-block);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-shell__composer{flex-shrink:0}
|
package/dist/chat-shell.js
CHANGED
|
@@ -66,15 +66,28 @@ var l = "(min-width: 1024px)", u = a(function({ list: a, header: u, children: d,
|
|
|
66
66
|
})
|
|
67
67
|
]
|
|
68
68
|
}),
|
|
69
|
-
A && /* @__PURE__ */
|
|
69
|
+
A && /* @__PURE__ */ i(n, {
|
|
70
70
|
side: "left",
|
|
71
71
|
open: O,
|
|
72
72
|
onOpenChange: D,
|
|
73
73
|
title: p,
|
|
74
74
|
titleHidden: !0,
|
|
75
75
|
container: w ?? void 0,
|
|
76
|
+
hideClose: !0,
|
|
76
77
|
className: "chat-shell__drawer",
|
|
77
|
-
children:
|
|
78
|
+
children: [/* @__PURE__ */ r(t, {
|
|
79
|
+
variant: "ghost",
|
|
80
|
+
size: "sm",
|
|
81
|
+
iconOnly: !0,
|
|
82
|
+
"aria-label": m,
|
|
83
|
+
"aria-expanded": !0,
|
|
84
|
+
className: "chat-shell__list-trigger",
|
|
85
|
+
onClick: () => D(!1),
|
|
86
|
+
children: /* @__PURE__ */ r(e, {
|
|
87
|
+
name: "layout-sidebar",
|
|
88
|
+
size: "sm"
|
|
89
|
+
})
|
|
90
|
+
}), a]
|
|
78
91
|
})
|
|
79
92
|
]
|
|
80
93
|
});
|
package/dist/consent.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.consent-banner{z-index:var(--consent-banner-z-index);background-color:var(--consent-banner-bg);color:var(--consent-banner-color);border-block-start:var(--consent-banner-border-width) solid var(--consent-banner-border-color);padding-block:var(--consent-banner-padding-block);padding-inline:var(--consent-banner-padding-inline);position:fixed;inset-block-end:0;inset-inline:0}.consent-banner__inner{justify-content:space-between;align-items:center;gap:var(--consent-banner-gap);max-inline-size:var(--consent-banner-max-inline-size);flex-wrap:wrap;margin-inline:auto;display:flex}.consent-banner__text{gap:var(--consent-banner-text-gap);flex-direction:column;flex:20rem;min-inline-size:0;display:flex}.consent-banner__title{font-size:var(--consent-banner-title-font-size);color:inherit;margin-block:0}.consent-banner__description{font-size:var(--consent-banner-description-font-size);color:inherit;margin-block:0}.consent-banner__actions{align-items:
|
|
1
|
+
.consent-banner{z-index:var(--consent-banner-z-index);background-color:var(--consent-banner-bg);color:var(--consent-banner-color);border-block-start:var(--consent-banner-border-width) solid var(--consent-banner-border-color);padding-block:var(--consent-banner-padding-block);padding-inline:var(--consent-banner-padding-inline);position:fixed;inset-block-end:0;inset-inline:0}.consent-banner__inner{justify-content:space-between;align-items:center;gap:var(--consent-banner-gap);max-inline-size:var(--consent-banner-max-inline-size);flex-wrap:wrap;margin-inline:auto;display:flex}.consent-banner__text{gap:var(--consent-banner-text-gap);flex-direction:column;flex:20rem;min-inline-size:0;display:flex}.consent-banner__title{font-size:var(--consent-banner-title-font-size);color:inherit;margin-block:0}.consent-banner__description{font-size:var(--consent-banner-description-font-size);color:inherit;margin-block:0}.consent-banner__actions{align-self:stretch;align-items:stretch;gap:var(--consent-banner-actions-gap);flex-direction:column;display:flex}.consent-banner__actions>*{inline-size:100%}@media (width>=768px){.consent-banner__actions{flex-flow:wrap;align-self:auto;align-items:center}.consent-banner__actions>*{inline-size:auto}}.consent-preferences{gap:var(--consent-preferences-gap);flex-direction:column;display:flex}.consent-preferences__list{gap:var(--consent-preferences-category-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.description-list{border-width:var(--description-list-border-width);border-style:var(--description-list-border-style);border-color:var(--description-list-border-color);grid-template-columns:1fr;margin:0;display:grid}@media (width>=768px){.description-list{grid-template-columns:max-content 1fr}}.description-list>dt,.description-list>dd,.description-list>.description-list__term,.description-list>.description-list__details{padding-block:var(--description-list-cell-padding-block);padding-inline:var(--description-list-cell-padding-inline);margin:0}.description-list>dd,.description-list>.description-list__details{border-block-end-width:var(--description-list-border-width);border-block-end-style:var(--description-list-border-style);border-block-end-color:var(--description-list-border-color)}.description-list>dd:last-of-type,.description-list>.description-list__details:last-of-type{border-block-end:none}.description-list>dt,.description-list>.description-list__term{font-family:var(--description-list-term-font-family);font-size:var(--description-list-term-font-size);font-weight:var(--description-list-term-font-weight);line-height:var(--description-list-term-line-height);letter-spacing:var(--description-list-term-letter-spacing);color:var(--description-list-term-color);align-items:center;display:flex}@media (width>=768px){.description-list>dt,.description-list>.description-list__term{border-block-end-width:var(--description-list-border-width);border-block-end-style:var(--description-list-border-style);border-block-end-color:var(--description-list-border-color);border-inline-end-width:var(--description-list-border-width);border-inline-end-style:var(--description-list-border-style);border-inline-end-color:var(--description-list-border-color)}.description-list>dt:last-of-type,.description-list>.description-list__term:last-of-type{border-block-end:none}}.description-list>dd,.description-list>.description-list__details{font-family:var(--description-list-value-font-family);font-size:var(--description-list-value-font-size);font-weight:var(--description-list-value-font-weight);line-height:var(--description-list-value-line-height);color:var(--description-list-value-color)}
|
|
1
|
+
.description-list{border-width:var(--description-list-border-width);border-style:var(--description-list-border-style);border-color:var(--description-list-border-color);grid-template-columns:1fr;inline-size:100%;margin:0;display:grid}@media (width>=768px){.description-list{grid-template-columns:max-content 1fr}}.description-list>dt,.description-list>dd,.description-list>.description-list__term,.description-list>.description-list__details{padding-block:var(--description-list-cell-padding-block);padding-inline:var(--description-list-cell-padding-inline);margin:0}.description-list>dd,.description-list>.description-list__details{border-block-end-width:var(--description-list-border-width);border-block-end-style:var(--description-list-border-style);border-block-end-color:var(--description-list-border-color)}.description-list>dd:last-of-type,.description-list>.description-list__details:last-of-type{border-block-end:none}.description-list>dt,.description-list>.description-list__term{font-family:var(--description-list-term-font-family);font-size:var(--description-list-term-font-size);font-weight:var(--description-list-term-font-weight);line-height:var(--description-list-term-line-height);letter-spacing:var(--description-list-term-letter-spacing);color:var(--description-list-term-color);align-items:center;display:flex}@media (width>=768px){.description-list>dt,.description-list>.description-list__term{border-block-end-width:var(--description-list-border-width);border-block-end-style:var(--description-list-border-style);border-block-end-color:var(--description-list-border-color);border-inline-end-width:var(--description-list-border-width);border-inline-end-style:var(--description-list-border-style);border-inline-end-color:var(--description-list-border-color)}.description-list>dt:last-of-type,.description-list>.description-list__term:last-of-type{border-block-end:none}}.description-list>dd,.description-list>.description-list__details{font-family:var(--description-list-value-font-family);font-size:var(--description-list-value-font-size);font-weight:var(--description-list-value-font-weight);line-height:var(--description-list-value-line-height);color:var(--description-list-value-color)}
|
package/dist/filter-bar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.filter-bar{gap:var(--filter-bar-gap);flex-direction:column;display:flex}.filter-bar__search{inline-size:100%}.filter-bar__row{align-items:flex-end;column-gap:var(--filter-bar-column-gap);row-gap:var(--filter-bar-row-gap);flex-wrap:wrap;display:flex}.filter-bar__filters{flex:1 1 var(--filter-bar-column-min-inline-size);grid-template-columns:repeat(auto-fit, minmax(min(var(--filter-bar-column-min-inline-size), 100%), 1fr));column-gap:var(--filter-bar-column-gap);row-gap:var(--filter-bar-row-gap);min-inline-size:0;display:grid}.filter-bar__filter{min-inline-size:0}.filter-bar__actions{align-items:
|
|
1
|
+
.filter-bar{gap:var(--filter-bar-gap);flex-direction:column;display:flex}.filter-bar__search{inline-size:100%}.filter-bar__row{align-items:flex-end;column-gap:var(--filter-bar-column-gap);row-gap:var(--filter-bar-row-gap);flex-wrap:wrap;display:flex}.filter-bar__filters{flex:1 1 var(--filter-bar-column-min-inline-size);grid-template-columns:repeat(auto-fit, minmax(min(var(--filter-bar-column-min-inline-size), 100%), 1fr));column-gap:var(--filter-bar-column-gap);row-gap:var(--filter-bar-row-gap);min-inline-size:0;display:grid}.filter-bar__filter{min-inline-size:0}.filter-bar__actions{align-items:stretch;gap:var(--filter-bar-actions-gap);flex-direction:column;flex:100%;display:flex}.filter-bar__actions>*{inline-size:100%}@media (width>=768px){.filter-bar__actions{flex-flow:wrap;flex:none;align-items:center;margin-inline-start:auto}.filter-bar__actions>*{inline-size:auto}}
|
package/dist/highlight.js
CHANGED
package/dist/recovery-codes.js
CHANGED
package/dist/sheet.js
CHANGED
|
@@ -12,17 +12,17 @@ function c({ className: e, ...t }) {
|
|
|
12
12
|
...t
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
-
function l({ open: i, onOpenChange: l, side: u = "right", title: d, titleHidden: f = !1, description: p, footer: m, children: h, closeLabel: g = "Cerrar",
|
|
15
|
+
function l({ open: i, onOpenChange: l, side: u = "right", title: d, titleHidden: f = !1, description: p, footer: m, children: h, closeLabel: g = "Cerrar", hideClose: _ = !1, trigger: v, container: y, onAnimationEndCapture: b, className: x, ...S }) {
|
|
16
16
|
return /* @__PURE__ */ o(s.Root, {
|
|
17
17
|
open: i,
|
|
18
18
|
onOpenChange: (e) => l(e),
|
|
19
|
-
children: [
|
|
20
|
-
container:
|
|
19
|
+
children: [v && /* @__PURE__ */ a(s.Trigger, { render: v }), /* @__PURE__ */ o(s.Portal, {
|
|
20
|
+
container: y,
|
|
21
21
|
children: [/* @__PURE__ */ a(r, { className: "sheet__overlay" }), /* @__PURE__ */ o(s.Popup, {
|
|
22
|
-
className: ["sheet",
|
|
22
|
+
className: ["sheet", x].filter(Boolean).join(" "),
|
|
23
23
|
"data-side": u,
|
|
24
|
-
onAnimationEndCapture:
|
|
25
|
-
...
|
|
24
|
+
onAnimationEndCapture: b,
|
|
25
|
+
...S,
|
|
26
26
|
children: [
|
|
27
27
|
/* @__PURE__ */ o(n, {
|
|
28
28
|
layout: "stacked",
|
|
@@ -35,7 +35,7 @@ function l({ open: i, onOpenChange: l, side: u = "right", title: d, titleHidden:
|
|
|
35
35
|
children: p
|
|
36
36
|
})]
|
|
37
37
|
}),
|
|
38
|
-
/* @__PURE__ */ a(s.Close, {
|
|
38
|
+
!_ && /* @__PURE__ */ a(s.Close, {
|
|
39
39
|
className: "sheet__close",
|
|
40
40
|
render: /* @__PURE__ */ a(t, { label: g })
|
|
41
41
|
}),
|