7bb89871ba
* implement `objetToFormEntries` functionality
If we are working with more complex data structures then we have to
encode those data structures into a syntax that the HTML can understand.
This means that we have to use `<input type="hidden" name="..." value="...">` syntax.
To convert a simple array we can use the following syntax:
```js
// Assuming we have a `name` of `person`
let input = ['Alice', 'Bob', 'Charlie']
```
Results in:
```html
<input type="hidden" name="person[]" value="Alice" />
<input type="hidden" name="person[]" value="Bob" />
<input type="hidden" name="person[]" value="Charlie" />
```
Note: the additional `[]` in the name attribute.
---
A more complex object (even deeply nested) can be encoded like this:
```js
// Assuming we have a `name` of `person`
let input = {
id: 1,
name: {
first: 'Jane',
last: 'Doe'
}
}
```
Results in:
```html
<input type="hidden" name="person[id]" value="1" />
<input type="hidden" name="person[name][first]" value="Jane" />
<input type="hidden" name="person[name][last]" value="Doe" />
```
* implement VisuallyHidden component
* implement and export some extra helper utilities
* implement form element for Switch
* implement form element for Combobox
* implement form element for RadioGroup
* implement form element for Listbox
* add combined forms example to the playground
* update changelog
* enable support for iterators
* ensure to compile dom iterables
* remove unused imports
33 lines
841 B
JSON
33 lines
841 B
JSON
{
|
|
"include": ["src", "types"],
|
|
"compilerOptions": {
|
|
"module": "esnext",
|
|
"lib": ["dom", "esnext", "dom.iterable"],
|
|
"importHelpers": true,
|
|
"declaration": true,
|
|
"sourceMap": true,
|
|
"rootDir": "./src",
|
|
"strict": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"noImplicitReturns": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"downlevelIteration": true,
|
|
"moduleResolution": "node",
|
|
"baseUrl": "./",
|
|
"paths": {
|
|
"@headlessui/react": ["src"],
|
|
"*": ["src/*", "node_modules/*"]
|
|
},
|
|
"jsx": "preserve",
|
|
"esModuleInterop": true,
|
|
"target": "ESNext",
|
|
"allowJs": true,
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true
|
|
},
|
|
"exclude": ["node_modules", "**/*.test.tsx?"]
|
|
}
|