@zeroman.yang/react-auto-components 0.1.1 → 0.1.3

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.
Files changed (106) hide show
  1. package/README.md +17 -3
  2. package/dist/adapters/xlsx.d.ts +7 -1
  3. package/dist/components/AutoChat/types.d.ts +7 -0
  4. package/dist/components/AutoDialog/index.d.ts +15 -0
  5. package/dist/components/AutoForm/types.d.ts +28 -0
  6. package/dist/components/AutoMenu/index.d.ts +7 -0
  7. package/dist/components/AutoSearch/index.d.ts +40 -0
  8. package/dist/components/AutoTable/registry.d.ts +8 -0
  9. package/dist/components/AutoTable/types.d.ts +69 -3
  10. package/dist/components/AutoTabs/index.d.ts +21 -2
  11. package/dist/components/AutoTabs/useAutoTabsWorkspace.d.ts +65 -0
  12. package/dist/core/AutoConfigProvider.d.ts +27 -0
  13. package/dist/core/config.d.ts +6 -1
  14. package/dist/core/dev.d.ts +27 -0
  15. package/dist/core/errors.d.ts +20 -0
  16. package/dist/core/query.d.ts +9 -0
  17. package/dist/core/registry.d.ts +33 -0
  18. package/dist/core/testid.d.ts +5 -0
  19. package/dist/core/types.d.ts +320 -17
  20. package/dist/errors-BT5WUIOV.js +28 -0
  21. package/dist/index.d.ts +4 -1
  22. package/dist/index.js +1889 -1465
  23. package/dist/style.css +1 -1
  24. package/dist/xlsx.js +13 -6
  25. package/docs/auto-dialog.md +64 -0
  26. package/docs/auto-form.md +64 -0
  27. package/docs/auto-menu.md +47 -0
  28. package/docs/auto-search.md +60 -0
  29. package/docs/auto-table.md +144 -0
  30. package/docs/auto-tabs.md +99 -0
  31. package/docs/errors.md +118 -0
  32. package/docs/i18n/de/README.md +8 -2
  33. package/docs/i18n/de/auto-dialog.md +23 -0
  34. package/docs/i18n/de/auto-form.md +35 -0
  35. package/docs/i18n/de/auto-menu.md +23 -0
  36. package/docs/i18n/de/auto-search.md +32 -0
  37. package/docs/i18n/de/auto-table.md +31 -0
  38. package/docs/i18n/de/auto-tabs.md +25 -0
  39. package/docs/i18n/de/errors.md +110 -0
  40. package/docs/i18n/es/README.md +8 -2
  41. package/docs/i18n/es/auto-dialog.md +23 -0
  42. package/docs/i18n/es/auto-form.md +35 -0
  43. package/docs/i18n/es/auto-menu.md +23 -0
  44. package/docs/i18n/es/auto-search.md +32 -0
  45. package/docs/i18n/es/auto-table.md +31 -0
  46. package/docs/i18n/es/auto-tabs.md +25 -0
  47. package/docs/i18n/es/errors.md +110 -0
  48. package/docs/i18n/fr/README.md +8 -2
  49. package/docs/i18n/fr/auto-dialog.md +23 -0
  50. package/docs/i18n/fr/auto-form.md +35 -0
  51. package/docs/i18n/fr/auto-menu.md +23 -0
  52. package/docs/i18n/fr/auto-search.md +32 -0
  53. package/docs/i18n/fr/auto-table.md +31 -0
  54. package/docs/i18n/fr/auto-tabs.md +25 -0
  55. package/docs/i18n/fr/errors.md +110 -0
  56. package/docs/i18n/ja/README.md +8 -2
  57. package/docs/i18n/ja/auto-dialog.md +23 -0
  58. package/docs/i18n/ja/auto-form.md +36 -0
  59. package/docs/i18n/ja/auto-menu.md +23 -0
  60. package/docs/i18n/ja/auto-search.md +34 -0
  61. package/docs/i18n/ja/auto-table.md +31 -0
  62. package/docs/i18n/ja/auto-tabs.md +25 -0
  63. package/docs/i18n/ja/errors.md +110 -0
  64. package/docs/i18n/ko/README.md +8 -2
  65. package/docs/i18n/ko/auto-dialog.md +23 -0
  66. package/docs/i18n/ko/auto-form.md +35 -0
  67. package/docs/i18n/ko/auto-menu.md +23 -0
  68. package/docs/i18n/ko/auto-search.md +32 -0
  69. package/docs/i18n/ko/auto-table.md +31 -0
  70. package/docs/i18n/ko/auto-tabs.md +25 -0
  71. package/docs/i18n/ko/errors.md +110 -0
  72. package/docs/i18n/pt-BR/README.md +8 -2
  73. package/docs/i18n/pt-BR/auto-dialog.md +23 -0
  74. package/docs/i18n/pt-BR/auto-form.md +35 -0
  75. package/docs/i18n/pt-BR/auto-menu.md +23 -0
  76. package/docs/i18n/pt-BR/auto-search.md +32 -0
  77. package/docs/i18n/pt-BR/auto-table.md +31 -0
  78. package/docs/i18n/pt-BR/auto-tabs.md +25 -0
  79. package/docs/i18n/pt-BR/errors.md +110 -0
  80. package/docs/i18n/ru/README.md +8 -2
  81. package/docs/i18n/ru/auto-dialog.md +23 -0
  82. package/docs/i18n/ru/auto-form.md +35 -0
  83. package/docs/i18n/ru/auto-menu.md +23 -0
  84. package/docs/i18n/ru/auto-search.md +32 -0
  85. package/docs/i18n/ru/auto-table.md +31 -0
  86. package/docs/i18n/ru/auto-tabs.md +25 -0
  87. package/docs/i18n/ru/errors.md +110 -0
  88. package/docs/i18n/zh-CN/README.md +8 -2
  89. package/docs/i18n/zh-CN/auto-dialog.md +64 -0
  90. package/docs/i18n/zh-CN/auto-form.md +62 -0
  91. package/docs/i18n/zh-CN/auto-menu.md +47 -0
  92. package/docs/i18n/zh-CN/auto-search.md +55 -0
  93. package/docs/i18n/zh-CN/auto-table.md +62 -0
  94. package/docs/i18n/zh-CN/auto-tabs.md +99 -0
  95. package/docs/i18n/zh-CN/errors.md +112 -0
  96. package/docs/i18n/zh-TW/README.md +8 -2
  97. package/docs/i18n/zh-TW/auto-dialog.md +64 -0
  98. package/docs/i18n/zh-TW/auto-form.md +62 -0
  99. package/docs/i18n/zh-TW/auto-menu.md +47 -0
  100. package/docs/i18n/zh-TW/auto-search.md +55 -0
  101. package/docs/i18n/zh-TW/auto-table.md +62 -0
  102. package/docs/i18n/zh-TW/auto-tabs.md +44 -0
  103. package/docs/i18n/zh-TW/errors.md +112 -0
  104. package/llms.txt +69 -0
  105. package/package.json +18 -2
  106. package/dist/components/AutoSearchPanel/index.d.ts +0 -21
@@ -0,0 +1,23 @@
1
+ # AutoMenu
2
+
3
+ [English](../../auto-menu.md) | [简体中文](../zh-CN/auto-menu.md) | [繁體中文](../zh-TW/auto-menu.md) | [日本語](../ja/auto-menu.md) | [한국어](../ko/auto-menu.md) | **Español** | [Français](../fr/auto-menu.md) | [Deutsch](../de/auto-menu.md) | [Português (Brasil)](../pt-BR/auto-menu.md) | [Русский](../ru/auto-menu.md)
4
+
5
+ Barra lateral. Para paneles usa [AutoTabs](auto-tabs.md).
6
+
7
+ ## Comportamiento y props
8
+
9
+ | Prop | Comportamiento |
10
+ | --- | --- |
11
+ | `items` | `id` único en el árbol. `hidden` y un `canAccess` fallido descartan la entrada. Un `children` que apunta a un ancestro se descarta entero para que un esquema malo no recurse. |
12
+ | `value` | Id de la hoja seleccionada. Si se omite, la selección queda dentro. |
13
+ | `onChange(id, item, path)` | **No se captura.** `path` es la cadena de ids desde la raíz. Un padre con hijos alterna la expansión y no se selecciona. |
14
+ | `collapsible` | Por defecto `false`. Si `collapsed` está controlado, hay que actualizarlo en `onCollapsedChange` o el rail no se mueve. **`onCollapsedChange` no se captura.** |
15
+ | `disabled` | Deshabilita la entrada y sus descendientes. La selección los salta. |
16
+
17
+ Elegir una hoja no navega por sí solo. La única señal es `onChange`.
18
+
19
+ ## Precondiciones
20
+
21
+ Importa `style.css` una vez. `AutoConfigProvider` es opcional. Los permisos usan `config.canAccess`.
22
+
23
+ Importa una vez en la entrada de la aplicación `import "@zeroman.yang/react-auto-components/style.css"`. Si falta la hoja de estilos, el desarrollo avisa con `RAC-CSS-MISSING`.
@@ -0,0 +1,32 @@
1
+ # AutoSearch
2
+
3
+ [English](../../auto-search.md) | [简体中文](../zh-CN/auto-search.md) | [繁體中文](../zh-TW/auto-search.md) | [日本語](../ja/auto-search.md) | [한국어](../ko/auto-search.md) | **Español** | [Français](../fr/auto-search.md) | [Deutsch](../de/auto-search.md) | [Português (Brasil)](../pt-BR/auto-search.md) | [Русский](../ru/auto-search.md)
4
+
5
+ Formulario de búsqueda. Dibuja un `AutoForm` y emite un `QueryNode` y los valores. Si un callback de campo lanza, valen las reglas de [AutoForm](auto-form.md).
6
+
7
+ `AutoSearchPanel` y `AutoSearchPanelProps` son alias en desuso de `AutoSearch` y `AutoSearchProps`.
8
+
9
+ ## Comportamiento y props
10
+
11
+ | Prop | Comportamiento |
12
+ | --- | --- |
13
+ | `onSearch(query, values)` | Obligatorio. **Lanzar o rechazar: el formulario interno lo captura, los valores se quedan y se muestra `error.message`. No hay reset.** |
14
+ | `mode` | Por defecto `"manual"` (botón). `"instant"` busca también en cada cambio. |
15
+ | `columns` | Por defecto `3`. |
16
+ | `more: true` | Oculta el campo hasta abrir "Más". Los campos ocultos no entran en la consulta. |
17
+
18
+ | `match` | Valor |
19
+ | --- | --- |
20
+ | omitido | `"eq"`, o `"in"` si el valor es un array. |
21
+ | `"contains"` | Subcadena. `ignoreCase: true` ignora mayúsculas. |
22
+ | `"between"` | `[from, to]`. Un escalar avisa `RAC-FIELD-BETWEEN` y no coincide con filas. |
23
+ | `"isNull"` | Coincide con null o undefined. El valor escrito se ignora. |
24
+ | vacío | `undefined`, `null`, `""` y arrays vacíos se omiten, salvo `"isNull"`. |
25
+
26
+ El reset restaura `defaultValue` y luego busca. `serializeRsql` lanza `RAC-QUERY-FIELD` si el nombre no cumple `/^[\w.]+$/`.
27
+
28
+ ## Precondiciones
29
+
30
+ Importa `style.css` una vez. `AutoConfigProvider` es opcional.
31
+
32
+ Importa una vez en la entrada de la aplicación `import "@zeroman.yang/react-auto-components/style.css"`. Si falta la hoja de estilos, el desarrollo avisa con `RAC-CSS-MISSING`.
@@ -0,0 +1,31 @@
1
+ # AutoTable
2
+
3
+ [English](../../auto-table.md) | [简体中文](../zh-CN/auto-table.md) | [繁體中文](../zh-TW/auto-table.md) | [日本語](../ja/auto-table.md) | [한국어](../ko/auto-table.md) | **Español** | [Français](../fr/auto-table.md) | [Deutsch](../de/auto-table.md) | [Português (Brasil)](../pt-BR/auto-table.md) | [Русский](../ru/auto-table.md)
4
+
5
+ Tabla local o remota. Pasa exactamente uno de `data`, `dataSource` o `source`; combinar varios es un error de tipo. La búsqueda sigue [AutoSearch](auto-search.md). Alta y edición siguen [AutoDialog](auto-dialog.md) y [AutoForm](auto-form.md).
6
+
7
+ `exportXlsx` se importa de `@zeroman.yang/react-auto-components/xlsx`. `exceljs` es opcional (`RAC-XLSX-DEP` si falta).
8
+
9
+ ## Comportamiento y props
10
+
11
+ | Prop | Comportamiento |
12
+ | --- | --- |
13
+ | `id` | Obligatorio. La clave es `${namespace}:table:${id}`. Vacío avisa `RAC-TABLE-ID`. |
14
+ | `rowKey` | Único en las filas cargadas. Falta o duplicado avisa `RAC-TABLE-ROWID`. Lo usan la selección, la expansión y `scrollToRow`. |
15
+ | `dataSource` | **Rechazar: se muestra el mensaje y un botón de reintento. El abort se ignora.** `total` es el recuento filtrado completo, no el largo de la página. |
16
+ | `pageSize` | Por defecto `10`. `pagination` por defecto `true`. `height` por defecto `440`. `"auto"` llena un padre que ya tiene altura. |
17
+ | `onAdd`, `onEdit`, `onDelete` | **Rechazar o lanzar: el diálogo sigue abierto y muestra `error.message`.** Las filas no cambian salvo que tu handler ya las haya cambiado. |
18
+ | `rowActions` | El rechazo de `onClick` se captura y se muestra en la línea de estado durante unos 2,5 segundos. La fila permanece. Si una acción de fila no tiene `onClick` y su `action` no es una clave conocida de `config.rowActions`, al seleccionarla la línea de estado muestra `RAC-ROW-ACTION`. Proporciona `onClick` o registra la clave de `action`. Si existen ambos, prevalece `onClick`. |
19
+ | `component` | Si el `component` de una columna no está registrado en `config.columns` de `AutoConfigProvider`, el desarrollo avisa con `RAC-COLUMN-COMPONENT` y la celda conserva el formato predeterminado. Registra la clave o define `render`, `format` o `sort` en la columna. Las funciones de la columna tienen prioridad. |
20
+ | `source` | `source` es una clave de `config.sources` en `AutoConfigProvider`. Una clave desconocida muestra `RAC-TABLE-SOURCE` con un botón para reintentar. Registra la clave o usa `data` / `dataSource`. Proporciona exactamente una de las tres opciones. |
21
+ | `exportXlsx` | Solo hace falta para xlsx. Si falta, `RAC-TABLE-XLSX`. CSV y JSON van incluidos. |
22
+
23
+ `handle.export` resuelve aunque el estado muestre un error; no relanza. `"filtered"` remoto recorre todas las páginas. Una página vacía antes de la última lanza `RAC-TABLE-EXPORT-PAGE` y no descarga un archivo parcial.
24
+
25
+ Un JSON de filtro inválido muestra el texto traducido, avisa `RAC-TABLE-FILTER` y conserva el filtro anterior. `between` debe tener longitud 2. `in` debe ser un array.
26
+
27
+ `handle.reset()` limpia orden, filtro y selección y devuelve el diseño a las columnas. `scrollToRow` no hace nada si ese id no está cargado.
28
+
29
+ ## Precondiciones
30
+
31
+ Importa `style.css` una vez. Separa `namespace` si varias apps del mismo origen persisten tablas; el valor por defecto es `"auto"`. Los diálogos de alta y edición no necesitan `AutoDialogProvider`. Solo `useAutoDialog()` lo necesita.
@@ -0,0 +1,25 @@
1
+ # AutoTabs
2
+
3
+ [English](../../auto-tabs.md) | [简体中文](../zh-CN/auto-tabs.md) | [繁體中文](../zh-TW/auto-tabs.md) | [日本語](../ja/auto-tabs.md) | [한국어](../ko/auto-tabs.md) | **Español** | [Français](../fr/auto-tabs.md) | [Deutsch](../de/auto-tabs.md) | [Português (Brasil)](../pt-BR/auto-tabs.md) | [Русский](../ru/auto-tabs.md)
4
+
5
+ Pestañas. Las anidadas son otro `AutoTabs` alimentado por `children`. Para una barra lateral usa [AutoMenu](auto-menu.md).
6
+
7
+ ## Comportamiento y props
8
+
9
+ | Prop | Comportamiento |
10
+ | --- | --- |
11
+ | `items` | Cada pestaña necesita un `id` estable. `hidden` y un `canAccess` fallido la quitan. |
12
+ | `value` | Ruta controlada de ids desde la raíz. Lo anidado es `["parent", "child"]`. |
13
+ | `onChange(path, item)` | **No se captura.** Si lanza, React informa el error. En modo controlado, la ruta no confirmada se queda en la anterior. |
14
+ | `mode` | Por defecto `"horizontal"`. `"vertical"` apila la lista. |
15
+ | `keepMounted` | Por defecto `true`: los paneles inactivos siguen montados. `false` los desmonta. |
16
+ | `onRefresh` | Si existe, hay un botón de refresco. **No se captura.** |
17
+ | `disabled` | Sigue visible y no se puede elegir. La selección por defecto salta las pestañas deshabilitadas. |
18
+
19
+ ## Precondiciones
20
+
21
+ Importa `style.css` una vez (`RAC-CSS-MISSING` en desarrollo). `AutoConfigProvider` es opcional.
22
+
23
+ ## Pestañas dinámicas
24
+
25
+ `useAutoTabsWorkspace` abre y cierra páginas sin un router. Pasa `tabsProps` a `AutoTabs`. Volver a llamar `open` con el mismo id solo selecciona esa pestaña y conserva el borrador. Una pestaña fijada no se cierra. Espera a `ready` antes de `open`. La selección, `params` y `state` se restauran desde `sessionStorage` tras el montaje. Si `beforeClose` devuelve `false` o lanza, no se cierra. El ejemplo está en [DynamicTabsDemo.tsx](../../../test-project/src/examples/DynamicTabsDemo.tsx).
@@ -0,0 +1,110 @@
1
+ # Códigos de error
2
+
3
+ [English](../../errors.md) | [简体中文](../zh-CN/errors.md) | [繁體中文](../zh-TW/errors.md) | [日本語](../ja/errors.md) | [한국어](../ko/errors.md) | **Español** | [Français](../fr/errors.md) | [Deutsch](../de/errors.md) | [Português (Brasil)](../pt-BR/errors.md) | [Русский](../ru/errors.md)
4
+
5
+ Los fallos de desarrollo lanzan `RacError` o llaman a `console.warn` en desarrollo. El texto siempre es inglés.
6
+
7
+ ```text
8
+ [Component] what is wrong.
9
+ Fix: what to change.
10
+ Code: RAC-…
11
+ Docs: https://github.com/Zeroman/react-auto-components/blob/main/docs/errors.md#rac-…
12
+ ```
13
+
14
+ Las frases de la interfaz siguen en `config.t`. `userKey` es la frase fuente en inglés que el anfitrión traduce. La consola y la excepción quedan en inglés.
15
+
16
+ ## RAC-FIELD-OPTIONS
17
+
18
+ `type` es `select`, `select-v2`, `radio`, `checkbox` o `cascader`, y falta `options` o es un array vacío.
19
+
20
+ Arreglo: Pasa `options` como array o `(values) => Option[]`. `autocomplete` puede omitirlas: es un texto con sugerencias opcionales.
21
+
22
+ ## RAC-FIELD-RANGE
23
+
24
+ `daterange` o `datetimerange` no tiene un valor de dos elementos.
25
+
26
+ Arreglo: Tipa el campo como `[start, end]`. `dateValue` por defecto es `"string"` (`YYYY-MM-DD`). `"timestamp"` guarda milisegundos locales. `null` deja el extremo abierto. Un escalar es un error de TypeScript. Un array en el modelo compila; en desarrollo se avisa si la longitud real no es 2.
27
+
28
+ ## RAC-FIELD-BETWEEN
29
+
30
+ `match: "between"` no es `[from, to]`.
31
+
32
+ Arreglo: Guarda una tupla de dos. Un escalar no coincide con ninguna fila. En `Field<T>` también es un error de tipo.
33
+
34
+ ## RAC-FIELD-CUSTOM
35
+
36
+ `type: "custom"` no tiene `render` ni `component`.
37
+
38
+ Arreglo: Pasa `render(context)` o `component` con una clave de `config.fields`.
39
+
40
+ ## RAC-FIELD-DUPLICATE
41
+
42
+ Dos campos comparten `name`. `defaults` lo lanza al montar.
43
+
44
+ Arreglo: Nombres únicos. `title`, `tip`, `append` y `button` no tienen nombre y no se comprueban.
45
+
46
+ ## RAC-CSS-MISSING
47
+
48
+ En desarrollo `--auto-text` no está en `:root`. Sin la hoja de estilos la página se ve rota y el DOM no dice por qué.
49
+
50
+ Arreglo: Una vez: `import "@zeroman.yang/react-auto-components/style.css"`.
51
+
52
+ ## RAC-TABLE-XLSX
53
+
54
+ `export("xlsx")` sin `exportXlsx`.
55
+
56
+ Arreglo: Importa `{ exportXlsx }` desde `@zeroman.yang/react-auto-components/xlsx` y pásalo. La UI muestra la frase traducida.
57
+
58
+ ## RAC-XLSX-DEP
59
+
60
+ No se pudo cargar `exceljs`. Es una `optionalDependency`.
61
+
62
+ Arreglo: `pnpm add exceljs`. CSV y JSON no lo necesitan.
63
+
64
+ ## RAC-TABLE-EXPORT-PAGE
65
+
66
+ Una página remota llegó vacía antes de la última. No se guarda un archivo parcial.
67
+
68
+ Arreglo: Devuelve un `total` estable y las filas de ese `pageIndex`.
69
+
70
+ ## RAC-TABLE-ROWID
71
+
72
+ `rowKey` falta o se repite en las filas cargadas.
73
+
74
+ Arreglo: Cada fila necesita un string estable y único. Selección, expansión y `scrollToRow` lo usan.
75
+
76
+ ## RAC-TABLE-ID
77
+
78
+ `id` está vacío. La clave sería `${namespace}:table:`.
79
+
80
+ Arreglo: Pasa un id estable por tabla.
81
+
82
+ ## RAC-COLUMN-COMPONENT
83
+
84
+ Si el `component` de una columna no está registrado en `config.columns` de `AutoConfigProvider`, el desarrollo avisa con `RAC-COLUMN-COMPONENT` y la celda conserva el formato predeterminado. Registra la clave o define `render`, `format` o `sort` en la columna. Las funciones de la columna tienen prioridad.
85
+
86
+ ## RAC-ROW-ACTION
87
+
88
+ Si una acción de fila no tiene `onClick` y su `action` no es una clave conocida de `config.rowActions`, al seleccionarla la línea de estado muestra `RAC-ROW-ACTION`. Proporciona `onClick` o registra la clave de `action`. Si existen ambos, prevalece `onClick`.
89
+
90
+ ## RAC-TABLE-SOURCE
91
+
92
+ `source` es una clave de `config.sources` en `AutoConfigProvider`. Una clave desconocida muestra `RAC-TABLE-SOURCE` con un botón para reintentar. Registra la clave o usa `data` / `dataSource`. Proporciona exactamente una de las tres opciones.
93
+
94
+ ## RAC-TABLE-FILTER
95
+
96
+ El JSON del filtro no es una consulta. Se muestra el texto traducido y se conserva el filtro anterior.
97
+
98
+ Arreglo: Grupo: `{ kind: "group", operator, children }`. Condición: `{ kind: "condition", field, operator, value }`. `between` es `[from, to]`. `in` es un array.
99
+
100
+ ## RAC-QUERY-FIELD
101
+
102
+ `serializeRsql` rechazó un nombre que no cumple `/^[\\w.]+$/`.
103
+
104
+ Arreglo: Solo letras, dígitos, guion bajo y puntos.
105
+
106
+ ## RAC-DIALOG-PROVIDER
107
+
108
+ `useAutoDialog()` fuera de `AutoDialogProvider`.
109
+
110
+ Arreglo: Envuelve el árbol en `<AutoDialogProvider>`. `AutoConfigProvider` no da diálogos y es opcional. `<AutoDialog open>` no usa este hook.
@@ -12,10 +12,14 @@ Une bibliothèque de composants autonome et pilotée par schéma pour React 19,
12
12
 
13
13
  ## État du projet
14
14
 
15
- La version actuelle est 0.1.1 et les API peuvent encore évoluer. React 19 est requis. Le paquet fournit ESM et des déclarations TypeScript. Les textes d'interface intégrés sont en chinois par défaut et peuvent être traduits via AutoConfigProvider.config.t.
15
+ La version actuelle est 0.1.3 et les API peuvent encore évoluer. React 19 est requis. Le paquet fournit ESM et des déclarations TypeScript. Les textes d'interface intégrés sont en anglais par défaut et peuvent être traduits via AutoConfigProvider.config.t.
16
16
 
17
17
  Installez-le avec `pnpm add @zeroman.yang/react-auto-components` (npm et yarn conviennent aussi). Les peer dependencies sont React 19 et react-dom 19. Importez la feuille de style une fois : `import "@zeroman.yang/react-auto-components/style.css"`.
18
18
 
19
+ Importez une fois au point d’entrée de l’application `import "@zeroman.yang/react-auto-components/style.css"`. Sans feuille de styles, le mode développement signale `RAC-CSS-MISSING`.
20
+
21
+ Pour l’export XLSX, `RAC-TABLE-XLSX` indique que l’adaptateur `exportXlsx` manque ; `RAC-XLSX-DEP` indique que la dépendance facultative `exceljs` n’a pas pu être chargée. Importez et transmettez l’adaptateur depuis `@zeroman.yang/react-auto-components/xlsx` ; installez si nécessaire avec `pnpm add exceljs`. CSV et JSON n’en ont pas besoin.
22
+
19
23
  - [Démo en direct (GitHub Pages)](https://zeroman.github.io/react-auto-components/)
20
24
  - [Contribuer](https://github.com/Zeroman/react-auto-components/blob/main/docs/i18n/fr/CONTRIBUTING.md)
21
25
  - [Journal des modifications](https://github.com/Zeroman/react-auto-components/blob/main/docs/i18n/fr/CHANGELOG.md)
@@ -85,7 +89,7 @@ Le callback t reçoit une clé de message et un texte de repli. Conservez les es
85
89
  | Composant | Fonctionnalités |
86
90
  | --- | --- |
87
91
  | AutoForm | Types de champ natifs, options virtualisées, sélection en cascade, adaptateurs de téléversement, rendu personnalisé, champs dépendants, visibilité conditionnelle, validation asynchrone, état contrôlé et conservation des saisies après un échec |
88
- | AutoSearchPanel | Conditions simples/avancées, recherche manuelle/instantanée, réinitialisation, étiquettes de tri, AST de requête partagé et sérialisation RSQL |
92
+ | AutoSearch | Conditions simples/avancées, recherche manuelle/instantanée, réinitialisation, étiquettes de tri, AST de requête partagé et sérialisation RSQL |
89
93
  | AutoTable | Données locales/distantes, tri multicolonne, filtres de colonne, pagination, sélection stable, virtualisation, dépliage d’arbres/de détails, synthèses, cellules fusionnées, CRUD, menus contextuels et copie |
90
94
  | AutoDialog | API déclaratives/impératives, fournisseurs isolés, brouillons, protection contre la fermeture, gestion du focus, déplacement par glisser, plein écran et envoi asynchrone |
91
95
  | AutoTabs | Dispositions horizontales/verticales, imbrication, autorisations, onglets désactivés, conservation de l’état des panneaux et actualisation |
@@ -201,3 +205,5 @@ Les formulaires prennent en charge `resetLabel`, `extraActions` et `onReset` ; l
201
205
  AutoChat fournit une mise en page de conversation légère avec suivi du streaming, chargement de l'historique et un composer. Fournissez du contenu React ou renderMessage pour le rendu des messages ; aucune dépendance d'exécution supplémentaire n'est requise.
202
206
 
203
207
  [AutoChat API](auto-chat.md)
208
+
209
+ Ce que fait le composant si un rappel lève une exception : [AutoForm](auto-form.md), [AutoSearch](auto-search.md), [AutoTable](auto-table.md), [AutoDialog](auto-dialog.md), [AutoTabs](auto-tabs.md), [AutoMenu](auto-menu.md). Codes d'erreur développeur : [errors.md](errors.md).
@@ -0,0 +1,23 @@
1
+ # AutoDialog
2
+
3
+ [English](../../auto-dialog.md) | [简体中文](../zh-CN/auto-dialog.md) | [繁體中文](../zh-TW/auto-dialog.md) | [日本語](../ja/auto-dialog.md) | [한국어](../ko/auto-dialog.md) | [Español](../es/auto-dialog.md) | **Français** | [Deutsch](../de/auto-dialog.md) | [Português (Brasil)](../pt-BR/auto-dialog.md) | [Русский](../ru/auto-dialog.md)
4
+
5
+ Boîte modale, déclarative (`<AutoDialog open>`) ou impérative (`useAutoDialog().open()`). `fields` dessine un [AutoForm](auto-form.md).
6
+
7
+ `useAutoDialog()` hors du fournisseur lance `RAC-DIALOG-PROVIDER`. `<AutoDialog open>` n'a pas besoin du fournisseur.
8
+
9
+ ## Comportement et props
10
+
11
+ | Prop | Comportement |
12
+ | --- | --- |
13
+ | `onSubmit(values)` | Après validation. **Rejeter ou lancer : la boîte reste ouverte, montre `error.message`, les valeurs restent.** Après résolution, `beforeClose` court encore. |
14
+ | `beforeClose(reason)` | `"submit"`, `"cancel"` ou `"close"`. **`false` laisse ouvert. Lancer laisse aussi ouvert et montre le message.** |
15
+ | `onClose` | Seulement après une vraie fermeture. |
16
+ | `draftKey` | Persiste le brouillon dans `${namespace}:draft:${draftKey}` jusqu'à un envoi réussi. Omis : rien n'est stocké. |
17
+ | `width` | Défaut `560`. `draggable` est ignoré en plein écran. |
18
+
19
+ `close()` de `open()` résout `false` si `beforeClose` bloque. Les boîtes impératives s'empilent.
20
+
21
+ ## Préconditions
22
+
23
+ Importez `style.css` une fois. `AutoConfigProvider` est optionnel et ne remplace pas `AutoDialogProvider`. `namespace` entre dans la clé du brouillon.
@@ -0,0 +1,35 @@
1
+ # AutoForm
2
+
3
+ [English](../../auto-form.md) | [简体中文](../zh-CN/auto-form.md) | [繁體中文](../zh-TW/auto-form.md) | [日本語](../ja/auto-form.md) | [한국어](../ko/auto-form.md) | [Español](../es/auto-form.md) | **Français** | [Deutsch](../de/auto-form.md) | [Português (Brasil)](../pt-BR/auto-form.md) | [Русский](../ru/auto-form.md)
4
+
5
+ Formulaire piloté par un schéma. `AutoSearch` et `AutoDialog` dessinent un `AutoForm`, donc ces règles s'appliquent aussi à eux.
6
+
7
+ `Field<T>` est une union discriminée par `type`. Un `select` sans `options`, un scalaire sur `daterange` et `match: "between"` sur un scalaire sont des erreurs TypeScript. `AnyField` et `unsafeField()` sont la sortie de secours ; le mode développement avertit encore. Codes dans [errors.md](errors.md).
8
+
9
+ ## Comportement et props
10
+
11
+ | Prop | Comportement |
12
+ | --- | --- |
13
+ | `fields` | `readonly Field<T>[]`. Sans `type`, c'est un texte. Un `name` en double lance `RAC-FIELD-DUPLICATE` au montage. |
14
+ | `value` | Valeur contrôlée. Si elle diffère de l'état interne, le formulaire la copie et efface les erreurs. Si le parent ignore `onChange`, la saisie revient en arrière. |
15
+ | `onSubmit(value)` | Uniquement après validation. **Rejeter ou lancer : les valeurs restent, `error.message` s'affiche, pas de reset.** |
16
+ | `columns` | Défaut `2`. `actions` défaut `true`. |
17
+ | Étiquettes | `labelPosition` défaut `"top"`. `labelWidth` défaut `"auto"` (mesuré, plafond 45 % du champ). |
18
+
19
+ ## Si un rappel lance
20
+
21
+ | Rappel | Résultat |
22
+ | --- | --- |
23
+ | `onSubmit` | Capturé. Le brouillon reste. Le message s'affiche. Pas de reset. |
24
+ | `rules` du champ | Le message lancé devient l'erreur de ce champ. Les règles suivantes ne courent pas. |
25
+ | `onChange` du champ | Non capturé. La valeur précédente reste. |
26
+ | `upload` | Le rejet s'affiche sous le champ et aucune valeur n'est stockée. `reset()` annule le signal et ignore un résultat tardif. |
27
+ | Envoi pendant un téléversement | `validate()` renvoie `false` et n'appelle pas `onSubmit`. |
28
+ | `hidden`, `disabled` ou accès refusé | Ce champ n'est pas validé, même s'il est `required`. |
29
+ | `required` vide | `undefined`, `null`, `""` ou un tableau vide bloquent l'envoi. |
30
+
31
+ `handle.validate()` résout `true` ou `false`. Il ne lance pas.
32
+
33
+ ## Préconditions
34
+
35
+ Importez `style.css` une fois. En développement, l'absence de `--auto-text` avertit `RAC-CSS-MISSING`. `AutoConfigProvider` est optionnel et ne fournit pas les boîtes de dialogue.
@@ -0,0 +1,23 @@
1
+ # AutoMenu
2
+
3
+ [English](../../auto-menu.md) | [简体中文](../zh-CN/auto-menu.md) | [繁體中文](../zh-TW/auto-menu.md) | [日本語](../ja/auto-menu.md) | [한국어](../ko/auto-menu.md) | [Español](../es/auto-menu.md) | **Français** | [Deutsch](../de/auto-menu.md) | [Português (Brasil)](../pt-BR/auto-menu.md) | [Русский](../ru/auto-menu.md)
4
+
5
+ Barre latérale. Pour des panneaux, [AutoTabs](auto-tabs.md).
6
+
7
+ ## Comportement et props
8
+
9
+ | Prop | Comportement |
10
+ | --- | --- |
11
+ | `items` | `id` unique dans l'arbre. `hidden` et un `canAccess` refusé écartent l'entrée. Un `children` qui pointe vers un ancêtre est écarté en entier pour qu'un mauvais schéma ne parte pas en récursion. |
12
+ | `value` | Id de la feuille choisie. Omis : la sélection reste interne. |
13
+ | `onChange(id, item, path)` | **Non capturé.** `path` est la chaîne d'ids de la racine à la feuille. Un parent avec enfants bascule l'expansion et n'est pas sélectionné. |
14
+ | `collapsible` | Défaut `false`. Si `collapsed` est contrôlé, mettez-le à jour dans `onCollapsedChange` sinon le rail ne bouge pas. **`onCollapsedChange` n'est pas capturé.** |
15
+ | `disabled` | Désactive l'entrée et ses descendants. La sélection les saute. |
16
+
17
+ Choisir une feuille ne navigue pas tout seul. Le seul signal est `onChange`.
18
+
19
+ ## Préconditions
20
+
21
+ Importez `style.css` une fois. `AutoConfigProvider` est optionnel. Les permissions passent par `config.canAccess`.
22
+
23
+ Importez une fois au point d’entrée de l’application `import "@zeroman.yang/react-auto-components/style.css"`. Sans feuille de styles, le mode développement signale `RAC-CSS-MISSING`.
@@ -0,0 +1,32 @@
1
+ # AutoSearch
2
+
3
+ [English](../../auto-search.md) | [简体中文](../zh-CN/auto-search.md) | [繁體中文](../zh-TW/auto-search.md) | [日本語](../ja/auto-search.md) | [한국어](../ko/auto-search.md) | [Español](../es/auto-search.md) | **Français** | [Deutsch](../de/auto-search.md) | [Português (Brasil)](../pt-BR/auto-search.md) | [Русский](../ru/auto-search.md)
4
+
5
+ Formulaire de recherche. Il dessine un `AutoForm` et émet un `QueryNode` plus les valeurs. Un rappel de champ qui lance suit [AutoForm](auto-form.md).
6
+
7
+ `AutoSearchPanel` et `AutoSearchPanelProps` sont des alias dépréciés de `AutoSearch` et `AutoSearchProps`.
8
+
9
+ ## Comportement et props
10
+
11
+ | Prop | Comportement |
12
+ | --- | --- |
13
+ | `onSearch(query, values)` | Obligatoire. **Lancer ou rejeter : le formulaire interne capture, les valeurs restent, `error.message` s'affiche. Pas de reset.** |
14
+ | `mode` | Défaut `"manual"` (bouton). `"instant"` cherche aussi à chaque changement. |
15
+ | `columns` | Défaut `3`. |
16
+ | `more: true` | Cache le champ jusqu'à « Plus ». Les champs cachés ne vont pas dans la requête. |
17
+
18
+ | `match` | Valeur |
19
+ | --- | --- |
20
+ | omis | `"eq"`, ou `"in"` si la valeur est un tableau. |
21
+ | `"contains"` | Sous-chaîne. `ignoreCase: true` ignore la casse. |
22
+ | `"between"` | `[from, to]`. Un scalaire avertit `RAC-FIELD-BETWEEN` et ne correspond à aucune ligne. |
23
+ | `"isNull"` | Correspond à null ou undefined. La valeur saisie est ignorée. |
24
+ | vide | `undefined`, `null`, `""` et les tableaux vides sont omis, sauf `"isNull"`. |
25
+
26
+ Reset restaure `defaultValue` puis cherche. `serializeRsql` lance `RAC-QUERY-FIELD` si le nom n'est pas `/^[\w.]+$/`.
27
+
28
+ ## Préconditions
29
+
30
+ Importez `style.css` une fois. `AutoConfigProvider` est optionnel.
31
+
32
+ Importez une fois au point d’entrée de l’application `import "@zeroman.yang/react-auto-components/style.css"`. Sans feuille de styles, le mode développement signale `RAC-CSS-MISSING`.
@@ -0,0 +1,31 @@
1
+ # AutoTable
2
+
3
+ [English](../../auto-table.md) | [简体中文](../zh-CN/auto-table.md) | [繁體中文](../zh-TW/auto-table.md) | [日本語](../ja/auto-table.md) | [한국어](../ko/auto-table.md) | [Español](../es/auto-table.md) | **Français** | [Deutsch](../de/auto-table.md) | [Português (Brasil)](../pt-BR/auto-table.md) | [Русский](../ru/auto-table.md)
4
+
5
+ Tableau local ou distant. Fournissez exactement un de `data`, `dataSource` ou `source` ; en combiner plusieurs est une erreur de type. La recherche suit [AutoSearch](auto-search.md). Ajout et édition suivent [AutoDialog](auto-dialog.md) et [AutoForm](auto-form.md).
6
+
7
+ `exportXlsx` vient de `@zeroman.yang/react-auto-components/xlsx`. `exceljs` est optionnel (`RAC-XLSX-DEP` s'il manque).
8
+
9
+ ## Comportement et props
10
+
11
+ | Prop | Comportement |
12
+ | --- | --- |
13
+ | `id` | Obligatoire. La clé est `${namespace}:table:${id}`. Vide : `RAC-TABLE-ID`. |
14
+ | `rowKey` | Unique sur les lignes chargées. Manquant ou doublon : `RAC-TABLE-ROWID`. Sélection, expansion et `scrollToRow` l'utilisent. |
15
+ | `dataSource` | **Rejeter : message et bouton réessayer. L'abandon est ignoré.** `total` est le compte filtré complet, pas la longueur de la page. |
16
+ | `pageSize` | Défaut `10`. `pagination` défaut `true`. `height` défaut `440`. `"auto"` remplit un parent qui a déjà une hauteur. |
17
+ | `onAdd`, `onEdit`, `onDelete` | **Rejeter ou lancer : la boîte reste ouverte et montre `error.message`.** Les lignes ne changent que si votre handler les a déjà changées. |
18
+ | `rowActions` | Le rejet de `onClick` est intercepté et affiché dans la ligne d’état pendant environ 2,5 secondes. La ligne reste présente. Si une action de ligne n’a pas de `onClick` et que son `action` n’est pas une clé connue de `config.rowActions`, sa sélection affiche `RAC-ROW-ACTION` dans la ligne d’état. Fournissez `onClick` ou enregistrez la clé d’`action`. Si les deux existent, `onClick` est prioritaire. |
19
+ | `component` | Si le `component` d’une colonne ne figure pas dans `config.columns` d’`AutoConfigProvider`, le mode développement signale `RAC-COLUMN-COMPONENT` et la cellule garde le format par défaut. Enregistrez la clé ou définissez `render`, `format` ou `sort` sur la colonne. Les fonctions de la colonne sont prioritaires. |
20
+ | `source` | `source` désigne une clé de `config.sources` dans `AutoConfigProvider`. Une clé inconnue affiche `RAC-TABLE-SOURCE` avec un bouton de nouvelle tentative. Enregistrez cette clé ou utilisez `data` / `dataSource`. Fournissez exactement une des trois options. |
21
+ | `exportXlsx` | Nécessaire seulement pour xlsx. Absent : `RAC-TABLE-XLSX`. CSV et JSON sont intégrés. |
22
+
23
+ `handle.export` résout même si l'état montre une erreur ; il ne relance pas. `"filtered"` distant parcourt toutes les pages. Une page vide avant la dernière lance `RAC-TABLE-EXPORT-PAGE` et ne télécharge pas de fichier partiel.
24
+
25
+ Un JSON de filtre invalide montre le texte traduit, avertit `RAC-TABLE-FILTER` et garde le filtre précédent. `between` a la longueur 2. `in` est un tableau.
26
+
27
+ `handle.reset()` efface tri, filtre et sélection et remet la disposition sur les colonnes. `scrollToRow` ne fait rien si l'id n'est pas chargé.
28
+
29
+ ## Préconditions
30
+
31
+ Importez `style.css` une fois. Séparez `namespace` si plusieurs applications sur la même origine persistent des tableaux ; le défaut est `"auto"`. Les boîtes d'ajout et d'édition n'ont pas besoin de `AutoDialogProvider`. Seul `useAutoDialog()` en a besoin.
@@ -0,0 +1,25 @@
1
+ # AutoTabs
2
+
3
+ [English](../../auto-tabs.md) | [简体中文](../zh-CN/auto-tabs.md) | [繁體中文](../zh-TW/auto-tabs.md) | [日本語](../ja/auto-tabs.md) | [한국어](../ko/auto-tabs.md) | [Español](../es/auto-tabs.md) | **Français** | [Deutsch](../de/auto-tabs.md) | [Português (Brasil)](../pt-BR/auto-tabs.md) | [Русский](../ru/auto-tabs.md)
4
+
5
+ Onglets. L'imbrication est un autre `AutoTabs` nourri par `children`. Pour une barre latérale, [AutoMenu](auto-menu.md).
6
+
7
+ ## Comportement et props
8
+
9
+ | Prop | Comportement |
10
+ | --- | --- |
11
+ | `items` | Chaque onglet a un `id` stable. `hidden` et un `canAccess` refusé le retirent. |
12
+ | `value` | Chemin contrôlé d'ids depuis la racine. L'imbrication est `["parent", "child"]`. |
13
+ | `onChange(path, item)` | **Non capturé.** S'il lance, React signale l'erreur. En mode contrôlé, le chemin non validé reste le précédent. |
14
+ | `mode` | Défaut `"horizontal"`. `"vertical"` empile la liste. |
15
+ | `keepMounted` | Défaut `true` : les panneaux inactifs restent montés. `false` les démonte. |
16
+ | `onRefresh` | S'il est défini, un bouton d'actualisation apparaît. **Non capturé.** |
17
+ | `disabled` | Reste visible et ne peut pas être choisi. La sélection par défaut saute les onglets désactivés. |
18
+
19
+ ## Préconditions
20
+
21
+ Importez `style.css` une fois (`RAC-CSS-MISSING` en développement). `AutoConfigProvider` est optionnel.
22
+
23
+ ## Onglets dynamiques
24
+
25
+ `useAutoTabsWorkspace` ouvre et ferme des pages sans routeur. Passez `tabsProps` à `AutoTabs`. Rappeler `open` avec le même id sélectionne seulement cet onglet et garde le brouillon. Un onglet épinglé ne se ferme pas. Attendez `ready` avant `open`. La sélection, `params` et `state` reviennent de `sessionStorage` après le montage. Si `beforeClose` renvoie `false` ou lance, la fermeture est annulée. L'exemple est dans [DynamicTabsDemo.tsx](../../../test-project/src/examples/DynamicTabsDemo.tsx).
@@ -0,0 +1,110 @@
1
+ # Codes d'erreur
2
+
3
+ [English](../../errors.md) | [简体中文](../zh-CN/errors.md) | [繁體中文](../zh-TW/errors.md) | [日本語](../ja/errors.md) | [한국어](../ko/errors.md) | [Español](../es/errors.md) | **Français** | [Deutsch](../de/errors.md) | [Português (Brasil)](../pt-BR/errors.md) | [Русский](../ru/errors.md)
4
+
5
+ Les échecs développeur lancent `RacError` ou appellent `console.warn` en développement. Le texte est toujours en anglais.
6
+
7
+ ```text
8
+ [Component] what is wrong.
9
+ Fix: what to change.
10
+ Code: RAC-…
11
+ Docs: https://github.com/Zeroman/react-auto-components/blob/main/docs/errors.md#rac-…
12
+ ```
13
+
14
+ Le texte d'interface reste sur `config.t`. `userKey` est la phrase source en anglais, traduite par l'hôte. La console et l'exception restent en anglais.
15
+
16
+ ## RAC-FIELD-OPTIONS
17
+
18
+ `type` vaut `select`, `select-v2`, `radio`, `checkbox` ou `cascader`, et `options` manque ou est vide.
19
+
20
+ Correctif: Passez `options` en tableau ou `(values) => Option[]`. `autocomplete` peut les omettre.
21
+
22
+ ## RAC-FIELD-RANGE
23
+
24
+ `daterange` ou `datetimerange` n'a pas une valeur à deux éléments.
25
+
26
+ Correctif: Typez le champ en `[start, end]`. `dateValue` vaut `"string"` par défaut. `"timestamp"` stocke des millisecondes locales. `null` laisse le bout ouvert. Un scalaire est une erreur TypeScript. Un tableau dans le modèle compile ; le mode dev avertit si la longueur réelle n'est pas 2.
27
+
28
+ ## RAC-FIELD-BETWEEN
29
+
30
+ `match: "between"` n'est pas `[from, to]`.
31
+
32
+ Correctif: Stockez une paire. Un scalaire ne correspond à aucune ligne. C'est aussi une erreur de type sur `Field<T>`.
33
+
34
+ ## RAC-FIELD-CUSTOM
35
+
36
+ `type: "custom"` n'a ni `render` ni `component`.
37
+
38
+ Correctif: Passez `render(context)` ou une clé `component` de `config.fields`.
39
+
40
+ ## RAC-FIELD-DUPLICATE
41
+
42
+ Deux champs ont le même `name`. `defaults` le lance au montage.
43
+
44
+ Correctif: Des noms uniques. `title`, `tip`, `append` et `button` n'ont pas de nom.
45
+
46
+ ## RAC-CSS-MISSING
47
+
48
+ En développement, `--auto-text` est absent de `:root`. Sans feuille de style la page est cassée et le DOM ne l'explique pas.
49
+
50
+ Correctif: Une fois : `import "@zeroman.yang/react-auto-components/style.css"`.
51
+
52
+ ## RAC-TABLE-XLSX
53
+
54
+ `export("xlsx")` sans `exportXlsx`.
55
+
56
+ Correctif: Importez `{ exportXlsx }` depuis `@zeroman.yang/react-auto-components/xlsx`. L'UI affiche la phrase traduite.
57
+
58
+ ## RAC-XLSX-DEP
59
+
60
+ `exceljs` n'a pas pu être chargé. C'est une `optionalDependency`.
61
+
62
+ Correctif: `pnpm add exceljs`. CSV et JSON n'en ont pas besoin.
63
+
64
+ ## RAC-TABLE-EXPORT-PAGE
65
+
66
+ Une page distante est vide avant la dernière. Aucun fichier partiel n'est enregistré.
67
+
68
+ Correctif: Renvoyez un `total` stable et les lignes de ce `pageIndex`.
69
+
70
+ ## RAC-TABLE-ROWID
71
+
72
+ `rowKey` manque ou se répète sur les lignes chargées.
73
+
74
+ Correctif: Chaque ligne a une chaîne stable et unique.
75
+
76
+ ## RAC-TABLE-ID
77
+
78
+ `id` est vide. La clé serait `${namespace}:table:`.
79
+
80
+ Correctif: Passez un id stable par tableau.
81
+
82
+ ## RAC-COLUMN-COMPONENT
83
+
84
+ Si le `component` d’une colonne ne figure pas dans `config.columns` d’`AutoConfigProvider`, le mode développement signale `RAC-COLUMN-COMPONENT` et la cellule garde le format par défaut. Enregistrez la clé ou définissez `render`, `format` ou `sort` sur la colonne. Les fonctions de la colonne sont prioritaires.
85
+
86
+ ## RAC-ROW-ACTION
87
+
88
+ Si une action de ligne n’a pas de `onClick` et que son `action` n’est pas une clé connue de `config.rowActions`, sa sélection affiche `RAC-ROW-ACTION` dans la ligne d’état. Fournissez `onClick` ou enregistrez la clé d’`action`. Si les deux existent, `onClick` est prioritaire.
89
+
90
+ ## RAC-TABLE-SOURCE
91
+
92
+ `source` désigne une clé de `config.sources` dans `AutoConfigProvider`. Une clé inconnue affiche `RAC-TABLE-SOURCE` avec un bouton de nouvelle tentative. Enregistrez cette clé ou utilisez `data` / `dataSource`. Fournissez exactement une des trois options.
93
+
94
+ ## RAC-TABLE-FILTER
95
+
96
+ Le JSON du filtre n'est pas une requête. Le texte traduit s'affiche et l'ancien filtre reste.
97
+
98
+ Correctif: Groupe `{ kind: "group", operator, children }`. Condition `{ kind: "condition", field, operator, value }`. `between` vaut `[from, to]`.
99
+
100
+ ## RAC-QUERY-FIELD
101
+
102
+ `serializeRsql` refuse un nom hors `/^[\\w.]+$/`.
103
+
104
+ Correctif: Lettres, chiffres, underscore et points seulement.
105
+
106
+ ## RAC-DIALOG-PROVIDER
107
+
108
+ `useAutoDialog()` hors de `AutoDialogProvider`.
109
+
110
+ Correctif: Enveloppez l'arbre avec `<AutoDialogProvider>`. `AutoConfigProvider` ne fournit pas les boîtes de dialogue et reste optionnel. `<AutoDialog open>` n'utilise pas ce hook.
@@ -12,10 +12,14 @@ React 19 向けのスタンドアローンなスキーマ駆動コンポーネ
12
12
 
13
13
  ## プロジェクトの状況
14
14
 
15
- 現在のバージョンは 0.1.1 であり、API はまだ変更される可能性があります。React 19 が必要です。このパッケージは ESM および TypeScript 型宣言を提供します。組み込みのインターフェーステキストは既定で中国語であり、AutoConfigProvider.config.t を通じて翻訳できます。
15
+ 現在のバージョンは 0.1.3 であり、API はまだ変更される可能性があります。React 19 が必要です。このパッケージは ESM および TypeScript 型宣言を提供します。組み込みのインターフェーステキストは既定で英語であり、AutoConfigProvider.config.t を通じて翻訳できます。
16
16
 
17
17
  `pnpm add @zeroman.yang/react-auto-components` でインストールします(npm と yarn でも同様です)。peer dependency は React 19 と react-dom 19 です。エントリでスタイルシートを一度読み込んでください: `import "@zeroman.yang/react-auto-components/style.css"`。
18
18
 
19
+ アプリのエントリーで `import "@zeroman.yang/react-auto-components/style.css"` を一度読み込んでください。スタイルシートがない場合、開発時に `RAC-CSS-MISSING` を警告します。
20
+
21
+ XLSX 出力で `exportXlsx` アダプターがない場合は `RAC-TABLE-XLSX`、任意依存の `exceljs` を読み込めない場合は `RAC-XLSX-DEP` です。`@zeroman.yang/react-auto-components/xlsx` からアダプターを読み込んで渡し、必要なら `pnpm add exceljs` でインストールしてください。CSV と JSON には不要です。
22
+
19
23
  - [オンラインデモ (GitHub Pages)](https://zeroman.github.io/react-auto-components/)
20
24
  - [コントリビューション](https://github.com/Zeroman/react-auto-components/blob/main/docs/i18n/ja/CONTRIBUTING.md)
21
25
  - [変更履歴](https://github.com/Zeroman/react-auto-components/blob/main/docs/i18n/ja/CHANGELOG.md)
@@ -85,7 +89,7 @@ t コールバックはメッセージキーとフォールバックを受け取
85
89
  | コンポーネント | 機能 |
86
90
  | --- | --- |
87
91
  | AutoForm | ネイティブフィールド型、選択肢の仮想化、連動選択、アップロードアダプター、カスタムレンダリング、依存フィールド、条件付き表示、非同期バリデーション、制御された状態、失敗後の入力保持 |
88
- | AutoSearchPanel | 基本/詳細条件、手動/即時検索、リセット、ソートタグ、共有クエリ AST、RSQL シリアライズ |
92
+ | AutoSearch | 基本/詳細条件、手動/即時検索、リセット、ソートタグ、共有クエリ AST、RSQL シリアライズ |
89
93
  | AutoTable | ローカル/リモートデータ、複数列ソート、列フィルター、ページネーション、安定した選択状態、仮想化、ツリー/詳細の展開、集計、セル結合、CRUD、コンテキストメニュー、コピー |
90
94
  | AutoDialog | 宣言的/命令的 API、分離されたプロバイダー、下書き、閉じる操作のガード、フォーカス管理、ドラッグ、全画面表示、非同期送信 |
91
95
  | AutoTabs | 横/縦レイアウト、入れ子、権限、タブの無効化、パネル状態の保持、更新 |
@@ -201,3 +205,5 @@ pnpm test:e2e
201
205
  AutoChat は、ストリーミング追従、履歴の読み込み、コンポーザーを備えた軽量な会話レイアウトを提供します。メッセージの表示には React コンテンツか renderMessage を指定でき、追加のランタイム依存関係は不要です。
202
206
 
203
207
  [AutoChat API](auto-chat.md)
208
+
209
+ コールバックが throw したあとコンポーネントがどう扱うかは、振る舞いの契約を見てください:[AutoForm](auto-form.md)、[AutoSearch](auto-search.md)、[AutoTable](auto-table.md)、[AutoDialog](auto-dialog.md)、[AutoTabs](auto-tabs.md)、[AutoMenu](auto-menu.md)。開発者向けエラーコード:[errors.md](errors.md)。
@@ -0,0 +1,23 @@
1
+ # AutoDialog
2
+
3
+ [English](../../auto-dialog.md) | [简体中文](../zh-CN/auto-dialog.md) | [繁體中文](../zh-TW/auto-dialog.md) | **日本語** | [한국어](../ko/auto-dialog.md) | [Español](../es/auto-dialog.md) | [Français](../fr/auto-dialog.md) | [Deutsch](../de/auto-dialog.md) | [Português (Brasil)](../pt-BR/auto-dialog.md) | [Русский](../ru/auto-dialog.md)
4
+
5
+ モーダルです。宣言的(`<AutoDialog open>`)か命令的(`useAutoDialog().open()`)です。`fields` は [AutoForm](auto-form.md) を描きます。
6
+
7
+ `useAutoDialog()` をプロバイダの外で呼ぶと `RAC-DIALOG-PROVIDER` です。宣言的な `<AutoDialog open>` にプロバイダは不要です。
8
+
9
+ ## 振る舞いとプロパティ
10
+
11
+ | プロパティ | 振る舞い |
12
+ | --- | --- |
13
+ | `onSubmit(values)` | 検証のあと。**reject または throw:開いたまま `error.message` を出し、値は残ります。** resolve したあとも `beforeClose` が走ります。 |
14
+ | `beforeClose(reason)` | `"submit"`、`"cancel"`、`"close"`。**`false` で開いたまま。throw でも開いたまま、メッセージを出します。** |
15
+ | `onClose` | 実際に閉じたあとだけです。 |
16
+ | `draftKey` | `${namespace}:draft:${draftKey}` に下書きを置き、送信成功で消します。省略すると保存しません。 |
17
+ | `width` | 既定 `560`。`draggable` は全画面中は無視します。 |
18
+
19
+ `open()` の `close()` は、`beforeClose` が止めたとき `false` を resolve します。命令的ダイアログは重ねられます。
20
+
21
+ ## 前提
22
+
23
+ `style.css` を一度。`AutoConfigProvider` は任意で、`AutoDialogProvider` の代わりにはなりません。`namespace` は `draftKey` のキーに入ります。