@lucasbernardosn/react-ui 0.3.0 → 0.4.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/README.md +2 -1
- package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +1 -1
- package/dist/components/display/avatar/avatar-root-variants.d.ts +1 -1
- package/dist/components/display/badge/badge-variants.d.ts +4 -1
- package/dist/components/display/badge/badge-variants.js +5 -0
- package/dist/components/display/badge/badge-variants.js.map +1 -1
- package/dist/components/display/badge/badge.d.ts +10 -1
- package/dist/components/display/badge/badge.js +40 -2
- package/dist/components/display/badge/badge.js.map +1 -1
- package/dist/components/display/card/card-body.js +1 -0
- package/dist/components/display/card/card-body.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-label-variants.d.ts +7 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js +27 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js.map +1 -0
- package/dist/components/display/data-list/data-list-item-label.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-label.js +9 -2
- package/dist/components/display/data-list/data-list-item-label.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.d.ts +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.js +9 -5
- package/dist/components/display/data-list/data-list-item-value-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-value.js +4 -3
- package/dist/components/display/data-list/data-list-item-value.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-variants.d.ts +2 -6
- package/dist/components/display/data-list/data-list-item-variants.js +24 -26
- package/dist/components/display/data-list/data-list-item-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item.js +7 -3
- package/dist/components/display/data-list/data-list-item.js.map +1 -1
- package/dist/components/display/data-list/data-list-root-variants.d.ts +1 -2
- package/dist/components/display/data-list/data-list-root-variants.js +7 -24
- package/dist/components/display/data-list/data-list-root-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-root.d.ts +3 -2
- package/dist/components/display/data-list/data-list-root.js +8 -3
- package/dist/components/display/data-list/data-list-root.js.map +1 -1
- package/dist/components/display/data-list/use-data-list-context.d.ts +18 -7
- package/dist/components/display/data-list/use-data-list-context.js +3 -2
- package/dist/components/display/data-list/use-data-list-context.js.map +1 -1
- package/dist/components/display/tag/tag-root-variants.d.ts +1 -2
- package/dist/components/display/tag/tag-root-variants.js +0 -1
- package/dist/components/display/tag/tag-root-variants.js.map +1 -1
- package/dist/components/feedback/alert/alert-indicator.d.ts +2 -2
- package/dist/components/feedback/alert/alert-indicator.js +2 -2
- package/dist/components/feedback/alert/alert-indicator.js.map +1 -1
- package/dist/components/layout/center-absolute/center-absolute-variants.d.ts +1 -1
- package/dist/components/layout/scroll-area/scroll-area-root.d.ts +16 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js +6 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts +3 -0
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js +9 -2
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts +5 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.js +15 -5
- package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts +5 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js +8 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts +6 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +9 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +9 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js +19 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +87 -28
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +120 -55
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts +24 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js +31 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +25 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +51 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +4 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +13 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +7 -6
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -4
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js +48 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +3 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js +4 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js.map +1 -1
- package/dist/components/overlays/alert-dialog/index.parts.d.ts +4 -3
- package/dist/components/overlays/alert-dialog/index.parts.js +3 -1
- package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-body.js +1 -0
- package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.js +2 -3
- package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-body.js +1 -0
- package/dist/components/overlays/drawer/drawer-body.js.map +1 -1
- package/dist/components/typography/link/index.d.ts +3 -0
- package/dist/components/typography/link/index.js +2 -0
- package/dist/components/typography/link/link-variants.d.ts +33 -0
- package/dist/components/typography/link/link-variants.js +91 -0
- package/dist/components/typography/link/link-variants.js.map +1 -0
- package/dist/components/typography/link/link.d.ts +50 -0
- package/dist/components/typography/link/link.js +74 -0
- package/dist/components/typography/link/link.js.map +1 -0
- package/dist/components/typography/mark/mark-variants.d.ts +1 -1
- package/package.json +4 -4
|
@@ -22,7 +22,7 @@ export type ScrollAreaViewportVariants = {
|
|
|
22
22
|
* já aparecer antes da primeira medição, quando ainda há conteúdo abaixo.
|
|
23
23
|
*/
|
|
24
24
|
export declare const scrollAreaViewportVariants: (props?: ({
|
|
25
|
-
fade?: "
|
|
25
|
+
fade?: "both" | "horizontal" | "vertical" | null | undefined;
|
|
26
26
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
27
27
|
//#endregion
|
|
28
28
|
//# sourceMappingURL=scroll-area-viewport-variants.d.ts.map
|
|
@@ -5,8 +5,11 @@ export type AlertDialogBodyProps = useRender.ComponentProps<'div'>;
|
|
|
5
5
|
* Conteúdo extra do alert dialog, como a lista do que será apagado ou um campo de confirmação.
|
|
6
6
|
* Opcional: o caso comum é só `Header` e `Footer`.
|
|
7
7
|
*
|
|
8
|
-
* Cópia de `DialogBody
|
|
9
|
-
*
|
|
8
|
+
* Cópia de `DialogBody` (tabela no README de `overlays`; o mecanismo está explicado lá), com o
|
|
9
|
+
* espaço de cima por margem de 16px depois de outra parte, sem o `py-2`, e o recuo à esquerda
|
|
10
|
+
* (padding mais 32px, a partir de `sm`) quando o `AlertDialog.Header` anterior tem um
|
|
11
|
+
* `AlertDialog.Indicator`, para o conteúdo alinhar ao texto do header. Segue o modelo de superfície
|
|
12
|
+
* da pendência "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
10
13
|
*/
|
|
11
14
|
export declare const AlertDialogBody: {
|
|
12
15
|
(props: AlertDialogBodyProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -5,8 +5,11 @@ import { mergeProps, useRender } from "@base-ui/react";
|
|
|
5
5
|
* Conteúdo extra do alert dialog, como a lista do que será apagado ou um campo de confirmação.
|
|
6
6
|
* Opcional: o caso comum é só `Header` e `Footer`.
|
|
7
7
|
*
|
|
8
|
-
* Cópia de `DialogBody
|
|
9
|
-
*
|
|
8
|
+
* Cópia de `DialogBody` (tabela no README de `overlays`; o mecanismo está explicado lá), com o
|
|
9
|
+
* espaço de cima por margem de 16px depois de outra parte, sem o `py-2`, e o recuo à esquerda
|
|
10
|
+
* (padding mais 32px, a partir de `sm`) quando o `AlertDialog.Header` anterior tem um
|
|
11
|
+
* `AlertDialog.Indicator`, para o conteúdo alinhar ao texto do header. Segue o modelo de superfície
|
|
12
|
+
* da pendência "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
10
13
|
*/
|
|
11
14
|
const AlertDialogBody = (props) => {
|
|
12
15
|
const { render, className, ...rest } = props;
|
|
@@ -16,11 +19,13 @@ const AlertDialogBody = (props) => {
|
|
|
16
19
|
"flex",
|
|
17
20
|
"flex-1",
|
|
18
21
|
"flex-col",
|
|
22
|
+
"gap-4",
|
|
19
23
|
"min-h-0",
|
|
20
24
|
"overflow-y-auto",
|
|
21
25
|
"px-(--alert-dialog-padding)",
|
|
22
|
-
"py-2",
|
|
23
26
|
"first:pt-(--alert-dialog-padding)",
|
|
27
|
+
"not-first:mt-4",
|
|
28
|
+
"sm:[[data-component='AlertDialog.Header']:has(>[data-component='AlertDialog.Indicator'])~&]:pl-[calc(var(--alert-dialog-padding)+--spacing(8))]",
|
|
24
29
|
"[&:not(:has(~[data-component='AlertDialog.Footer']))]:pb-(--alert-dialog-padding)"
|
|
25
30
|
], className)
|
|
26
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog-body.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-body.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogBodyProps = useRender.ComponentProps<'div'>;\n\n/**\n * Conteúdo extra do alert dialog, como a lista do que será apagado ou um campo de confirmação.\n * Opcional: o caso comum é só `Header` e `Footer`.\n *\n * Cópia de `DialogBody
|
|
1
|
+
{"version":3,"file":"alert-dialog-body.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-body.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogBodyProps = useRender.ComponentProps<'div'>;\n\n/**\n * Conteúdo extra do alert dialog, como a lista do que será apagado ou um campo de confirmação.\n * Opcional: o caso comum é só `Header` e `Footer`.\n *\n * Cópia de `DialogBody` (tabela no README de `overlays`; o mecanismo está explicado lá), com o\n * espaço de cima por margem de 16px depois de outra parte, sem o `py-2`, e o recuo à esquerda\n * (padding mais 32px, a partir de `sm`) quando o `AlertDialog.Header` anterior tem um\n * `AlertDialog.Indicator`, para o conteúdo alinhar ao texto do header. Segue o modelo de superfície\n * da pendência \"Superfícies\" do ROADMAP, ainda não aplicado ao Dialog.\n */\nexport const AlertDialogBody = (props: AlertDialogBodyProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'AlertDialog.Body',\n className: mergeTwClassNames(\n [\n 'flex',\n 'flex-1',\n 'flex-col',\n 'gap-4',\n // Sem o `min-h-0`, o item flex não encolhe abaixo do conteúdo, e o popup vaza da tela.\n 'min-h-0',\n 'overflow-y-auto',\n\n 'px-(--alert-dialog-padding)',\n 'first:pt-(--alert-dialog-padding)',\n // Depois de outra parte, o espaço de 16px é margem, e não padding: fica fora da área que\n // rola. Com padding, o conteúdo rolado seria cortado rente à descrição do header, e com a\n // margem ele some 16px abaixo dela.\n 'not-first:mt-4',\n // Com um indicador no header anterior (ícone de 20px mais gap de 12px), recua o conteúdo\n // para o alinhar ao texto do header. No celular o header é centralizado, sem recuo.\n \"sm:[[data-component='AlertDialog.Header']:has(>[data-component='AlertDialog.Indicator'])~&]:pl-[calc(var(--alert-dialog-padding)+--spacing(8))]\",\n // Por irmão, e não por `last:`, porque um `Close` pode vir depois.\n \"[&:not(:has(~[data-component='AlertDialog.Footer']))]:pb-(--alert-dialog-padding)\",\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nAlertDialogBody.displayName = 'AlertDialog.Body';\n"],"mappings":";;;;;;;;;;;;;AAeA,MAAa,mBAAmB,UAAgC;CAC9D,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GACE;GACA;GACA;GACA;GAEA;GACA;GAEA;GACA;GAIA;GAGA;GAEA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,gBAAgB,cAAc"}
|
|
@@ -2,10 +2,13 @@ import { useRender } from "@base-ui/react";
|
|
|
2
2
|
//#region src/components/overlays/alert-dialog/alert-dialog-footer.d.ts
|
|
3
3
|
export type AlertDialogFooterProps = useRender.ComponentProps<'div'>;
|
|
4
4
|
/**
|
|
5
|
-
* Linha de ações na base do alert dialog, alinhadas à direita.
|
|
5
|
+
* Linha de ações na base do alert dialog, alinhadas à direita. Em tela pequena, empilha as ações
|
|
6
|
+
* na largura toda, com a última em cima: a ordem do DOM e do foco não muda (cancelar antes da
|
|
7
|
+
* ação).
|
|
6
8
|
*
|
|
7
|
-
* Cópia de `DialogFooter
|
|
8
|
-
*
|
|
9
|
+
* Cópia de `DialogFooter` (tabela no README de `overlays`; o mecanismo está explicado lá), com a
|
|
10
|
+
* pilha do celular e sempre 24px antes das ações (sem o `pt-2`). Segue o modelo de superfície
|
|
11
|
+
* da pendência "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
9
12
|
*/
|
|
10
13
|
export declare const AlertDialogFooter: {
|
|
11
14
|
(props: AlertDialogFooterProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -2,10 +2,13 @@ import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
|
2
2
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
3
3
|
//#region src/components/overlays/alert-dialog/alert-dialog-footer.tsx
|
|
4
4
|
/**
|
|
5
|
-
* Linha de ações na base do alert dialog, alinhadas à direita.
|
|
5
|
+
* Linha de ações na base do alert dialog, alinhadas à direita. Em tela pequena, empilha as ações
|
|
6
|
+
* na largura toda, com a última em cima: a ordem do DOM e do foco não muda (cancelar antes da
|
|
7
|
+
* ação).
|
|
6
8
|
*
|
|
7
|
-
* Cópia de `DialogFooter
|
|
8
|
-
*
|
|
9
|
+
* Cópia de `DialogFooter` (tabela no README de `overlays`; o mecanismo está explicado lá), com a
|
|
10
|
+
* pilha do celular e sempre 24px antes das ações (sem o `pt-2`). Segue o modelo de superfície
|
|
11
|
+
* da pendência "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
9
12
|
*/
|
|
10
13
|
const AlertDialogFooter = (props) => {
|
|
11
14
|
const { render, className, ...rest } = props;
|
|
@@ -17,9 +20,10 @@ const AlertDialogFooter = (props) => {
|
|
|
17
20
|
"justify-end",
|
|
18
21
|
"gap-2",
|
|
19
22
|
"px-(--alert-dialog-padding)",
|
|
20
|
-
"pt-
|
|
23
|
+
"pt-(--alert-dialog-padding)",
|
|
21
24
|
"pb-(--alert-dialog-padding)",
|
|
22
|
-
"
|
|
25
|
+
"max-sm:flex-col-reverse",
|
|
26
|
+
"max-sm:*:w-full"
|
|
23
27
|
], className)
|
|
24
28
|
};
|
|
25
29
|
return useRender({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog-footer.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-footer.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogFooterProps = useRender.ComponentProps<'div'>;\n\n/**\n * Linha de ações na base do alert dialog, alinhadas à direita.\n *\n * Cópia de `DialogFooter
|
|
1
|
+
{"version":3,"file":"alert-dialog-footer.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-footer.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogFooterProps = useRender.ComponentProps<'div'>;\n\n/**\n * Linha de ações na base do alert dialog, alinhadas à direita. Em tela pequena, empilha as ações\n * na largura toda, com a última em cima: a ordem do DOM e do foco não muda (cancelar antes da\n * ação).\n *\n * Cópia de `DialogFooter` (tabela no README de `overlays`; o mecanismo está explicado lá), com a\n * pilha do celular e sempre 24px antes das ações (sem o `pt-2`). Segue o modelo de superfície\n * da pendência \"Superfícies\" do ROADMAP, ainda não aplicado ao Dialog.\n */\nexport const AlertDialogFooter = (props: AlertDialogFooterProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'AlertDialog.Footer',\n className: mergeTwClassNames(\n [\n 'flex',\n 'items-center',\n 'justify-end',\n 'gap-2',\n\n 'px-(--alert-dialog-padding)',\n 'pt-(--alert-dialog-padding)',\n 'pb-(--alert-dialog-padding)',\n\n 'max-sm:flex-col-reverse',\n 'max-sm:*:w-full',\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nAlertDialogFooter.displayName = 'AlertDialog.Footer';\n"],"mappings":";;;;;;;;;;;;AAcA,MAAa,qBAAqB,UAAkC;CAClE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GACE;GACA;GACA;GACA;GAEA;GACA;GACA;GAEA;GACA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,kBAAkB,cAAc"}
|
|
@@ -4,8 +4,15 @@ export type AlertDialogHeaderProps = useRender.ComponentProps<'div'>;
|
|
|
4
4
|
/**
|
|
5
5
|
* Topo do alert dialog, onde ficam título e descrição.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Com um `AlertDialog.Indicator` como filho, vira um grid de duas colunas: o indicador à esquerda,
|
|
8
|
+
* alinhado à primeira linha do título, e os demais filhos (título, descrição, o que vier) na
|
|
9
|
+
* coluna da direita, alinhados entre si. Em tela pequena o grid se desfaz: o indicador fica acima
|
|
10
|
+
* do texto e tudo é centralizado.
|
|
11
|
+
*
|
|
12
|
+
* Cópia de `DialogHeader` (tabela no README de `overlays`; o mecanismo está explicado lá), com o
|
|
13
|
+
* grid do indicador, o texto centralizado no celular, 4px entre título e descrição e sem o `pb-2`:
|
|
14
|
+
* o espaço antes da parte seguinte é o padding dela. Segue o modelo de superfície da pendência
|
|
15
|
+
* "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
9
16
|
*/
|
|
10
17
|
export declare const AlertDialogHeader: {
|
|
11
18
|
(props: AlertDialogHeaderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
@@ -4,8 +4,15 @@ import { mergeProps, useRender } from "@base-ui/react";
|
|
|
4
4
|
/**
|
|
5
5
|
* Topo do alert dialog, onde ficam título e descrição.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Com um `AlertDialog.Indicator` como filho, vira um grid de duas colunas: o indicador à esquerda,
|
|
8
|
+
* alinhado à primeira linha do título, e os demais filhos (título, descrição, o que vier) na
|
|
9
|
+
* coluna da direita, alinhados entre si. Em tela pequena o grid se desfaz: o indicador fica acima
|
|
10
|
+
* do texto e tudo é centralizado.
|
|
11
|
+
*
|
|
12
|
+
* Cópia de `DialogHeader` (tabela no README de `overlays`; o mecanismo está explicado lá), com o
|
|
13
|
+
* grid do indicador, o texto centralizado no celular, 4px entre título e descrição e sem o `pb-2`:
|
|
14
|
+
* o espaço antes da parte seguinte é o padding dela. Segue o modelo de superfície da pendência
|
|
15
|
+
* "Superfícies" do ROADMAP, ainda não aplicado ao Dialog.
|
|
9
16
|
*/
|
|
10
17
|
const AlertDialogHeader = (props) => {
|
|
11
18
|
const { render, className, ...rest } = props;
|
|
@@ -14,11 +21,18 @@ const AlertDialogHeader = (props) => {
|
|
|
14
21
|
className: mergeTwClassNames([
|
|
15
22
|
"flex",
|
|
16
23
|
"flex-col",
|
|
17
|
-
"gap-
|
|
24
|
+
"gap-1",
|
|
18
25
|
"px-(--alert-dialog-padding)",
|
|
19
26
|
"pt-(--alert-dialog-padding)",
|
|
20
|
-
"pb-
|
|
21
|
-
"
|
|
27
|
+
"[&:not(:has(~[data-component='AlertDialog.Body'],~[data-component='AlertDialog.Footer']))]:pb-(--alert-dialog-padding)",
|
|
28
|
+
"max-sm:text-center",
|
|
29
|
+
"max-sm:[&>[data-component='AlertDialog.Indicator']]:mb-2",
|
|
30
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:grid",
|
|
31
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:grid-cols-[auto_1fr]",
|
|
32
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:gap-x-3",
|
|
33
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>:not([data-component='AlertDialog.Indicator'])]:col-start-2",
|
|
34
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>[data-component='AlertDialog.Indicator']]:col-start-1",
|
|
35
|
+
"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>[data-component='AlertDialog.Indicator']]:row-start-1"
|
|
22
36
|
], className)
|
|
23
37
|
};
|
|
24
38
|
return useRender({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog-header.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-header.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogHeaderProps = useRender.ComponentProps<'div'>;\n\n/**\n * Topo do alert dialog, onde ficam título e descrição.\n *\n * Cópia de `DialogHeader
|
|
1
|
+
{"version":3,"file":"alert-dialog-header.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-header.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport { mergeTwClassNames } from '#utils';\n\nexport type AlertDialogHeaderProps = useRender.ComponentProps<'div'>;\n\n/**\n * Topo do alert dialog, onde ficam título e descrição.\n *\n * Com um `AlertDialog.Indicator` como filho, vira um grid de duas colunas: o indicador à esquerda,\n * alinhado à primeira linha do título, e os demais filhos (título, descrição, o que vier) na\n * coluna da direita, alinhados entre si. Em tela pequena o grid se desfaz: o indicador fica acima\n * do texto e tudo é centralizado.\n *\n * Cópia de `DialogHeader` (tabela no README de `overlays`; o mecanismo está explicado lá), com o\n * grid do indicador, o texto centralizado no celular, 4px entre título e descrição e sem o `pb-2`:\n * o espaço antes da parte seguinte é o padding dela. Segue o modelo de superfície da pendência\n * \"Superfícies\" do ROADMAP, ainda não aplicado ao Dialog.\n */\nexport const AlertDialogHeader = (props: AlertDialogHeaderProps) => {\n const { render, className, ...rest } = props;\n\n const baseProps = {\n 'data-component': 'AlertDialog.Header',\n className: mergeTwClassNames(\n [\n 'flex',\n 'flex-col',\n 'gap-1',\n\n 'px-(--alert-dialog-padding)',\n 'pt-(--alert-dialog-padding)',\n // Sem `Body` nem `Footer` depois, fecha o respiro do dialog embaixo. Por irmão, e não por\n // `last:`, porque um `Close` pode vir depois.\n \"[&:not(:has(~[data-component='AlertDialog.Body'],~[data-component='AlertDialog.Footer']))]:pb-(--alert-dialog-padding)\",\n\n 'max-sm:text-center',\n // Em coluna, o `gap` de 4px colaria o indicador no título; com o `mb-2`, ficam 12px.\n \"max-sm:[&>[data-component='AlertDialog.Indicator']]:mb-2\",\n // O grid vale a partir de `sm`; abaixo, o header segue em coluna, com o indicador acima do\n // texto. O indicador fixa a coluna e a linha 1 para valer qualquer que seja a ordem dos\n // filhos, e todo o resto vai para a coluna 2, alinhado entre si.\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:grid\",\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:grid-cols-[auto_1fr]\",\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:gap-x-3\",\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>:not([data-component='AlertDialog.Indicator'])]:col-start-2\",\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>[data-component='AlertDialog.Indicator']]:col-start-1\",\n \"sm:has-[>[data-component='AlertDialog.Indicator']]:[&>[data-component='AlertDialog.Indicator']]:row-start-1\",\n ],\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nAlertDialogHeader.displayName = 'AlertDialog.Header';\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,MAAa,qBAAqB,UAAkC;CAClE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT;GACE;GACA;GACA;GAEA;GACA;GAGA;GAEA;GAEA;GAIA;GACA;GACA;GACA;GACA;GACA;EACF,GACA,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,kBAAkB,cAAc"}
|
|
@@ -1,64 +1,117 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../../
|
|
1
|
+
import { AlertVariants } from "../../feedback/alert/use-alert-context.js";
|
|
2
|
+
import { index_parts_d_exports } from "../../feedback/alert/index.parts.js";
|
|
3
|
+
import "../../feedback/alert/index.js";
|
|
3
4
|
import { AlertDialogVariants } from "./use-alert-dialog-context.js";
|
|
4
5
|
import React from "react";
|
|
5
6
|
//#region src/components/overlays/alert-dialog/alert-dialog-imperative.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Rótulo e visual de um botão do alerta, no vocabulário do `Button`. Clique, `loading` e
|
|
8
|
-
* `disabled` ficam com o alerta.
|
|
9
|
-
*/
|
|
10
|
-
export type AlertDialogButtonOptions = Pick<ButtonProps, 'children' | 'colorScheme' | 'variant'>;
|
|
11
7
|
export type AlertDialogAlertOptions = {
|
|
12
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* O que aconteceu, no vocabulário do `Alert`: decide a cor e o ícone padrão do indicador, e só
|
|
10
|
+
* eles.
|
|
11
|
+
*
|
|
12
|
+
* @default 'info'
|
|
13
|
+
*/
|
|
14
|
+
status?: NonNullable<AlertVariants['status']>;
|
|
15
|
+
/** Diz o que aconteceu ("Não foi possível emitir a nota"). */
|
|
13
16
|
title: React.ReactNode;
|
|
14
17
|
/**
|
|
15
|
-
*
|
|
16
|
-
* abriu, e não muda depois de aberto.
|
|
18
|
+
* O motivo ou o que fazer em seguida. Só para exibição: renderiza no `AlertDialog.Outlet`, sem
|
|
19
|
+
* o contexto de quem abriu, e não muda depois de aberto.
|
|
17
20
|
*/
|
|
18
21
|
description?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Informação técnica (código de erro, resposta do servidor), num bloco "Detalhes técnicos"
|
|
24
|
+
* recolhido abaixo da descrição.
|
|
25
|
+
*/
|
|
26
|
+
details?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Troca só o desenho do indicador; a cor continua a do `status`. Um ícone próprio entra pelo
|
|
29
|
+
* `Icon` da lib, para ter o mesmo traço (`<Icon render={<TruckIcon />} />`).
|
|
30
|
+
*/
|
|
31
|
+
icon?: React.ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Rótulo do botão que fecha o alerta.
|
|
34
|
+
*
|
|
35
|
+
* @default 'OK'
|
|
36
|
+
*/
|
|
37
|
+
okLabel?: React.ReactNode;
|
|
19
38
|
/**
|
|
20
39
|
* Largura do popup, repassada ao `AlertDialog.Root`.
|
|
21
40
|
*
|
|
22
41
|
* @default 'md'
|
|
23
42
|
*/
|
|
24
43
|
size?: AlertDialogVariants['size'];
|
|
44
|
+
};
|
|
45
|
+
export type AlertDialogConfirmOptions = {
|
|
46
|
+
/** A pergunta ("Excluir a nota 4821?"). */
|
|
47
|
+
title: React.ReactNode;
|
|
25
48
|
/**
|
|
26
|
-
*
|
|
49
|
+
* A consequência da ação ("A exclusão não pode ser desfeita."). Quase sempre deve estar
|
|
50
|
+
* presente: sem ela, o título é a única informação para decidir. Só para exibição: renderiza no
|
|
51
|
+
* `AlertDialog.Outlet`, sem o contexto de quem abriu, e não muda depois de aberto.
|
|
52
|
+
*/
|
|
53
|
+
description?: React.ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Ação que destrói ou não se desfaz. O botão de confirmar fica vermelho (`red`, e não `brand`) e
|
|
56
|
+
* o foco abre no "Cancelar", para um `Enter` dado sem ler não confirmar.
|
|
27
57
|
*
|
|
28
|
-
* @default
|
|
58
|
+
* @default false
|
|
29
59
|
*/
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
export type AlertDialogConfirmOptions = AlertDialogAlertOptions & {
|
|
60
|
+
destructive?: boolean;
|
|
33
61
|
/**
|
|
34
|
-
*
|
|
62
|
+
* Rótulo do botão de confirmar: o verbo da ação ("Excluir", "Cancelar a nota"), não
|
|
63
|
+
* "Confirmar" nem "Sim". Sem destrutiva, o foco abre nele.
|
|
64
|
+
*/
|
|
65
|
+
confirmLabel: React.ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* Rótulo do botão de cancelar, antes do de confirmar.
|
|
35
68
|
*
|
|
36
|
-
* @default
|
|
69
|
+
* @default 'Cancelar'
|
|
37
70
|
*/
|
|
38
|
-
|
|
71
|
+
cancelLabel?: React.ReactNode;
|
|
39
72
|
/**
|
|
40
73
|
* Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o
|
|
41
74
|
* alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se
|
|
42
|
-
* ela lançar, o alerta continua aberto com
|
|
43
|
-
* de novo ou cancelar. Sem ela, o alerta só pergunta.
|
|
75
|
+
* ela lançar, o alerta continua aberto, com os botões de volta ao normal e sem mensagem, para
|
|
76
|
+
* tentar de novo ou cancelar. Sem ela, o alerta só pergunta.
|
|
44
77
|
*/
|
|
45
78
|
onConfirm?: () => unknown;
|
|
79
|
+
/**
|
|
80
|
+
* Chamada com o que o `onConfirm` lançou, com o alerta ainda aberto. A lib não mostra o erro:
|
|
81
|
+
* mostrá-lo é com quem chama, por um handler global (o `onError` de um cliente de queries) ou por
|
|
82
|
+
* esta opção. Um `try/catch` dentro do `onConfirm` que não relança faz o alerta fechar como
|
|
83
|
+
* sucesso. Sem `onError` e sem handler global, a falha não aparece para o usuário.
|
|
84
|
+
*/
|
|
85
|
+
onError?: (error: unknown) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Largura do popup, repassada ao `AlertDialog.Root`.
|
|
88
|
+
*
|
|
89
|
+
* @default 'md'
|
|
90
|
+
*/
|
|
91
|
+
size?: AlertDialogVariants['size'];
|
|
46
92
|
};
|
|
47
93
|
/**
|
|
48
|
-
* Abre um alerta com um botão
|
|
49
|
-
*
|
|
50
|
-
*
|
|
94
|
+
* Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele
|
|
95
|
+
* fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os
|
|
96
|
+
* "Detalhes técnicos" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,
|
|
97
|
+
* mas só aparece com um `AlertDialog.Outlet` montado.
|
|
51
98
|
*
|
|
52
99
|
* @example
|
|
53
100
|
* ```ts
|
|
54
|
-
* await AlertDialog.alert({
|
|
101
|
+
* await AlertDialog.alert({
|
|
102
|
+
* status: 'error',
|
|
103
|
+
* title: 'Não foi possível emitir a nota',
|
|
104
|
+
* description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',
|
|
105
|
+
* details: 'Rejeição 108: serviço paralisado momentaneamente.',
|
|
106
|
+
* });
|
|
55
107
|
* ```
|
|
56
108
|
*/
|
|
57
109
|
export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Promise<void>;
|
|
58
110
|
/**
|
|
59
|
-
* Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se
|
|
60
|
-
* fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar.
|
|
61
|
-
*
|
|
111
|
+
* Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se
|
|
112
|
+
* cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na
|
|
113
|
+
* ação; com `destructive`, abre no "Cancelar". Pode ser chamado de qualquer lugar, inclusive de
|
|
114
|
+
* fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
|
|
62
115
|
*
|
|
63
116
|
* Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o
|
|
64
117
|
* AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.
|
|
@@ -68,8 +121,14 @@ export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Pro
|
|
|
68
121
|
* const confirmed = await AlertDialog.confirm({
|
|
69
122
|
* title: 'Excluir a nota 4821?',
|
|
70
123
|
* description: 'A exclusão não pode ser desfeita.',
|
|
71
|
-
*
|
|
124
|
+
* confirmLabel: 'Excluir',
|
|
125
|
+
* destructive: true,
|
|
72
126
|
* onConfirm: () => deleteInvoice(4821),
|
|
127
|
+
* onError: () =>
|
|
128
|
+
* AlertDialog.alert({
|
|
129
|
+
* status: 'error',
|
|
130
|
+
* title: 'Não foi possível excluir a nota',
|
|
131
|
+
* }),
|
|
73
132
|
* });
|
|
74
133
|
* ```
|
|
75
134
|
*/
|