@mittwald/flow-react-components 1.2.0-next.36 → 1.2.0-next.37
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/AGENTS.md +14 -0
- package/dist/assets/component-index.json +1 -1
- package/dist/assets/doc-properties.json +1 -1
- package/dist/css/all-layered.css +1 -1
- package/dist/css/all.css +1 -1
- package/dist/js/default.mjs +1 -1
- package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs +2 -4
- package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +2 -4
- package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Option/Option.mjs +10 -2
- package/dist/js/packages/components/src/components/Option/Option.mjs.map +1 -1
- package/dist/js/packages/components/src/components/Option/optionsTunnel.mjs +36 -0
- package/dist/js/packages/components/src/components/Option/optionsTunnel.mjs.map +1 -0
- package/dist/js/packages/components/src/components/Select/Select.mjs +2 -4
- package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/componentFactory/flowComponent.mjs +1 -0
- package/dist/js/packages/components/src/lib/componentFactory/flowComponent.mjs.map +1 -1
- package/dist/js/packages/components/src/lib/types/props.mjs.map +1 -1
- package/dist/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/types/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/dist/types/components/Modal/components/ModalTrigger/ModalTrigger.d.ts +1 -0
- package/dist/types/components/Modal/components/ModalTrigger/ModalTrigger.d.ts.map +1 -1
- package/dist/types/components/Option/Option.d.ts +7 -0
- package/dist/types/components/Option/Option.d.ts.map +1 -1
- package/dist/types/components/Option/optionsTunnel.d.ts +22 -0
- package/dist/types/components/Option/optionsTunnel.d.ts.map +1 -0
- package/dist/types/components/Select/Select.d.ts.map +1 -1
- package/dist/types/lib/componentFactory/flowComponent.d.ts.map +1 -1
- package/dist/types/lib/types/props.d.ts.map +1 -1
- package/package.json +9 -9
package/AGENTS.md
CHANGED
|
@@ -393,6 +393,20 @@ Easy-to-miss conventions not spelled out above. Full details and examples in
|
|
|
393
393
|
icon-only padding silently do not apply. Wrap it — `<Icon><IconFoo /></Icon>`
|
|
394
394
|
— as the [Icon page](https://flow.mittwald.de/components/content/icon)
|
|
395
395
|
documents. Nothing errors: types, lint and the console stay clean.
|
|
396
|
+
- **A collection child is rendered twice** — react-aria renders the children of
|
|
397
|
+
a collection (`Select`, `ComboBox`, `Autocomplete`, `Menu`, `ListBox`, `Tree`,
|
|
398
|
+
…) once into its hidden collection document and once for real. Both renders
|
|
399
|
+
are full component instances, so anything derived per instance happens twice
|
|
400
|
+
for one logical element: `useId` returns two ids, effects run twice, and every
|
|
401
|
+
registration into shared state lands twice. Whatever such a child registers
|
|
402
|
+
therefore needs an id derived from the element itself, not a generated one —
|
|
403
|
+
options pass their collection key as the tunnel's `staticEntryId`
|
|
404
|
+
(`Option/optionsTunnel.ts`), and a new tunnelled collection child must do the
|
|
405
|
+
same. Without it the tunnel exit renders each child twice: the keys stay
|
|
406
|
+
unique, so the DOM and the tests look right, but the collection holds two
|
|
407
|
+
nodes per key and its `prevKey`/`nextKey` chain closes into a ring — `ArrowUp`
|
|
408
|
+
on the first item wraps to the last, and react-stately's focus restoration
|
|
409
|
+
walks `getKeyBefore` forever and freezes the tab (#3146).
|
|
396
410
|
- **Universal exports are deliberately explicit** — remote-safe values and their
|
|
397
411
|
types are curated in `flr-universal.ts` independently of the main public
|
|
398
412
|
surface; adding to `public.ts` does not add them there.
|