@vector-business-services/cristal-ds-web 0.13.1 → 0.14.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/index.cjs +45 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +92 -287
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +45 -30
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -430,6 +430,8 @@ interface MenuPrincipalItem {
|
|
|
430
430
|
icon: ReactNode;
|
|
431
431
|
/** Texto da tag no canto (Show Tag no Figma, onde é "Experimente"). */
|
|
432
432
|
tag?: string;
|
|
433
|
+
/** Ícone da tag. Padrão: DribbbleLogo, o do Figma. */
|
|
434
|
+
tagIcon?: ReactNode;
|
|
433
435
|
/** Ação do item; o menu popup fecha depois dela. */
|
|
434
436
|
command?: (event: MenuItemCommandEvent) => void;
|
|
435
437
|
/** Link do item; sem ele o clique não navega. */
|
package/dist/index.d.ts
CHANGED
|
@@ -430,6 +430,8 @@ interface MenuPrincipalItem {
|
|
|
430
430
|
icon: ReactNode;
|
|
431
431
|
/** Texto da tag no canto (Show Tag no Figma, onde é "Experimente"). */
|
|
432
432
|
tag?: string;
|
|
433
|
+
/** Ícone da tag. Padrão: DribbbleLogo, o do Figma. */
|
|
434
|
+
tagIcon?: ReactNode;
|
|
433
435
|
/** Ação do item; o menu popup fecha depois dela. */
|
|
434
436
|
command?: (event: MenuItemCommandEvent) => void;
|
|
435
437
|
/** Link do item; sem ele o clique não navega. */
|
package/dist/index.js
CHANGED
|
@@ -154,14 +154,18 @@ var AutoComplete = forwardRef(function AutoComplete2({
|
|
|
154
154
|
},
|
|
155
155
|
// O Prime mostra um spinner próprio enquanto busca; o Figma não define esse estado.
|
|
156
156
|
loadingIcon: { className: "cr-autocomplete__loader" },
|
|
157
|
-
panel: { className: "cr-autocomplete__panel" },
|
|
157
|
+
panel: { className: "cr-lista cr-autocomplete__panel" },
|
|
158
158
|
// Lado da lista (acima ou abaixo do campo), medido logo depois de o Prime posicionar.
|
|
159
159
|
transition: aoPosicionar(() => {
|
|
160
160
|
const campo = document.getElementById(id);
|
|
161
161
|
seguirLado(painelDoCampo(campo, ".cr-autocomplete__panel"), campo);
|
|
162
162
|
}),
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
// A área que rola (o Prime aceita listWrapper no pt, mas o d.ts não declara).
|
|
164
|
+
...{ listWrapper: { className: "cr-lista__rolagem" } },
|
|
165
|
+
list: { className: "cr-lista__itens" },
|
|
166
|
+
item: ({ context }) => ({
|
|
167
|
+
className: `cr-lista__item cr-autocomplete__item${context.selected ? " cr-lista__item--selecionado" : ""}`
|
|
168
|
+
})
|
|
165
169
|
},
|
|
166
170
|
...props
|
|
167
171
|
}
|
|
@@ -537,7 +541,7 @@ function Chart({
|
|
|
537
541
|
s.label
|
|
538
542
|
] }, s.label)) })
|
|
539
543
|
] }),
|
|
540
|
-
/* @__PURE__ */ jsxs("table", { className: "cr-chart__table", children: [
|
|
544
|
+
/* @__PURE__ */ jsxs("table", { className: "cr-so-leitor cr-chart__table", children: [
|
|
541
545
|
title && /* @__PURE__ */ jsx("caption", { children: title }),
|
|
542
546
|
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
543
547
|
/* @__PURE__ */ jsx("td", {}),
|
|
@@ -620,7 +624,7 @@ var Checkbox = forwardRef(function Checkbox2({
|
|
|
620
624
|
/* @__PURE__ */ jsx(
|
|
621
625
|
"label",
|
|
622
626
|
{
|
|
623
|
-
className: `cr-checkbox__label${showLabel ? "" : " cr-checkbox__label--hidden"}`,
|
|
627
|
+
className: `cr-checkbox__label${showLabel ? "" : " cr-checkbox__label--hidden cr-so-leitor"}`,
|
|
624
628
|
htmlFor: inputId,
|
|
625
629
|
children: label
|
|
626
630
|
}
|
|
@@ -851,7 +855,7 @@ function Drawer({
|
|
|
851
855
|
panelRef.current = element;
|
|
852
856
|
if (behavior === "full") setRolagem(element);
|
|
853
857
|
},
|
|
854
|
-
className: "cr-drawer__panel",
|
|
858
|
+
className: "cr-rolagem-fina cr-drawer__panel",
|
|
855
859
|
tabIndex: behavior === "full" && rolavel ? 0 : void 0,
|
|
856
860
|
children: [
|
|
857
861
|
/* @__PURE__ */ jsxs("div", { className: "cr-drawer__header", children: [
|
|
@@ -874,7 +878,7 @@ function Drawer({
|
|
|
874
878
|
"div",
|
|
875
879
|
{
|
|
876
880
|
ref: behavior === "fixed" ? setRolagem : void 0,
|
|
877
|
-
className: "cr-drawer__body",
|
|
881
|
+
className: "cr-rolagem-fina cr-drawer__body",
|
|
878
882
|
tabIndex: behavior === "fixed" && rolavel ? 0 : void 0,
|
|
879
883
|
children
|
|
880
884
|
}
|
|
@@ -1000,7 +1004,7 @@ var Menu = forwardRef(function Menu2({
|
|
|
1000
1004
|
className: [item.selected && "cr-menu__item--selected", item.className].filter(Boolean).join(" "),
|
|
1001
1005
|
data: { selected: item.selected }
|
|
1002
1006
|
}));
|
|
1003
|
-
const classes = ["cr-menu", `cr-menu--${density}`, popup && "cr-menu--popup", className].filter(Boolean).join(" ");
|
|
1007
|
+
const classes = ["cr-lista cr-menu", `cr-menu--${density}`, popup && "cr-menu--popup", className].filter(Boolean).join(" ");
|
|
1004
1008
|
const pt = {
|
|
1005
1009
|
// O nome acessível vai na lista (role=menu); o Prime lê `ariaLabel`, mas não o declara no tipo.
|
|
1006
1010
|
menu: {
|
|
@@ -1023,7 +1027,7 @@ var Menu = forwardRef(function Menu2({
|
|
|
1023
1027
|
transition: aoPosicionar(
|
|
1024
1028
|
() => queueMicrotask(() => seguirLado(primeRef.current?.getElement(), alvo.current))
|
|
1025
1029
|
),
|
|
1026
|
-
action: { className: "cr-menu__action" },
|
|
1030
|
+
action: { className: "cr-lista__item cr-menu__action" },
|
|
1027
1031
|
label: { className: "cr-menu__label" }
|
|
1028
1032
|
};
|
|
1029
1033
|
const menu = /* @__PURE__ */ jsx(
|
|
@@ -1325,7 +1329,15 @@ var MenuPrincipal = forwardRef(
|
|
|
1325
1329
|
item.description && /* @__PURE__ */ jsx("span", { className: "cr-menu-principal__description", children: item.description })
|
|
1326
1330
|
] }),
|
|
1327
1331
|
" ",
|
|
1328
|
-
item.tag && /* @__PURE__ */ jsx(
|
|
1332
|
+
item.tag && /* @__PURE__ */ jsx(
|
|
1333
|
+
Tag,
|
|
1334
|
+
{
|
|
1335
|
+
className: "cr-menu-principal__tag",
|
|
1336
|
+
variant: "warning",
|
|
1337
|
+
icon: item.tagIcon ?? /* @__PURE__ */ jsx(DribbbleLogo, {}),
|
|
1338
|
+
children: item.tag
|
|
1339
|
+
}
|
|
1340
|
+
)
|
|
1329
1341
|
]
|
|
1330
1342
|
}
|
|
1331
1343
|
)
|
|
@@ -1343,7 +1355,10 @@ var MenuPrincipal = forwardRef(
|
|
|
1343
1355
|
const pt = {
|
|
1344
1356
|
menu: { className: "cr-menu-principal__list", "aria-label": ariaLabel },
|
|
1345
1357
|
submenuHeader: { className: "cr-menu-principal__group" },
|
|
1346
|
-
|
|
1358
|
+
// O divisor tracejado é o Divider do Cristal (dashed).
|
|
1359
|
+
separator: {
|
|
1360
|
+
className: "cr-divider cr-divider--horizontal cr-divider--dashed cr-menu-principal__separator"
|
|
1361
|
+
},
|
|
1347
1362
|
menuitem: { className: "cr-menu-principal__item" },
|
|
1348
1363
|
// Lado do popup, medido logo depois de o Prime posicionar.
|
|
1349
1364
|
// Numa microtarefa: no onEnter o Prime ainda está religando a ref (como no Menu).
|
|
@@ -1483,7 +1498,7 @@ function Modal({
|
|
|
1483
1498
|
"div",
|
|
1484
1499
|
{
|
|
1485
1500
|
ref: setBody,
|
|
1486
|
-
className: "cr-modal__body",
|
|
1501
|
+
className: "cr-rolagem-fina cr-modal__body",
|
|
1487
1502
|
tabIndex: rolavel ? 0 : void 0,
|
|
1488
1503
|
children
|
|
1489
1504
|
}
|
|
@@ -1580,9 +1595,9 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
1580
1595
|
);
|
|
1581
1596
|
};
|
|
1582
1597
|
const checkbox = {
|
|
1583
|
-
root: { className: "cr-multiselect__checkbox" },
|
|
1584
|
-
box: { className: "cr-multiselect__checkbox-box" },
|
|
1585
|
-
input: { className: "cr-multiselect__checkbox-input" }
|
|
1598
|
+
root: { className: "cr-checkbox__control cr-multiselect__checkbox" },
|
|
1599
|
+
box: { className: "cr-checkbox__box cr-multiselect__checkbox-box" },
|
|
1600
|
+
input: { className: "cr-checkbox__input cr-multiselect__checkbox-input" }
|
|
1586
1601
|
};
|
|
1587
1602
|
const pt = {
|
|
1588
1603
|
// Com a lista aberta o foco vai para a busca (no body), fora da caixa: o estado Focused do
|
|
@@ -1593,7 +1608,7 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
1593
1608
|
className: `cr-field__control cr-multiselect__control${open ? " cr-multiselect__control--open" : ""}`
|
|
1594
1609
|
};
|
|
1595
1610
|
},
|
|
1596
|
-
hiddenInputWrapper: { className: "cr-multiselect__hidden" },
|
|
1611
|
+
hiddenInputWrapper: { className: "cr-so-leitor cr-multiselect__hidden" },
|
|
1597
1612
|
input: {
|
|
1598
1613
|
"aria-describedby": supportText ? hintId : void 0,
|
|
1599
1614
|
"aria-invalid": error ? true : void 0,
|
|
@@ -1602,7 +1617,7 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
1602
1617
|
labelContainer: { className: "cr-multiselect__value" },
|
|
1603
1618
|
label: { className: "cr-multiselect__chips" },
|
|
1604
1619
|
trigger: { className: "cr-field__icon cr-multiselect__trigger" },
|
|
1605
|
-
panel: { className: `cr-multiselect__panel cr-multiselect__panel--${density}` },
|
|
1620
|
+
panel: { className: `cr-lista cr-multiselect__panel cr-multiselect__panel--${density}` },
|
|
1606
1621
|
header: { className: "cr-multiselect__header" },
|
|
1607
1622
|
headerCheckboxContainer: { className: "cr-multiselect__select-all" },
|
|
1608
1623
|
// O Prime repete role=checkbox na <div> em volta do <input>: o leitor de tela veria dois.
|
|
@@ -1617,13 +1632,13 @@ var MultiSelect = forwardRef(function MultiSelect2({
|
|
|
1617
1632
|
root: { className: "cr-multiselect__search-input", "aria-label": filterPlaceholder }
|
|
1618
1633
|
},
|
|
1619
1634
|
closeButton: { className: "cr-multiselect__close" },
|
|
1620
|
-
wrapper: { className: "cr-
|
|
1621
|
-
list: { className: "cr-
|
|
1635
|
+
wrapper: { className: "cr-lista__rolagem" },
|
|
1636
|
+
list: { className: "cr-lista__itens" },
|
|
1622
1637
|
item: (options2) => {
|
|
1623
1638
|
const context = options2?.context;
|
|
1624
1639
|
const focused = context !== void 0 && context.focusedIndex === context.index;
|
|
1625
1640
|
return {
|
|
1626
|
-
className: `cr-multiselect__item${focused ? " cr-multiselect__item--focused" : ""}`
|
|
1641
|
+
className: `cr-lista__item cr-multiselect__item${focused ? " cr-multiselect__item--focused" : ""}`
|
|
1627
1642
|
};
|
|
1628
1643
|
},
|
|
1629
1644
|
checkboxContainer: { className: "cr-multiselect__item-checkbox" },
|
|
@@ -1831,11 +1846,11 @@ var Select = forwardRef(function Select2({
|
|
|
1831
1846
|
},
|
|
1832
1847
|
// O <select> escondido do Prime só existe para formulários: fora da árvore de acessibilidade.
|
|
1833
1848
|
select: { "aria-hidden": true },
|
|
1834
|
-
hiddenSelectedMessage: { className: "cr-select__hidden" },
|
|
1849
|
+
hiddenSelectedMessage: { className: "cr-so-leitor cr-select__hidden" },
|
|
1835
1850
|
// O Prime usa a mesma chave no texto do campo e no combobox escondido.
|
|
1836
1851
|
input: { className: "cr-select__value" },
|
|
1837
1852
|
trigger: { className: "cr-field__icon cr-select__trigger", "aria-hidden": true },
|
|
1838
|
-
panel: { className: "cr-select__panel" },
|
|
1853
|
+
panel: { className: "cr-lista cr-select__panel" },
|
|
1839
1854
|
// Lado da lista (acima ou abaixo do campo), medido logo depois de o Prime posicionar.
|
|
1840
1855
|
transition: aoPosicionar(
|
|
1841
1856
|
() => seguirLado(
|
|
@@ -1843,17 +1858,17 @@ var Select = forwardRef(function Select2({
|
|
|
1843
1858
|
document.getElementById(inputId)?.closest(".cr-select__control")
|
|
1844
1859
|
)
|
|
1845
1860
|
),
|
|
1846
|
-
wrapper: { className: "cr-select__wrapper" },
|
|
1847
|
-
list: { className: "cr-select__list", id: listId },
|
|
1861
|
+
wrapper: { className: "cr-lista__rolagem cr-select__wrapper" },
|
|
1862
|
+
list: { className: "cr-lista__itens cr-select__list", id: listId },
|
|
1848
1863
|
// Selecionado e em foco (teclado) pelo contexto do pt, a API pública do Prime (não data-p-*).
|
|
1849
1864
|
item: ({ context }) => ({
|
|
1850
1865
|
className: [
|
|
1851
|
-
"cr-select__item",
|
|
1852
|
-
context.selected && "cr-
|
|
1853
|
-
context.focused && "cr-
|
|
1866
|
+
"cr-lista__item cr-select__item",
|
|
1867
|
+
context.selected && "cr-lista__item--selecionado",
|
|
1868
|
+
context.focused && "cr-lista__item--focado"
|
|
1854
1869
|
].filter(Boolean).join(" ")
|
|
1855
1870
|
}),
|
|
1856
|
-
emptyMessage: { className: "cr-select__item cr-select__empty" }
|
|
1871
|
+
emptyMessage: { className: "cr-lista__item cr-select__item cr-select__empty" }
|
|
1857
1872
|
};
|
|
1858
1873
|
return /* @__PURE__ */ jsxs("div", { className: classes, children: [
|
|
1859
1874
|
label && /* @__PURE__ */ jsxs("label", { className: "cr-field__label", htmlFor: inputId, children: [
|
|
@@ -2051,7 +2066,7 @@ var Radio = forwardRef(function Radio2({
|
|
|
2051
2066
|
/* @__PURE__ */ jsx(
|
|
2052
2067
|
"label",
|
|
2053
2068
|
{
|
|
2054
|
-
className: `cr-radio__label${showLabel ? "" : " cr-radio__label--hidden"}`,
|
|
2069
|
+
className: `cr-radio__label${showLabel ? "" : " cr-radio__label--hidden cr-so-leitor"}`,
|
|
2055
2070
|
htmlFor: inputId,
|
|
2056
2071
|
children: label
|
|
2057
2072
|
}
|
|
@@ -2195,7 +2210,7 @@ var Switch = forwardRef(function Switch2({
|
|
|
2195
2210
|
/* @__PURE__ */ jsx(
|
|
2196
2211
|
"label",
|
|
2197
2212
|
{
|
|
2198
|
-
className: `cr-switch__label${showLabel ? "" : " cr-switch__label--hidden"}`,
|
|
2213
|
+
className: `cr-switch__label${showLabel ? "" : " cr-switch__label--hidden cr-so-leitor"}`,
|
|
2199
2214
|
htmlFor: inputId,
|
|
2200
2215
|
children: label
|
|
2201
2216
|
}
|