@beweco/aurora-ui 1.0.0-beta.135 → 1.0.0-beta.136

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.js CHANGED
@@ -9316,6 +9316,37 @@ const Table = Object.assign(TableFacade, {
9316
9316
  SortableColumnHeader: react.Table.SortableColumnHeader,
9317
9317
  });
9318
9318
 
9319
+ /**
9320
+ * Clave de la columna que `AuraTable` marca como identificadora de la fila cuando la app no marca
9321
+ * ninguna — `undefined` si alguna ya lo pide (entonces manda la app) o si no hay columnas.
9322
+ *
9323
+ * EL DEFECTO QUE ESTO CIERRA (medido en `beweosagency`, pantalla `/centers`, 3 apariciones en una
9324
+ * sola carga): react-aria exige al menos una columna con `isRowHeader` y, si no la encuentra,
9325
+ * lanza `A table must have at least one Column with the isRowHeader prop set to true` al construir
9326
+ * la colección (`react-aria-components/dist/private/Table.mjs:145`). `AuraTable` no marcaba
9327
+ * ninguna, así que TODA tabla montada por la vía declarativa lo disparaba. React se recupera
9328
+ * —la guarda pone `columnsDirty = false` ANTES de lanzar, así que el reintento pasa— pero
9329
+ * descarta el render concurrente, repinta la raíz de forma síncrona y deja el error en consola.
9330
+ * La vía compuesta a mano (`Table.Content` + `Table.Column isRowHeader`) nunca estuvo afectada:
9331
+ * ahí la marca la app.
9332
+ *
9333
+ * Lo que se pierde mientras tanto no es solo ruido: sin columna identificadora, NINGUNA celda
9334
+ * recibe `role="rowheader"` (medido: las 3 celdas de la story `Default` salían `gridcell`), o sea
9335
+ * que un lector de pantalla recorre las filas sin poder decir de QUÉ fila habla.
9336
+ *
9337
+ * Por qué la PRIMERA: es lo que ya hace a mano la composición cruda de este repo
9338
+ * (`stories/Table.stories.tsx:123`, `isRowHeader={column.key === "name"}`, que es la primera
9339
+ * columna) y lo que hace la columna identificadora en las tablas de las apps. Una columna con
9340
+ * `isRowHeader: false` cuenta como "no lo pide": react-aria solo mira si el valor es truthy
9341
+ * (`if (node.props.isRowHeader)`, Table.mjs:136), así que `false` y ausente son indistinguibles
9342
+ * para él y tratarlos igual evita que un `false` escrito por costumbre deje la tabla otra vez
9343
+ * sin identificador.
9344
+ */
9345
+ function defaultRowHeaderKey(columns) {
9346
+ return columns.some((column) => column.isRowHeader)
9347
+ ? undefined
9348
+ : columns[0]?.key;
9349
+ }
9319
9350
  /**
9320
9351
  * AuraTable genérico reutilizable, migrado al `Table` compound de HeroUI v3 (el `Table` de v2 con
9321
9352
  * `TableHeader`/`TableColumn`/`TableBody`/`TableRow`/`TableCell` sueltos se elimina).
@@ -9336,9 +9367,10 @@ const Table = Object.assign(TableFacade, {
9336
9367
  * no tener la anatomía escrita en dos sitios.
9337
9368
  */
9338
9369
  function AuraTable({ columns, items, renderCell, children, className, ...props }) {
9370
+ const rowHeaderKey = defaultRowHeaderKey(columns);
9339
9371
  // `removeWrapper`/`radius="none"` de v2 no tienen prop equivalente en v3 (§ver
9340
9372
  // AuraTable.types.ts): se aproxima con `rounded-none` directo en el `className` del root.
9341
- return (jsxRuntime.jsx(Table, { className: `rounded-none ${className ?? ""}`.trim(), children: jsxRuntime.jsxs(Table.Content, { ...props, children: [jsxRuntime.jsx(Table.Header, { columns: columns, children: (column) => (jsxRuntime.jsx(Table.Column, { children: column.label }, column.key)) }), jsxRuntime.jsx(Table.Body, { items: items, children: (item) => (jsxRuntime.jsx(Table.Row, { columns: columns, children: (column) => (jsxRuntime.jsx(Table.Cell, { children: renderCell ? renderCell(item, column.key) : children })) }, item.id)) })] }) }));
9373
+ return (jsxRuntime.jsx(Table, { className: `rounded-none ${className ?? ""}`.trim(), children: jsxRuntime.jsxs(Table.Content, { ...props, children: [jsxRuntime.jsx(Table.Header, { columns: columns, children: (column) => (jsxRuntime.jsx(Table.Column, { isRowHeader: column.isRowHeader || column.key === rowHeaderKey, children: column.label }, column.key)) }), jsxRuntime.jsx(Table.Body, { items: items, children: (item) => (jsxRuntime.jsx(Table.Row, { columns: columns, children: (column) => (jsxRuntime.jsx(Table.Cell, { children: renderCell ? renderCell(item, column.key) : children })) }, item.id)) })] }) }));
9342
9374
  }
9343
9375
 
9344
9376
  // TECH-2459 · F3 · G1-forms — v3 divide el `Textarea` monolítico de v2 en `TextField` +
package/dist/index.esm.js CHANGED
@@ -9316,6 +9316,37 @@ const Table = Object.assign(TableFacade, {
9316
9316
  SortableColumnHeader: Table$1.SortableColumnHeader,
9317
9317
  });
9318
9318
 
9319
+ /**
9320
+ * Clave de la columna que `AuraTable` marca como identificadora de la fila cuando la app no marca
9321
+ * ninguna — `undefined` si alguna ya lo pide (entonces manda la app) o si no hay columnas.
9322
+ *
9323
+ * EL DEFECTO QUE ESTO CIERRA (medido en `beweosagency`, pantalla `/centers`, 3 apariciones en una
9324
+ * sola carga): react-aria exige al menos una columna con `isRowHeader` y, si no la encuentra,
9325
+ * lanza `A table must have at least one Column with the isRowHeader prop set to true` al construir
9326
+ * la colección (`react-aria-components/dist/private/Table.mjs:145`). `AuraTable` no marcaba
9327
+ * ninguna, así que TODA tabla montada por la vía declarativa lo disparaba. React se recupera
9328
+ * —la guarda pone `columnsDirty = false` ANTES de lanzar, así que el reintento pasa— pero
9329
+ * descarta el render concurrente, repinta la raíz de forma síncrona y deja el error en consola.
9330
+ * La vía compuesta a mano (`Table.Content` + `Table.Column isRowHeader`) nunca estuvo afectada:
9331
+ * ahí la marca la app.
9332
+ *
9333
+ * Lo que se pierde mientras tanto no es solo ruido: sin columna identificadora, NINGUNA celda
9334
+ * recibe `role="rowheader"` (medido: las 3 celdas de la story `Default` salían `gridcell`), o sea
9335
+ * que un lector de pantalla recorre las filas sin poder decir de QUÉ fila habla.
9336
+ *
9337
+ * Por qué la PRIMERA: es lo que ya hace a mano la composición cruda de este repo
9338
+ * (`stories/Table.stories.tsx:123`, `isRowHeader={column.key === "name"}`, que es la primera
9339
+ * columna) y lo que hace la columna identificadora en las tablas de las apps. Una columna con
9340
+ * `isRowHeader: false` cuenta como "no lo pide": react-aria solo mira si el valor es truthy
9341
+ * (`if (node.props.isRowHeader)`, Table.mjs:136), así que `false` y ausente son indistinguibles
9342
+ * para él y tratarlos igual evita que un `false` escrito por costumbre deje la tabla otra vez
9343
+ * sin identificador.
9344
+ */
9345
+ function defaultRowHeaderKey(columns) {
9346
+ return columns.some((column) => column.isRowHeader)
9347
+ ? undefined
9348
+ : columns[0]?.key;
9349
+ }
9319
9350
  /**
9320
9351
  * AuraTable genérico reutilizable, migrado al `Table` compound de HeroUI v3 (el `Table` de v2 con
9321
9352
  * `TableHeader`/`TableColumn`/`TableBody`/`TableRow`/`TableCell` sueltos se elimina).
@@ -9336,9 +9367,10 @@ const Table = Object.assign(TableFacade, {
9336
9367
  * no tener la anatomía escrita en dos sitios.
9337
9368
  */
9338
9369
  function AuraTable({ columns, items, renderCell, children, className, ...props }) {
9370
+ const rowHeaderKey = defaultRowHeaderKey(columns);
9339
9371
  // `removeWrapper`/`radius="none"` de v2 no tienen prop equivalente en v3 (§ver
9340
9372
  // AuraTable.types.ts): se aproxima con `rounded-none` directo en el `className` del root.
9341
- return (jsx(Table, { className: `rounded-none ${className ?? ""}`.trim(), children: jsxs(Table.Content, { ...props, children: [jsx(Table.Header, { columns: columns, children: (column) => (jsx(Table.Column, { children: column.label }, column.key)) }), jsx(Table.Body, { items: items, children: (item) => (jsx(Table.Row, { columns: columns, children: (column) => (jsx(Table.Cell, { children: renderCell ? renderCell(item, column.key) : children })) }, item.id)) })] }) }));
9373
+ return (jsx(Table, { className: `rounded-none ${className ?? ""}`.trim(), children: jsxs(Table.Content, { ...props, children: [jsx(Table.Header, { columns: columns, children: (column) => (jsx(Table.Column, { isRowHeader: column.isRowHeader || column.key === rowHeaderKey, children: column.label }, column.key)) }), jsx(Table.Body, { items: items, children: (item) => (jsx(Table.Row, { columns: columns, children: (column) => (jsx(Table.Cell, { children: renderCell ? renderCell(item, column.key) : children })) }, item.id)) })] }) }));
9342
9374
  }
9343
9375
 
9344
9376
  // TECH-2459 · F3 · G1-forms — v3 divide el `Textarea` monolítico de v2 en `TextField` +
@@ -1 +1 @@
1
- {"version":3,"file":"AuraTable.d.ts","sourceRoot":"","sources":["../../../../src/components/table/AuraTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnE,KAAK,0BAA0B,CAAC,CAAC,SAAS,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG;IAC1E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC9C,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACR,EAAE,0BAA0B,CAAC,CAAC,CAAC,qBAyB/B"}
1
+ {"version":3,"file":"AuraTable.d.ts","sourceRoot":"","sources":["../../../../src/components/table/AuraTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAa,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAK9E,KAAK,0BAA0B,CAAC,CAAC,SAAS,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG;IAC1E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAkCF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAC9C,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACR,EAAE,0BAA0B,CAAC,CAAC,CAAC,qBAgC/B"}
@@ -3,6 +3,18 @@ import type React from "react";
3
3
  export interface ColumnDef {
4
4
  key: string;
5
5
  label: string;
6
+ /**
7
+ * Marca esta columna como la IDENTIFICADORA de la fila: su celda pasa de `role="gridcell"` a
8
+ * `role="rowheader"`, que es lo que un lector de pantalla anuncia al recorrer la tabla fila a
9
+ * fila. No cambia nada visual.
10
+ *
11
+ * React Aria EXIGE que haya al menos una por tabla y, si no la hay, lanza
12
+ * `A table must have at least one Column with the isRowHeader prop set to true` mientras
13
+ * construye la colección (`react-aria-components/dist/private/Table.mjs:145`). Por eso
14
+ * `AuraTable` marca la PRIMERA columna cuando ninguna lo pide — ver `AuraTable.tsx`. Declara
15
+ * esta prop solo cuando la columna identificadora no sea la primera.
16
+ */
17
+ isRowHeader?: boolean;
6
18
  }
7
19
  export interface TableItem {
8
20
  id: string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"AuraTable.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/AuraTable.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CACrD,qBAAqB,EACrB,UAAU,CACV,GAAG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,CAAC,EAAE,CAAC;CACX,CAAC"}
1
+ {"version":3,"file":"AuraTable.types.d.ts","sourceRoot":"","sources":["../../../../src/components/table/AuraTable.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,IAAI,CACrD,qBAAqB,EACrB,UAAU,CACV,GAAG;IACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,CAAC,EAAE,CAAC;CACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beweco/aurora-ui",
3
- "version": "1.0.0-beta.135",
3
+ "version": "1.0.0-beta.136",
4
4
  "description": "Bewe Aurora UI Component Library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",