@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.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
- list: { className: "cr-autocomplete__list" },
164
- item: { className: "cr-autocomplete__item" }
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(Tag, { className: "cr-menu-principal__tag", variant: "warning", icon: /* @__PURE__ */ jsx(DribbbleLogo, {}), children: item.tag })
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
- separator: { className: "cr-menu-principal__separator" },
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-multiselect__wrapper" },
1621
- list: { className: "cr-multiselect__list" },
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-select__item--selected",
1853
- context.focused && "cr-select__item--focused"
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
  }