@ostack.tech/ui 0.5.0 → 0.6.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/dist/locales/en-GB.js +4 -4
- package/dist/locales/en-GB.js.map +1 -1
- package/dist/locales/en-US.js +4 -4
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/{fr.js → fr-FR.js} +6 -6
- package/dist/locales/fr-FR.js.map +1 -0
- package/dist/locales/{pt.js → pt-PT.js} +5 -5
- package/dist/locales/pt-PT.js.map +1 -0
- package/dist/ostack-ui.css +5 -0
- package/dist/ostack-ui.css.map +1 -1
- package/dist/ostack-ui.js +207 -209
- package/dist/ostack-ui.js.map +1 -1
- package/dist/types/components/IconButton/IconButton.d.ts +25 -6
- package/dist/types/components/Printer/Printer.d.ts +3 -1
- package/dist/types/components/Printer/PrinterContext.d.ts +4 -1
- package/dist/types/components/Printer/index.d.ts +1 -1
- package/dist/types/locales/en-GB.d.ts +1 -1
- package/dist/types/locales/en-US.d.ts +1 -1
- package/dist/types/locales/{fr.d.ts → fr-FR.d.ts} +2 -2
- package/dist/types/locales/index.d.ts +4 -4
- package/dist/types/locales/{pt.d.ts → pt-PT.d.ts} +2 -2
- package/package.json +1 -1
- package/scss/components/Input/_Input.scss +4 -0
- package/dist/locales/fr.js.map +0 -1
- package/dist/locales/pt.js.map +0 -1
|
@@ -38,9 +38,15 @@ export interface IconButtonProps extends Omit<ComponentPropsWithoutRef<"button">
|
|
|
38
38
|
size?: IconButtonSize;
|
|
39
39
|
/** Whether to display the icon button as a circle. */
|
|
40
40
|
circle?: boolean;
|
|
41
|
-
/**
|
|
41
|
+
/** Icon to show within the button. */
|
|
42
42
|
icon: IconProp | ReactElement;
|
|
43
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Label of the icon button. This label is rendered as a visually hidden
|
|
45
|
+
* element inside the button.
|
|
46
|
+
*
|
|
47
|
+
* By default, and for sighted users, it is also displayed as a tooltip
|
|
48
|
+
* (unless `disableTooltip` is set).
|
|
49
|
+
*/
|
|
44
50
|
label: ReactNode;
|
|
45
51
|
/**
|
|
46
52
|
* Whether to display the button in "active" state.
|
|
@@ -55,7 +61,8 @@ export interface IconButtonProps extends Omit<ComponentPropsWithoutRef<"button">
|
|
|
55
61
|
*/
|
|
56
62
|
disabled?: boolean;
|
|
57
63
|
/**
|
|
58
|
-
* Whether to display the button in "loading" state.
|
|
64
|
+
* Whether to display the button in "loading" state. This makes it so the icon
|
|
65
|
+
* button displays a spinner instead of its icon.
|
|
59
66
|
*
|
|
60
67
|
* @default false
|
|
61
68
|
*/
|
|
@@ -66,6 +73,18 @@ export interface IconButtonProps extends Omit<ComponentPropsWithoutRef<"button">
|
|
|
66
73
|
* @default false
|
|
67
74
|
*/
|
|
68
75
|
enabledWhenLoading?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Label of the icon button when it is in "loading" state. If not provided,
|
|
78
|
+
* the label will remain unchanged.
|
|
79
|
+
*/
|
|
80
|
+
loadingLabel?: ReactNode;
|
|
81
|
+
/**
|
|
82
|
+
* Whether to disable showing the icon button's label in a tooltip. Disabling
|
|
83
|
+
* the tooltip does **not** affect the button's accessibility.
|
|
84
|
+
*
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
disableTooltip?: boolean;
|
|
69
88
|
/** Properties to pass to the `Icon` component. */
|
|
70
89
|
iconProps?: Omit<ComponentPropsWithRef<typeof Icon>, "icon" | "label">;
|
|
71
90
|
/** Properties to pass to the `Spinner` component. */
|
|
@@ -76,10 +95,10 @@ export interface IconButtonProps extends Omit<ComponentPropsWithoutRef<"button">
|
|
|
76
95
|
/**
|
|
77
96
|
* The icon button component renders a button containing a single icon. Use it
|
|
78
97
|
* as appropriate, as an alternative to the `Button` component, to trigger
|
|
79
|
-
* actions or events, such as opening a dialog or submitting a form
|
|
98
|
+
* actions or events, such as opening a dialog or submitting a form.
|
|
80
99
|
*
|
|
81
|
-
* A `label` property
|
|
82
|
-
*
|
|
100
|
+
* A `label` property is required for screen-readers to give meaning to the
|
|
101
|
+
* button. This label is also, by default, displayed as a tooltip.
|
|
83
102
|
*
|
|
84
103
|
* Example usage:
|
|
85
104
|
*
|
|
@@ -5,8 +5,10 @@ export interface PrintOptions {
|
|
|
5
5
|
/**
|
|
6
6
|
* Title of the `<iframe>` document, used by some browsers when saving as a
|
|
7
7
|
* file.
|
|
8
|
+
*
|
|
9
|
+
* A function may be provided which will be called before each print.
|
|
8
10
|
*/
|
|
9
|
-
documentTitle?: string;
|
|
11
|
+
documentTitle?: string | (() => string | undefined);
|
|
10
12
|
/**
|
|
11
13
|
* [`size`](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@page/size)
|
|
12
14
|
* to apply to print pages. This property can be used to specify custom page
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { RefObject } from 'react';
|
|
2
|
-
import { PrintOptions } from './Printer.tsx';
|
|
2
|
+
import { PrinterProps, PrintOptions } from './Printer.tsx';
|
|
3
3
|
/** Value of the printer context. */
|
|
4
4
|
interface PrinterContextValue {
|
|
5
5
|
preview?: boolean;
|
|
6
6
|
printInForeground?: boolean;
|
|
7
|
+
documentTitle?: PrinterProps["documentTitle"];
|
|
7
8
|
printInProgress: boolean;
|
|
8
9
|
triggerRef: RefObject<HTMLButtonElement | null>;
|
|
9
10
|
contentRef: RefObject<Element | Text | null>;
|
|
@@ -15,6 +16,8 @@ interface PrinterContextValue {
|
|
|
15
16
|
export declare const PrinterContext: import('react').Context<PrinterContextValue | null>;
|
|
16
17
|
/** Hook providing access to the printer context. */
|
|
17
18
|
export declare function usePrinterContext(): PrinterContextValue;
|
|
19
|
+
/** Returns the `documentTitle` passed to the `Printer` component. */
|
|
20
|
+
export declare function usePrinterDocumentTitle(): PrinterProps["documentTitle"];
|
|
18
21
|
/**
|
|
19
22
|
* Returns whether printing is currently in progress.
|
|
20
23
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './Printer.tsx';
|
|
2
2
|
export * from './PrinterContent.tsx';
|
|
3
3
|
export { usePrinting, useStartPrintingTask } from './PrinterContentContext.tsx';
|
|
4
|
-
export { usePrint, usePrintInProgress } from './PrinterContext.ts';
|
|
4
|
+
export { usePrint, usePrinterDocumentTitle, usePrintInProgress, } from './PrinterContext.ts';
|
|
5
5
|
export * from './PrinterTrigger.tsx';
|
|
6
6
|
export * from './usePrintClassNames.ts';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { LocalizationObject } from '../providers/LocalizationProvider';
|
|
2
|
-
/** `fr` locale. */
|
|
3
|
-
export declare const
|
|
2
|
+
/** `fr-FR` locale. */
|
|
3
|
+
export declare const locale: LocalizationObject;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
1
|
+
export { locale as enGB } from './en-GB.tsx';
|
|
2
|
+
export { locale as enUS } from './en-US.tsx';
|
|
3
|
+
export { locale as fr, locale as frFR } from './fr-FR.tsx';
|
|
4
|
+
export { locale as pt, locale as ptPT } from './pt-PT.tsx';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { LocalizationObject } from '../providers/LocalizationProvider';
|
|
2
|
-
/** `pt` locale. */
|
|
3
|
-
export declare const
|
|
2
|
+
/** `pt-PT` locale. */
|
|
3
|
+
export declare const locale: LocalizationObject;
|
package/package.json
CHANGED
package/dist/locales/fr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fr.js","sources":["../../src/locales/fr.tsx"],"sourcesContent":["import { fr as dateFnsFr } from \"date-fns/locale/fr\";\n\nimport type { LocalizationObject } from \"../providers/LocalizationProvider\";\n\n/** `fr` locale. */\nexport const fr: LocalizationObject = {\n languageTag: \"fr\",\n dateFnsLocale: dateFnsFr,\n AlertDialog: {\n okText: \"OK\",\n },\n Calendar: {\n previousMonthLabel: \"Mois précédent\",\n nextMonthLabel: \"Mois suivant\",\n },\n CloseButton: {\n \"aria-label\": \"Fermer\",\n },\n CommandMenu: {\n searchPlaceholder: \"Rechercher…\",\n listLabel: \"Suggestions\",\n loadingLabel: \"Chargement…\",\n emptyMessage: \"Aucun résultat trouvé.\",\n },\n CommandMenuDialog: {\n title: \"Palette de commandes\",\n description: \"Rechercher une commande…\",\n },\n ConfirmDialog: {\n cancelText: \"Annuler\",\n },\n ControlCode: {\n visuallyHiddenPrefix: \"Champ\",\n },\n DataTable: {\n emptyMessage: \"Rien à afficher.\",\n },\n DataTableFilter: {\n \"aria-label\": \"Tableau filtre\",\n placeholder: \"Filtre\",\n },\n DataTablePagination: {\n rowsRange: (range, total) => (\n <>\n Lignes {range} sur {total}\n </>\n ),\n previousPageButtonLabel: \"Page précédente\",\n nextPageButtonLabel: \"Page suivante\",\n },\n DataTableRowsPerPage: {\n label: \"Lignes par page\",\n },\n DateInput: {\n placeholder: \"jour/mois/année\",\n formatDescription: \"Saisir la date au format JJ/MM/AAAA\",\n calendarButtonLabel: (selectedDate, editable) =>\n editable\n ? selectedDate\n ? `Ouvrir le calendrier pour modifier la date sélectionnée\\u202F: ${selectedDate}`\n : \"Ouvrir le calendrier pour sélectionner la date\"\n : selectedDate\n ? `Ouvrir le calendrier avec la date sélectionnée\\u202F: ${selectedDate}`\n : \"Ouvrir le calendrier sans la date sélectionnée\",\n },\n DateRangeInput: {\n startInputLabel: \"Date de début\",\n endInputLabel: \"Date de fin\",\n calendarButtonLabel: (selectedDateRange, editable) =>\n editable\n ? selectedDateRange\n ? `Ouvrir le calendrier pour modifier la plage de dates sélectionnée\\u202F: ${selectedDateRange}`\n : \"Ouvrir le calendrier pour sélectionner la plage de dates\"\n : selectedDateRange\n ? `Ouvrir le calendrier avec la plage de dates sélectionnée\\u202F: ${selectedDateRange}`\n : \"Ouvrir le calendrier sans plage de dates sélectionnée\",\n },\n ErrorBoundary: {\n fallbackMessage: (\n <>\n Une erreur s'est produite.\n <br />\n Appuyez sur le bouton à droite pour réessayer. Si le problème persiste,\n réessayez plus tard.\n </>\n ),\n resetButtonLabel: \"Réessayer\",\n },\n Feedback: {\n visuallyHiddenPrefix: (type) =>\n type === \"error\"\n ? \"Erreur\\u202F:\"\n : type === \"warning\"\n ? \"Alerte\\u202F:\"\n : null,\n },\n FeedbackPopover: {\n label: \"Afficher les observations\",\n },\n FieldGroupHeader: {\n visuallyHiddenCodePrefix: \"Groupe\",\n },\n Input: {\n clearButtonLabel: \"Effacer\",\n },\n Label: {\n requiredIconLabel: \"Obligatoire\",\n helperButtonLabel: \"Afficher l’aide\",\n },\n NumericInput: {\n decimalSeparator: \",\",\n groupingStyle: \"thousand\",\n groupSeparator: \"\\u00A0\",\n },\n Select: {\n optionsLabel: \"Options\",\n },\n TableColumn: {\n helperButtonLabel: \"Afficher l’aide\",\n },\n TableHead: {\n sortByColumnDescription: (columnName, sortDirection) =>\n sortDirection === null\n ? `Arrêter le tri du tableau par colonne «\\u202F${columnName}\\u202F»`\n : `Trier le tableau par colonne «\\u202F${columnName}\\u202F» par ordre ${\n sortDirection === \"asc\" ? \"croissant\" : \"décroissant\"\n }`,\n },\n ToastProvider: {\n label: \"Notification\",\n },\n ToastViewport: {\n label: \"Notifications ({hotkey})\",\n },\n};\n"],"names":["dateFnsFr"],"mappings":";;AAKO,MAAM,KAAyB;AAAA,EACpC,aAAa;AAAA,EACb,eAAeA;AAAAA,EACf,aAAa;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,EAAA;AAAA,EAElB,aAAa;AAAA,IACX,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,EAAA;AAAA,EAEhB,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf,eAAe;AAAA,IACb,YAAY;AAAA,EAAA;AAAA,EAEd,aAAa;AAAA,IACX,sBAAsB;AAAA,EAAA;AAAA,EAExB,WAAW;AAAA,IACT,cAAc;AAAA,EAAA;AAAA,EAEhB,iBAAiB;AAAA,IACf,cAAc;AAAA,IACd,aAAa;AAAA,EAAA;AAAA,EAEf,qBAAqB;AAAA,IACnB,WAAW,CAAC,OAAO,UACjB,qBAAA,UAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACa;AAAA,MAAM;AAAA,MAAW;AAAA,IAAA,GAChC;AAAA,IAEF,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EAAA;AAAA,EAEvB,sBAAsB;AAAA,IACpB,OAAO;AAAA,EAAA;AAAA,EAET,WAAW;AAAA,IACT,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,qBAAqB,CAAC,cAAc,aAClC,WACI,eACE,6DAAkE,YAAY,KAC9E,mDACF,eACE,oDAAyD,YAAY,KACrE;AAAA,EAAA;AAAA,EAEV,gBAAgB;AAAA,IACd,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,qBAAqB,CAAC,mBAAmB,aACvC,WACI,oBACE,uEAA4E,iBAAiB,KAC7F,6DACF,oBACE,8DAAmE,iBAAiB,KACpF;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,iBACE,qBAAA,UAAA,EAAE,UAAA;AAAA,MAAA;AAAA,0BAEC,MAAA,EAAG;AAAA,MAAE;AAAA,IAAA,GAGR;AAAA,IAEF,kBAAkB;AAAA,EAAA;AAAA,EAEpB,UAAU;AAAA,IACR,sBAAsB,CAAC,SACrB,SAAS,UACL,aACA,SAAS,YACP,aACA;AAAA,EAAA;AAAA,EAEV,iBAAiB;AAAA,IACf,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,0BAA0B;AAAA,EAAA;AAAA,EAE5B,OAAO;AAAA,IACL,kBAAkB;AAAA,EAAA;AAAA,EAEpB,OAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EAAA;AAAA,EAErB,cAAc;AAAA,IACZ,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,gBAAgB;AAAA,EAAA;AAAA,EAElB,QAAQ;AAAA,IACN,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,mBAAmB;AAAA,EAAA;AAAA,EAErB,WAAW;AAAA,IACT,yBAAyB,CAAC,YAAY,kBACpC,kBAAkB,OACd,2CAAgD,UAAU,OAC1D,kCAAuC,UAAU,gBAC/C,kBAAkB,QAAQ,cAAc,aAC1C;AAAA,EAAA;AAAA,EAER,eAAe;AAAA,IACb,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,OAAO;AAAA,EAAA;AAEX;"}
|
package/dist/locales/pt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pt.js","sources":["../../src/locales/pt.tsx"],"sourcesContent":["import { pt as dateFnsPt } from \"date-fns/locale/pt\";\n\nimport type { LocalizationObject } from \"../providers/LocalizationProvider\";\n\n/** `pt` locale. */\nexport const pt: LocalizationObject = {\n languageTag: \"pt-PT\",\n dateFnsLocale: dateFnsPt,\n AlertDialog: {\n okText: \"OK\",\n },\n Calendar: {\n previousMonthLabel: \"Mês anterior\",\n nextMonthLabel: \"Próximo mês\",\n },\n CloseButton: {\n \"aria-label\": \"Fechar\",\n },\n CommandMenu: {\n searchPlaceholder: \"Pesquisar…\",\n listLabel: \"Sugestões\",\n loadingLabel: \"A carregar…\",\n emptyMessage: \"Nenhum resultado encontrado.\",\n },\n CommandMenuDialog: {\n title: \"Paleta de comandos\",\n description: \"Pesquise por um comando…\",\n },\n ConfirmDialog: {\n cancelText: \"Cancelar\",\n },\n ControlCode: {\n visuallyHiddenPrefix: \"Campo\",\n },\n DataTable: {\n emptyMessage: \"Nada a mostrar.\",\n },\n DataTableFilter: {\n \"aria-label\": \"Filtro da tabela\",\n placeholder: \"Filtrar\",\n },\n DataTablePagination: {\n rowsRange: (range, total) => (\n <>\n Linhas {range} de {total}\n </>\n ),\n previousPageButtonLabel: \"Página anterior\",\n nextPageButtonLabel: \"Próxima página\",\n },\n DataTableRowsPerPage: {\n label: \"Linhas por página\",\n },\n DateInput: {\n placeholder: \"dia/mês/ano\",\n formatDescription: \"Introduza a data no formato DD/MM/AAAA\",\n calendarButtonLabel: (selectedDate, editable) =>\n editable\n ? selectedDate\n ? `Abrir calendário para alterar data selecionada: ${selectedDate}`\n : \"Abrir calendário para selecionar data\"\n : selectedDate\n ? `Abrir calendário com data selecionada: ${selectedDate}`\n : \"Abrir calendário sem data selecionada\",\n },\n DateRangeInput: {\n startInputLabel: \"Data de início\",\n endInputLabel: \"Data de fim\",\n calendarButtonLabel: (selectedDateRange, editable) =>\n editable\n ? selectedDateRange\n ? `Abrir calendário para alterar intervalo de datas selecionado: ${selectedDateRange}`\n : \"Abrir calendário para selecionar intervalo de datas\"\n : selectedDateRange\n ? `Abrir calendário com intervalo de datas selecionado: ${selectedDateRange}`\n : \"Abrir calendário sem intervalo de datas selecionado\",\n },\n ErrorBoundary: {\n fallbackMessage: (\n <>\n Algo correu mal.\n <br />\n Pressione o botão à direita para tentar novamente. Se o problema\n persistir, volte a tentar mais tarde.\n </>\n ),\n resetButtonLabel: \"Tentar novamente\",\n },\n Feedback: {\n visuallyHiddenPrefix: (type) =>\n type === \"error\" ? \"Erro:\" : type === \"warning\" ? \"Alerta:\" : null,\n },\n FeedbackPopover: {\n label: \"Mostrar observações\",\n },\n FieldGroupHeader: {\n visuallyHiddenCodePrefix: \"Grupo\",\n },\n Input: {\n clearButtonLabel: \"Limpar\",\n },\n Label: {\n requiredIconLabel: \"Requerido\",\n helperButtonLabel: \"Mostrar ajuda\",\n },\n NumericInput: {\n decimalSeparator: \",\",\n groupingStyle: \"thousand\",\n groupSeparator: \"\\u00A0\",\n },\n Select: {\n optionsLabel: \"Opções\",\n },\n TableColumn: {\n helperButtonLabel: \"Mostrar ajuda\",\n },\n TableHead: {\n sortByColumnDescription: (columnName, sortDirection) =>\n sortDirection === null\n ? `Deixar de ordenar tabela pela coluna “${columnName}”`\n : `Ordenar tabela pela coluna “${columnName}” em ordem ${\n sortDirection === \"asc\" ? \"ascendente\" : \"descendente\"\n }`,\n },\n ToastProvider: {\n label: \"Notificação\",\n },\n ToastViewport: {\n label: \"Notificações ({hotkey})\",\n },\n};\n"],"names":["dateFnsPt"],"mappings":";;AAKO,MAAM,KAAyB;AAAA,EACpC,aAAa;AAAA,EACb,eAAeA;AAAAA,EACf,aAAa;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,EAAA;AAAA,EAElB,aAAa;AAAA,IACX,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,EAAA;AAAA,EAEhB,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,aAAa;AAAA,EAAA;AAAA,EAEf,eAAe;AAAA,IACb,YAAY;AAAA,EAAA;AAAA,EAEd,aAAa;AAAA,IACX,sBAAsB;AAAA,EAAA;AAAA,EAExB,WAAW;AAAA,IACT,cAAc;AAAA,EAAA;AAAA,EAEhB,iBAAiB;AAAA,IACf,cAAc;AAAA,IACd,aAAa;AAAA,EAAA;AAAA,EAEf,qBAAqB;AAAA,IACnB,WAAW,CAAC,OAAO,UACjB,qBAAA,UAAA,EAAE,UAAA;AAAA,MAAA;AAAA,MACa;AAAA,MAAM;AAAA,MAAU;AAAA,IAAA,GAC/B;AAAA,IAEF,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EAAA;AAAA,EAEvB,sBAAsB;AAAA,IACpB,OAAO;AAAA,EAAA;AAAA,EAET,WAAW;AAAA,IACT,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,qBAAqB,CAAC,cAAc,aAClC,WACI,eACE,mDAAmD,YAAY,KAC/D,0CACF,eACE,0CAA0C,YAAY,KACtD;AAAA,EAAA;AAAA,EAEV,gBAAgB;AAAA,IACd,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,qBAAqB,CAAC,mBAAmB,aACvC,WACI,oBACE,iEAAiE,iBAAiB,KAClF,wDACF,oBACE,wDAAwD,iBAAiB,KACzE;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,iBACE,qBAAA,UAAA,EAAE,UAAA;AAAA,MAAA;AAAA,0BAEC,MAAA,EAAG;AAAA,MAAE;AAAA,IAAA,GAGR;AAAA,IAEF,kBAAkB;AAAA,EAAA;AAAA,EAEpB,UAAU;AAAA,IACR,sBAAsB,CAAC,SACrB,SAAS,UAAU,UAAU,SAAS,YAAY,YAAY;AAAA,EAAA;AAAA,EAElE,iBAAiB;AAAA,IACf,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,0BAA0B;AAAA,EAAA;AAAA,EAE5B,OAAO;AAAA,IACL,kBAAkB;AAAA,EAAA;AAAA,EAEpB,OAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EAAA;AAAA,EAErB,cAAc;AAAA,IACZ,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,gBAAgB;AAAA,EAAA;AAAA,EAElB,QAAQ;AAAA,IACN,cAAc;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,mBAAmB;AAAA,EAAA;AAAA,EAErB,WAAW;AAAA,IACT,yBAAyB,CAAC,YAAY,kBACpC,kBAAkB,OACd,yCAAyC,UAAU,MACnD,+BAA+B,UAAU,cACvC,kBAAkB,QAAQ,eAAe,aAC3C;AAAA,EAAA;AAAA,EAER,eAAe;AAAA,IACb,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,OAAO;AAAA,EAAA;AAEX;"}
|