@studiolxd/brand 49.23.0 → 49.23.1
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 +20 -0
- package/dist/_shared/brandmessagescontext.js +2 -2
- package/dist/_types/messages/BrandMessages.d.ts +7 -1
- package/dist/_types/messages/BrandMessagesContext.d.ts +7 -1
- package/dist/_types/messages/index.d.ts +1 -1
- package/dist/_types/sections/AppHeader/AppHeader.d.ts +5 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,26 @@ 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
|
+
## [49.23.1] — 2026-10-04
|
|
11
|
+
|
|
12
|
+
> **Patch.** `appHeader` pasa a ser **opcional** en `BrandMessages`. En 49.23.0 entró obligatorio y un
|
|
13
|
+
> catálogo tipado estricto —un literal pasado a `BrandMessagesProvider` sin conversión, como el de
|
|
14
|
+
> `public-shell` en slxd— dejaba de compilar aunque no usara el logo: una minor no puede romper la
|
|
15
|
+
> compilación de nadie. Si ya declaraste `appHeader`, no hay que tocar nada.
|
|
16
|
+
|
|
17
|
+
- `BrandMessages.appHeader?` y `AppHeaderMessages.logo?`: solo hacen falta si algún `AppHeader` lleva
|
|
18
|
+
`logo` sin `logoLabel`.
|
|
19
|
+
- **Si ese caso llega sin `appHeader.logo` en el catálogo, `AppHeader` lanza** («el catálogo montado no
|
|
20
|
+
trae «appHeader.logo»»), igual que cualquier otra clave ausente: no hay castellano de respaldo y un
|
|
21
|
+
enlace sin nombre accesible tiene que verse en desarrollo. Documentado en `AppHeader` §
|
|
22
|
+
«Internacionalización».
|
|
23
|
+
- `BrandMessagesReader` lee los espacios opcionales sin `undefined` en el tipo devuelto (tipo nuevo
|
|
24
|
+
`BrandMessagesNamespace`); para los espacios obligatorios no cambia nada.
|
|
25
|
+
- Test de tipos (`BrandMessages.types.test.ts`): compila con el compilador de TypeScript un catálogo
|
|
26
|
+
sin `appHeader` contra `BrandMessages`, con un caso de control que sí debe fallar.
|
|
27
|
+
- Revisado el resto de 49.23.0: no añadió ningún otro campo obligatorio a tipos públicos (las props
|
|
28
|
+
nuevas de `AppHeader` ya eran opcionales).
|
|
29
|
+
|
|
10
30
|
## [49.23.0] — 2026-10-04
|
|
11
31
|
|
|
12
32
|
> **Minor.** Ranura `logo` en `AppHeader`, a petición de Homenize. Espacio nuevo `appHeader` en
|
|
@@ -4,10 +4,10 @@ var n = e(null);
|
|
|
4
4
|
function r(e) {
|
|
5
5
|
let r = t(n);
|
|
6
6
|
return function(t, n) {
|
|
7
|
-
if (n
|
|
7
|
+
if (n != null) return n;
|
|
8
8
|
if (!r) throw Error(`@studiolxd/brand: falta el texto «${String(e)}.${String(t)}» y no hay catálogo montado. Monta <BrandMessagesProvider> en la raíz de la aplicación con los textos del idioma vigente, o pasa la prop suelta en este uso concreto.`);
|
|
9
9
|
let i = r[e]?.[t];
|
|
10
|
-
if (i
|
|
10
|
+
if (i == null) throw Error(`@studiolxd/brand: el catálogo montado no trae «${String(e)}.${String(t)}».`);
|
|
11
11
|
return i;
|
|
12
12
|
};
|
|
13
13
|
}
|
|
@@ -143,7 +143,13 @@ export interface BrandMessages {
|
|
|
143
143
|
menuButton: MenuButtonMessages;
|
|
144
144
|
appRoot: AppRootMessages;
|
|
145
145
|
appShell: AppShellMessages;
|
|
146
|
-
|
|
146
|
+
/**
|
|
147
|
+
* **Opcional** (desde v49.23.1): solo lo lee el `AppHeader` cuando lleva
|
|
148
|
+
* `logo` y no recibe `logoLabel`. En v49.23.0 entró obligatorio y rompía la
|
|
149
|
+
* compilación de catálogos que no usan el logo. Si un `AppHeader` lo
|
|
150
|
+
* necesita y falta, lanza como cualquier otra clave ausente.
|
|
151
|
+
*/
|
|
152
|
+
appHeader?: AppHeaderMessages;
|
|
147
153
|
sidebar: SidebarMessages;
|
|
148
154
|
sidebarNav: SidebarNavMessages;
|
|
149
155
|
siteNav: SiteNavMessages;
|
|
@@ -11,8 +11,14 @@ export declare const BrandMessagesContext: import("react").Context<BrandMessages
|
|
|
11
11
|
* consumidor la pasa.
|
|
12
12
|
*/
|
|
13
13
|
export interface BrandMessagesReader<K extends keyof BrandMessages> {
|
|
14
|
-
<N extends keyof
|
|
14
|
+
<N extends keyof BrandMessagesNamespace<K>>(key: N, override?: BrandMessagesNamespace<K>[N]): NonNullable<BrandMessagesNamespace<K>[N]>;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* El espacio de un componente, sin el `undefined` de los espacios opcionales
|
|
18
|
+
* (`appHeader`): el lector nunca devuelve `undefined`, porque si el texto
|
|
19
|
+
* falta lanza.
|
|
20
|
+
*/
|
|
21
|
+
export type BrandMessagesNamespace<K extends keyof BrandMessages> = NonNullable<BrandMessages[K]>;
|
|
16
22
|
/**
|
|
17
23
|
* El lector del espacio de un componente. Se llama **en el punto donde el
|
|
18
24
|
* texto se pinta**, no al principio del render: así un componente que no
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { BrandMessagesProvider } from './BrandMessagesProvider';
|
|
2
2
|
export type { BrandMessagesProviderProps } from './BrandMessagesProvider';
|
|
3
3
|
export { useBrandMessages } from './BrandMessagesContext';
|
|
4
|
-
export type { BrandMessagesReader } from './BrandMessagesContext';
|
|
4
|
+
export type { BrandMessagesReader, BrandMessagesNamespace } from './BrandMessagesContext';
|
|
5
5
|
export type { BrandMessages, PaginationMessages, TableMessages, DataTableMessages, InputFieldMessages, PasswordFieldMessages, SelectMessages, MultiSelectMessages, NumberInputMessages, OtpInputMessages, InputPhoneMessages, AsyncSelectMessages, AsyncMultiSelectMessages, DocsSearchMessages, SearchFormMessages, SiteSearchMessages, FilterBarMessages, CalendarMessages, DatePickerMessages, ColorPickerMessages, TimeSelectMessages, FileUploadMessages, ImageCropDialogMessages, AvatarUploadMessages, ModalMessages, SheetMessages, ConfirmDialogMessages, AlertMessages, BannerMessages, ToasterMessages, ConsentMessages, CommandPaletteMessages, AppLauncherMessages, FloatingDockMessages, NotificationButtonMessages, NotificationPanelMessages, MenuButtonMessages, AppRootMessages, AppShellMessages, AppHeaderMessages, SidebarMessages, SidebarNavMessages, SiteNavMessages, SiteHeaderMessages, UserMenuMessages, OrgSwitcherMessages, BreadcrumbMessages, TableOfContentsMessages, PrevNextNavMessages, PublicPageShellMessages, OnboardingShellMessages, CopyMessages, CodeBlockMessages, DotsButtonMessages, ProgressBarMessages, SpinnerMessages, SliderMessages, TreeViewMessages, ClockWidgetMessages, HeatmapMessages, OrgChartMessages, PlanningGridMessages, RecurrenceFieldMessages, TimelineMessages, UptimeBarsMessages, ChartMessages, StepperMessages, CarouselMessages, LanguageSwitcherMessages, ProjectCardMessages, LegalFooterMessages, CalendarRosterMessages, CalendarPlannerMessages, NotificationListMessages, MessageComposerMessages, ConversationListMessages, ConversationThreadMessages, TypingIndicatorMessages, AnnotationThreadMessages, ChatShellMessages, UntrustedTextMessages, ConnectorRequestSummaryMessages, ConnectorConsentMessages, ConnectorSignInMessages, ConnectorExternalSignInMessages, ConnectorRejectionMessages, } from './BrandMessages';
|
|
@@ -12,8 +12,11 @@ export type AppHeaderLogoLinkProps = {
|
|
|
12
12
|
* que `siteHeader.logo`.
|
|
13
13
|
*/
|
|
14
14
|
export interface AppHeaderMessages {
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Texto accesible del enlace del logotipo. Opcional, como el espacio entero:
|
|
17
|
+
* solo hace falta si algún `AppHeader` lleva `logo` sin `logoLabel`.
|
|
18
|
+
*/
|
|
19
|
+
logo?: string;
|
|
17
20
|
}
|
|
18
21
|
export interface AppHeaderProps {
|
|
19
22
|
/**
|