@mittwald/flow-react-components 1.6.0-next.4 → 1.6.0-next.41

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 (257) hide show
  1. package/AGENTS.md +132 -88
  2. package/USAGE.md +7 -2
  3. package/dist/assets/component-index.json +1 -1
  4. package/dist/assets/doc-properties.json +1 -1
  5. package/dist/css/all-layered.css +1 -1
  6. package/dist/css/all.css +1 -1
  7. package/dist/js/_virtual/_18.locale.mjs +14 -0
  8. package/dist/js/default.mjs +4 -3
  9. package/dist/js/flr-universal.mjs +2 -1
  10. package/dist/js/node_modules/.pnpm/{@lezer_lr@1.4.10 → @lezer_lr@1.4.11}/node_modules/@lezer/lr/dist/index.mjs +40 -28
  11. package/dist/js/node_modules/.pnpm/@lezer_lr@1.4.11/node_modules/@lezer/lr/dist/index.mjs.map +1 -0
  12. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs +3 -2
  13. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
  14. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs +3 -2
  15. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/Action/models/ActionState.mjs +2 -2
  17. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs +3 -3
  18. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  19. package/dist/js/packages/components/src/components/Activity/Activity.mjs +1 -1
  20. package/dist/js/packages/components/src/components/Activity/Activity.mjs.map +1 -1
  21. package/dist/js/packages/components/src/components/Alert/Alert.mjs +3 -2
  22. package/dist/js/packages/components/src/components/Alert/Alert.mjs.map +1 -1
  23. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs +1 -1
  24. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
  25. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs.map +1 -1
  26. package/dist/js/packages/components/src/components/Badge/Badge.mjs +2 -2
  27. package/dist/js/packages/components/src/components/Badge/Badge.mjs.map +1 -1
  28. package/dist/js/packages/components/src/components/Badge/Badge.module.mjs.map +1 -1
  29. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/helpers/useCalendarDateRangePresets.mjs +1 -1
  30. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs +6 -8
  31. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  32. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs +23 -5
  33. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
  34. package/dist/js/packages/components/src/components/CartesianChart/hooks/useTickLabelWidth.mjs +67 -0
  35. package/dist/js/packages/components/src/components/CartesianChart/hooks/useTickLabelWidth.mjs.map +1 -0
  36. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs +2 -2
  37. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
  38. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs +3 -3
  39. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
  40. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +41 -12
  41. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
  42. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs +29 -16
  43. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs.map +1 -1
  44. package/dist/js/packages/components/src/components/CodeEditor/languages/dotEnv/dotEnv.mjs +1 -1
  45. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +3 -2
  46. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
  47. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs +3 -2
  48. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
  49. package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs +5 -1
  50. package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs.map +1 -1
  51. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs +2 -1
  52. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
  53. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +2 -1
  54. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
  55. package/dist/js/packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs +40 -8
  56. package/dist/js/packages/components/src/components/DeprecationWarningProvider/DeprecationWarningProvider.mjs.map +1 -1
  57. package/dist/js/packages/components/src/components/DonutChart/DonutChart.mjs.map +1 -1
  58. package/dist/js/packages/components/src/components/Heading/Heading.mjs +2 -0
  59. package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
  60. package/dist/js/packages/components/src/components/Icon/Icon.module.mjs.map +1 -1
  61. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs +3 -2
  62. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  63. package/dist/js/packages/components/src/components/Label/Label.mjs +0 -4
  64. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  65. package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
  66. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +5 -2
  67. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  68. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +2 -2
  69. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
  70. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs +5 -3
  71. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs.map +1 -1
  72. package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.mjs +101 -0
  73. package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.mjs.map +1 -0
  74. package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.module.mjs +13 -0
  75. package/dist/js/packages/components/src/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.module.mjs.map +1 -0
  76. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs +16 -9
  77. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs.map +1 -1
  78. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.module.mjs +6 -2
  79. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.module.mjs.map +1 -1
  80. package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs +4 -2
  81. package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
  82. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs +3 -0
  83. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
  84. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs +1 -1
  85. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
  86. package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +1 -2
  87. package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
  88. package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs +3 -0
  89. package/dist/js/packages/components/src/components/List/components/Items/views/GridList/GridList.mjs.map +1 -1
  90. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs +5 -9
  91. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
  92. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs +8 -12
  93. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
  94. package/dist/js/packages/components/src/components/List/components/Table/components/Row.mjs +31 -0
  95. package/dist/js/packages/components/src/components/List/components/Table/components/Row.mjs.map +1 -0
  96. package/dist/js/packages/components/src/components/List/hooks/useLatestOnAction.mjs +21 -0
  97. package/dist/js/packages/components/src/components/List/hooks/useLatestOnAction.mjs.map +1 -0
  98. package/dist/js/packages/components/src/components/List/model/List.mjs +1 -0
  99. package/dist/js/packages/components/src/components/List/model/List.mjs.map +1 -1
  100. package/dist/js/packages/components/src/components/List/model/ListViewMode.mjs +2 -2
  101. package/dist/js/packages/components/src/components/List/model/ReactTable.mjs +2 -2
  102. package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs +15 -2
  103. package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs.map +1 -1
  104. package/dist/js/packages/components/src/components/List/model/filter/resolveDateRangeFilterValue.mjs +16 -0
  105. package/dist/js/packages/components/src/components/List/model/filter/resolveDateRangeFilterValue.mjs.map +1 -0
  106. package/dist/js/packages/components/src/components/List/model/item/ItemView.mjs +20 -7
  107. package/dist/js/packages/components/src/components/List/model/item/ItemView.mjs.map +1 -1
  108. package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs +2 -2
  109. package/dist/js/packages/components/src/components/List/model/table/TableCell.mjs +1 -1
  110. package/dist/js/packages/components/src/components/List/model/table/TableCell.mjs.map +1 -1
  111. package/dist/js/packages/components/src/components/List/model/table/TableRow.mjs +28 -1
  112. package/dist/js/packages/components/src/components/List/model/table/TableRow.mjs.map +1 -1
  113. package/dist/js/packages/components/src/components/Markdown/Markdown.mjs +25 -7
  114. package/dist/js/packages/components/src/components/Markdown/Markdown.mjs.map +1 -1
  115. package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs +1 -1
  116. package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs.map +1 -1
  117. package/dist/js/packages/components/src/components/Markdown/lib/isExternalHref.mjs +8 -0
  118. package/dist/js/packages/components/src/components/Markdown/lib/isExternalHref.mjs.map +1 -0
  119. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs +32 -3
  120. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
  121. package/dist/js/packages/components/src/components/MenuItem/MenuItem.module.mjs +1 -3
  122. package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs +1 -1
  123. package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs.map +1 -1
  124. package/dist/js/packages/components/src/components/Modal/Modal.mjs +9 -2
  125. package/dist/js/packages/components/src/components/Modal/Modal.mjs.map +1 -1
  126. package/dist/js/packages/components/src/components/Navigation/Navigation.module.mjs +1 -3
  127. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs +2 -3
  128. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs.map +1 -1
  129. package/dist/js/packages/components/src/components/Option/Option.module.mjs +1 -3
  130. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs +2 -1
  131. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs.map +1 -1
  132. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +1 -1
  133. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
  134. package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs +1 -1
  135. package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs.map +1 -1
  136. package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs +4 -2
  137. package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs.map +1 -1
  138. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
  139. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs +5 -4
  140. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
  141. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs +2 -3
  142. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
  143. package/dist/js/packages/components/src/components/Rating/Rating.mjs +12 -11
  144. package/dist/js/packages/components/src/components/Rating/Rating.mjs.map +1 -1
  145. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +2 -3
  146. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs.map +1 -1
  147. package/dist/js/packages/components/src/components/Section/Section.mjs +10 -6
  148. package/dist/js/packages/components/src/components/Section/Section.mjs.map +1 -1
  149. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs +0 -4
  150. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
  151. package/dist/js/packages/components/src/components/Section/context.mjs +47 -0
  152. package/dist/js/packages/components/src/components/Section/context.mjs.map +1 -0
  153. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +2 -3
  154. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  155. package/dist/js/packages/components/src/components/Select/Select.mjs +2 -3
  156. package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
  157. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs +4 -3
  158. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs.map +1 -1
  159. package/dist/js/packages/components/src/components/Slider/Slider.mjs +47 -41
  160. package/dist/js/packages/components/src/components/Slider/Slider.mjs.map +1 -1
  161. package/dist/js/packages/components/src/components/Table/Table.mjs +3 -0
  162. package/dist/js/packages/components/src/components/Table/Table.mjs.map +1 -1
  163. package/dist/js/packages/components/src/components/Table/Table.module.mjs.map +1 -1
  164. package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs +5 -12
  165. package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs.map +1 -1
  166. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs +4 -2
  167. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
  168. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs +7 -1
  169. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
  170. package/dist/js/packages/components/src/components/Table/components/TableHeader/context.mjs +14 -0
  171. package/dist/js/packages/components/src/components/Table/components/TableHeader/context.mjs.map +1 -0
  172. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs +6 -8
  173. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs.map +1 -1
  174. package/dist/js/packages/components/src/components/Tabs/Tabs.module.mjs.map +1 -1
  175. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs.map +1 -1
  176. package/dist/js/packages/components/src/components/Text/Text.module.mjs.map +1 -1
  177. package/dist/js/packages/components/src/components/TextField/TextField.mjs +11 -8
  178. package/dist/js/packages/components/src/components/TextField/TextField.mjs.map +1 -1
  179. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs +4 -2
  180. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs.map +1 -1
  181. package/dist/js/packages/components/src/components/TranslationProvider/useLocalizedStringFormatter.mjs +15 -2
  182. package/dist/js/packages/components/src/components/TranslationProvider/useLocalizedStringFormatter.mjs.map +1 -1
  183. package/dist/js/packages/components/src/components/Wrap/Wrap.mjs.map +1 -1
  184. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -1
  185. package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs +4 -1
  186. package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
  187. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormRootError/FormRootError.mjs +1 -1
  188. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.mjs.map +1 -1
  189. package/dist/js/packages/components/src/lib/controller/overlay/OverlayController.mjs +10 -158
  190. package/dist/js/packages/components/src/lib/controller/overlay/OverlayController.mjs.map +1 -1
  191. package/dist/js/packages/components/src/lib/controller/overlay/useCloseOverlayConfirmationController.mjs +1 -0
  192. package/dist/js/packages/components/src/lib/controller/overlay/useCloseOverlayConfirmationController.mjs.map +1 -1
  193. package/dist/js/packages/components/src/lib/hooks/dom/useVirtualKeyboardVisible.mjs +8 -4
  194. package/dist/js/packages/components/src/lib/hooks/dom/useVirtualKeyboardVisible.mjs.map +1 -1
  195. package/dist/js/packages/components/src/views/DatePickerView.mjs +16 -0
  196. package/dist/js/packages/components/src/views/DatePickerView.mjs.map +1 -0
  197. package/dist/js/packages/components/src/views/LabelView.mjs +16 -0
  198. package/dist/js/packages/components/src/views/LabelView.mjs.map +1 -0
  199. package/dist/js/packages/components/src/views/TimeFieldView.mjs +16 -0
  200. package/dist/js/packages/components/src/views/TimeFieldView.mjs.map +1 -0
  201. package/dist/js/packages/components-base/src/index.mjs +5 -2
  202. package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs +1 -0
  203. package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs.map +1 -1
  204. package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs +4 -1
  205. package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs.map +1 -1
  206. package/dist/js/packages/components-base/src/list/filter/dateRange.mjs +37 -13
  207. package/dist/js/packages/components-base/src/list/filter/dateRange.mjs.map +1 -1
  208. package/dist/js/packages/components-base/src/list/filter/dateTimeRangeFields.mjs +55 -0
  209. package/dist/js/packages/components-base/src/list/filter/dateTimeRangeFields.mjs.map +1 -0
  210. package/dist/js/packages/components-base/src/list/filter/formatDateRange.mjs +27 -0
  211. package/dist/js/packages/components-base/src/list/filter/formatDateRange.mjs.map +1 -0
  212. package/dist/js/packages/components-base/src/overlay/OverlayState.mjs +196 -0
  213. package/dist/js/packages/components-base/src/overlay/OverlayState.mjs.map +1 -0
  214. package/dist/types/_bundled/flow-components-base/index.d.ts +4 -1
  215. package/dist/types/_bundled/flow-components-base/list/filter/ListFilter.d.ts +2 -0
  216. package/dist/types/_bundled/flow-components-base/list/filter/dateRange.d.ts +24 -1
  217. package/dist/types/_bundled/flow-components-base/list/filter/dateTimeRangeFields.d.ts +34 -0
  218. package/dist/types/_bundled/flow-components-base/list/filter/formatDateRange.d.ts +7 -0
  219. package/dist/types/_bundled/flow-components-base/overlay/OverlayState.d.ts +94 -0
  220. package/dist/types/components/AlertBadge/AlertBadge.d.ts +2 -2
  221. package/dist/types/components/Badge/Badge.d.ts +2 -2
  222. package/dist/types/components/CartesianChart/hooks/useTickLabelWidth.d.ts +1 -0
  223. package/dist/types/components/CodeBlock/CodeBlock.d.ts +1 -1
  224. package/dist/types/components/DonutChart/DonutChart.d.ts +1 -4
  225. package/dist/types/components/Link/Link.d.ts +1 -1
  226. package/dist/types/components/List/components/Header/components/DateTimeRangeFields/DateTimeRangeFields.d.ts +8 -0
  227. package/dist/types/components/List/components/Items/components/Item/Item.d.ts +2 -0
  228. package/dist/types/components/List/components/Items/components/Item/hooks/useGridItemProps.d.ts +1 -0
  229. package/dist/types/components/List/components/ListSummary/ListSummary.d.ts +3 -2
  230. package/dist/types/components/List/components/Table/components/Row.d.ts +13 -0
  231. package/dist/types/components/List/hooks/useLatestOnAction.d.ts +7 -0
  232. package/dist/types/components/List/index.d.ts +2 -0
  233. package/dist/types/components/List/model/filter/DateRangeFilter.d.ts +15 -8
  234. package/dist/types/components/List/model/filter/resolveDateRangeFilterValue.d.ts +11 -0
  235. package/dist/types/components/List/model/filter/types.d.ts +23 -1
  236. package/dist/types/components/List/model/item/ItemView.d.ts +34 -11
  237. package/dist/types/components/List/model/table/TableRow.d.ts +14 -0
  238. package/dist/types/components/List/model/table/types.d.ts +17 -1
  239. package/dist/types/components/List/typedList.d.ts +1 -0
  240. package/dist/types/components/Markdown/lib/isExternalHref.d.ts +1 -0
  241. package/dist/types/components/ProgressBar/ProgressBar.d.ts +1 -4
  242. package/dist/types/components/Rating/Rating.d.ts +5 -5
  243. package/dist/types/components/Section/context.d.ts +28 -0
  244. package/dist/types/components/Table/components/TableCell/TableCell.d.ts +4 -1
  245. package/dist/types/components/Table/components/TableHeader/context.d.ts +6 -0
  246. package/dist/types/components/Wrap/Wrap.d.ts +5 -0
  247. package/dist/types/index/flr-universal.d.ts +1 -1
  248. package/dist/types/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.d.ts +7 -1
  249. package/dist/types/lib/controller/overlay/OverlayController.d.ts +8 -74
  250. package/dist/types/lib/dev/hydrateServerMarkup.d.ts +2 -0
  251. package/dist/types/lib/hooks/dom/useVirtualKeyboardVisible.d.ts +4 -1
  252. package/package.json +12 -12
  253. package/dist/js/node_modules/.pnpm/@lezer_lr@1.4.10/node_modules/@lezer/lr/dist/index.mjs.map +0 -1
  254. package/dist/js/packages/components/src/lib/date/transformDateValueToFormattedDate.mjs +0 -10
  255. package/dist/js/packages/components/src/lib/date/transformDateValueToFormattedDate.mjs.map +0 -1
  256. package/dist/types/lib/date/transformDateValueToDateTime.d.ts +0 -3
  257. package/dist/types/lib/date/transformDateValueToFormattedDate.d.ts +0 -2
@@ -7,6 +7,8 @@ interface Props extends PropsWithChildren {
7
7
  triggerRef?: Ref<HTMLDivElement>;
8
8
  list: ListModel<never>;
9
9
  isTile: boolean;
10
+ /** Stable invoker of the list's latest `onAction` */
11
+ onAction?: (data: never) => void;
10
12
  }
11
13
  export declare const Item: import('react').MemoExoticComponent<(props: Props) => import('react').JSX.Element | null>;
12
14
  interface ItemContainerProps extends PropsWithChildren {
@@ -2,6 +2,7 @@ import { PropsWithChildren } from 'react';
2
2
  import { default as List } from '../../../../../model/List';
3
3
  interface P extends PropsWithChildren {
4
4
  data: never;
5
+ onAction?: (data: never) => void;
5
6
  }
6
7
  export declare const useGridItemProps: (props: P, list: List<never>) => {
7
8
  gridItemProps: {
@@ -1,7 +1,8 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { FlowComponentProps } from '../../../../lib/componentFactory/flowComponent';
3
- export interface ListSummaryProps extends FlowComponentProps, PropsWithChildren {
4
- /** Whether the summary is placed above or underneath the list @default: "top" */
3
+ import { PropsWithClassName } from '../../../../lib/types/props';
4
+ export interface ListSummaryProps extends PropsWithClassName, FlowComponentProps, PropsWithChildren {
5
+ /** Whether the summary is placed above or underneath the list @default "top" */
5
6
  position?: "top" | "bottom";
6
7
  }
7
8
  /** @flr-generate all */
@@ -0,0 +1,13 @@
1
+ import { Ref } from 'react';
2
+ import { Key } from 'react-aria-components';
3
+ import { default as ListModel } from '../../../model/List';
4
+ interface Props {
5
+ id: Key;
6
+ data: never;
7
+ list: ListModel<never>;
8
+ /** Stable invoker of the list's latest `onAction` */
9
+ onAction?: (data: never) => void;
10
+ triggerRef?: Ref<HTMLTableRowElement>;
11
+ }
12
+ export declare const Row: import('react').MemoExoticComponent<(props: Props) => import('react').JSX.Element | null>;
13
+ export default Row;
@@ -0,0 +1,7 @@
1
+ import { default as List } from '../model/List';
2
+ /**
3
+ * A stable invoker of the list's latest `onAction`, or `undefined` without one.
4
+ * An event handler only ever needs to be the latest one, so items and rows do
5
+ * not re-render for an inline `onAction`.
6
+ */
7
+ export declare const useLatestOnAction: (list: List<never>) => ((data: never) => void | undefined) | undefined;
@@ -1,6 +1,8 @@
1
1
  export type { RenderItemFn } from './model/item/types';
2
2
  export type { AsyncDataLoader, AsyncResourceFactory, DataLoaderOptions, DataLoaderResult, } from './model/loading/types';
3
3
  export type { SortingFn } from './model/sorting/types';
4
+ export type { DateRangeFilterOptions, DateRangeFilterValue, } from './model/filter/types';
5
+ export { resolveDateRangeFilterValue } from './model/filter/resolveDateRangeFilterValue';
4
6
  export { SortingFunctions } from './model/sorting/SortingFunctions';
5
7
  export * from './components/Items/views/GridList';
6
8
  export * from './components/Items/views/GridListItem';
@@ -1,9 +1,7 @@
1
1
  import { ListDateRangeFilter, ListModelContext } from '../../../../_bundled/flow-components-base/index';
2
- import { FilterShape } from './types';
2
+ import { DateRangeFilterOptions, DateRangeFilterValue, FilterShape } from './types';
3
3
  import { PropertyName } from '../types';
4
4
  import { RangeCalendarProps } from '../../../Calendar';
5
- import { DateValue } from '@internationalized/date';
6
- import { DateRange, RangeValue } from 'react-aria-components';
7
5
  import { ReactNode } from 'react';
8
6
  import { List } from '../List';
9
7
  import { FilterValue } from './FilterValue';
@@ -12,14 +10,23 @@ import { FilterValue } from './FilterValue';
12
10
  *
13
11
  * The column, the comparison and the stored value are `ListDateRangeFilter` in
14
12
  * `@mittwald/flow-components-base`, so the Vue binding filters the same dates
15
- * the same way. What is left here is the calendar's own options, which are
16
- * Flow's `RangeCalendar` props.
13
+ * the same way. What is left here are the options of the fields that pick the
14
+ * range: Flow's `RangeCalendar` props, or with `granularity: "minute"` those of
15
+ * the date and time fields.
17
16
  */
18
17
  export declare class DateRangeFilter<T = never, TProp extends PropertyName<T> = never> extends ListDateRangeFilter<T, TProp, ReactNode> {
19
- readonly dateRangeOptions?: RangeCalendarProps;
18
+ readonly dateRangeOptions?: DateRangeFilterOptions;
20
19
  constructor(context: ListModelContext<T>, shape: FilterShape<T, TProp, never>);
21
- getValue(): DateRange | null;
22
- setValue(range: RangeValue<DateValue> | null): void;
20
+ get granularity(): "day" | "minute";
21
+ get rangeCalendarProps(): RangeCalendarProps;
22
+ get dateTimeRangeOptions(): {
23
+ granularity: "minute";
24
+ minValue?: import('@internationalized/date').DateValue | null;
25
+ maxValue?: import('@internationalized/date').DateValue | null;
26
+ isDateUnavailable?: (date: import('@internationalized/date').DateValue) => boolean;
27
+ } | undefined;
28
+ getValue(): DateRangeFilterValue | null;
29
+ setValue(range: DateRangeFilterValue | null): void;
23
30
  /** The list this filter belongs to — `context`, typed as React's `List`. */
24
31
  get list(): List<T>;
25
32
  get values(): FilterValue[];
@@ -0,0 +1,11 @@
1
+ import { DateRangeFilterValue } from './types';
2
+ /**
3
+ * Resolves the value of a date range filter to the instants it spans, for
4
+ * filtering on the server side. Both bounds are inclusive: a date covers its
5
+ * whole day and a date with time its whole minute, in the user's local time
6
+ * zone. A missing side has no bound.
7
+ */
8
+ export declare const resolveDateRangeFilterValue: (range: DateRangeFilterValue) => {
9
+ start?: Date;
10
+ end?: Date;
11
+ };
@@ -3,8 +3,30 @@ import { PropertyName } from '../types';
3
3
  import { RangeCalendarProps } from '../../../Calendar';
4
4
  import { ListFilterShape } from '../../../../_bundled/flow-components-base/index';
5
5
  import { ReactNode } from 'react';
6
+ import { DateValue } from '@internationalized/date';
6
7
  export type { FilterMatcher, FilterMode, FilterUpdatedCallback, } from '../../../../_bundled/flow-components-base/index';
7
8
  export interface FilterShape<T, TProp extends PropertyName<T>, TMatcherValue> extends ListFilterShape<T, TProp, TMatcherValue, ReactNode> {
8
- dateRangeOptions?: RangeCalendarProps;
9
+ dateRangeOptions?: DateRangeFilterOptions;
10
+ }
11
+ export type DateRangeFilterOptions = ({
12
+ /**
13
+ * Whether the filter narrows down by date only, or by date and time.
14
+ *
15
+ * @default "day"
16
+ */
17
+ granularity?: "day";
18
+ } & RangeCalendarProps) | {
19
+ granularity: "minute";
20
+ minValue?: DateValue | null;
21
+ maxValue?: DateValue | null;
22
+ isDateUnavailable?: (date: DateValue) => boolean;
23
+ };
24
+ /**
25
+ * A date covers its whole day, a date with time its whole minute. A missing
26
+ * side has no bound.
27
+ */
28
+ export interface DateRangeFilterValue {
29
+ start?: DateValue;
30
+ end?: DateValue;
9
31
  }
10
32
  export type AnyDateRangeFilter = DateRangeFilter | DateRangeFilter<any, any>;
@@ -2,7 +2,15 @@ import { DependencyList, HTMLAttributeAnchorTarget, ReactElement, ReactNode } fr
2
2
  import { RenderItemFn } from './types';
3
3
  import { default as List } from '../List';
4
4
  export interface ItemViewShape<T> {
5
+ /**
6
+ * Runs on every render of the list to tell whether the item changed, so it
7
+ * should be cheap and pure.
8
+ */
5
9
  textValue?: (data: T) => string;
10
+ /**
11
+ * Runs on every render of the list to tell whether the item changed, so it
12
+ * should be cheap and pure.
13
+ */
6
14
  href?: (data: T) => string;
7
15
  target?: HTMLAttributeAnchorTarget;
8
16
  defaultExpanded?: (data: T) => boolean;
@@ -14,14 +22,23 @@ export interface ItemViewShape<T> {
14
22
  showTiles?: boolean;
15
23
  tileMaxWidth?: number;
16
24
  /**
17
- * Values this item's content depends on besides its own data.
25
+ * Everything the render function reads besides the item's data.
18
26
  *
19
- * An item re-renders when its data changes, or when one of the render
20
- * functions on its `List.Item` changes identity — which a function written
21
- * inline in JSX does on every render of its parent. A render function with a
22
- * stable identity (hoisted out of the component, wrapped in `useCallback`, or
23
- * reading from an external store) has to list what it reads here, or the item
24
- * keeps the values it first saw.
27
+ * With `renderDependencies`, an item re-renders only when its data or one of
28
+ * these values changes. The render function's identity no longer counts, so a
29
+ * function written inline in JSX keeps the item from re-rendering on every
30
+ * render of its parent. List every value it reads from outside the item,
31
+ * including state read through the `list` argument — one left out keeps the
32
+ * item on the value it last rendered.
33
+ *
34
+ * Without it, an item re-renders whenever its render function changes
35
+ * identity, which an inline function does on every render of its parent.
36
+ */
37
+ renderDependencies?: DependencyList;
38
+ /**
39
+ * @deprecated Use `renderDependencies` instead. `dependencies` only adds to
40
+ * the render function's identity, so an inline render function still
41
+ * re-renders the item on every render of its parent.
25
42
  */
26
43
  dependencies?: DependencyList;
27
44
  }
@@ -35,15 +52,21 @@ export declare class ItemView<T> {
35
52
  readonly showTiles?: boolean;
36
53
  readonly showList?: boolean;
37
54
  readonly tileMaxWidth: number;
55
+ readonly renderDependencies?: DependencyList;
38
56
  readonly dependencies?: DependencyList;
39
57
  private readonly renderFn?;
58
+ private lastComparison?;
40
59
  constructor(list: List<T>, shape?: ItemViewShape<T>);
41
60
  private static fallbackRenderItemFn;
42
61
  /**
43
- * Whether `other` would render this item identically — i.e. all render
44
- * functions taken from the consumer's `ListItem` element are still the same,
45
- * and the dependencies it declared have not changed.
62
+ * Whether `other` would render the item holding `data` identically. The
63
+ * render function counts by its `renderDependencies` where given, otherwise
64
+ * by its identity and the deprecated `dependencies`. `textValue` and `href`
65
+ * count by what they return for `data`, so inline functions do not re-render
66
+ * the item. `defaultExpanded` is read on mount only, so it does not count at
67
+ * all.
46
68
  */
47
- rendersSameAs(other?: ItemView<T>): boolean;
69
+ rendersSameFor(other: ItemView<T> | undefined, data: T): boolean;
70
+ private rendersSameContentAs;
48
71
  render(data: T): ReactNode;
49
72
  }
@@ -1,9 +1,23 @@
1
1
  import { TableRowShape, TableRowSupportedComponentProps } from './types';
2
2
  import { TableCell } from './TableCell';
3
3
  import { TableBody } from './TableBody';
4
+ import { DependencyList } from 'react';
4
5
  export declare class TableRow<T> {
5
6
  readonly tableBody: TableBody<T>;
6
7
  readonly cells: TableCell<T>[];
7
8
  readonly componentProps: TableRowSupportedComponentProps;
9
+ readonly renderDependencies?: DependencyList;
10
+ private lastComparison?;
8
11
  constructor(tableBody: TableBody<T>, shape?: TableRowShape<T>);
12
+ /**
13
+ * Whether `other` would render a row identically. Only rows that declare
14
+ * `renderDependencies` can tell, since the cells' render functions count by
15
+ * those instead of their identity. Rows without them always re-render. Row
16
+ * and cell props count by identity, one by one.
17
+ *
18
+ * Every row of a render shares one model, so the result is cached for the
19
+ * last `other`.
20
+ */
21
+ rendersSameAs(other?: TableRow<T>): boolean;
22
+ private compareWith;
9
23
  }
@@ -1,4 +1,4 @@
1
- import { PropsWithChildren, ReactElement } from 'react';
1
+ import { DependencyList, PropsWithChildren, ReactElement } from 'react';
2
2
  import { TableBodyProps, TableCellProps, TableColumnProps, TableHeaderProps, TableProps, TableRowProps } from '../../../Table';
3
3
  import { RenderItemFn } from '../..';
4
4
  /** Cell */
@@ -13,6 +13,22 @@ export type TableRowSupportedComponentProps = Omit<TableRowProps, "onAction" | "
13
13
  };
14
14
  export interface TableRowShape<T> extends TableRowSupportedComponentProps, PropsWithChildren {
15
15
  cells?: TableCellShape<T>[];
16
+ /**
17
+ * Everything the cells' render functions read besides the row's data.
18
+ *
19
+ * With `renderDependencies`, a row re-renders only when its data, one of
20
+ * these values, or a cell's props change. The render functions' identity does
21
+ * not count, so functions written inline in JSX keep the row from
22
+ * re-rendering on every render of its parent. List every value they read from
23
+ * outside the row, including state read through the `list` argument — one
24
+ * left out keeps the row on the value it last rendered.
25
+ *
26
+ * Row and cell props count by identity, so an inline `style` object or
27
+ * callback on `List.TableRow` or `List.TableCell` re-renders every row.
28
+ *
29
+ * Without it, every row re-renders whenever the list does.
30
+ */
31
+ renderDependencies?: DependencyList;
16
32
  }
17
33
  /** Column */
18
34
  export type TableColumnSupportedComponentProps = TableColumnProps;
@@ -127,6 +127,7 @@ export declare const typedList: <T, TMeta = unknown>() => {
127
127
  columns?: Iterable<never> | undefined;
128
128
  disabledBehavior?: import('react-stately').DisabledBehavior | undefined;
129
129
  hasChildItems?: boolean | undefined;
130
+ renderDependencies?: import('react').DependencyList | undefined;
130
131
  }) => null;
131
132
  TableCell: (ignoredProps: Omit<import('./model/table/types').TableCellShape<T>, "renderFn"> & {
132
133
  children: import('.').RenderItemFn<T>;
@@ -0,0 +1 @@
1
+ export declare const isExternalHref: (href: string | undefined) => boolean;
@@ -17,10 +17,7 @@ export interface ProgressBarProps extends PropsWithChildren<Omit<Aria.ProgressBa
17
17
  color?: CategoricalWithCustomColor;
18
18
  valueText?: string;
19
19
  }[];
20
- /**
21
- * Whether the legend component is shown when segments are used. @default:
22
- * true
23
- */
20
+ /** Whether the legend component is shown when segments are used. @default true */
24
21
  showLegend?: boolean;
25
22
  }
26
23
  /** @flr-generate all */
@@ -4,28 +4,28 @@ import * as Aria from "react-aria-components";
4
4
  export interface RatingProps extends FlowComponentProps, PropsWithChildren, Omit<Aria.RadioGroupProps, "children" | "value" | "defaultValue"> {
5
5
  /**
6
6
  * The value sets the amount of filled stars. Decimals are rounded to the
7
- * nearest whole star. @default: 0
7
+ * nearest whole star. @default 0
8
8
  */
9
9
  value?: number;
10
10
  /**
11
11
  * The defaultValue sets the amount of default filled stars. Decimals are
12
- * rounded to the nearest whole star. @default: 0
12
+ * rounded to the nearest whole star. @default 0
13
13
  */
14
14
  defaultValue?: number;
15
- /** The size of the component. @default: "m" */
15
+ /** The size of the component. @default "m" */
16
16
  size?: "s" | "m";
17
17
  /**
18
18
  * The number of segments the rating consists of. Ignored when the rating has
19
19
  * `RatingSegment` children — those define the number of segments themselves.
20
20
  *
21
- * @default: 5
21
+ * @default 5
22
22
  */
23
23
  maxValue?: number;
24
24
  /**
25
25
  * How the segments are filled. `cumulative` fills every segment up to the
26
26
  * value, `single` fills only the selected segment.
27
27
  *
28
- * @default: cumulative
28
+ * @default "cumulative"
29
29
  */
30
30
  fill?: "cumulative" | "single";
31
31
  /** An alternative icon for the empty state */
@@ -0,0 +1,28 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ interface SectionHeading {
3
+ /** The id the surrounding `Section` gives its heading. */
4
+ id: string;
5
+ /** Whether a heading currently renders with that id. */
6
+ isRendered: boolean;
7
+ /** Called by a heading that renders with the id; returns the cleanup. */
8
+ register: () => () => void;
9
+ }
10
+ /** The heading state a `Section` provides for the given heading id. */
11
+ export declare const useSectionHeading: (id: string) => SectionHeading;
12
+ export declare const SectionHeadingProvider: import('react').Provider<SectionHeading | undefined>;
13
+ /**
14
+ * Ends the surrounding `Section`'s heading scope, for content that has a
15
+ * heading of its own (`Accordion`, `Alert`, an overlay, …).
16
+ */
17
+ export declare const SectionHeadingReset: FC<PropsWithChildren>;
18
+ /** Marks the section heading as rendered while a heading carries its id. */
19
+ export declare const useRegisterSectionHeading: (id: string | undefined) => void;
20
+ /**
21
+ * The `aria-labelledby` of a grid or table: its own label, else the heading of
22
+ * the surrounding `Section` once that heading renders.
23
+ */
24
+ export declare const useLabelledBySectionHeading: (props: {
25
+ "aria-label"?: string;
26
+ "aria-labelledby"?: string;
27
+ }) => string | undefined;
28
+ export {};
@@ -1,7 +1,10 @@
1
1
  import { FC, PropsWithChildren } from 'react';
2
2
  import * as Aria from "react-aria-components";
3
3
  export interface TableCellProps extends Omit<Aria.CellProps, "children" | "style" | "render">, PropsWithChildren {
4
- /** Use cell as row header */
4
+ /**
5
+ * Styles the cell as a row header. Its semantics come from the column: the
6
+ * first column, or the one with `isRowHeader`.
7
+ */
5
8
  rowHeader?: boolean;
6
9
  /** Horizontal alignment of the cell content @default "start" */
7
10
  horizontalAlign?: "start" | "center" | "end";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Whether a column is the first of its `TableHeader`. Undefined outside a
3
+ * header that can tell, e.g. with dynamic `columns`.
4
+ */
5
+ export declare const IsFirstColumnContext: import('react').Context<boolean | undefined>;
6
+ export declare const useIsFirstColumn: () => boolean | undefined;
@@ -1,6 +1,11 @@
1
1
  import { FC, PropsWithChildren, ReactElement } from 'react';
2
2
  export interface WrapProps {
3
+ /**
4
+ * Whether the child element is rendered. Any truthy value keeps it, a falsy
5
+ * one renders only its children.
6
+ */
3
7
  if: unknown;
8
+ /** The element that wraps the content, with the content as its children. */
4
9
  children: ReactElement<PropsWithChildren>;
5
10
  }
6
11
  export declare const Wrap: FC<WrapProps>;
@@ -1,5 +1,5 @@
1
1
  export * from '../components/Icon/components/icons';
2
- export { Action, ActionBatch, type ActionFn, type ActionProps, BrowserOnly, type BrowserOnlyProps, ComponentDefaultsProvider, type ComponentDefaultsProviderProps, CountryOptions, type CountryOptionsProps, DeprecationWarningProvider, type DeprecationWarningHandler, type DeprecationWarningProviderProps, IntlProvider, LightBox, type LightBoxProps, LightBoxTrigger, type LightBoxTriggerProps, List, type ListProps, ListItemView, type ListItemViewProps, Modal, type ModalProps, ModalTrigger, type ModalTriggerProps, Popover, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, SettingsProvider, typedList, NotificationProvider, type NotificationProviderProps, Wrap, type WrapProps, } from '../components/public';
2
+ export { Action, ActionBatch, type ActionFn, type ActionProps, BrowserOnly, type BrowserOnlyProps, ComponentDefaultsProvider, type ComponentDefaultsProviderProps, CountryOptions, type CountryOptionsProps, DeprecationWarningProvider, type DeprecationWarningHandler, type DeprecationWarningProviderProps, IntlProvider, LightBox, type LightBoxProps, LightBoxTrigger, type LightBoxTriggerProps, List, type ListProps, ListItemView, type ListItemViewProps, Modal, type ModalProps, ModalTrigger, type ModalTriggerProps, Popover, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, resolveDateRangeFilterValue, type DateRangeFilterValue, SettingsProvider, typedList, NotificationProvider, type NotificationProviderProps, Wrap, type WrapProps, } from '../components/public';
3
3
  export * from '../lib/controller/public';
4
4
  export * from '../lib/hooks/public';
5
5
  export { useControlledRemoteValueProps } from '../lib/remote/useControlledRemoteValueProps';
@@ -1,8 +1,14 @@
1
- import { PropsWithChildren } from 'react';
1
+ import { BaseSyntheticEvent, PropsWithChildren } from 'react';
2
2
  import { FieldValues, UseFormReturn } from 'react-hook-form';
3
3
  import { FormOnSubmitHandler } from '../Form/Form';
4
4
  export interface SubmitInterceptorContext<F extends FieldValues = FieldValues> {
5
5
  form: UseFormReturn<F>;
6
+ /**
7
+ * The submit event, if the form was submitted by one. Pass it on to `submit`
8
+ * so the handler can read the pressed submit button
9
+ * (`event.nativeEvent.submitter`).
10
+ */
11
+ event?: BaseSyntheticEvent;
6
12
  }
7
13
  export type SubmitInterceptor = <F extends FieldValues = FieldValues>(submit: FormOnSubmitHandler<F>, values: F, context: SubmitInterceptorContext<F>) => ReturnType<FormOnSubmitHandler<F>>;
8
14
  interface Context {
@@ -1,16 +1,13 @@
1
+ import { OverlayState, OverlayCloseHandler, OverlayCloseOptions, OverlayOpenHandler, OverlayOpenStateHandler } from '../../../_bundled/flow-components-base/index';
1
2
  import { DependencyList } from 'react';
2
3
  import { FlowComponentName } from '../../../components/propTypes';
3
- export type OverlayOpenHandler = () => unknown;
4
- export type OverlayCloseHandler = () => unknown;
5
- export type OverlayOpenStateHandler = (isOpen: boolean) => unknown;
6
- type DisposerFn = () => void;
7
- export interface CloseOverlayOptions {
4
+ export type { OverlayCloseHandler, OverlayOpenHandler, OverlayOpenStateHandler, } from '../../../_bundled/flow-components-base/index';
5
+ export interface CloseOverlayOptions extends OverlayCloseOptions {
8
6
  /**
9
7
  * The overlay to close. Omitted, the nearest enclosing overlay is closed –
10
8
  * the same thing `closeOverlay={true}` means.
11
9
  */
12
10
  overlay?: FlowComponentName | OverlayController;
13
- bypassConfirmation?: boolean;
14
11
  }
15
12
  export interface OnOverlayClosedOptions {
16
13
  dependencies?: DependencyList;
@@ -35,48 +32,17 @@ export interface OverlayControllerOptions {
35
32
  */
36
33
  confirmOnClose?: boolean;
37
34
  }
38
- type ConstructorOptions = Pick<OverlayControllerOptions, "isDefaultOpen" | "confirmOnClose">;
39
- export declare class OverlayController {
40
- isOpen: boolean;
41
- isContentSuspended: boolean;
42
- private onOpenHandlers;
43
- private onCloseHandlers;
44
- private onOpenChangeHandlers;
45
- showConfirmationModal: boolean;
46
- closeIsConfirmed: boolean;
47
- private readonly confirmOnCloseFromOptions;
48
- /**
49
- * Every mounted component that has an opinion on close confirmation
50
- * contributes one entry here – e.g. a `Modal` with a `confirmOnClose` prop
51
- * and a `Form` tracking its dirty state. Combining them instead of assigning
52
- * a single flag keeps them from overwriting each other.
53
- */
54
- private confirmOnCloseSources;
55
- /**
56
- * Active grants that allow closing without a confirmation. Each entry is
57
- * scoped to an ongoing operation that legitimately closes the overlay – e.g.
58
- * a `Form` submit – and is dropped again when that operation has finished, so
59
- * an operation that does _not_ close the overlay leaves the confirmation
60
- * armed.
61
- */
62
- private closeWithoutConfirmationGrants;
63
- /**
64
- * The open state a `setOpen` call is currently applying. Handlers run before
65
- * `isOpen` is assigned, so a handler that calls `setOpen` again would not be
66
- * caught by the equality check at the top and would recurse.
67
- */
68
- private openStateInFlight;
69
- constructor(options?: ConstructorOptions);
70
- /** Whether closing this overlay currently requires a confirmation. */
71
- get confirmOnCloseEnabled(): boolean;
35
+ /**
36
+ * The state is `OverlayState` from `@mittwald/flow-components-base`, shared
37
+ * with every remote binding; this adds the hooks.
38
+ */
39
+ export declare class OverlayController extends OverlayState<CloseOptions> {
72
40
  useUpdateOptions(options?: OverlayControllerOptions): void;
73
41
  /**
74
42
  * Registers the calling component as a close confirmation source for as long
75
43
  * as it is mounted. `undefined` contributes nothing at all.
76
44
  */
77
45
  private useConfirmOnCloseSource;
78
- private setConfirmOnCloseSource;
79
- private removeConfirmOnCloseSource;
80
46
  /**
81
47
  * Can be used to execute a callback when the Overlay has unmounted – means
82
48
  * after any closing animation.
@@ -85,27 +51,7 @@ export declare class OverlayController {
85
51
  */
86
52
  useOnClosed(callback: () => unknown, options?: OnOverlayClosedOptions): void;
87
53
  static useNew(options?: OverlayControllerOptions): OverlayController;
88
- private addOpenStateHandler;
89
54
  private useOnHandler;
90
- private executeHandlers;
91
- private executeOnClose;
92
- private executeOnOpen;
93
- private executeOnOpenChange;
94
- addOnClose(handler: OverlayCloseHandler): DisposerFn;
95
- addOnOpen(handler: OverlayOpenHandler): DisposerFn;
96
- addOnOpenChange(handler: OverlayOpenStateHandler): DisposerFn;
97
- open(): void;
98
- close(options?: CloseOptions): void;
99
- toggle(): void;
100
- setOpen(toOpen: boolean, options?: CloseOptions): void;
101
- /**
102
- * Sets the open state without running any handler. Use it to mirror a
103
- * controlled `isOpen` prop, whose change comes from the consumer – notifying
104
- * them of their own state would echo it back.
105
- */
106
- syncOpen(toOpen: boolean): void;
107
- private applyOpenState;
108
- setIsContentSuspended(to: boolean): void;
109
55
  useIsOpen(): boolean;
110
56
  useIsContentSuspended(): boolean;
111
57
  useShowConfirmationModal(): boolean;
@@ -115,16 +61,4 @@ export declare class OverlayController {
115
61
  readonly cancel: () => void;
116
62
  readonly confirm: () => void;
117
63
  } | undefined;
118
- /**
119
- * Allows closing this overlay without a confirmation until the returned
120
- * disposer is called. Use it around an operation that may legitimately close
121
- * the overlay – e.g. a `Form` submit, where a "discard unsaved changes?"
122
- * prompt would be nonsense – and dispose it as soon as that operation has
123
- * finished. An operation that ends without closing the overlay therefore
124
- * leaves the confirmation armed (#2775).
125
- */
126
- grantCloseWithoutConfirmation(): DisposerFn;
127
- confirmClose(): void;
128
- cancelConfirmation(): void;
129
64
  }
130
- export {};
@@ -0,0 +1,2 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const hydrateServerMarkup: (element: ReactNode) => Promise<unknown[]>;
@@ -14,5 +14,8 @@ export declare const isVirtualKeyboardVisible: (layoutViewportHeight: number, vi
14
14
  * VisualViewport API. On iOS and Android the layout viewport stays while the
15
15
  * visual viewport shrinks by the keyboard height. Returns `false` where
16
16
  * VisualViewport is unavailable (SSR, very old browsers).
17
+ *
18
+ * Reading the viewport height forces a synchronous layout, so the hook neither
19
+ * reads nor listens while `isEnabled` is `false`, and returns `false` then.
17
20
  */
18
- export declare const useVirtualKeyboardVisible: () => boolean;
21
+ export declare const useVirtualKeyboardVisible: (isEnabled?: boolean) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/flow-react-components",
3
- "version": "1.6.0-next.4",
3
+ "version": "1.6.0-next.41",
4
4
  "type": "module",
5
5
  "description": "A React implementation of Flow, mittwald’s design system",
6
6
  "homepage": "https://flow.mittwald.de",
@@ -84,9 +84,9 @@
84
84
  "@internationalized/string-compiler": "^3.4.1",
85
85
  "@lezer/common": "^1.5.2",
86
86
  "@lezer/highlight": "^1.2.3",
87
- "@mittwald/flow-icons": "^1.6.0-next.4",
87
+ "@mittwald/flow-icons": "^1.6.0-next.41",
88
88
  "@mittwald/password-tools-js": "^3.0.0",
89
- "@mittwald/react-tunnel": "^1.6.0-next.4",
89
+ "@mittwald/react-tunnel": "^1.6.0-next.41",
90
90
  "@mittwald/react-use-promise": "^4.2.2",
91
91
  "@react-aria/form": "^3.2.1",
92
92
  "@react-aria/i18n": "^3.13.1",
@@ -139,13 +139,13 @@
139
139
  "@internationalized/date": "^3.12.3",
140
140
  "@lezer/generator": "^1.8.0",
141
141
  "@lezer/lr": "^1.4.10",
142
- "@mittwald/flow-components-base": "1.6.0-next.4",
143
- "@mittwald/flow-core": "1.6.0-next.4",
144
- "@mittwald/flow-design-tokens": "1.6.0-next.4",
145
- "@mittwald/flow-icons-base": "1.6.0-next.4",
142
+ "@mittwald/flow-components-base": "1.6.0-next.41",
143
+ "@mittwald/flow-core": "1.6.0-next.41",
144
+ "@mittwald/flow-design-tokens": "1.6.0-next.41",
145
+ "@mittwald/flow-icons-base": "1.6.0-next.41",
146
146
  "@mittwald/react-use-promise": "^4.2.2",
147
147
  "@mittwald/remote-dom-react": "1.2.2-mittwald.10",
148
- "@mittwald/typescript-config": "1.6.0-next.4",
148
+ "@mittwald/typescript-config": "1.6.0-next.41",
149
149
  "@nx/storybook": "^22.7.6",
150
150
  "@storybook/addon-a11y": "^10.5.10",
151
151
  "@storybook/addon-actions": "^9.0.8",
@@ -155,7 +155,7 @@
155
155
  "@storybook/react-vite": "^10.5.10",
156
156
  "@tabler/icons-react": "^3.46.0",
157
157
  "@teispace/next-themes": "^2.0.4",
158
- "@types/node": "25.9.8",
158
+ "@types/node": "25.9.9",
159
159
  "@typescript/native": "npm:typescript@^7.0.2",
160
160
  "@vitejs/plugin-react": "5.2.0",
161
161
  "@vitest/browser": "^4.1.11",
@@ -170,7 +170,7 @@
170
170
  "happy-dom": "^20.11.6",
171
171
  "next": "^16.3.2",
172
172
  "nx": "^22.7.5",
173
- "postcss": "8.5.28",
173
+ "postcss": "8.5.30",
174
174
  "postcss-nested-import": "^1.3.0",
175
175
  "postcss-nesting": "^14.0.1",
176
176
  "postcss-scss": "^4.0.9",
@@ -199,7 +199,7 @@
199
199
  },
200
200
  "peerDependencies": {
201
201
  "@internationalized/date": "^3.12.2",
202
- "@mittwald/flow-icons-pro": "1.6.0-next.4",
202
+ "@mittwald/flow-icons-pro": "1.6.0-next.41",
203
203
  "@mittwald/react-use-promise": "^4.2.2",
204
204
  "next": "^16.2.3",
205
205
  "react": "^19.2.0",
@@ -223,5 +223,5 @@
223
223
  "browserslist": [
224
224
  "baseline widely available"
225
225
  ],
226
- "gitHead": "1ad95068b7a0c3bed3bee7409698063c0699c101"
226
+ "gitHead": "378543eb9ed43c986c6cab0d629c490c0920700c"
227
227
  }