@mittwald/flow-react-components 1.5.0-next.9 → 1.5.0

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 (787) hide show
  1. package/AGENTS.md +152 -14
  2. package/MIGRATION.md +53 -0
  3. package/USAGE.md +7 -0
  4. package/dist/assets/component-index.json +1 -1
  5. package/dist/assets/doc-properties.json +1 -1
  6. package/dist/css/all-layered.css +1 -1
  7. package/dist/css/all.css +1 -1
  8. package/dist/js/_virtual/_23.locale.mjs +2 -2
  9. package/dist/js/_virtual/_32.locale.mjs +3 -9
  10. package/dist/js/_virtual/_33.locale.mjs +5 -7
  11. package/dist/js/_virtual/_34.locale.mjs +7 -13
  12. package/dist/js/_virtual/_35.locale.mjs +23 -0
  13. package/dist/js/default.mjs +6 -4
  14. package/dist/js/node_modules/.pnpm/@lezer_lr@1.4.10/node_modules/@lezer/lr/dist/index.mjs.map +1 -1
  15. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs +90 -57
  17. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs.map +1 -1
  18. package/dist/js/packages/components/src/components/Accordion/Accordion.module.mjs +7 -3
  19. package/dist/js/packages/components/src/components/Accordion/Accordion.module.mjs.map +1 -1
  20. package/dist/js/packages/components/src/components/AccordionGroup/AccordionGroup.mjs +68 -0
  21. package/dist/js/packages/components/src/components/AccordionGroup/AccordionGroup.mjs.map +1 -0
  22. package/dist/js/packages/components/src/components/AccordionGroup/AccordionGroup.module.mjs +15 -0
  23. package/dist/js/packages/components/src/components/AccordionGroup/AccordionGroup.module.mjs.map +1 -0
  24. package/dist/js/packages/components/src/components/AccordionGroup/context.mjs +10 -0
  25. package/dist/js/packages/components/src/components/AccordionGroup/context.mjs.map +1 -0
  26. package/dist/js/packages/components/src/components/AccordionGroup/lib/expansion.mjs +29 -0
  27. package/dist/js/packages/components/src/components/AccordionGroup/lib/expansion.mjs.map +1 -0
  28. package/dist/js/packages/components/src/components/Action/lib/ariaLive.mjs.map +1 -1
  29. package/dist/js/packages/components/src/components/Action/models/ActionState.mjs +8 -70
  30. package/dist/js/packages/components/src/components/Action/models/ActionState.mjs.map +1 -1
  31. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  32. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.module.mjs.map +1 -1
  33. package/dist/js/packages/components/src/components/Alert/Alert.mjs +3 -1
  34. package/dist/js/packages/components/src/components/Alert/Alert.mjs.map +1 -1
  35. package/dist/js/packages/components/src/components/Alert/Alert.module.mjs +4 -2
  36. package/dist/js/packages/components/src/components/Alert/Alert.module.mjs.map +1 -1
  37. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs +7 -4
  38. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
  39. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs +6 -2
  40. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs.map +1 -1
  41. package/dist/js/packages/components/src/components/AlertIcon/AlertIcon.mjs +10 -0
  42. package/dist/js/packages/components/src/components/AlertIcon/AlertIcon.mjs.map +1 -1
  43. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs +9 -2
  44. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs.map +1 -1
  45. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs +16 -8
  46. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
  47. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs +11 -2
  48. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs.map +1 -1
  49. package/dist/js/packages/components/src/components/Avatar/Avatar.module.mjs +6 -2
  50. package/dist/js/packages/components/src/components/Avatar/Avatar.module.mjs.map +1 -1
  51. package/dist/js/packages/components/src/components/AvatarStack/AvatarStack.mjs +1 -1
  52. package/dist/js/packages/components/src/components/AvatarStack/AvatarStack.mjs.map +1 -1
  53. package/dist/js/packages/components/src/components/Badge/Badge.mjs +6 -3
  54. package/dist/js/packages/components/src/components/Badge/Badge.mjs.map +1 -1
  55. package/dist/js/packages/components/src/components/Badge/Badge.module.mjs +6 -2
  56. package/dist/js/packages/components/src/components/Badge/Badge.module.mjs.map +1 -1
  57. package/dist/js/packages/components/src/components/BigNumber/BigNumber.mjs.map +1 -1
  58. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.mjs +3 -1
  59. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.mjs.map +1 -1
  60. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.module.mjs +3 -1
  61. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.module.mjs.map +1 -1
  62. package/dist/js/packages/components/src/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.mjs.map +1 -1
  63. package/dist/js/packages/components/src/components/Button/Button.mjs +10 -2
  64. package/dist/js/packages/components/src/components/Button/Button.mjs.map +1 -1
  65. package/dist/js/packages/components/src/components/Button/Button.module.mjs +6 -2
  66. package/dist/js/packages/components/src/components/Button/Button.module.mjs.map +1 -1
  67. package/dist/js/packages/components/src/components/Calendar/Calendar.mjs +7 -4
  68. package/dist/js/packages/components/src/components/Calendar/Calendar.mjs.map +1 -1
  69. package/dist/js/packages/components/src/components/Calendar/Calendar.module.mjs +6 -2
  70. package/dist/js/packages/components/src/components/Calendar/Calendar.module.mjs.map +1 -1
  71. package/dist/js/packages/components/src/components/Calendar/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
  72. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/RangeCalendar.mjs +5 -2
  73. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/RangeCalendar.mjs.map +1 -1
  74. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/helpers/useCalendarDateRangePresets.mjs +1 -1
  75. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/helpers/useCalendarDateRangePresets.mjs.map +1 -1
  76. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs +11 -0
  77. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  78. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.module.mjs +6 -2
  79. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.module.mjs.map +1 -1
  80. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs.map +1 -1
  81. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.mjs.map +1 -1
  82. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.mjs.map +1 -1
  83. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs +5 -1
  84. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
  85. package/dist/js/packages/components/src/components/Chat/Chat.mjs.map +1 -1
  86. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs +20 -5
  87. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
  88. package/dist/js/packages/components/src/components/Checkbox/Checkbox.module.mjs +6 -2
  89. package/dist/js/packages/components/src/components/Checkbox/Checkbox.module.mjs.map +1 -1
  90. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs +17 -12
  91. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
  92. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.module.mjs +3 -1
  93. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.module.mjs.map +1 -1
  94. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs +4 -3
  95. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  96. package/dist/js/packages/components/src/components/CoachMark/CoachMark.mjs.map +1 -1
  97. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs +8 -4
  98. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
  99. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.mjs +6 -2
  100. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.mjs.map +1 -1
  101. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +70 -39
  102. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
  103. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.mjs +8 -2
  104. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.mjs.map +1 -1
  105. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs +2 -2
  106. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs.map +1 -1
  107. package/dist/js/packages/components/src/components/CodeEditor/languages/dotEnv/index.mjs.map +1 -1
  108. package/dist/js/packages/components/src/components/CodeEditor/languages/index.mjs +2 -1
  109. package/dist/js/packages/components/src/components/CodeEditor/languages/index.mjs.map +1 -1
  110. package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs.map +1 -1
  111. package/dist/js/packages/components/src/components/Color/Color.mjs.map +1 -1
  112. package/dist/js/packages/components/src/components/ColumnLayout/ColumnLayout.mjs.map +1 -1
  113. package/dist/js/packages/components/src/components/Combine/Combine.mjs +1 -0
  114. package/dist/js/packages/components/src/components/Combine/Combine.mjs.map +1 -1
  115. package/dist/js/packages/components/src/components/Combine/Combine.module.mjs +4 -2
  116. package/dist/js/packages/components/src/components/Combine/Combine.module.mjs.map +1 -1
  117. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +4 -3
  118. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
  119. package/dist/js/packages/components/src/components/ComboBox/ComboBox.module.mjs +3 -1
  120. package/dist/js/packages/components/src/components/ComboBox/ComboBox.module.mjs.map +1 -1
  121. package/dist/js/packages/components/src/components/Content/Content.mjs +2 -1
  122. package/dist/js/packages/components/src/components/Content/Content.mjs.map +1 -1
  123. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
  124. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs.map +1 -1
  125. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.mjs.map +1 -1
  126. package/dist/js/packages/components/src/components/ContextualHelp/ContextualHelp.mjs.map +1 -1
  127. package/dist/js/packages/components/src/components/ContextualHelp/components/ContextualHelpTrigger/ContextualHelpTrigger.mjs.map +1 -1
  128. package/dist/js/packages/components/src/components/CopyButton/CopyButton.mjs.map +1 -1
  129. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs +4 -1
  130. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs.map +1 -1
  131. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.module.mjs +8 -2
  132. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.module.mjs.map +1 -1
  133. package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs.map +1 -1
  134. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs +7 -5
  135. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
  136. package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.mjs.map +1 -1
  137. package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.module.mjs +3 -1
  138. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +5 -3
  139. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
  140. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs.map +1 -1
  141. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.module.mjs +3 -1
  142. package/dist/js/packages/components/src/components/DonutChart/DonutChart.mjs +30 -16
  143. package/dist/js/packages/components/src/components/DonutChart/DonutChart.mjs.map +1 -1
  144. package/dist/js/packages/components/src/components/DonutChart/DonutChart.module.mjs +6 -2
  145. package/dist/js/packages/components/src/components/DonutChart/DonutChart.module.mjs.map +1 -1
  146. package/dist/js/packages/components/src/components/DonutChart/components/Donut.mjs +5 -2
  147. package/dist/js/packages/components/src/components/DonutChart/components/Donut.mjs.map +1 -1
  148. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartFill.mjs.map +1 -1
  149. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartLegend.mjs.map +1 -1
  150. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartValue.mjs +1 -1
  151. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartValue.mjs.map +1 -1
  152. package/dist/js/packages/components/src/components/EmulatedBoldText/EmulatedBoldText.mjs.map +1 -1
  153. package/dist/js/packages/components/src/components/FieldDescription/FieldDescription.mjs.map +1 -1
  154. package/dist/js/packages/components/src/components/FieldError/FieldError.mjs +43 -31
  155. package/dist/js/packages/components/src/components/FieldError/FieldError.mjs.map +1 -1
  156. package/dist/js/packages/components/src/components/FileCard/FileCard.mjs.map +1 -1
  157. package/dist/js/packages/components/src/components/FileCard/components/Avatar/Avatar.mjs.map +1 -1
  158. package/dist/js/packages/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs.map +1 -1
  159. package/dist/js/packages/components/src/components/FileCard/components/FileSizeText/FileSizeText.mjs.map +1 -1
  160. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs +14 -9
  161. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
  162. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.module.mjs +6 -2
  163. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.module.mjs.map +1 -1
  164. package/dist/js/packages/components/src/components/FileField/FileField.mjs +4 -3
  165. package/dist/js/packages/components/src/components/FileField/FileField.mjs.map +1 -1
  166. package/dist/js/packages/components/src/components/FileField/components/FileInput.mjs +2 -1
  167. package/dist/js/packages/components/src/components/FileField/components/FileInput.mjs.map +1 -1
  168. package/dist/js/packages/components/src/components/FileField/components/FileInput.module.mjs +3 -1
  169. package/dist/js/packages/components/src/components/FileField/components/FileInput.module.mjs.map +1 -1
  170. package/dist/js/packages/components/src/components/Flex/Flex.mjs.map +1 -1
  171. package/dist/js/packages/components/src/components/Header/Header.mjs.map +1 -1
  172. package/dist/js/packages/components/src/components/HeaderNavigation/HeaderNavigation.mjs +14 -5
  173. package/dist/js/packages/components/src/components/HeaderNavigation/HeaderNavigation.mjs.map +1 -1
  174. package/dist/js/packages/components/src/components/HeaderNavigation/HeaderNavigation.module.mjs.map +1 -1
  175. package/dist/js/packages/components/src/components/Heading/Heading.mjs +8 -1
  176. package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
  177. package/dist/js/packages/components/src/components/Icon/Icon.mjs +9 -0
  178. package/dist/js/packages/components/src/components/Icon/Icon.mjs.map +1 -1
  179. package/dist/js/packages/components/src/components/Icon/Icon.module.mjs +6 -2
  180. package/dist/js/packages/components/src/components/Icon/Icon.module.mjs.map +1 -1
  181. package/dist/js/packages/components/src/components/Icon/components/icons/IconAI.mjs.map +1 -1
  182. package/dist/js/packages/components/src/components/Icon/components/icons/IconAIHosting.mjs.map +1 -1
  183. package/dist/js/packages/components/src/components/Icon/components/icons/IconAnalytics.mjs.map +1 -1
  184. package/dist/js/packages/components/src/components/Icon/components/icons/IconApp.mjs.map +1 -1
  185. package/dist/js/packages/components/src/components/Icon/components/icons/IconAscending.mjs.map +1 -1
  186. package/dist/js/packages/components/src/components/Icon/components/icons/IconAttachment.mjs.map +1 -1
  187. package/dist/js/packages/components/src/components/Icon/components/icons/IconAutoresponder.mjs.map +1 -1
  188. package/dist/js/packages/components/src/components/Icon/components/icons/IconBackLink.mjs.map +1 -1
  189. package/dist/js/packages/components/src/components/Icon/components/icons/IconBackup.mjs.map +1 -1
  190. package/dist/js/packages/components/src/components/Icon/components/icons/IconBold.mjs.map +1 -1
  191. package/dist/js/packages/components/src/components/Icon/components/icons/IconCamera.mjs.map +1 -1
  192. package/dist/js/packages/components/src/components/Icon/components/icons/IconCertificate.mjs.map +1 -1
  193. package/dist/js/packages/components/src/components/Icon/components/icons/IconChangelog.mjs.map +1 -1
  194. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheck.mjs.map +1 -1
  195. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxChecked.mjs.map +1 -1
  196. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxEmpty.mjs.map +1 -1
  197. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxIndeterminate.mjs.map +1 -1
  198. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronDown.mjs.map +1 -1
  199. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronLeft.mjs.map +1 -1
  200. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronRight.mjs.map +1 -1
  201. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronUp.mjs.map +1 -1
  202. package/dist/js/packages/components/src/components/Icon/components/icons/IconClose.mjs.map +1 -1
  203. package/dist/js/packages/components/src/components/Icon/components/icons/IconCode.mjs.map +1 -1
  204. package/dist/js/packages/components/src/components/Icon/components/icons/IconContainer.mjs.map +1 -1
  205. package/dist/js/packages/components/src/components/Icon/components/icons/IconContextMenu.mjs.map +1 -1
  206. package/dist/js/packages/components/src/components/Icon/components/icons/IconContextMenuVertical.mjs.map +1 -1
  207. package/dist/js/packages/components/src/components/Icon/components/icons/IconContract.mjs.map +1 -1
  208. package/dist/js/packages/components/src/components/Icon/components/icons/IconContractPartner.mjs.map +1 -1
  209. package/dist/js/packages/components/src/components/Icon/components/icons/IconContributor.mjs.map +1 -1
  210. package/dist/js/packages/components/src/components/Icon/components/icons/IconCopy.mjs.map +1 -1
  211. package/dist/js/packages/components/src/components/Icon/components/icons/IconCronjob.mjs.map +1 -1
  212. package/dist/js/packages/components/src/components/Icon/components/icons/IconCustomer.mjs.map +1 -1
  213. package/dist/js/packages/components/src/components/Icon/components/icons/IconDanger.mjs.map +1 -1
  214. package/dist/js/packages/components/src/components/Icon/components/icons/IconDashboard.mjs.map +1 -1
  215. package/dist/js/packages/components/src/components/Icon/components/icons/IconDatabase.mjs.map +1 -1
  216. package/dist/js/packages/components/src/components/Icon/components/icons/IconDate.mjs.map +1 -1
  217. package/dist/js/packages/components/src/components/Icon/components/icons/IconDelete.mjs.map +1 -1
  218. package/dist/js/packages/components/src/components/Icon/components/icons/IconDeliveryBox.mjs.map +1 -1
  219. package/dist/js/packages/components/src/components/Icon/components/icons/IconDescending.mjs.map +1 -1
  220. package/dist/js/packages/components/src/components/Icon/components/icons/IconDesktop.mjs.map +1 -1
  221. package/dist/js/packages/components/src/components/Icon/components/icons/IconDirectory.mjs.map +1 -1
  222. package/dist/js/packages/components/src/components/Icon/components/icons/IconDnsSubZone.mjs.map +1 -1
  223. package/dist/js/packages/components/src/components/Icon/components/icons/IconDnsZone.mjs.map +1 -1
  224. package/dist/js/packages/components/src/components/Icon/components/icons/IconDomain.mjs.map +1 -1
  225. package/dist/js/packages/components/src/components/Icon/components/icons/IconDownload.mjs.map +1 -1
  226. package/dist/js/packages/components/src/components/Icon/components/icons/IconEdit.mjs.map +1 -1
  227. package/dist/js/packages/components/src/components/Icon/components/icons/IconEmail.mjs.map +1 -1
  228. package/dist/js/packages/components/src/components/Icon/components/icons/IconEmailArchive.mjs.map +1 -1
  229. package/dist/js/packages/components/src/components/Icon/components/icons/IconExtension.mjs.map +1 -1
  230. package/dist/js/packages/components/src/components/Icon/components/icons/IconExternalLink.mjs.map +1 -1
  231. package/dist/js/packages/components/src/components/Icon/components/icons/IconFailed.mjs.map +1 -1
  232. package/dist/js/packages/components/src/components/Icon/components/icons/IconFeedback.mjs.map +1 -1
  233. package/dist/js/packages/components/src/components/Icon/components/icons/IconFile.mjs.map +1 -1
  234. package/dist/js/packages/components/src/components/Icon/components/icons/IconFilter.mjs.map +1 -1
  235. package/dist/js/packages/components/src/components/Icon/components/icons/IconForwardAddress.mjs.map +1 -1
  236. package/dist/js/packages/components/src/components/Icon/components/icons/IconForwardLink.mjs.map +1 -1
  237. package/dist/js/packages/components/src/components/Icon/components/icons/IconHide.mjs.map +1 -1
  238. package/dist/js/packages/components/src/components/Icon/components/icons/IconHome.mjs.map +1 -1
  239. package/dist/js/packages/components/src/components/Icon/components/icons/IconImage.mjs.map +1 -1
  240. package/dist/js/packages/components/src/components/Icon/components/icons/IconInfo.mjs.map +1 -1
  241. package/dist/js/packages/components/src/components/Icon/components/icons/IconInvite.mjs.map +1 -1
  242. package/dist/js/packages/components/src/components/Icon/components/icons/IconInvoice.mjs.map +1 -1
  243. package/dist/js/packages/components/src/components/Icon/components/icons/IconItalic.mjs.map +1 -1
  244. package/dist/js/packages/components/src/components/Icon/components/icons/IconKnowledgeHint.mjs.map +1 -1
  245. package/dist/js/packages/components/src/components/Icon/components/icons/IconLanguage.mjs.map +1 -1
  246. package/dist/js/packages/components/src/components/Icon/components/icons/IconLeadFyndr.mjs.map +1 -1
  247. package/dist/js/packages/components/src/components/Icon/components/icons/IconLink.mjs.map +1 -1
  248. package/dist/js/packages/components/src/components/Icon/components/icons/IconLock.mjs.map +1 -1
  249. package/dist/js/packages/components/src/components/Icon/components/icons/IconLockOpen.mjs.map +1 -1
  250. package/dist/js/packages/components/src/components/Icon/components/icons/IconLogout.mjs.map +1 -1
  251. package/dist/js/packages/components/src/components/Icon/components/icons/IconMainUser.mjs.map +1 -1
  252. package/dist/js/packages/components/src/components/Icon/components/icons/IconMarketplace.mjs.map +1 -1
  253. package/dist/js/packages/components/src/components/Icon/components/icons/IconMaximize.mjs.map +1 -1
  254. package/dist/js/packages/components/src/components/Icon/components/icons/IconMember.mjs.map +1 -1
  255. package/dist/js/packages/components/src/components/Icon/components/icons/IconMenu.mjs.map +1 -1
  256. package/dist/js/packages/components/src/components/Icon/components/icons/IconMinimize.mjs.map +1 -1
  257. package/dist/js/packages/components/src/components/Icon/components/icons/IconMinus.mjs.map +1 -1
  258. package/dist/js/packages/components/src/components/Icon/components/icons/IconMittwald.mjs.map +1 -1
  259. package/dist/js/packages/components/src/components/Icon/components/icons/IconMobile.mjs.map +1 -1
  260. package/dist/js/packages/components/src/components/Icon/components/icons/IconMonitoring.mjs.map +1 -1
  261. package/dist/js/packages/components/src/components/Icon/components/icons/IconMove.mjs.map +1 -1
  262. package/dist/js/packages/components/src/components/Icon/components/icons/IconNewsletter.mjs.map +1 -1
  263. package/dist/js/packages/components/src/components/Icon/components/icons/IconNotification.mjs.map +1 -1
  264. package/dist/js/packages/components/src/components/Icon/components/icons/IconNumber.mjs.map +1 -1
  265. package/dist/js/packages/components/src/components/Icon/components/icons/IconOrder.mjs.map +1 -1
  266. package/dist/js/packages/components/src/components/Icon/components/icons/IconOrderedList.mjs.map +1 -1
  267. package/dist/js/packages/components/src/components/Icon/components/icons/IconPassword.mjs.map +1 -1
  268. package/dist/js/packages/components/src/components/Icon/components/icons/IconPath.mjs.map +1 -1
  269. package/dist/js/packages/components/src/components/Icon/components/icons/IconPause.mjs.map +1 -1
  270. package/dist/js/packages/components/src/components/Icon/components/icons/IconPayment.mjs.map +1 -1
  271. package/dist/js/packages/components/src/components/Icon/components/icons/IconPending.mjs.map +1 -1
  272. package/dist/js/packages/components/src/components/Icon/components/icons/IconPicture.mjs.map +1 -1
  273. package/dist/js/packages/components/src/components/Icon/components/icons/IconPlus.mjs.map +1 -1
  274. package/dist/js/packages/components/src/components/Icon/components/icons/IconProject.mjs.map +1 -1
  275. package/dist/js/packages/components/src/components/Icon/components/icons/IconQuote.mjs.map +1 -1
  276. package/dist/js/packages/components/src/components/Icon/components/icons/IconRadioOff.mjs.map +1 -1
  277. package/dist/js/packages/components/src/components/Icon/components/icons/IconRadioOn.mjs.map +1 -1
  278. package/dist/js/packages/components/src/components/Icon/components/icons/IconRedo.mjs.map +1 -1
  279. package/dist/js/packages/components/src/components/Icon/components/icons/IconRefresh.mjs.map +1 -1
  280. package/dist/js/packages/components/src/components/Icon/components/icons/IconRegistry.mjs.map +1 -1
  281. package/dist/js/packages/components/src/components/Icon/components/icons/IconSave.mjs.map +1 -1
  282. package/dist/js/packages/components/src/components/Icon/components/icons/IconSearch.mjs.map +1 -1
  283. package/dist/js/packages/components/src/components/Icon/components/icons/IconSecurity.mjs.map +1 -1
  284. package/dist/js/packages/components/src/components/Icon/components/icons/IconSend.mjs.map +1 -1
  285. package/dist/js/packages/components/src/components/Icon/components/icons/IconServer.mjs.map +1 -1
  286. package/dist/js/packages/components/src/components/Icon/components/icons/IconSettings.mjs.map +1 -1
  287. package/dist/js/packages/components/src/components/Icon/components/icons/IconShare.mjs.map +1 -1
  288. package/dist/js/packages/components/src/components/Icon/components/icons/IconShow.mjs.map +1 -1
  289. package/dist/js/packages/components/src/components/Icon/components/icons/IconSorting.mjs.map +1 -1
  290. package/dist/js/packages/components/src/components/Icon/components/icons/IconSsh.mjs.map +1 -1
  291. package/dist/js/packages/components/src/components/Icon/components/icons/IconSshKey.mjs.map +1 -1
  292. package/dist/js/packages/components/src/components/Icon/components/icons/IconSshSftp.mjs.map +1 -1
  293. package/dist/js/packages/components/src/components/Icon/components/icons/IconStack.mjs.map +1 -1
  294. package/dist/js/packages/components/src/components/Icon/components/icons/IconStar.mjs.map +1 -1
  295. package/dist/js/packages/components/src/components/Icon/components/icons/IconStarFilled.mjs.map +1 -1
  296. package/dist/js/packages/components/src/components/Icon/components/icons/IconStart.mjs.map +1 -1
  297. package/dist/js/packages/components/src/components/Icon/components/icons/IconStrikeThrough.mjs.map +1 -1
  298. package/dist/js/packages/components/src/components/Icon/components/icons/IconSubdomain.mjs.map +1 -1
  299. package/dist/js/packages/components/src/components/Icon/components/icons/IconSucceeded.mjs.map +1 -1
  300. package/dist/js/packages/components/src/components/Icon/components/icons/IconSuccess.mjs.map +1 -1
  301. package/dist/js/packages/components/src/components/Icon/components/icons/IconSupport.mjs.map +1 -1
  302. package/dist/js/packages/components/src/components/Icon/components/icons/IconTerminate.mjs.map +1 -1
  303. package/dist/js/packages/components/src/components/Icon/components/icons/IconTicket.mjs.map +1 -1
  304. package/dist/js/packages/components/src/components/Icon/components/icons/IconTime.mjs.map +1 -1
  305. package/dist/js/packages/components/src/components/Icon/components/icons/IconUnavailable.mjs.map +1 -1
  306. package/dist/js/packages/components/src/components/Icon/components/icons/IconUndo.mjs.map +1 -1
  307. package/dist/js/packages/components/src/components/Icon/components/icons/IconUnorderedList.mjs.map +1 -1
  308. package/dist/js/packages/components/src/components/Icon/components/icons/IconUpload.mjs.map +1 -1
  309. package/dist/js/packages/components/src/components/Icon/components/icons/IconUser.mjs.map +1 -1
  310. package/dist/js/packages/components/src/components/Icon/components/icons/IconVhost.mjs.map +1 -1
  311. package/dist/js/packages/components/src/components/Icon/components/icons/IconView.mjs.map +1 -1
  312. package/dist/js/packages/components/src/components/Icon/components/icons/IconVolume.mjs.map +1 -1
  313. package/dist/js/packages/components/src/components/Icon/components/icons/IconWarning.mjs.map +1 -1
  314. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  315. package/dist/js/packages/components/src/components/Image/Image.mjs +23 -0
  316. package/dist/js/packages/components/src/components/Image/Image.mjs.map +1 -1
  317. package/dist/js/packages/components/src/components/Image/Image.module.mjs +6 -2
  318. package/dist/js/packages/components/src/components/Image/Image.module.mjs.map +1 -1
  319. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.mjs +27 -22
  320. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.mjs.map +1 -1
  321. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.module.mjs +6 -2
  322. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.module.mjs.map +1 -1
  323. package/dist/js/packages/components/src/components/Initials/Initials.mjs +4 -1
  324. package/dist/js/packages/components/src/components/Initials/Initials.mjs.map +1 -1
  325. package/dist/js/packages/components/src/components/Initials/Initials.module.mjs +8 -2
  326. package/dist/js/packages/components/src/components/Initials/Initials.module.mjs.map +1 -1
  327. package/dist/js/packages/components/src/components/Initials/lib/getColorFromInitials.mjs.map +1 -1
  328. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs +8 -1
  329. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs.map +1 -1
  330. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs +4 -1
  331. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs.map +1 -1
  332. package/dist/js/packages/components/src/components/Kbd/Kbd.module.mjs +6 -2
  333. package/dist/js/packages/components/src/components/Kbd/Kbd.module.mjs.map +1 -1
  334. package/dist/js/packages/components/src/components/Label/Label.mjs +9 -2
  335. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  336. package/dist/js/packages/components/src/components/LabeledValue/LabeledValue.mjs.map +1 -1
  337. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.mjs +2 -1
  338. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.mjs.map +1 -1
  339. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.module.mjs +3 -1
  340. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.module.mjs.map +1 -1
  341. package/dist/js/packages/components/src/components/Legend/Legend.mjs.map +1 -1
  342. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.mjs +5 -2
  343. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.mjs.map +1 -1
  344. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.module.mjs +6 -2
  345. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.module.mjs.map +1 -1
  346. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs.map +1 -1
  347. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/Controls.mjs.map +1 -1
  348. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/LightBoxGallery.mjs.map +1 -1
  349. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/LightBoxGallery.module.mjs.map +1 -1
  350. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.mjs.map +1 -1
  351. package/dist/js/packages/components/src/components/Link/Link.mjs +34 -14
  352. package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
  353. package/dist/js/packages/components/src/components/Link/components/LinkIcon/LinkIcon.mjs.map +1 -1
  354. package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
  355. package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoaderSuspense.mjs.map +1 -1
  356. package/dist/js/packages/components/src/components/List/components/EmptySearchResultView/EmptySearchResultView.mjs.map +1 -1
  357. package/dist/js/packages/components/src/components/List/components/EmptyView/EmptyView.mjs.map +1 -1
  358. package/dist/js/packages/components/src/components/List/components/Footer/Footer.mjs.map +1 -1
  359. package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs.map +1 -1
  360. package/dist/js/packages/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs.map +1 -1
  361. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs.map +1 -1
  362. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +1 -1
  363. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  364. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +2 -1
  365. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
  366. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.mjs +4 -1
  367. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.mjs.map +1 -1
  368. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.mjs.map +1 -1
  369. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs.map +1 -1
  370. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.mjs.map +1 -1
  371. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs +4 -1
  372. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs.map +1 -1
  373. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs +4 -1
  374. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs.map +1 -1
  375. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs.map +1 -1
  376. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs.map +1 -1
  377. package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
  378. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.mjs.map +1 -1
  379. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs.map +1 -1
  380. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs.map +1 -1
  381. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
  382. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
  383. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs.map +1 -1
  384. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs.map +1 -1
  385. package/dist/js/packages/components/src/components/List/components/Items/views/GridListItem/GridListItem.mjs.map +1 -1
  386. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
  387. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.module.mjs.map +1 -1
  388. package/dist/js/packages/components/src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.mjs.map +1 -1
  389. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
  390. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
  391. package/dist/js/packages/components/src/components/List/components/Table/components/TableBodyLoadingView.mjs.map +1 -1
  392. package/dist/js/packages/components/src/components/List/components/Table/components/TableRowSkeletonView.mjs.map +1 -1
  393. package/dist/js/packages/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
  394. package/dist/js/packages/components/src/components/List/model/List.mjs +15 -4
  395. package/dist/js/packages/components/src/components/List/model/List.mjs.map +1 -1
  396. package/dist/js/packages/components/src/components/List/model/ListSettingsStore.mjs.map +1 -1
  397. package/dist/js/packages/components/src/components/List/model/ListViewMode.mjs +35 -23
  398. package/dist/js/packages/components/src/components/List/model/ListViewMode.mjs.map +1 -1
  399. package/dist/js/packages/components/src/components/List/model/ReactTable.mjs +16 -10
  400. package/dist/js/packages/components/src/components/List/model/ReactTable.mjs.map +1 -1
  401. package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs +25 -13
  402. package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs.map +1 -1
  403. package/dist/js/packages/components/src/components/List/model/filter/Filter.mjs +20 -181
  404. package/dist/js/packages/components/src/components/List/model/filter/Filter.mjs.map +1 -1
  405. package/dist/js/packages/components/src/components/List/model/item/ItemCollection.mjs +11 -7
  406. package/dist/js/packages/components/src/components/List/model/item/ItemCollection.mjs.map +1 -1
  407. package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs +10 -13
  408. package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoader.mjs.map +1 -1
  409. package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs +13 -61
  410. package/dist/js/packages/components/src/components/List/model/loading/IncrementalLoaderState.mjs.map +1 -1
  411. package/dist/js/packages/components/src/components/List/model/search/Search.mjs +19 -47
  412. package/dist/js/packages/components/src/components/List/model/search/Search.mjs.map +1 -1
  413. package/dist/js/packages/components/src/components/List/model/sorting/Sorting.mjs +15 -54
  414. package/dist/js/packages/components/src/components/List/model/sorting/Sorting.mjs.map +1 -1
  415. package/dist/js/packages/components/src/components/List/model/sorting/SortingFunctions.mjs.map +1 -1
  416. package/dist/js/packages/components/src/components/List/views/EmptyView/EmptyView.mjs.map +1 -1
  417. package/dist/js/packages/components/src/components/List/views/EmptyViewContainer/EmptyViewContainer.mjs.map +1 -1
  418. package/dist/js/packages/components/src/components/LoadingSpinner/LoadingSpinner.mjs +7 -0
  419. package/dist/js/packages/components/src/components/LoadingSpinner/LoadingSpinner.mjs.map +1 -1
  420. package/dist/js/packages/components/src/components/Markdown/Markdown.mjs +19 -3
  421. package/dist/js/packages/components/src/components/Markdown/Markdown.mjs.map +1 -1
  422. package/dist/js/packages/components/src/components/Markdown/Markdown.module.mjs +6 -2
  423. package/dist/js/packages/components/src/components/Markdown/Markdown.module.mjs.map +1 -1
  424. package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs +82 -0
  425. package/dist/js/packages/components/src/components/Markdown/components/SkeletonBlocks.mjs.map +1 -0
  426. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs +9 -6
  427. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  428. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.module.mjs +8 -2
  429. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.module.mjs.map +1 -1
  430. package/dist/js/packages/components/src/components/MarkdownEditor/components/AttachmentButton.mjs.map +1 -1
  431. package/dist/js/packages/components/src/components/MarkdownEditor/components/ModeButton.mjs.map +1 -1
  432. package/dist/js/packages/components/src/components/MarkdownEditor/components/Toolbar.mjs.map +1 -1
  433. package/dist/js/packages/components/src/components/MarkdownEditor/components/ToolbarButton.mjs.map +1 -1
  434. package/dist/js/packages/components/src/components/MarkdownEditor/lib/useFileUpload.mjs.map +1 -1
  435. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
  436. package/dist/js/packages/components/src/components/MenuItem/components/MenuItemContent/MenuItemContent.mjs.map +1 -1
  437. package/dist/js/packages/components/src/components/Message/Message.mjs +2 -1
  438. package/dist/js/packages/components/src/components/Message/Message.mjs.map +1 -1
  439. package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs.map +1 -1
  440. package/dist/js/packages/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs.map +1 -1
  441. package/dist/js/packages/components/src/components/Modal/Modal.mjs.map +1 -1
  442. package/dist/js/packages/components/src/components/Modal/Modal.module.mjs +2 -0
  443. package/dist/js/packages/components/src/components/Modal/Modal.module.mjs.map +1 -1
  444. package/dist/js/packages/components/src/components/Modal/components/ConfirmUnsavedChangesModal/ConfirmUnsavedChangesModal.mjs.map +1 -1
  445. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs +8 -1
  446. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs.map +1 -1
  447. package/dist/js/packages/components/src/components/Navigation/Navigation.module.mjs.map +1 -1
  448. package/dist/js/packages/components/src/components/Navigation/components/LinkListTunnelExit/LinkListTunnelExit.mjs.map +1 -1
  449. package/dist/js/packages/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs.map +1 -1
  450. package/dist/js/packages/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.module.mjs.map +1 -1
  451. package/dist/js/packages/components/src/components/Notification/Notification.mjs +19 -11
  452. package/dist/js/packages/components/src/components/Notification/Notification.mjs.map +1 -1
  453. package/dist/js/packages/components/src/components/Notification/Notification.module.mjs +4 -2
  454. package/dist/js/packages/components/src/components/Notification/Notification.module.mjs.map +1 -1
  455. package/dist/js/packages/components/src/components/NotificationProvider/NotificationContainer/NotificationContainer.mjs +1 -1
  456. package/dist/js/packages/components/src/components/NotificationProvider/NotificationContainer/NotificationContainer.mjs.map +1 -1
  457. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs +18 -7
  458. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs.map +1 -1
  459. package/dist/js/packages/components/src/components/NumberField/NumberField.module.mjs +12 -2
  460. package/dist/js/packages/components/src/components/NumberField/NumberField.module.mjs.map +1 -1
  461. package/dist/js/packages/components/src/components/NumberField/components/NumberFieldUnit.mjs +36 -0
  462. package/dist/js/packages/components/src/components/NumberField/components/NumberFieldUnit.mjs.map +1 -0
  463. package/dist/js/packages/components/src/components/Option/Option.mjs.map +1 -1
  464. package/dist/js/packages/components/src/components/Options/Options.mjs.map +1 -1
  465. package/dist/js/packages/components/src/components/Overlay/Overlay.mjs.map +1 -1
  466. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs +7 -2
  467. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs.map +1 -1
  468. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +53 -24
  469. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
  470. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.module.mjs +3 -1
  471. package/dist/js/packages/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs +2 -2
  472. package/dist/js/packages/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs.map +1 -1
  473. package/dist/js/packages/components/src/components/PasswordCreationField/components/PasswordGenerateButton/PasswordGenerateButton.mjs.map +1 -1
  474. package/dist/js/packages/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs.map +1 -1
  475. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.mjs.map +1 -1
  476. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultEntry/ValidationResultEntry.mjs.map +1 -1
  477. package/dist/js/packages/components/src/components/PasswordCreationField/lib/ariaAnnounce.mjs.map +1 -1
  478. package/dist/js/packages/components/src/components/PasswordCreationField/lib/usePolicyValidationResult.mjs +19 -0
  479. package/dist/js/packages/components/src/components/PasswordCreationField/lib/usePolicyValidationResult.mjs.map +1 -1
  480. package/dist/js/packages/components/src/components/Popover/Popover.mjs.map +1 -1
  481. package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs.map +1 -1
  482. package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs.map +1 -1
  483. package/dist/js/packages/components/src/components/Popover/components/PopoverTip/PopoverTip.mjs.map +1 -1
  484. package/dist/js/packages/components/src/components/Popover/viewportPadding.mjs.map +1 -1
  485. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs +4 -1
  486. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
  487. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.module.mjs +6 -2
  488. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.module.mjs.map +1 -1
  489. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarBar.mjs +2 -0
  490. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarBar.mjs.map +1 -1
  491. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
  492. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarValue.mjs.map +1 -1
  493. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs +4 -2
  494. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
  495. package/dist/js/packages/components/src/components/RadioGroup/components/Radio/Radio.mjs +14 -1
  496. package/dist/js/packages/components/src/components/RadioGroup/components/Radio/Radio.mjs.map +1 -1
  497. package/dist/js/packages/components/src/components/RadioGroup/components/Radio/Radio.module.mjs +6 -2
  498. package/dist/js/packages/components/src/components/RadioGroup/components/Radio/Radio.module.mjs.map +1 -1
  499. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.mjs +4 -1
  500. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.mjs.map +1 -1
  501. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.module.mjs +3 -1
  502. package/dist/js/packages/components/src/components/Rating/Rating.mjs +8 -4
  503. package/dist/js/packages/components/src/components/Rating/Rating.mjs.map +1 -1
  504. package/dist/js/packages/components/src/components/Rating/Rating.module.mjs +6 -2
  505. package/dist/js/packages/components/src/components/Rating/Rating.module.mjs.map +1 -1
  506. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/EmptySegment.mjs.map +1 -1
  507. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/FilledSegment.mjs.map +1 -1
  508. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/RatingSegment.mjs.map +1 -1
  509. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +4 -3
  510. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs.map +1 -1
  511. package/dist/js/packages/components/src/components/SearchField/SearchField.module.mjs +3 -1
  512. package/dist/js/packages/components/src/components/SearchField/SearchField.module.mjs.map +1 -1
  513. package/dist/js/packages/components/src/components/Section/Section.mjs.map +1 -1
  514. package/dist/js/packages/components/src/components/Section/Section.module.mjs.map +1 -1
  515. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
  516. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +4 -2
  517. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  518. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.module.mjs +3 -1
  519. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.module.mjs.map +1 -1
  520. package/dist/js/packages/components/src/components/SegmentedControl/components/Segment/Segment.mjs.map +1 -1
  521. package/dist/js/packages/components/src/components/SegmentedControl/components/Segment/Segment.module.mjs +3 -1
  522. package/dist/js/packages/components/src/components/Select/Select.mjs +4 -3
  523. package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
  524. package/dist/js/packages/components/src/components/Select/Select.module.mjs +3 -1
  525. package/dist/js/packages/components/src/components/Select/Select.module.mjs.map +1 -1
  526. package/dist/js/packages/components/src/components/Separator/Separator.mjs.map +1 -1
  527. package/dist/js/packages/components/src/components/Skeleton/Skeleton.mjs.map +1 -1
  528. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs +3 -3
  529. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs.map +1 -1
  530. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs +35 -0
  531. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs.map +1 -0
  532. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.mjs +24 -0
  533. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.mjs.map +1 -0
  534. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.module.mjs +13 -0
  535. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.module.mjs.map +1 -0
  536. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs +25 -0
  537. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs.map +1 -0
  538. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs +29 -0
  539. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs.map +1 -0
  540. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs +13 -0
  541. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs.map +1 -0
  542. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs +11 -0
  543. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs.map +1 -0
  544. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs +19 -0
  545. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs.map +1 -0
  546. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs +27 -0
  547. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs.map +1 -0
  548. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs.map +1 -1
  549. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs +3 -3
  550. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs.map +1 -1
  551. package/dist/js/packages/components/src/components/Slider/Slider.mjs +13 -4
  552. package/dist/js/packages/components/src/components/Slider/Slider.mjs.map +1 -1
  553. package/dist/js/packages/components/src/components/Slider/Slider.module.mjs +3 -1
  554. package/dist/js/packages/components/src/components/Slider/Slider.module.mjs.map +1 -1
  555. package/dist/js/packages/components/src/components/Switch/Switch.mjs +7 -4
  556. package/dist/js/packages/components/src/components/Switch/Switch.mjs.map +1 -1
  557. package/dist/js/packages/components/src/components/Switch/Switch.module.mjs +3 -1
  558. package/dist/js/packages/components/src/components/Switch/Switch.module.mjs.map +1 -1
  559. package/dist/js/packages/components/src/components/TabNavigation/TabNavigation.mjs +3 -0
  560. package/dist/js/packages/components/src/components/TabNavigation/TabNavigation.mjs.map +1 -1
  561. package/dist/js/packages/components/src/components/TabNavigation/components/LinkContent/LinkContent.mjs.map +1 -1
  562. package/dist/js/packages/components/src/components/Table/Table.mjs.map +1 -1
  563. package/dist/js/packages/components/src/components/Table/components/TableBody/TableBody.mjs.map +1 -1
  564. package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs +2 -1
  565. package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs.map +1 -1
  566. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs +2 -1
  567. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
  568. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
  569. package/dist/js/packages/components/src/components/Table/components/TableRow/TableRow.mjs.map +1 -1
  570. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs +1 -1
  571. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs.map +1 -1
  572. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs +1 -1
  573. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs.map +1 -1
  574. package/dist/js/packages/components/src/components/Tabs/components/Tab/Tab.mjs.map +1 -1
  575. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs +5 -1
  576. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs.map +1 -1
  577. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs +3 -1
  578. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs.map +1 -1
  579. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs +3 -1
  580. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs.map +1 -1
  581. package/dist/js/packages/components/src/components/Text/Text.mjs +9 -2
  582. package/dist/js/packages/components/src/components/Text/Text.mjs.map +1 -1
  583. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs +4 -3
  584. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs.map +1 -1
  585. package/dist/js/packages/components/src/components/TextArea/TextArea.module.mjs +3 -1
  586. package/dist/js/packages/components/src/components/TextField/TextField.mjs +5 -4
  587. package/dist/js/packages/components/src/components/TextField/TextField.mjs.map +1 -1
  588. package/dist/js/packages/components/src/components/TextField/TextField.module.mjs +3 -1
  589. package/dist/js/packages/components/src/components/TextField/TextField.module.mjs.map +1 -1
  590. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs +6 -3
  591. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs.map +1 -1
  592. package/dist/js/packages/components/src/components/TimeField/TimeField.module.mjs +3 -1
  593. package/dist/js/packages/components/src/components/Tooltip/Tooltip.mjs.map +1 -1
  594. package/dist/js/packages/components/src/components/Truncate/Truncate.mjs.map +1 -1
  595. package/dist/js/packages/components/src/components/TunnelEntry/TunnelEntry.mjs.map +1 -1
  596. package/dist/js/packages/components/src/components/propTypes/index.mjs +1 -0
  597. package/dist/js/packages/components/src/components/propTypes/index.mjs.map +1 -1
  598. package/dist/js/packages/components/src/integrations/nextjs/components/RouterProvider/RouterProvider.mjs.map +1 -1
  599. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +4 -2
  600. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs.map +1 -1
  601. package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
  602. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormAction/FormAction.mjs.map +1 -1
  603. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormRootError/FormRootError.mjs.map +1 -1
  604. package/dist/js/packages/components/src/lib/hooks/fieldErrorRenderedContext.mjs +16 -0
  605. package/dist/js/packages/components/src/lib/hooks/fieldErrorRenderedContext.mjs.map +1 -0
  606. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs +14 -7
  607. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs.map +1 -1
  608. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs +34 -21
  609. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs.map +1 -1
  610. package/dist/js/packages/components/src/lib/propsContext/nestedPropsContext/types.mjs.map +1 -1
  611. package/dist/js/packages/components/src/lib/propsContext/overlayTriggerTunnel.mjs.map +1 -1
  612. package/dist/js/packages/components/src/lib/react/cloneElement.mjs.map +1 -1
  613. package/dist/js/packages/components/src/lib/react/components/Render/Render.mjs.map +1 -1
  614. package/dist/js/packages/components/src/lib/react/getPropsMerger.mjs.map +1 -1
  615. package/dist/js/packages/components/src/lib/remote/eventHandlerContext.mjs +3 -1
  616. package/dist/js/packages/components/src/lib/remote/eventHandlerContext.mjs.map +1 -1
  617. package/dist/js/packages/components/src/lib/theming/hooks/useDesignTokens.mjs.map +1 -1
  618. package/dist/js/packages/components/src/lib/tokens/CategoricalColors.mjs.map +1 -1
  619. package/dist/js/packages/components/src/lib/tokens/isCategoricalColor.mjs.map +1 -1
  620. package/dist/js/packages/components/src/lib/types/props.mjs.map +1 -1
  621. package/dist/js/packages/components/src/status/component-status.mjs +8 -0
  622. package/dist/js/packages/components/src/status/component-status.mjs.map +1 -1
  623. package/dist/js/packages/components/src/status/componentStatus.mjs.map +1 -1
  624. package/dist/js/packages/components/src/views/AccordionGroupView.mjs +16 -0
  625. package/dist/js/packages/components/src/views/AccordionGroupView.mjs.map +1 -0
  626. package/dist/js/packages/components-base/src/action/ActionState.mjs +87 -0
  627. package/dist/js/packages/components-base/src/action/ActionState.mjs.map +1 -0
  628. package/dist/js/packages/components-base/src/index.mjs +18 -0
  629. package/dist/js/packages/components-base/src/lib/array.mjs +9 -0
  630. package/dist/js/packages/components-base/src/lib/array.mjs.map +1 -0
  631. package/dist/js/packages/components-base/src/list/ListModelContext.mjs +19 -0
  632. package/dist/js/packages/components-base/src/list/ListModelContext.mjs.map +1 -0
  633. package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs +29 -0
  634. package/dist/js/packages/components-base/src/list/filter/ListDateRangeFilter.mjs.map +1 -0
  635. package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs +229 -0
  636. package/dist/js/packages/components-base/src/list/filter/ListFilter.mjs.map +1 -0
  637. package/dist/js/packages/components-base/src/list/filter/ListFilterValue.mjs +51 -0
  638. package/dist/js/packages/components-base/src/list/filter/ListFilterValue.mjs.map +1 -0
  639. package/dist/js/packages/components-base/src/list/filter/dateRange.mjs +51 -0
  640. package/dist/js/packages/components-base/src/list/filter/dateRange.mjs.map +1 -0
  641. package/dist/js/packages/components-base/src/list/item/ListItem.mjs +21 -0
  642. package/dist/js/packages/components-base/src/list/item/ListItem.mjs.map +1 -0
  643. package/dist/js/packages/components-base/src/list/item/ListItemCollection.mjs +24 -0
  644. package/dist/js/packages/components-base/src/list/item/ListItemCollection.mjs.map +1 -0
  645. package/dist/js/packages/components-base/src/list/loading/ListLoaderState.mjs +86 -0
  646. package/dist/js/packages/components-base/src/list/loading/ListLoaderState.mjs.map +1 -0
  647. package/dist/js/packages/components-base/src/list/loading/types.mjs +29 -0
  648. package/dist/js/packages/components-base/src/list/loading/types.mjs.map +1 -0
  649. package/dist/js/packages/components-base/src/list/pagination/ListBatchesController.mjs +64 -0
  650. package/dist/js/packages/components-base/src/list/pagination/ListBatchesController.mjs.map +1 -0
  651. package/dist/js/packages/components-base/src/list/search/ListSearch.mjs +62 -0
  652. package/dist/js/packages/components-base/src/list/search/ListSearch.mjs.map +1 -0
  653. package/dist/js/packages/components-base/src/list/sorting/ListSorting.mjs +81 -0
  654. package/dist/js/packages/components-base/src/list/sorting/ListSorting.mjs.map +1 -0
  655. package/dist/js/packages/components-base/src/list/table/ListTable.mjs +80 -0
  656. package/dist/js/packages/components-base/src/list/table/ListTable.mjs.map +1 -0
  657. package/dist/js/packages/components-base/src/list/viewMode/ListViewMode.mjs +53 -0
  658. package/dist/js/packages/components-base/src/list/viewMode/ListViewMode.mjs.map +1 -0
  659. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs +24 -4
  660. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs.map +1 -1
  661. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs +24 -4
  662. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs.map +1 -1
  663. package/dist/types/_bundled/flow-components-base/action/ActionState.d.ts +36 -0
  664. package/dist/types/_bundled/flow-components-base/index.d.ts +23 -0
  665. package/dist/types/_bundled/flow-components-base/lib/array.d.ts +4 -0
  666. package/dist/types/_bundled/flow-components-base/list/ListModelContext.d.ts +30 -0
  667. package/dist/types/_bundled/flow-components-base/list/filter/ListDateRangeFilter.d.ts +18 -0
  668. package/dist/types/_bundled/flow-components-base/list/filter/ListFilter.d.ts +104 -0
  669. package/dist/types/_bundled/flow-components-base/list/filter/ListFilterValue.d.ts +21 -0
  670. package/dist/types/_bundled/flow-components-base/list/filter/dateRange.d.ts +23 -0
  671. package/dist/types/_bundled/flow-components-base/list/filter/types.d.ts +18 -0
  672. package/dist/types/_bundled/flow-components-base/list/item/ListItem.d.ts +10 -0
  673. package/dist/types/_bundled/flow-components-base/list/item/ListItemCollection.d.ts +14 -0
  674. package/dist/types/_bundled/flow-components-base/list/loading/ListLoaderState.d.ts +44 -0
  675. package/dist/types/_bundled/flow-components-base/list/loading/types.d.ts +69 -0
  676. package/dist/types/_bundled/flow-components-base/list/pagination/ListBatchesController.d.ts +32 -0
  677. package/dist/types/_bundled/flow-components-base/list/pagination/types.d.ts +17 -0
  678. package/dist/types/_bundled/flow-components-base/list/search/ListSearch.d.ts +27 -0
  679. package/dist/types/_bundled/flow-components-base/list/search/types.d.ts +5 -0
  680. package/dist/types/_bundled/flow-components-base/list/settings/types.d.ts +52 -0
  681. package/dist/types/_bundled/flow-components-base/list/sorting/ListSorting.d.ts +40 -0
  682. package/dist/types/_bundled/flow-components-base/list/sorting/types.d.ts +14 -0
  683. package/dist/types/_bundled/flow-components-base/list/table/ListTable.d.ts +34 -0
  684. package/dist/types/_bundled/flow-components-base/list/types.d.ts +18 -0
  685. package/dist/types/_bundled/flow-components-base/list/viewMode/ListViewMode.d.ts +25 -0
  686. package/dist/types/_bundled/flow-components-base/list/viewMode/types.d.ts +10 -0
  687. package/dist/types/components/Accordion/Accordion.d.ts +10 -1
  688. package/dist/types/components/AccordionGroup/AccordionGroup.d.ts +33 -0
  689. package/dist/types/components/AccordionGroup/context.d.ts +8 -0
  690. package/dist/types/components/AccordionGroup/index.d.ts +3 -0
  691. package/dist/types/components/AccordionGroup/lib/expansion.d.ts +16 -0
  692. package/dist/types/components/AccordionGroup/view.d.ts +7 -0
  693. package/dist/types/components/Action/models/ActionState.d.ts +8 -21
  694. package/dist/types/components/ActionGroup/ActionGroup.d.ts +3 -2
  695. package/dist/types/components/Button/Button.d.ts +7 -1
  696. package/dist/types/components/Button/stories/lib.d.ts +1 -1
  697. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.d.ts +3 -1
  698. package/dist/types/components/CartesianChart/components/YAxis/YAxis.d.ts +7 -0
  699. package/dist/types/components/CodeEditor/CodeEditor.d.ts +12 -2
  700. package/dist/types/components/CodeEditor/hooks/useCodeEditorExtensions.d.ts +32 -1
  701. package/dist/types/components/CodeEditor/languages/all.d.ts +1 -1
  702. package/dist/types/components/CodeEditor/languages/index.d.ts +1 -0
  703. package/dist/types/components/DonutChart/components/Donut.d.ts +2 -0
  704. package/dist/types/components/FileField/FileField.d.ts +1 -1
  705. package/dist/types/components/Link/Link.d.ts +5 -1
  706. package/dist/types/components/List/components/DataLoader/DataLoader.d.ts +1 -1
  707. package/dist/types/components/List/components/Header/lib.d.ts +1 -2
  708. package/dist/types/components/List/components/Items/components/Item/Item.d.ts +1 -1
  709. package/dist/types/components/List/components/Items/components/Item/hooks/useGridItemProps.d.ts +1 -1
  710. package/dist/types/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.d.ts +1 -1
  711. package/dist/types/components/List/model/List.d.ts +6 -1
  712. package/dist/types/components/List/model/ListSettingsStore.d.ts +2 -4
  713. package/dist/types/components/List/model/ListViewMode.d.ts +17 -10
  714. package/dist/types/components/List/model/ReactTable.d.ts +1 -1
  715. package/dist/types/components/List/model/filter/DateRangeFilter.d.ts +21 -9
  716. package/dist/types/components/List/model/filter/Filter.d.ts +18 -52
  717. package/dist/types/components/List/model/filter/FilterValue.d.ts +10 -11
  718. package/dist/types/components/List/model/filter/types.d.ts +6 -18
  719. package/dist/types/components/List/model/item/Item.d.ts +8 -7
  720. package/dist/types/components/List/model/item/ItemCollection.d.ts +9 -4
  721. package/dist/types/components/List/model/loading/IncrementalLoaderState.d.ts +11 -21
  722. package/dist/types/components/List/model/loading/types.d.ts +5 -26
  723. package/dist/types/components/List/model/pagination/BatchesController.d.ts +1 -15
  724. package/dist/types/components/List/model/pagination/types.d.ts +1 -3
  725. package/dist/types/components/List/model/search/Search.d.ts +16 -19
  726. package/dist/types/components/List/model/search/types.d.ts +6 -8
  727. package/dist/types/components/List/model/sorting/Sorting.d.ts +14 -22
  728. package/dist/types/components/List/model/sorting/SortingFunctions.d.ts +1 -1
  729. package/dist/types/components/List/model/sorting/types.d.ts +1 -13
  730. package/dist/types/components/List/model/types.d.ts +7 -24
  731. package/dist/types/components/List/typedList.d.ts +5 -5
  732. package/dist/types/components/Markdown/components/SkeletonBlocks.d.ts +15 -0
  733. package/dist/types/components/Modal/components/ModalTrigger/ModalTrigger.d.ts +1 -5
  734. package/dist/types/components/NumberField/NumberField.d.ts +5 -0
  735. package/dist/types/components/NumberField/components/NumberFieldUnit.d.ts +13 -0
  736. package/dist/types/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.d.ts +5 -0
  737. package/dist/types/components/SkeletonMode/SkeletonMode.d.ts +16 -0
  738. package/dist/types/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.d.ts +10 -0
  739. package/dist/types/components/SkeletonMode/components/SkeletonIconSurface/index.d.ts +2 -0
  740. package/dist/types/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.d.ts +8 -0
  741. package/dist/types/components/SkeletonMode/components/SkeletonRawText/index.d.ts +2 -0
  742. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.d.ts +12 -0
  743. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/index.d.ts +2 -0
  744. package/dist/types/components/SkeletonMode/index.d.ts +3 -0
  745. package/dist/types/components/SkeletonMode/lib/hasContent.d.ts +3 -0
  746. package/dist/types/components/SkeletonMode/lib/isTextChild.d.ts +8 -0
  747. package/dist/types/components/SkeletonMode/skeletonModeContext.d.ts +16 -0
  748. package/dist/types/components/SkeletonMode/view.d.ts +7 -0
  749. package/dist/types/components/propTypes/index.d.ts +2 -0
  750. package/dist/types/components/public.d.ts +2 -0
  751. package/dist/types/integrations/react-hook-form/components/Field/Field.d.ts +1 -1
  752. package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts +1 -1
  753. package/dist/types/integrations/react-hook-form/components/FormContextProvider/FormContextProvider.d.ts +1 -1
  754. package/dist/types/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.d.ts +1 -1
  755. package/dist/types/lib/dev/parkPointer.d.ts +1 -0
  756. package/dist/types/lib/hooks/useFieldComponent.d.ts +24 -4
  757. package/dist/types/lib/hooks/useFieldError.d.ts +7 -1
  758. package/dist/types/lib/propsContext/nestedPropsContext/types.d.ts +3 -0
  759. package/dist/types/lib/propsContext/overlayTriggerTunnel.d.ts +2 -2
  760. package/dist/types/lib/remote/eventHandlerContext.d.ts +2 -1
  761. package/dist/types/lib/theming/hooks/useDesignTokens.d.ts +18 -2
  762. package/dist/types/lib/types/props.d.ts +14 -0
  763. package/dist/types/status/component-status.json.d.ts +8 -0
  764. package/dist/types/views/AccordionGroupView.d.ts +4 -0
  765. package/dist/types/views/SkeletonModeView.d.ts +4 -0
  766. package/package.json +15 -11
  767. package/dist/js/packages/components/src/components/List/model/filter/FilterValue.mjs +0 -43
  768. package/dist/js/packages/components/src/components/List/model/filter/FilterValue.mjs.map +0 -1
  769. package/dist/js/packages/components/src/components/List/model/filter/dateRangeFilterFn.mjs +0 -23
  770. package/dist/js/packages/components/src/components/List/model/filter/dateRangeFilterFn.mjs.map +0 -1
  771. package/dist/js/packages/components/src/components/List/model/item/Item.mjs +0 -20
  772. package/dist/js/packages/components/src/components/List/model/item/Item.mjs.map +0 -1
  773. package/dist/js/packages/components/src/components/List/model/pagination/BatchesController.mjs +0 -58
  774. package/dist/js/packages/components/src/components/List/model/pagination/BatchesController.mjs.map +0 -1
  775. package/dist/js/packages/components/src/lib/array/toArray.mjs +0 -8
  776. package/dist/js/packages/components/src/lib/array/toArray.mjs.map +0 -1
  777. package/dist/js/packages/components/src/lib/date/transformDateValueToDateTime.mjs +0 -15
  778. package/dist/js/packages/components/src/lib/date/transformDateValueToDateTime.mjs.map +0 -1
  779. package/dist/js/packages/components/src/lib/promises/sleep.mjs +0 -8
  780. package/dist/js/packages/components/src/lib/promises/sleep.mjs.map +0 -1
  781. package/dist/types/components/List/model/filter/dateRangeFilterFn.d.ts +0 -6
  782. package/dist/types/components/List/typedList.test-types.d.ts +0 -1
  783. package/dist/types/integrations/@mittwald/password-tools-js/passwordCreationFieldExport.test-types.d.ts +0 -1
  784. package/dist/types/lib/array/toArray.d.ts +0 -1
  785. package/dist/types/lib/types/array.d.ts +0 -1
  786. package/dist/types/lib/types/props.test-types.d.ts +0 -1
  787. /package/dist/types/{components/CartesianChart/typedCartesianChart.test-types.d.ts → lib/hooks/fieldErrorRenderedContext.d.ts} +0 -0
@@ -1,9 +1,14 @@
1
1
  "use client"
2
2
  /* */
3
+ import useSelector from "../../../lib/mobx/useSelector.mjs";
4
+ import { useStatic } from "../../../lib/hooks/useStatic.mjs";
5
+ import { getListColumn } from "../../../../../components-base/src/list/ListModelContext.mjs";
6
+ import { mergeHiddenSorting } from "../../../../../components-base/src/list/sorting/ListSorting.mjs";
7
+ import { ListTable } from "../../../../../components-base/src/list/table/ListTable.mjs";
8
+ import "../../../../../components-base/src/index.mjs";
3
9
  import { Filter } from "./filter/Filter.mjs";
4
10
  import { useEffect, useEffectEvent, useState } from "react";
5
- import invariant from "invariant";
6
- import { getCoreRowModel, getFacetedUniqueValues, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
11
+ import { getCoreRowModel, getFacetedUniqueValues, getFilteredRowModel, getPaginationRowModel, getSortedRowModel } from "@tanstack/table-core";
7
12
  //#region src/components/List/model/ReactTable.ts
8
13
  var ReactTable = class ReactTable {
9
14
  list;
@@ -25,9 +30,7 @@ var ReactTable = class ReactTable {
25
30
  return new ReactTable(list, onChange, tableOptions);
26
31
  }
27
32
  getTableColumn(property) {
28
- const column = this.table.getColumn(property);
29
- invariant(!!column, `Column #${property} is not defined`);
30
- return column;
33
+ return getListColumn(this.table, property);
31
34
  }
32
35
  useReactTable(onChange, tableOptions = {}) {
33
36
  const data = this.list.loader.useData();
@@ -37,7 +40,7 @@ var ReactTable = class ReactTable {
37
40
  };
38
41
  for (const filter of this.list.filters) filter.updateInitialState(initialState);
39
42
  this.list.search?.updateInitialState(initialState);
40
- const table = useReactTable({
43
+ const options = {
41
44
  data,
42
45
  state: { sorting: this.sortingState },
43
46
  getRowId: this.list.getItemId,
@@ -53,10 +56,14 @@ var ReactTable = class ReactTable {
53
56
  },
54
57
  globalFilterFn: "auto",
55
58
  ...tableOptions
56
- });
59
+ };
60
+ const listTable = useStatic(() => new ListTable(options));
61
+ listTable.setOptions(options);
62
+ useSelector(() => listTable.state);
63
+ const table = listTable.table;
57
64
  const reactTableState = table.getState();
58
65
  const onFiltersChanged = useEffectEvent(() => {
59
- Filter.storeFilters(this.list, { autosave: true });
66
+ Filter.storeFilters(this.list, this.list.filters, { autosave: true });
60
67
  });
61
68
  const onStateChanged = useEffectEvent(() => {
62
69
  if (onChange) onChange(this.list);
@@ -71,8 +78,7 @@ var ReactTable = class ReactTable {
71
78
  }
72
79
  handleSortingStateUpdate(updater) {
73
80
  const newSortingState = typeof updater === "function" ? updater(this.sortingState) : updater;
74
- const additionalHiddenSorting = this.list.sorting.filter((s) => s.initialEnabled === "hidden" && !newSortingState.some((existing) => existing.id === s.property)).map((s) => s.getReactTableColumnSort());
75
- this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);
81
+ this.updateSortingState(mergeHiddenSorting(this.list.sorting, newSortingState));
76
82
  }
77
83
  getTableColumnDefs() {
78
84
  const columnDefsMap = /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"ReactTable.mjs","names":[],"sources":["../../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/react-table\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport invariant from \"invariant\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useEffectEvent, useState } from \"react\";\nimport { Filter } from \"./filter/Filter\";\n\nexport class ReactTable<T, TMeta = unknown> {\n public readonly list: List<T, TMeta>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.initialEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T, TMeta = unknown>(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T, TMeta> {\n return new ReactTable<T, TMeta>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n const column = this.table.getColumn(property as string);\n invariant(!!column, `Column #${property} is not defined`);\n return column;\n }\n\n private useReactTable(\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const table = useReactTable({\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n });\n\n const reactTableState = table.getState();\n\n const onFiltersChanged = useEffectEvent(() => {\n Filter.storeFilters(this.list, { autosave: true });\n });\n\n const onStateChanged = useEffectEvent(() => {\n if (onChange) {\n onChange(this.list);\n }\n });\n\n useEffect(() => {\n onStateChanged();\n }, [reactTableState]);\n\n useEffect(() => {\n onFiltersChanged();\n }, [reactTableState.columnFilters]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n const additionalHiddenSorting = this.list.sorting\n .filter(\n (s) =>\n s.initialEnabled === \"hidden\" &&\n !newSortingState.some((existing) => existing.id === s.property),\n )\n .map((s) => s.getReactTableColumnSort());\n\n this.updateSortingState([...additionalHiddenSorting, ...newSortingState]);\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ReactTable.mjs","names":[],"sources":["../../../../../../../../src/components/List/model/ReactTable.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnSort,\n InitialTableState,\n Table,\n TableOptions,\n Updater,\n} from \"@tanstack/table-core\";\nimport {\n getCoreRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n} from \"@tanstack/table-core\";\nimport type List from \"@/components/List/model/List\";\nimport {\n getListColumn,\n ListTable,\n mergeHiddenSorting,\n} from \"@mittwald/flow-components-base\";\nimport type {\n OnListChanged,\n PropertyName,\n} from \"@/components/List/model/types\";\nimport type { SearchValue } from \"@/components/List/model/search/types\";\nimport type { Dispatch, SetStateAction } from \"react\";\nimport { useEffect, useEffectEvent, useState } from \"react\";\nimport { useStatic } from \"@/lib/hooks/useStatic\";\nimport useSelector from \"@/lib/mobx/useSelector\";\nimport { Filter } from \"./filter/Filter\";\n\nexport class ReactTable<T, TMeta = unknown> {\n public readonly list: List<T, TMeta>;\n public readonly table: Table<T>;\n public readonly sortingState: ColumnSort[];\n public readonly updateSortingState: Dispatch<SetStateAction<ColumnSort[]>>;\n\n private constructor(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ) {\n this.list = list;\n\n const defaultSorting = this.list.sorting.filter(\n (s) => s.initialEnabled !== false,\n );\n\n const [sortingState, updateSortingState] = useState<ColumnSort[]>(\n defaultSorting.map((s) => s.getReactTableColumnSort()),\n );\n this.sortingState = sortingState;\n this.updateSortingState = updateSortingState;\n this.table = this.useReactTable(onChange, tableOptions);\n }\n\n public get searchString(): SearchValue {\n return this.table.getState().globalFilter;\n }\n\n public static useNew<T, TMeta = unknown>(\n list: List<T, TMeta>,\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): ReactTable<T, TMeta> {\n return new ReactTable<T, TMeta>(list, onChange, tableOptions);\n }\n\n public getTableColumn(property: PropertyName<T>): Column<T> {\n return getListColumn(this.table, property);\n }\n\n private useReactTable(\n onChange?: OnListChanged<T, TMeta>,\n tableOptions: Partial<TableOptions<T>> = {},\n ): Table<T> {\n const data = this.list.loader.useData();\n\n const initialState: InitialTableState = {\n pagination: {\n pageSize: this.list.batches.batchSize,\n },\n columnFilters: [],\n };\n\n for (const filter of this.list.filters) {\n filter.updateInitialState(initialState);\n }\n\n this.list.search?.updateInitialState(initialState);\n\n const options: TableOptions<T> = {\n data,\n state: {\n sorting: this.sortingState,\n },\n getRowId: this.list.getItemId,\n initialState,\n columns: this.getTableColumnDefs(),\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n onSortingChange: (updater) => {\n this.handleSortingStateUpdate(updater);\n },\n globalFilterFn: \"auto\",\n ...tableOptions,\n } as TableOptions<T>;\n\n /*\n * `useReactTable` in twenty lines of MobX, so the Vue binding runs the same\n * table. What React still owns: the instance has to outlive a render, the\n * options are rebuilt on every render, and a state change has to re-render.\n */\n const listTable = useStatic(() => new ListTable<T>(options));\n listTable.setOptions(options);\n useSelector(() => listTable.state);\n\n const table = listTable.table;\n\n const reactTableState = table.getState();\n\n const onFiltersChanged = useEffectEvent(() => {\n Filter.storeFilters(this.list, this.list.filters, { autosave: true });\n });\n\n const onStateChanged = useEffectEvent(() => {\n if (onChange) {\n onChange(this.list);\n }\n });\n\n useEffect(() => {\n onStateChanged();\n }, [reactTableState]);\n\n useEffect(() => {\n onFiltersChanged();\n }, [reactTableState.columnFilters]);\n\n return table;\n }\n\n private handleSortingStateUpdate(updater: Updater<ColumnSort[]>) {\n const newSortingState =\n typeof updater === \"function\" ? updater(this.sortingState) : updater;\n\n this.updateSortingState(\n mergeHiddenSorting(this.list.sorting, newSortingState),\n );\n }\n\n private getTableColumnDefs(): ColumnDef<T>[] {\n const columnDefsMap = new Map<PropertyName<T>, ColumnDef<T>>();\n\n const getOrCreateColumnDef = (p: PropertyName<T>): ColumnDef<T> => {\n const existing = columnDefsMap.get(p);\n if (existing) {\n return existing;\n }\n const newDef: ColumnDef<T> = {\n id: p as string,\n accessorKey: p as string,\n enableSorting: false,\n enableColumnFilter: false,\n sortingFn: \"alphanumeric\",\n };\n\n columnDefsMap.set(p, newDef);\n return newDef;\n };\n\n this.list.filters.forEach((f) =>\n f.updateTableColumnDef(getOrCreateColumnDef(f.property)),\n );\n\n this.list.sorting.forEach((s) =>\n s.updateTableColumnDef(getOrCreateColumnDef(s.property)),\n );\n\n this.list.loader.staticDataProperties.forEach((property) => {\n getOrCreateColumnDef(property);\n });\n\n return Array.from(columnDefsMap.values());\n }\n}\n\nexport default ReactTable;\n"],"mappings":"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"}
@@ -1,25 +1,37 @@
1
1
  "use client"
2
2
  /* */
3
- import { isDateRangeValue } from "../../../Calendar/components/RangeCalendar/types.mjs";
4
- import { Filter } from "./Filter.mjs";
5
- import { dateRangeFilterFn } from "./dateRangeFilterFn.mjs";
3
+ import { ListDateRangeFilter } from "../../../../../../components-base/src/list/filter/ListDateRangeFilter.mjs";
4
+ import "../../../../../../components-base/src/index.mjs";
6
5
  //#region src/components/List/model/filter/DateRangeFilter.tsx
7
- var DateRangeFilter = class extends Filter {
6
+ /**
7
+ * React's date-range filter.
8
+ *
9
+ * The column, the comparison and the stored value are `ListDateRangeFilter` in
10
+ * `@mittwald/flow-components-base`, so the Vue binding filters the same dates
11
+ * the same way. What is left here is the calendar's own options, which are
12
+ * Flow's `RangeCalendar` props.
13
+ */
14
+ var DateRangeFilter = class extends ListDateRangeFilter {
8
15
  dateRangeOptions;
9
- constructor(list, shape) {
10
- super(list, shape);
16
+ constructor(context, shape) {
17
+ super(context, shape);
11
18
  this.dateRangeOptions = shape.dateRangeOptions;
12
19
  }
13
- updateTableColumnDef(def) {
14
- def.enableColumnFilter = true;
15
- def.filterFn = dateRangeFilterFn;
16
- }
17
20
  getValue() {
18
- const value = this.getTableColumnFilter()?.value;
19
- return isDateRangeValue(value) ? value : null;
21
+ return super.getValue();
20
22
  }
21
23
  setValue(range) {
22
- this.list.reactTable.getTableColumn(this.property).setFilterValue(range);
24
+ super.setValue(range);
25
+ }
26
+ /** The list this filter belongs to — `context`, typed as React's `List`. */
27
+ get list() {
28
+ return this.context;
29
+ }
30
+ get values() {
31
+ return super.values;
32
+ }
33
+ getArrayValue() {
34
+ return super.getArrayValue();
23
35
  }
24
36
  };
25
37
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeFilter.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/DateRangeFilter.tsx"],"sourcesContent":["import type { ColumnDef } from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport { Filter } from \"./Filter\";\nimport type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\n\nimport type { DateRange, RangeValue } from \"react-aria-components\";\nimport type { DateValue } from \"@internationalized/date\";\nimport {\n isDateRangeValue,\n type RangeCalendarProps,\n} from \"@/components/Calendar\";\nimport { dateRangeFilterFn } from \"@/components/List/model/filter/dateRangeFilterFn\";\n\nexport class DateRangeFilter<\n T = never,\n TProp extends PropertyName<T> = never,\n> extends Filter<T, TProp> {\n public readonly dateRangeOptions?: RangeCalendarProps;\n\n public constructor(list: List<T>, shape: FilterShape<T, TProp, never>) {\n super(list, shape);\n this.dateRangeOptions = shape.dateRangeOptions;\n }\n\n public override updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableColumnFilter = true;\n def.filterFn = dateRangeFilterFn;\n }\n\n public override getValue(): DateRange | null {\n const value = this.getTableColumnFilter()?.value;\n return isDateRangeValue(value) ? value : null;\n }\n\n public setValue(range: RangeValue<DateValue>) {\n this.list.reactTable.getTableColumn(this.property).setFilterValue(range);\n }\n}\n"],"mappings":";;;;;;AAcA,IAAa,kBAAb,cAGU,OAAiB;CACzB;CAEA,YAAmB,MAAe,OAAqC;EACrE,MAAM,MAAM,KAAK;EACjB,KAAK,mBAAmB,MAAM;CAChC;CAEA,qBAAqC,KAAyB;EAC5D,IAAI,qBAAqB;EACzB,IAAI,WAAW;CACjB;CAEA,WAA6C;EAC3C,MAAM,QAAQ,KAAK,qBAAqB,CAAC,EAAE;EAC3C,OAAO,iBAAiB,KAAK,IAAI,QAAQ;CAC3C;CAEA,SAAgB,OAA8B;EAC5C,KAAK,KAAK,WAAW,eAAe,KAAK,QAAQ,CAAC,CAAC,eAAe,KAAK;CACzE;AACF"}
1
+ {"version":3,"file":"DateRangeFilter.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/DateRangeFilter.tsx"],"sourcesContent":["import { ListDateRangeFilter } from \"@mittwald/flow-components-base\";\nimport type { ListModelContext } from \"@mittwald/flow-components-base\";\nimport type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type { RangeCalendarProps } from \"@/components/Calendar\";\nimport type { DateValue } from \"@internationalized/date\";\nimport type { DateRange, RangeValue } from \"react-aria-components\";\nimport type { ReactNode } from \"react\";\nimport type { List } from \"@/components/List/model/List\";\nimport type { FilterValue } from \"@/components/List/model/filter/FilterValue\";\n\n/**\n * React's date-range filter.\n *\n * The column, the comparison and the stored value are `ListDateRangeFilter` in\n * `@mittwald/flow-components-base`, so the Vue binding filters the same dates\n * the same way. What is left here is the calendar's own options, which are\n * Flow's `RangeCalendar` props.\n */\nexport class DateRangeFilter<\n T = never,\n TProp extends PropertyName<T> = never,\n> extends ListDateRangeFilter<T, TProp, ReactNode> {\n public readonly dateRangeOptions?: RangeCalendarProps;\n\n public constructor(\n context: ListModelContext<T>,\n shape: FilterShape<T, TProp, never>,\n ) {\n super(context, shape as never);\n this.dateRangeOptions = shape.dateRangeOptions;\n }\n\n /*\n * Narrowed back to react-aria's own types, because that is what the calendar\n * takes and what this filter's consumers already have. The shared class is\n * typed on the three numbers a date is made of, which every date library\n * agrees on and nothing else does.\n */\n public override getValue(): DateRange | null {\n return super.getValue() as DateRange | null;\n }\n\n public override setValue(range: RangeValue<DateValue> | null): void {\n super.setValue(range as never);\n }\n\n /** The list this filter belongs to — `context`, typed as React's `List`. */\n public get list(): List<T> {\n return this.context as List<T>;\n }\n\n /* As in `Filter`: created by this filter, so each one's `filter` is React's. */\n public override get values(): FilterValue[] {\n return super.values as FilterValue[];\n }\n\n public override getArrayValue(): FilterValue[] {\n return super.getArrayValue() as FilterValue[];\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,IAAa,kBAAb,cAGU,oBAAyC;CACjD;CAEA,YACE,SACA,OACA;EACA,MAAM,SAAS,KAAc;EAC7B,KAAK,mBAAmB,MAAM;CAChC;CAQA,WAA6C;EAC3C,OAAO,MAAM,SAAS;CACxB;CAEA,SAAyB,OAA2C;EAClE,MAAM,SAAS,KAAc;CAC/B;;CAGA,IAAW,OAAgB;EACzB,OAAO,KAAK;CACd;CAGA,IAAoB,SAAwB;EAC1C,OAAO,MAAM;CACf;CAEA,gBAA+C;EAC7C,OAAO,MAAM,cAAc;CAC7B;AACF"}
@@ -1,193 +1,32 @@
1
1
  "use client"
2
2
  /* */
3
- import { FilterValue } from "./FilterValue.mjs";
4
- import { toArray } from "../../../../lib/array/toArray.mjs";
5
- import { difference, unique } from "remeda";
6
- import { getProperty } from "dot-prop";
3
+ import { ListFilter } from "../../../../../../components-base/src/list/filter/ListFilter.mjs";
4
+ import "../../../../../../components-base/src/index.mjs";
7
5
  //#region src/components/List/model/filter/Filter.ts
8
- var equalsPropertyMatcher = (filterValue, propertyValue) => filterValue === propertyValue;
9
- var selectAllMinValueCount = 6;
10
- var stringCastRenderMethod = (value) => String(value);
11
- var Filter = class {
12
- _values;
13
- _valuesFromTableState;
14
- list;
15
- property;
16
- mode;
17
- matcher;
18
- renderItem;
19
- name;
20
- autosave;
21
- manualSave;
22
- onFilterChangeCallbacks = /* @__PURE__ */ new Set();
23
- defaultSelectedValues;
24
- priority;
25
- storageKey;
26
- constructor(list, shape) {
27
- const { autosave = list.settingsStorageDefaults?.filters?.autosave ?? false, manualSave = list.settingsStorageDefaults?.filters?.manualSave ?? true, property, mode = "some", values, matcher = equalsPropertyMatcher, renderItem = stringCastRenderMethod, priority = "primary", name, defaultSelected, onChange } = shape;
28
- this.list = list;
29
- this.autosave = autosave;
30
- this.manualSave = manualSave;
31
- this.property = property;
32
- this.storageKey = String(property);
33
- this.mode = mode;
34
- this._values = values?.map((v) => FilterValue.create(this, v));
35
- this.matcher = matcher;
36
- this.renderItem = renderItem;
37
- this.name = name;
38
- this.priority = priority;
39
- this.defaultSelectedValues = defaultSelected?.map((v) => FilterValue.create(this, v));
40
- if (onChange) this.onFilterChangeCallbacks.add(onChange);
41
- }
42
- updateInitialState(initialState) {
43
- const initialIds = this.getInitialSelectedIds();
44
- if (initialIds?.length) initialState.columnFilters = [...initialState.columnFilters ?? [], {
45
- id: this.property,
46
- value: initialIds
47
- }];
48
- }
49
- getInitialSelectedIds() {
50
- return this.getStoredSelectedIds({
51
- autosave: this.autosave,
52
- manualSave: this.manualSave
53
- }) ?? this.defaultSelectedValues?.map((v) => v.id);
54
- }
55
- getStoredSelectedIds(options) {
56
- return this.list.settingsStorage?.get("activeFilters", options)?.[this.storageKey];
57
- }
58
- getStoredSelectedValues(options) {
59
- return this.getStoredSelectedIds(options)?.map((id) => this.values.find((v) => v.id === id)).filter((v) => v !== void 0);
60
- }
61
- static storeFilters(list, options) {
62
- const data = Object.fromEntries(list.filters.map((filter) => [filter.storageKey, filter.getArrayValue().map((v) => v.id)]));
63
- list.settingsStorage?.store("activeFilters", data, options);
64
- }
65
- updateTableColumnDef(def) {
66
- def.enableColumnFilter = true;
67
- def.filterFn = this.getReactTableFilterFn();
68
- }
69
- getReactTableFilterFn() {
70
- return (row, _, filterValue) => {
71
- const propertyAsString = this.property;
72
- const filterBy = propertyAsString.startsWith("$") ? row.original : getProperty(row.original, propertyAsString);
73
- return this.checkFilterMatches(filterBy, filterValue);
74
- };
75
- }
76
- checkFilterMatches(property, filterValueInput) {
77
- if (filterValueInput === null) return true;
78
- const predicate = (filterValue) => this.matcher(filterValue.value, property);
79
- const toFilterValue = (something) => FilterValue.create(this, something);
80
- if (this.mode === "all") return toArray(filterValueInput).map(toFilterValue).every(predicate);
81
- else if (this.mode === "some") {
82
- const filterArr = toArray(filterValueInput);
83
- return filterArr.length === 0 || filterArr.map(toFilterValue).some(predicate);
84
- } else if (this.mode === "one") return predicate(toFilterValue(Array.isArray(filterValueInput) ? filterValueInput[0] : filterValueInput));
85
- throw new Error(`Unknown filter mode '${this.mode}'`);
86
- }
87
- getTableColumnFilter() {
88
- return this.list.reactTable.table.getState().columnFilters.find((f) => f.id === this.property);
89
- }
90
- getTableColumn() {
91
- return this.list.reactTable.getTableColumn(this.property);
92
- }
93
- getValue() {
94
- return this.getTableColumnFilter()?.value ?? null;
95
- }
96
- getValuesFromTableState() {
97
- return unique(Array.from(this.getTableColumn().getFacetedUniqueValues().keys()).flatMap((v) => v).filter((v) => v !== void 0 && v !== null)).map((v) => FilterValue.create(this, v));
98
- }
99
- checkIfValueIsUnknown(value) {
100
- return !this.values.some((v) => v.id === value.id);
101
- }
102
- deleteUnknownFilterValues() {
103
- if (this.values === this.valuesFromTableState) return;
104
- for (const currentValues of this.getArrayValue()) if (this.checkIfValueIsUnknown(currentValues)) this.deactivateValue(currentValues);
6
+ /**
7
+ * React's filter: the shared one, with `renderItem` narrowed.
8
+ *
9
+ * Everything a filter does — values, selection, persistence, the predicate the
10
+ * table runs — is `ListFilter` in `@mittwald/flow-components-base`. The one
11
+ * thing that is not shareable is what a filter value _looks_ like, so the core
12
+ * carries the rendered type as a parameter and this fills it with `ReactNode`.
13
+ */
14
+ var Filter = class extends ListFilter {
15
+ constructor(context, shape) {
16
+ super(context, shape);
17
+ }
18
+ /** The list this filter belongs to — `context`, typed as React's `List`. */
19
+ get list() {
20
+ return this.context;
105
21
  }
106
22
  get values() {
107
- return this._values ?? this.valuesFromTableState;
108
- }
109
- get valuesFromTableState() {
110
- if (!this._valuesFromTableState) this._valuesFromTableState = this.getValuesFromTableState();
111
- return this._valuesFromTableState;
23
+ return super.values;
112
24
  }
113
25
  getArrayValue() {
114
- const value = this.getValue();
115
- return value === null ? [] : toArray(value).map((v) => FilterValue.create(this, v));
116
- }
117
- isValueActive(value) {
118
- return this.getArrayValue().some((v) => v.equals(value));
119
- }
120
- isActive() {
121
- return this.getArrayValue().length > 0;
122
- }
123
- deactivateValue(value) {
124
- const currentValueAsArray = this.getArrayValue();
125
- let updatedValue;
126
- if (this.mode === "all" || this.mode === "some") updatedValue = currentValueAsArray.filter((v) => !v.equals(value));
127
- else updatedValue = null;
128
- this.list.reactTable.getTableColumn(this.property).setFilterValue(updatedValue);
129
- this.callOnChangedHandlers(updatedValue);
130
- }
131
- callOnChangedHandlers(newValue) {
132
- const values = toArray(newValue).map((v) => v?.value);
133
- this.onFilterChangeCallbacks.forEach((cb) => cb(values));
134
- }
135
- hasChanges() {
136
- const currentIds = this.getArrayValue().map((v) => v.id);
137
- const defaultIds = this.getStoredSelectedIds({ autosave: false }) ?? this.defaultSelectedValues?.map((v) => v.id) ?? [];
138
- return currentIds.length !== defaultIds.length || difference(currentIds, defaultIds).length > 0;
139
- }
140
- isStoringAvailable() {
141
- return !!this.list.settingsStorage && this.manualSave;
142
- }
143
- resetValues() {
144
- let resetTo;
145
- const storedValues = this.getStoredSelectedValues({ autosave: false }) ?? this.defaultSelectedValues;
146
- if (storedValues) resetTo = storedValues;
147
- else if (this.mode === "all" || this.mode === "some") resetTo = [];
148
- else resetTo = null;
149
- this.list.reactTable.getTableColumn(this.property).setFilterValue(resetTo);
150
- this.callOnChangedHandlers(resetTo);
151
- }
152
- clear() {
153
- this.list.reactTable.getTableColumn(this.property).setFilterValue(null);
154
- this.callOnChangedHandlers(null);
155
- }
156
- toggleValue(newValue) {
157
- const currentValueAsArray = this.getArrayValue();
158
- let updatedValue;
159
- if (this.mode === "all" || this.mode === "some") {
160
- if (newValue.isActive) updatedValue = currentValueAsArray.filter((v) => !v.equals(newValue));
161
- else updatedValue = [...currentValueAsArray, newValue];
162
- } else updatedValue = newValue.isActive ? null : newValue;
163
- this.list.reactTable.getTableColumn(this.property).setFilterValue(updatedValue);
164
- this.callOnChangedHandlers(updatedValue);
165
- }
166
- get isSelectAllAvailable() {
167
- return this.mode === "some" && this.values.length >= selectAllMinValueCount;
168
- }
169
- isEveryValueActive() {
170
- return this.values.every((v) => v.isActive);
171
- }
172
- selectAll() {
173
- this.setArrayValue(this.values);
174
- }
175
- setActiveValueIds(ids) {
176
- const idSet = new Set(ids);
177
- this.setArrayValue(this.values.filter((v) => idSet.has(v.id)));
178
- }
179
- deselectAll() {
180
- this.setArrayValue([]);
181
- }
182
- setArrayValue(value) {
183
- this.list.reactTable.getTableColumn(this.property).setFilterValue(value);
184
- this.callOnChangedHandlers(value);
185
- }
186
- onFilterUpdated(cb) {
187
- this.onFilterChangeCallbacks.add(cb);
26
+ return super.getArrayValue();
188
27
  }
189
28
  };
190
29
  //#endregion
191
- export { Filter };
30
+ export { Filter, Filter as default };
192
31
 
193
32
  //# sourceMappingURL=Filter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/Filter.ts"],"sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnFilter,\n InitialTableState,\n} from \"@tanstack/react-table\";\nimport type List from \"@/components/List/model/List\";\nimport { getProperty } from \"dot-prop\";\nimport type {\n FilterMatcher,\n FilterMode,\n FilterShape,\n FilterUpdatedCallback,\n} from \"@/components/List/model/filter/types\";\nimport type {\n PropertyName,\n PropertyValueRenderMethod,\n} from \"@/components/List/model/types\";\nimport { customPropertyPrefix } from \"@/components/List/model/types\";\nimport { difference, unique } from \"remeda\";\nimport { FilterValue } from \"@/components/List/model/filter/FilterValue\";\nimport { toArray } from \"@/lib/array/toArray\";\nimport type { ListSettingsStoreOperationOptions } from \"../ListSettingsStore\";\n\nconst equalsPropertyMatcher: FilterMatcher<unknown, never, never> = (\n filterValue,\n propertyValue,\n) => filterValue === propertyValue;\n\nconst selectAllMinValueCount = 6;\n\nconst stringCastRenderMethod: PropertyValueRenderMethod<unknown> = (value) =>\n String(value);\n\nexport class Filter<\n T = never,\n TProp extends PropertyName<T> = never,\n TMatchValue = never,\n> {\n private _values?: FilterValue[] | undefined;\n private _valuesFromTableState?: FilterValue[];\n public readonly list: List<T>;\n public readonly property: TProp;\n public readonly mode: FilterMode;\n public readonly matcher: FilterMatcher<T, never, never>;\n public readonly renderItem: PropertyValueRenderMethod<TMatchValue>;\n public readonly name?: string;\n public readonly autosave: boolean;\n public readonly manualSave: boolean;\n private onFilterChangeCallbacks = new Set<FilterUpdatedCallback>();\n private readonly defaultSelectedValues?: FilterValue[];\n public readonly priority: \"primary\" | \"secondary\";\n public readonly storageKey: string;\n\n public constructor(list: List<T>, shape: FilterShape<T, TProp, TMatchValue>) {\n const {\n autosave = list.settingsStorageDefaults?.filters?.autosave ?? false,\n manualSave = list.settingsStorageDefaults?.filters?.manualSave ?? true,\n property,\n mode = \"some\",\n values,\n matcher = equalsPropertyMatcher,\n renderItem = stringCastRenderMethod,\n priority = \"primary\",\n name,\n defaultSelected,\n onChange,\n } = shape;\n\n this.list = list;\n this.autosave = autosave;\n this.manualSave = manualSave;\n this.property = property;\n this.storageKey = String(property);\n this.mode = mode;\n this._values = values?.map((v) => FilterValue.create(this, v));\n this.matcher = matcher;\n this.renderItem = renderItem;\n this.name = name;\n this.priority = priority;\n this.defaultSelectedValues = defaultSelected?.map((v) =>\n FilterValue.create(this, v),\n );\n if (onChange) {\n this.onFilterChangeCallbacks.add(onChange);\n }\n }\n\n public updateInitialState(initialState: InitialTableState) {\n const initialIds = this.getInitialSelectedIds();\n\n if (initialIds?.length) {\n initialState.columnFilters = [\n ...(initialState.columnFilters ?? []),\n {\n id: this.property as string,\n value: initialIds,\n },\n ];\n }\n }\n\n private getInitialSelectedIds() {\n return (\n this.getStoredSelectedIds({\n autosave: this.autosave,\n manualSave: this.manualSave,\n }) ?? this.defaultSelectedValues?.map((v) => v.id)\n );\n }\n\n private getStoredSelectedIds(options: ListSettingsStoreOperationOptions) {\n return this.list.settingsStorage?.get(\"activeFilters\", options)?.[\n this.storageKey\n ];\n }\n\n private getStoredSelectedValues(options: ListSettingsStoreOperationOptions) {\n return this.getStoredSelectedIds(options)\n ?.map((id) => this.values.find((v) => v.id === id))\n .filter((v): v is FilterValue => v !== undefined);\n }\n\n public static storeFilters<T>(\n list: List<T>,\n options: ListSettingsStoreOperationOptions,\n ) {\n const data = Object.fromEntries(\n list.filters.map((filter) => [\n filter.storageKey,\n filter.getArrayValue().map((v) => v.id),\n ]),\n );\n\n list.settingsStorage?.store(\"activeFilters\", data, options);\n }\n\n public updateTableColumnDef(def: ColumnDef<T>): void {\n def.enableColumnFilter = true;\n def.filterFn = this.getReactTableFilterFn();\n }\n\n private getReactTableFilterFn(): ColumnDef<T>[\"filterFn\"] {\n return (row, _, filterValue) => {\n const propertyAsString = this.property as string;\n\n const filterBy = propertyAsString.startsWith(customPropertyPrefix)\n ? row.original\n : getProperty(row.original, propertyAsString);\n\n return this.checkFilterMatches(filterBy, filterValue);\n };\n }\n\n private checkFilterMatches(\n property: unknown,\n filterValueInput: unknown,\n ): boolean {\n if (filterValueInput === null) {\n return true;\n }\n\n const predicate = (filterValue: FilterValue) =>\n this.matcher(filterValue.value as never, property as never);\n\n const toFilterValue = (something: unknown) =>\n FilterValue.create(this, something);\n\n if (this.mode === \"all\") {\n return toArray(filterValueInput).map(toFilterValue).every(predicate);\n } else if (this.mode === \"some\") {\n const filterArr = toArray(filterValueInput);\n return (\n filterArr.length === 0 || filterArr.map(toFilterValue).some(predicate)\n );\n } else if (this.mode === \"one\") {\n const oneValue = Array.isArray(filterValueInput)\n ? filterValueInput[0]\n : filterValueInput;\n return predicate(toFilterValue(oneValue));\n }\n\n throw new Error(`Unknown filter mode '${this.mode}'`);\n }\n\n protected getTableColumnFilter(): ColumnFilter | undefined {\n return this.list.reactTable.table\n .getState()\n .columnFilters.find((f) => f.id === this.property);\n }\n\n private getTableColumn(): Column<T> {\n return this.list.reactTable.getTableColumn(this.property);\n }\n\n public getValue(): unknown {\n return this.getTableColumnFilter()?.value ?? null;\n }\n\n private getValuesFromTableState() {\n return unique(\n Array.from(this.getTableColumn().getFacetedUniqueValues().keys())\n .flatMap((v) => v)\n .filter((v) => v !== undefined && v !== null),\n ).map((v) => FilterValue.create(this, v));\n }\n\n private checkIfValueIsUnknown(value: FilterValue) {\n const isKnown = this.values.some((v) => v.id === value.id);\n return !isKnown;\n }\n\n public deleteUnknownFilterValues() {\n if (this.values === this.valuesFromTableState) {\n return;\n }\n\n for (const currentValues of this.getArrayValue()) {\n if (this.checkIfValueIsUnknown(currentValues)) {\n this.deactivateValue(currentValues);\n }\n }\n }\n\n public get values(): FilterValue[] {\n return this._values ?? this.valuesFromTableState;\n }\n\n private get valuesFromTableState(): FilterValue[] {\n if (!this._valuesFromTableState) {\n this._valuesFromTableState = this.getValuesFromTableState();\n }\n return this._valuesFromTableState;\n }\n\n public getArrayValue(): FilterValue[] {\n const value = this.getValue();\n return value === null\n ? []\n : toArray(value).map((v) => FilterValue.create(this, v));\n }\n\n public isValueActive(value: FilterValue): boolean {\n return this.getArrayValue().some((v) => v.equals(value));\n }\n\n public isActive(): boolean {\n return this.getArrayValue().length > 0;\n }\n\n public deactivateValue(value: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: FilterValue[] | FilterValue | null;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(value));\n } else {\n updatedValue = null;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n\n this.callOnChangedHandlers(updatedValue);\n }\n\n private callOnChangedHandlers(\n newValue: FilterValue[] | FilterValue | null,\n ): void {\n const values = toArray(newValue).map((v) => v?.value);\n this.onFilterChangeCallbacks.forEach((cb) => cb(values));\n }\n\n public hasChanges(): boolean {\n const currentIds = this.getArrayValue().map((v) => v.id);\n\n const defaultIds =\n this.getStoredSelectedIds({ autosave: false }) ??\n this.defaultSelectedValues?.map((v) => v.id) ??\n [];\n\n return (\n currentIds.length !== defaultIds.length ||\n difference(currentIds, defaultIds).length > 0\n );\n }\n\n public isStoringAvailable(): boolean {\n return !!this.list.settingsStorage && this.manualSave;\n }\n\n public resetValues(): void {\n let resetTo: FilterValue[] | FilterValue | null;\n\n const storedValues =\n this.getStoredSelectedValues({ autosave: false }) ??\n this.defaultSelectedValues;\n\n if (storedValues) {\n resetTo = storedValues;\n } else {\n if (this.mode === \"all\" || this.mode === \"some\") {\n resetTo = [];\n } else {\n resetTo = null;\n }\n }\n\n this.list.reactTable.getTableColumn(this.property).setFilterValue(resetTo);\n this.callOnChangedHandlers(resetTo);\n }\n\n public clear(): void {\n this.list.reactTable.getTableColumn(this.property).setFilterValue(null);\n this.callOnChangedHandlers(null);\n }\n\n public toggleValue(newValue: FilterValue): void {\n const currentValueAsArray = this.getArrayValue();\n\n let updatedValue: FilterValue[] | FilterValue | null;\n\n if (this.mode === \"all\" || this.mode === \"some\") {\n if (newValue.isActive) {\n updatedValue = currentValueAsArray.filter((v) => !v.equals(newValue));\n } else {\n updatedValue = [...currentValueAsArray, newValue];\n }\n } else {\n updatedValue = newValue.isActive ? null : newValue;\n }\n\n this.list.reactTable\n .getTableColumn(this.property)\n .setFilterValue(updatedValue);\n this.callOnChangedHandlers(updatedValue);\n }\n\n public get isSelectAllAvailable(): boolean {\n return this.mode === \"some\" && this.values.length >= selectAllMinValueCount;\n }\n\n public isEveryValueActive(): boolean {\n return this.values.every((v) => v.isActive);\n }\n\n public selectAll(): void {\n this.setArrayValue(this.values);\n }\n\n public setActiveValueIds(ids: Iterable<unknown>): void {\n const idSet = new Set(ids);\n this.setArrayValue(this.values.filter((v) => idSet.has(v.id)));\n }\n\n public deselectAll(): void {\n this.setArrayValue([]);\n }\n\n private setArrayValue(value: FilterValue[]): void {\n this.list.reactTable.getTableColumn(this.property).setFilterValue(value);\n this.callOnChangedHandlers(value);\n }\n\n public onFilterUpdated(cb: () => unknown): void {\n this.onFilterChangeCallbacks.add(cb);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Filter.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/Filter.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport type { ListModelContext } from \"@mittwald/flow-components-base\";\nimport { ListFilter } from \"@mittwald/flow-components-base\";\nimport type { ReactNode } from \"react\";\nimport type { List } from \"@/components/List/model/List\";\nimport type { FilterValue } from \"@/components/List/model/filter/FilterValue\";\n\n/**\n * React's filter: the shared one, with `renderItem` narrowed.\n *\n * Everything a filter does — values, selection, persistence, the predicate the\n * table runs — is `ListFilter` in `@mittwald/flow-components-base`. The one\n * thing that is not shareable is what a filter value _looks_ like, so the core\n * carries the rendered type as a parameter and this fills it with `ReactNode`.\n */\nexport class Filter<\n T = never,\n TProp extends PropertyName<T> = never,\n TMatchValue = never,\n> extends ListFilter<T, TProp, TMatchValue, ReactNode> {\n public constructor(\n context: ListModelContext<T>,\n shape: FilterShape<T, TProp, TMatchValue>,\n ) {\n super(context, shape);\n }\n\n /** The list this filter belongs to — `context`, typed as React's `List`. */\n public get list(): List<T> {\n return this.context as List<T>;\n }\n\n /* Created by this filter, so each one's `filter` is React's. */\n public override get values(): FilterValue[] {\n return super.values as FilterValue[];\n }\n\n public override getArrayValue(): FilterValue[] {\n return super.getArrayValue() as FilterValue[];\n }\n}\n\nexport default Filter;\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAa,SAAb,cAIU,WAA6C;CACrD,YACE,SACA,OACA;EACA,MAAM,SAAS,KAAK;CACtB;;CAGA,IAAW,OAAgB;EACzB,OAAO,KAAK;CACd;CAGA,IAAoB,SAAwB;EAC1C,OAAO,MAAM;CACf;CAEA,gBAA+C;EAC7C,OAAO,MAAM,cAAc;CAC7B;AACF"}
@@ -1,17 +1,21 @@
1
1
  "use client"
2
2
  /* */
3
- import { Item } from "./Item.mjs";
3
+ import { ListItemCollection } from "../../../../../../components-base/src/list/item/ListItemCollection.mjs";
4
+ import "../../../../../../components-base/src/index.mjs";
4
5
  //#region src/components/List/model/item/ItemCollection.ts
5
- var ItemCollection = class {
6
- list;
7
- constructor(list) {
8
- this.list = list;
6
+ /**
7
+ * React's item collection: `ListItemCollection` from
8
+ * `@mittwald/flow-components-base`, plus `list` — see `Sorting` for why.
9
+ */
10
+ var ItemCollection = class extends ListItemCollection {
11
+ get list() {
12
+ return this.context;
9
13
  }
10
14
  get entries() {
11
- return this.list.reactTable.table.getRowModel().rows.map((r) => Item.fromRow(this, r));
15
+ return super.entries;
12
16
  }
13
17
  };
14
18
  //#endregion
15
- export { ItemCollection };
19
+ export { ItemCollection, ItemCollection as default };
16
20
 
17
21
  //# sourceMappingURL=ItemCollection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemCollection.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/item/ItemCollection.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport { Item } from \"@/components/List/model/item/Item\";\n\nexport class ItemCollection<T> {\n public readonly list: List<T>;\n\n public constructor(list: List<T>) {\n this.list = list;\n }\n\n public get entries(): Item<T>[] {\n return this.list.reactTable.table\n .getRowModel()\n .rows.map((r) => Item.fromRow(this, r));\n }\n}\n"],"mappings":";;;;AAGA,IAAa,iBAAb,MAA+B;CAC7B;CAEA,YAAmB,MAAe;EAChC,KAAK,OAAO;CACd;CAEA,IAAW,UAAqB;EAC9B,OAAO,KAAK,KAAK,WAAW,MACzB,YAAY,CAAC,CACb,KAAK,KAAK,MAAM,KAAK,QAAQ,MAAM,CAAC,CAAC;CAC1C;AACF"}
1
+ {"version":3,"file":"ItemCollection.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/item/ItemCollection.ts"],"sourcesContent":["import { ListItemCollection } from \"@mittwald/flow-components-base\";\nimport type { Item } from \"@/components/List/model/item/Item\";\nimport type { List } from \"@/components/List/model/List\";\n\n/**\n * React's item collection: `ListItemCollection` from\n * `@mittwald/flow-components-base`, plus `list` — see `Sorting` for why.\n */\nexport class ItemCollection<T> extends ListItemCollection<T> {\n public get list(): List<T> {\n return this.context as List<T>;\n }\n\n /* Built with this collection, so each one's `collection` is React's. */\n public override get entries(): Item<T>[] {\n return super.entries as Item<T>[];\n }\n}\n\nexport default ItemCollection;\n"],"mappings":";;;;;;;;;AAQA,IAAa,iBAAb,cAAuC,mBAAsB;CAC3D,IAAW,OAAgB;EACzB,OAAO,KAAK;CACd;CAGA,IAAoB,UAAqB;EACvC,OAAO,MAAM;CACf;AACF"}
@@ -1,11 +1,13 @@
1
1
  "use client"
2
2
  /* */
3
+ import { getListDataLoaderOptions } from "../../../../../../components-base/src/list/loading/types.mjs";
4
+ import "../../../../../../components-base/src/index.mjs";
3
5
  import { useComponentDefaults } from "../../../ComponentDefaultsProvider/ComponentDefaultsProvider.mjs";
4
6
  import { IncrementalLoaderState } from "./IncrementalLoaderState.mjs";
5
7
  import { useEffect, useMemo } from "react";
6
8
  import { times } from "remeda";
7
- import { getAsyncResource, usePromise } from "@mittwald/react-use-promise";
8
9
  import { hash } from "object-code";
10
+ import { getAsyncResource, usePromise } from "@mittwald/react-use-promise";
9
11
  //#region src/components/List/model/loading/IncrementalLoader.ts
10
12
  var emptyData = [];
11
13
  var IncrementalLoader = class IncrementalLoader {
@@ -105,18 +107,13 @@ var IncrementalLoader = class IncrementalLoader {
105
107
  }));
106
108
  }
107
109
  getDataLoaderOptions(batchIndex) {
108
- return {
109
- pagination: this.manualPagination ? {
110
- limit: this.list.batches.batchSize,
111
- offset: this.list.batches.batchSize * batchIndex
112
- } : void 0,
113
- sorting: this.manualSorting ? Object.fromEntries(this.list.sorting.filter((s) => s.isSorted()).map((s) => [s.property, s.direction])) : void 0,
114
- filtering: this.manualFiltering ? Object.fromEntries(this.list.filters.filter((f) => f.getValue() !== null).map((f) => [f.property, {
115
- mode: f.mode,
116
- values: f.getArrayValue().map((v) => v.value)
117
- }])) : void 0,
118
- searchString: this.manualFiltering ? this.list.reactTable.searchString : void 0
119
- };
110
+ return getListDataLoaderOptions({
111
+ batchSize: this.list.batches.batchSize,
112
+ modes: this,
113
+ sorting: this.list.sorting,
114
+ filters: this.list.filters,
115
+ searchString: this.list.reactTable.searchString
116
+ }, batchIndex);
120
117
  }
121
118
  getBatchDataAsyncResource(batchIndex) {
122
119
  const dataSource = this.dataSource;
@@ -1 +1 @@
1
- {"version":3,"file":"IncrementalLoader.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\nimport { useComponentDefaults } from \"@/components/ComponentDefaultsProvider\";\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly disableInitialSuspenseBoundary: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const {\n disableInitialSuspenseBoundary: disableInitialSuspenseBoundaryDefault,\n } = useComponentDefaults(\"List\");\n\n this.disableInitialSuspenseBoundary =\n \"disableInitialSuspenseBoundary\" in this.dataSource\n ? (this.dataSource.disableInitialSuspenseBoundary ??\n disableInitialSuspenseBoundaryDefault)\n : disableInitialSuspenseBoundaryDefault;\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.loaderState.useIsInitiallyLoading();\n }\n\n public useIsLoadingMore(): boolean {\n return this.loaderState.useIsLoadingMore();\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount, metadata } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setMetadata(metadata);\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return {\n pagination: this.manualPagination\n ? {\n limit: this.list.batches.batchSize,\n offset: this.list.batches.batchSize * batchIndex,\n }\n : undefined,\n\n sorting: this.manualSorting\n ? (Object.fromEntries(\n this.list.sorting\n .filter((s) => s.isSorted())\n .map((s) => [s.property, s.direction]),\n ) as DataLoaderOptions<T>[\"sorting\"])\n : undefined,\n\n filtering: this.manualFiltering\n ? (Object.fromEntries(\n this.list.filters\n .filter((f) => f.getValue() !== null)\n .map((f) => [\n f.property,\n {\n mode: f.mode,\n values: f.getArrayValue().map((v) => v.value),\n },\n ]),\n ) as DataLoaderOptions<T>[\"filtering\"])\n : undefined,\n\n searchString: this.manualFiltering\n ? this.list.reactTable.searchString\n : undefined,\n };\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IncrementalLoader.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/loading/IncrementalLoader.ts"],"sourcesContent":["import type List from \"@/components/List/model/List\";\nimport type {\n DataLoaderOptions,\n DataLoaderResult,\n DataSource,\n IncrementalLoaderShape,\n LoaderInvocationHook,\n} from \"@/components/List/model/loading/types\";\nimport type { AsyncResource } from \"@mittwald/react-use-promise\";\nimport { getAsyncResource, usePromise } from \"@mittwald/react-use-promise\";\nimport { useEffect } from \"react\";\nimport { times } from \"remeda\";\nimport { IncrementalLoaderState } from \"@/components/List/model/loading/IncrementalLoaderState\";\nimport { getListDataLoaderOptions } from \"@mittwald/flow-components-base\";\nimport { hash } from \"object-code\";\nimport type { PropertyName } from \"@/components/List/model/types\";\nimport { useMemo } from \"react\";\nimport { useComponentDefaults } from \"@/components/ComponentDefaultsProvider\";\n\nconst emptyData: never[] = [];\n\nexport class IncrementalLoader<T> {\n private readonly list: List<T>;\n private readonly dataSource: DataSource<T>;\n public readonly manualSorting: boolean;\n public readonly manualFiltering: boolean;\n public readonly manualPagination: boolean;\n public readonly disableInitialSuspenseBoundary: boolean;\n public readonly loaderState: IncrementalLoaderState<T>;\n public readonly staticDataProperties: PropertyName<T>[] = [];\n\n private constructor(list: List<T>, shape: IncrementalLoaderShape<T> = {}) {\n const { source } = shape;\n\n this.dataSource = source ?? { staticData: emptyData };\n\n const {\n disableInitialSuspenseBoundary: disableInitialSuspenseBoundaryDefault,\n } = useComponentDefaults(\"List\");\n\n this.disableInitialSuspenseBoundary =\n \"disableInitialSuspenseBoundary\" in this.dataSource\n ? (this.dataSource.disableInitialSuspenseBoundary ??\n disableInitialSuspenseBoundaryDefault)\n : disableInitialSuspenseBoundaryDefault;\n\n const manualPagination =\n \"manualPagination\" in this.dataSource\n ? this.dataSource.manualPagination\n : undefined;\n\n const manualFiltering =\n \"manualFiltering\" in this.dataSource\n ? this.dataSource.manualFiltering\n : undefined;\n\n const manualSorting =\n \"manualSorting\" in this.dataSource\n ? this.dataSource.manualSorting\n : undefined;\n\n this.list = list;\n this.loaderState = IncrementalLoaderState.useNew<T>(list);\n\n this.manualPagination = manualPagination ?? false;\n this.manualFiltering = manualFiltering ?? this.manualPagination;\n this.manualSorting = manualSorting ?? this.manualPagination;\n this.list.filters.forEach((f) => f.onFilterUpdated(() => this.reset()));\n this.list.search?.onUpdated(() => this.reset());\n\n this.initStaticDataProperties();\n }\n\n public static useNew<T>(\n list: List<T>,\n shape: IncrementalLoaderShape<T> = {},\n ): IncrementalLoader<T> {\n return new IncrementalLoader(list, shape);\n }\n\n private initStaticDataProperties() {\n const addPropertiesOfDataEntry = (data: unknown) => {\n if (typeof data !== \"object\" || data === null) {\n return;\n }\n\n (Object.keys(data) as PropertyName<T>[])\n .filter((p) => !this.staticDataProperties.includes(p))\n .forEach((p) => {\n this.staticDataProperties.push(p);\n });\n };\n\n if (\"staticData\" in this.dataSource) {\n this.dataSource.staticData\n // collect properties from just the first 100 items\n .slice(0, 100)\n .forEach(addPropertiesOfDataEntry);\n }\n }\n\n private reset(): void {\n this.loaderState.reset();\n }\n\n public useIsLoading(): boolean {\n return this.loaderState.useIsLoading();\n }\n\n public useIsInitiallyLoading(): boolean {\n return this.loaderState.useIsInitiallyLoading();\n }\n\n public useIsLoadingMore(): boolean {\n return this.loaderState.useIsLoadingMore();\n }\n\n public useData(): T[] {\n return this.loaderState.useMergedData();\n }\n\n private getUseData(): (options: DataLoaderOptions<T>) => DataLoaderResult<T> {\n const dataSource = this.dataSource;\n\n return (options: DataLoaderOptions<T>) => {\n if (\"staticData\" in dataSource) {\n return useMemo(\n () => ({\n data: dataSource.staticData,\n itemTotalCount: dataSource.staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"useData\" in dataSource) {\n return dataSource.useData(options);\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies\n ? hash(dependencies).toString()\n : undefined;\n\n return usePromise(asyncLoader, [options], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n return dataSource.asyncResourceFactory(options).use();\n }\n\n return useMemo(\n () => ({\n data: [],\n itemTotalCount: 0,\n }),\n [],\n );\n };\n }\n\n public getLoaderInvocationHooks(): LoaderInvocationHook[] {\n const batchesCount = times(this.list.batches.getBatchIndex() + 1, (i) => i);\n const useData = this.getUseData();\n\n return batchesCount.map((batchIndex) => ({\n useLoadBatch: () => {\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n const loaderResult = useData(loaderOptions);\n const { data, itemTotalCount, metadata } = loaderResult;\n\n useEffect(() => {\n this.loaderState.setDataBatch(batchIndex, data);\n\n if (itemTotalCount !== undefined) {\n this.list.batches.updateItemTotalCount(itemTotalCount);\n }\n\n this.loaderState.setMetadata(metadata);\n\n this.loaderState.setBatchLoadingState(batchIndex, \"loaded\");\n }, [loaderResult]);\n },\n\n useRenderSuspense: () => {\n useEffect(() => {\n this.loaderState.setBatchLoadingState(batchIndex, \"loading\");\n }, [batchIndex]);\n },\n }));\n }\n\n private getDataLoaderOptions(batchIndex: number): DataLoaderOptions<T> {\n return getListDataLoaderOptions<T>(\n {\n batchSize: this.list.batches.batchSize,\n modes: this,\n sorting: this.list.sorting,\n filters: this.list.filters,\n searchString: this.list.reactTable.searchString,\n },\n batchIndex,\n );\n }\n\n private getBatchDataAsyncResource(\n batchIndex: number,\n ): AsyncResource<DataLoaderResult<T>> {\n const dataSource = this.dataSource;\n const loaderOptions = this.getDataLoaderOptions(batchIndex);\n\n if (\"staticData\" in dataSource) {\n return getAsyncResource(\n async (staticData) => ({\n data: staticData as T[],\n itemTotalCount: staticData.length,\n }),\n [dataSource.staticData],\n );\n }\n\n if (\"asyncLoader\" in dataSource) {\n const asyncLoader = dataSource.asyncLoader;\n const dependencies = dataSource.dependencies;\n const loaderId = dependencies ? hash(dependencies).toString() : undefined;\n return getAsyncResource(asyncLoader, [loaderOptions], {\n loaderId,\n });\n }\n\n if (\"asyncResourceFactory\" in dataSource) {\n const asyncResourceFactory = dataSource.asyncResourceFactory;\n return asyncResourceFactory(loaderOptions);\n }\n\n throw new Error(\"Unknown data source\");\n }\n}\n"],"mappings":"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"}