@mittwald/flow-react-components 0.2.0-alpha.921 → 0.2.0-alpha.926

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 (349) hide show
  1. package/AGENTS.md +39 -0
  2. package/CHANGELOG.md +26 -0
  3. package/PATTERNS.md +893 -0
  4. package/dist/assets/doc-properties.json +3936 -3835
  5. package/dist/css/all-layered.css +1 -1
  6. package/dist/css/all.css +1 -1
  7. package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs +2 -0
  8. package/dist/js/_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs.map +1 -1
  9. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs +2 -2
  10. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
  11. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs +2 -2
  12. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs.map +1 -1
  13. package/dist/js/packages/components/src/components/Action/models/ActionStateContext.mjs.map +1 -1
  14. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs +32 -4
  15. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.module.scss.mjs +8 -6
  17. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.module.scss.mjs.map +1 -1
  18. package/dist/js/packages/components/src/components/Alert/Alert.mjs +2 -3
  19. package/dist/js/packages/components/src/components/Alert/Alert.mjs.map +1 -1
  20. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs +2 -2
  21. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs.map +1 -1
  22. package/dist/js/packages/components/src/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.mjs +1 -1
  23. package/dist/js/packages/components/src/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.mjs.map +1 -1
  24. package/dist/js/packages/components/src/components/Button/Button.mjs +2 -2
  25. package/dist/js/packages/components/src/components/Button/Button.mjs.map +1 -1
  26. package/dist/js/packages/components/src/components/Calendar/Calendar.mjs +0 -1
  27. package/dist/js/packages/components/src/components/Calendar/Calendar.mjs.map +1 -1
  28. package/dist/js/packages/components/src/components/Calendar/components/CalendarHeader/CalendarHeader.mjs +1 -1
  29. package/dist/js/packages/components/src/components/Calendar/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
  30. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/RangeCalendar.mjs.map +1 -1
  31. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs +2 -2
  32. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  33. package/dist/js/packages/components/src/components/CartesianChart/components/Area/Area.mjs.map +1 -1
  34. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs.map +1 -1
  35. package/dist/js/packages/components/src/components/CartesianChart/components/Line/Line.mjs.map +1 -1
  36. package/dist/js/packages/components/src/components/CartesianChart/components/XAxis/XAxis.mjs.map +1 -1
  37. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
  38. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs +0 -1
  39. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs.map +1 -1
  40. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +1 -1
  41. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs +1 -1
  42. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs.map +1 -1
  43. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartLegend.mjs.map +1 -1
  44. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartValue.mjs.map +1 -1
  45. package/dist/js/packages/components/src/components/EmulatedBoldText/EmulatedBoldText.mjs +0 -1
  46. package/dist/js/packages/components/src/components/EmulatedBoldText/EmulatedBoldText.mjs.map +1 -1
  47. package/dist/js/packages/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs +1 -1
  48. package/dist/js/packages/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs.map +1 -1
  49. package/dist/js/packages/components/src/components/FileCard/components/FileSizeText/FileSizeText.mjs +0 -1
  50. package/dist/js/packages/components/src/components/FileCard/components/FileSizeText/FileSizeText.mjs.map +1 -1
  51. package/dist/js/packages/components/src/components/FileField/FileField.mjs +1 -1
  52. package/dist/js/packages/components/src/components/FileField/FileField.mjs.map +1 -1
  53. package/dist/js/packages/components/src/components/FileField/FileField.module.scss.mjs +3 -3
  54. package/dist/js/packages/components/src/components/FileField/components/FileInput.mjs +2 -1
  55. package/dist/js/packages/components/src/components/FileField/components/FileInput.mjs.map +1 -1
  56. package/dist/js/packages/components/src/components/FileField/components/FileInput.module.scss.mjs +4 -2
  57. package/dist/js/packages/components/src/components/FileField/components/FileInput.module.scss.mjs.map +1 -1
  58. package/dist/js/packages/components/src/components/Icon/Icon.mjs +2 -2
  59. package/dist/js/packages/components/src/components/Icon/Icon.mjs.map +1 -1
  60. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs +3 -2
  61. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  62. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs +2 -2
  63. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs.map +1 -1
  64. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs +2 -2
  65. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs.map +1 -1
  66. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs +2 -0
  67. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs.map +1 -1
  68. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.mjs +1 -0
  69. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.mjs.map +1 -1
  70. package/dist/js/packages/components/src/components/Link/components/LinkIcon/LinkIcon.mjs.map +1 -1
  71. package/dist/js/packages/components/src/components/List/List.mjs +1 -0
  72. package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
  73. package/dist/js/packages/components/src/components/List/components/Footer/Footer.mjs +17 -2
  74. package/dist/js/packages/components/src/components/List/components/Footer/Footer.mjs.map +1 -1
  75. package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs +3 -1
  76. package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs.map +1 -1
  77. package/dist/js/packages/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs +0 -1
  78. package/dist/js/packages/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs.map +1 -1
  79. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs +2 -2
  80. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs.map +1 -1
  81. package/dist/js/packages/components/src/components/List/components/Header/Header.module.css.mjs +2 -2
  82. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.mjs.map +1 -1
  83. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.mjs.map +1 -1
  84. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs.map +1 -1
  85. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.mjs.map +1 -1
  86. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs.map +1 -1
  87. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs +1 -1
  88. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs.map +1 -1
  89. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs +17 -1
  90. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
  91. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs +5 -2
  92. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
  93. package/dist/js/packages/components/src/components/List/components/Items/hooks/useInfiniteScrollTrigger.mjs +41 -0
  94. package/dist/js/packages/components/src/components/List/components/Items/hooks/useInfiniteScrollTrigger.mjs.map +1 -0
  95. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs +0 -1
  96. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
  97. package/dist/js/packages/components/src/components/List/model/List.mjs +3 -0
  98. package/dist/js/packages/components/src/components/List/model/List.mjs.map +1 -1
  99. package/dist/js/packages/components/src/components/List/model/filter/DateRangeFilter.mjs +1 -1
  100. package/dist/js/packages/components/src/components/List/model/types.mjs.map +1 -1
  101. package/dist/js/packages/components/src/components/LoadingSpinner/LoadingSpinner.mjs.map +1 -1
  102. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs +2 -2
  103. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  104. package/dist/js/packages/components/src/components/MarkdownEditor/components/ModeButton.mjs.map +1 -1
  105. package/dist/js/packages/components/src/components/MarkdownEditor/components/Toolbar.mjs.map +1 -1
  106. package/dist/js/packages/components/src/components/MarkdownEditor/components/ToolbarButton.mjs.map +1 -1
  107. package/dist/js/packages/components/src/components/Message/Message.mjs +2 -1
  108. package/dist/js/packages/components/src/components/Message/Message.mjs.map +1 -1
  109. package/dist/js/packages/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs +0 -1
  110. package/dist/js/packages/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs.map +1 -1
  111. package/dist/js/packages/components/src/components/Option/Option.mjs.map +1 -1
  112. package/dist/js/packages/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs.map +1 -1
  113. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.mjs.map +1 -1
  114. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultEntry/ValidationResultEntry.mjs.map +1 -1
  115. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs +2 -2
  116. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
  117. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarBar.mjs.map +1 -1
  118. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
  119. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarValue.mjs.map +1 -1
  120. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/RatingSegment.mjs.map +1 -1
  121. package/dist/js/packages/components/src/components/Section/Section.mjs +2 -2
  122. package/dist/js/packages/components/src/components/Section/Section.mjs.map +1 -1
  123. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs +14 -0
  124. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
  125. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +2 -2
  126. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  127. package/dist/js/packages/components/src/components/Separator/Separator.mjs +0 -1
  128. package/dist/js/packages/components/src/components/Separator/Separator.mjs.map +1 -1
  129. package/dist/js/packages/components/src/components/Skeleton/Skeleton.mjs +0 -1
  130. package/dist/js/packages/components/src/components/Skeleton/Skeleton.mjs.map +1 -1
  131. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs +0 -1
  132. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs.map +1 -1
  133. package/dist/js/packages/components/src/components/Switch/Switch.mjs +2 -2
  134. package/dist/js/packages/components/src/components/Switch/Switch.mjs.map +1 -1
  135. package/dist/js/packages/components/src/components/Table/components/TableBody/TableBody.mjs +0 -1
  136. package/dist/js/packages/components/src/components/Table/components/TableBody/TableBody.mjs.map +1 -1
  137. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs +0 -1
  138. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
  139. package/dist/js/packages/components/src/components/Table/components/TableFooterRow/TableFooterRow.mjs +0 -1
  140. package/dist/js/packages/components/src/components/Table/components/TableFooterRow/TableFooterRow.mjs.map +1 -1
  141. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs +0 -1
  142. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
  143. package/dist/js/packages/components/src/components/Table/components/TableRow/TableRow.mjs +0 -1
  144. package/dist/js/packages/components/src/components/Table/components/TableRow/TableRow.mjs.map +1 -1
  145. package/dist/js/packages/components/src/components/Text/Text.mjs +0 -1
  146. package/dist/js/packages/components/src/components/Text/Text.mjs.map +1 -1
  147. package/dist/js/packages/components/src/components/Tooltip/components/TooltipTrigger/TooltipTrigger.mjs +0 -1
  148. package/dist/js/packages/components/src/components/Tooltip/components/TooltipTrigger/TooltipTrigger.mjs.map +1 -1
  149. package/dist/js/packages/components/src/components/TranslationProvider/TranslationProvider.mjs.map +1 -1
  150. package/dist/js/packages/components/src/lib/react/components/Render/Render.mjs +0 -1
  151. package/dist/js/packages/components/src/lib/react/components/Render/Render.mjs.map +1 -1
  152. package/dist/js/packages/components/src/lib/viewComponentContext/ViewComponentContextProvider.mjs.map +1 -1
  153. package/dist/types/components/AccentBox/index.d.ts +1 -1
  154. package/dist/types/components/AccentBox/index.d.ts.map +1 -1
  155. package/dist/types/components/Accordion/index.d.ts +1 -1
  156. package/dist/types/components/Accordion/index.d.ts.map +1 -1
  157. package/dist/types/components/Accordion/stories/Default.stories.d.ts.map +1 -1
  158. package/dist/types/components/ActionGroup/ActionGroup.d.ts +8 -0
  159. package/dist/types/components/ActionGroup/ActionGroup.d.ts.map +1 -1
  160. package/dist/types/components/ActionGroup/stories/Default.stories.d.ts +2 -0
  161. package/dist/types/components/ActionGroup/stories/Default.stories.d.ts.map +1 -1
  162. package/dist/types/components/Alert/Alert.d.ts.map +1 -1
  163. package/dist/types/components/Alert/stories/Default.stories.d.ts.map +1 -1
  164. package/dist/types/components/AlertBadge/stories/Default.stories.d.ts.map +1 -1
  165. package/dist/types/components/Align/stories/Default.stories.d.ts.map +1 -1
  166. package/dist/types/components/Align/stories/InputButton.stories.d.ts.map +1 -1
  167. package/dist/types/components/Autocomplete/index.d.ts +1 -1
  168. package/dist/types/components/Autocomplete/index.d.ts.map +1 -1
  169. package/dist/types/components/Autocomplete/stories/Default.stories.d.ts.map +1 -1
  170. package/dist/types/components/Avatar/index.d.ts +1 -1
  171. package/dist/types/components/Avatar/index.d.ts.map +1 -1
  172. package/dist/types/components/AvatarStack/index.d.ts +1 -1
  173. package/dist/types/components/AvatarStack/index.d.ts.map +1 -1
  174. package/dist/types/components/AvatarStack/stories/Default.stories.d.ts.map +1 -1
  175. package/dist/types/components/BigNumber/stories/Default.stories.d.ts.map +1 -1
  176. package/dist/types/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.d.ts.map +1 -1
  177. package/dist/types/components/Breadcrumb/stories/Default.stories.d.ts.map +1 -1
  178. package/dist/types/components/Button/stories/Default.stories.d.ts.map +1 -1
  179. package/dist/types/components/Button/stories/lib.d.ts.map +1 -1
  180. package/dist/types/components/Calendar/Calendar.d.ts.map +1 -1
  181. package/dist/types/components/Calendar/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  182. package/dist/types/components/Calendar/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
  183. package/dist/types/components/CartesianChart/CartesianChart.d.ts +6 -6
  184. package/dist/types/components/CartesianChart/CartesianChart.d.ts.map +1 -1
  185. package/dist/types/components/CartesianChart/components/ChartTooltip/ChartTooltip.d.ts.map +1 -1
  186. package/dist/types/components/Chat/stories/Default.stories.d.ts.map +1 -1
  187. package/dist/types/components/Checkbox/stories/Default.stories.d.ts.map +1 -1
  188. package/dist/types/components/CheckboxButton/stories/Default.stories.d.ts.map +1 -1
  189. package/dist/types/components/CheckboxGroup/stories/Default.stories.d.ts.map +1 -1
  190. package/dist/types/components/CodeBlock/stories/Default.stories.d.ts.map +1 -1
  191. package/dist/types/components/CodeEditor/index.d.ts +1 -1
  192. package/dist/types/components/CodeEditor/index.d.ts.map +1 -1
  193. package/dist/types/components/CodeEditor/stories/Default.stories.d.ts.map +1 -1
  194. package/dist/types/components/Color/stories/Default.stories.d.ts.map +1 -1
  195. package/dist/types/components/ColumnLayout/stories/Default.stories.d.ts.map +1 -1
  196. package/dist/types/components/ComboBox/stories/FileComboBox.stories.d.ts.map +1 -1
  197. package/dist/types/components/Content/stories/Default.stories.d.ts.map +1 -1
  198. package/dist/types/components/ContextMenu/stories/EdgeCases.stories.d.ts.map +1 -1
  199. package/dist/types/components/ContextualHelp/stories/Default.stories.d.ts.map +1 -1
  200. package/dist/types/components/CounterBadge/CounterBadge.d.ts +1 -2
  201. package/dist/types/components/CounterBadge/CounterBadge.d.ts.map +1 -1
  202. package/dist/types/components/CounterBadge/stories/Default.stories.d.ts.map +1 -1
  203. package/dist/types/components/DatePicker/stories/Default.stories.d.ts.map +1 -1
  204. package/dist/types/components/DateRangePicker/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  205. package/dist/types/components/DateRangePicker/stories/Default.stories.d.ts.map +1 -1
  206. package/dist/types/components/DonutChart/components/DonutChartLegend.d.ts.map +1 -1
  207. package/dist/types/components/DonutChart/components/DonutChartValue.d.ts.map +1 -1
  208. package/dist/types/components/DonutChart/stories/Default.stories.d.ts.map +1 -1
  209. package/dist/types/components/EmulatedBoldText/EmulatedBoldText.d.ts.map +1 -1
  210. package/dist/types/components/EmulatedBoldText/stories/Default.stories.d.ts.map +1 -1
  211. package/dist/types/components/FileCard/components/DeleteButton/DeleteButton.d.ts.map +1 -1
  212. package/dist/types/components/FileCard/components/FileSizeText/FileSizeText.d.ts.map +1 -1
  213. package/dist/types/components/FileCard/stories/Default.stories.d.ts.map +1 -1
  214. package/dist/types/components/FileCardList/stories/Default.stories.d.ts.map +1 -1
  215. package/dist/types/components/FileField/index.d.ts +1 -1
  216. package/dist/types/components/FileField/index.d.ts.map +1 -1
  217. package/dist/types/components/Flex/stories/Default.stories.d.ts.map +1 -1
  218. package/dist/types/components/Header/stories/Default.stories.d.ts.map +1 -1
  219. package/dist/types/components/HeaderNavigation/stories/Default.stories.d.ts.map +1 -1
  220. package/dist/types/components/Heading/stories/Default.stories.d.ts.map +1 -1
  221. package/dist/types/components/Icon/stories/Default.stories.d.ts.map +1 -1
  222. package/dist/types/components/IllustratedMessage/IllustratedMessage.d.ts.map +1 -1
  223. package/dist/types/components/IllustratedMessage/stories/Default.stories.d.ts.map +1 -1
  224. package/dist/types/components/Image/stories/Default.stories.d.ts.map +1 -1
  225. package/dist/types/components/Initials/stories/Default.stories.d.ts.map +1 -1
  226. package/dist/types/components/InlineCode/stories/Default.stories.d.ts.map +1 -1
  227. package/dist/types/components/Kbd/Kbd.d.ts +1 -0
  228. package/dist/types/components/Kbd/Kbd.d.ts.map +1 -1
  229. package/dist/types/components/Kbd/index.d.ts +2 -1
  230. package/dist/types/components/Kbd/index.d.ts.map +1 -1
  231. package/dist/types/components/Kbd/stories/Default.stories.d.ts.map +1 -1
  232. package/dist/types/components/LabeledValue/stories/Default.stories.d.ts.map +1 -1
  233. package/dist/types/components/LayoutCard/stories/Default.stories.d.ts.map +1 -1
  234. package/dist/types/components/LightBox/LightBox.d.ts.map +1 -1
  235. package/dist/types/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.d.ts +1 -0
  236. package/dist/types/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.d.ts.map +1 -1
  237. package/dist/types/components/LightBox/components/LightBoxGalleryItem/index.d.ts +1 -0
  238. package/dist/types/components/LightBox/components/LightBoxGalleryItem/index.d.ts.map +1 -1
  239. package/dist/types/components/LightBox/stories/Default.stories.d.ts.map +1 -1
  240. package/dist/types/components/Link/components/LinkIcon/LinkIcon.d.ts.map +1 -1
  241. package/dist/types/components/Link/stories/Default.stories.d.ts.map +1 -1
  242. package/dist/types/components/List/List.d.ts +7 -0
  243. package/dist/types/components/List/List.d.ts.map +1 -1
  244. package/dist/types/components/List/components/Footer/Footer.d.ts.map +1 -1
  245. package/dist/types/components/List/components/Footer/components/PaginationInfos/PaginationInfos.d.ts.map +1 -1
  246. package/dist/types/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.d.ts.map +1 -1
  247. package/dist/types/components/List/components/Header/components/AllFiltersModal/FilterAccordion.d.ts.map +1 -1
  248. package/dist/types/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.d.ts.map +1 -1
  249. package/dist/types/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.d.ts.map +1 -1
  250. package/dist/types/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.d.ts.map +1 -1
  251. package/dist/types/components/List/components/Header/components/AllFiltersModal/SortingAccordion.d.ts.map +1 -1
  252. package/dist/types/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.d.ts.map +1 -1
  253. package/dist/types/components/List/components/Items/Items.d.ts.map +1 -1
  254. package/dist/types/components/List/components/Items/components/Item/Item.d.ts +2 -1
  255. package/dist/types/components/List/components/Items/components/Item/Item.d.ts.map +1 -1
  256. package/dist/types/components/List/components/Items/hooks/useInfiniteScrollTrigger.d.ts +4 -0
  257. package/dist/types/components/List/components/Items/hooks/useInfiniteScrollTrigger.d.ts.map +1 -0
  258. package/dist/types/components/List/components/ListItemView/index.d.ts +1 -1
  259. package/dist/types/components/List/components/ListItemView/index.d.ts.map +1 -1
  260. package/dist/types/components/List/components/ListSummary/ListSummary.d.ts +2 -2
  261. package/dist/types/components/List/components/ListSummary/ListSummary.d.ts.map +1 -1
  262. package/dist/types/components/List/components/ListSummary/index.d.ts +1 -1
  263. package/dist/types/components/List/components/ListSummary/index.d.ts.map +1 -1
  264. package/dist/types/components/List/model/List.d.ts +1 -0
  265. package/dist/types/components/List/model/List.d.ts.map +1 -1
  266. package/dist/types/components/List/model/types.d.ts +1 -0
  267. package/dist/types/components/List/model/types.d.ts.map +1 -1
  268. package/dist/types/components/List/stories/Default.stories.d.ts +1 -0
  269. package/dist/types/components/List/stories/Default.stories.d.ts.map +1 -1
  270. package/dist/types/components/LoadingSpinner/LoadingSpinner.d.ts.map +1 -1
  271. package/dist/types/components/LoadingSpinner/stories/Default.stories.d.ts.map +1 -1
  272. package/dist/types/components/Markdown/stories/Default.stories.d.ts.map +1 -1
  273. package/dist/types/components/MarkdownEditor/components/ModeButton.d.ts.map +1 -1
  274. package/dist/types/components/MarkdownEditor/components/Toolbar.d.ts.map +1 -1
  275. package/dist/types/components/MarkdownEditor/components/ToolbarButton.d.ts.map +1 -1
  276. package/dist/types/components/MenuItem/index.d.ts +1 -1
  277. package/dist/types/components/MenuItem/index.d.ts.map +1 -1
  278. package/dist/types/components/Message/Message.d.ts.map +1 -1
  279. package/dist/types/components/MessageThread/components/MessageSeparator/MessageSeparator.d.ts.map +1 -1
  280. package/dist/types/components/MessageThread/stories/Default.stories.d.ts.map +1 -1
  281. package/dist/types/components/Modal/stories/Default.stories.d.ts.map +1 -1
  282. package/dist/types/components/Navigation/components/NavigationGroup/index.d.ts +1 -1
  283. package/dist/types/components/Navigation/components/NavigationGroup/index.d.ts.map +1 -1
  284. package/dist/types/components/Navigation/index.d.ts +1 -1
  285. package/dist/types/components/Navigation/index.d.ts.map +1 -1
  286. package/dist/types/components/Notification/stories/Default.stories.d.ts.map +1 -1
  287. package/dist/types/components/NotificationProvider/stories/Default.stories.d.ts.map +1 -1
  288. package/dist/types/components/NumberField/stories/Default.stories.d.ts.map +1 -1
  289. package/dist/types/components/Option/Option.d.ts +2 -2
  290. package/dist/types/components/Option/Option.d.ts.map +1 -1
  291. package/dist/types/components/Option/index.d.ts +1 -1
  292. package/dist/types/components/Option/index.d.ts.map +1 -1
  293. package/dist/types/components/Overlay/components/index.d.ts +1 -1
  294. package/dist/types/components/Overlay/components/index.d.ts.map +1 -1
  295. package/dist/types/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.d.ts.map +1 -1
  296. package/dist/types/components/Popover/components/PopoverContent/index.d.ts +1 -1
  297. package/dist/types/components/Popover/components/PopoverContent/index.d.ts.map +1 -1
  298. package/dist/types/components/Popover/stories/EdgeCases.stories.d.ts.map +1 -1
  299. package/dist/types/components/ProgressBar/components/ProgressBarBar.d.ts.map +1 -1
  300. package/dist/types/components/ProgressBar/components/ProgressBarLegend.d.ts.map +1 -1
  301. package/dist/types/components/ProgressBar/components/ProgressBarValue.d.ts.map +1 -1
  302. package/dist/types/components/ProgressBar/stories/Default.stories.d.ts.map +1 -1
  303. package/dist/types/components/RadioGroup/stories/Default.stories.d.ts.map +1 -1
  304. package/dist/types/components/Rating/components/RatingSegment/RatingSegment.d.ts.map +1 -1
  305. package/dist/types/components/SearchField/stories/Default.stories.d.ts.map +1 -1
  306. package/dist/types/components/Section/components/SectionHeader/SectionHeader.d.ts.map +1 -1
  307. package/dist/types/components/Section/stories/Default.stories.d.ts +1 -0
  308. package/dist/types/components/Section/stories/Default.stories.d.ts.map +1 -1
  309. package/dist/types/components/Section/stories/EdgeCases.stories.d.ts.map +1 -1
  310. package/dist/types/components/SegmentedControl/stories/Default.stories.d.ts.map +1 -1
  311. package/dist/types/components/Select/stories/Default.stories.d.ts.map +1 -1
  312. package/dist/types/components/Select/stories/EdgeCases.stories.d.ts.map +1 -1
  313. package/dist/types/components/Separator/Separator.d.ts.map +1 -1
  314. package/dist/types/components/Separator/stories/Default.stories.d.ts.map +1 -1
  315. package/dist/types/components/Skeleton/Skeleton.d.ts.map +1 -1
  316. package/dist/types/components/Skeleton/index.d.ts +1 -1
  317. package/dist/types/components/Skeleton/index.d.ts.map +1 -1
  318. package/dist/types/components/Skeleton/stories/Default.stories.d.ts.map +1 -1
  319. package/dist/types/components/SkeletonText/SkeletonText.d.ts.map +1 -1
  320. package/dist/types/components/SkeletonText/index.d.ts +1 -1
  321. package/dist/types/components/SkeletonText/index.d.ts.map +1 -1
  322. package/dist/types/components/SkeletonText/stories/Default.stories.d.ts.map +1 -1
  323. package/dist/types/components/Slider/stories/Default.stories.d.ts.map +1 -1
  324. package/dist/types/components/Switch/stories/Default.stories.d.ts.map +1 -1
  325. package/dist/types/components/Table/components/TableBody/TableBody.d.ts.map +1 -1
  326. package/dist/types/components/Table/components/TableColumn/TableColumn.d.ts.map +1 -1
  327. package/dist/types/components/Table/components/TableFooterRow/TableFooterRow.d.ts.map +1 -1
  328. package/dist/types/components/Table/components/TableHeader/TableHeader.d.ts.map +1 -1
  329. package/dist/types/components/Table/components/TableRow/TableRow.d.ts.map +1 -1
  330. package/dist/types/components/Table/stories/Default.stories.d.ts.map +1 -1
  331. package/dist/types/components/Text/Text.d.ts.map +1 -1
  332. package/dist/types/components/Text/stories/Default.stories.d.ts.map +1 -1
  333. package/dist/types/components/TextArea/stories/Default.stories.d.ts.map +1 -1
  334. package/dist/types/components/TimeField/stories/Default.stories.d.ts.map +1 -1
  335. package/dist/types/components/Tooltip/components/TooltipTrigger/TooltipTrigger.d.ts.map +1 -1
  336. package/dist/types/components/Tooltip/components/TooltipTrigger/index.d.ts +1 -1
  337. package/dist/types/components/Tooltip/components/TooltipTrigger/index.d.ts.map +1 -1
  338. package/dist/types/components/Tooltip/index.d.ts +1 -1
  339. package/dist/types/components/Tooltip/index.d.ts.map +1 -1
  340. package/dist/types/components/Tooltip/stories/Default.stories.d.ts.map +1 -1
  341. package/dist/types/components/Tooltip/stories/EdgeCases.stories.d.ts.map +1 -1
  342. package/dist/types/components/TranslationProvider/stories/Default.stories.d.ts.map +1 -1
  343. package/dist/types/components/Truncate/stories/Default.stories.d.ts.map +1 -1
  344. package/dist/types/integrations/react-hook-form/components/Field/stories/Autocomplete.stories.d.ts.map +1 -1
  345. package/dist/types/lib/childProps/ChildPropsContextProvider.d.ts.map +1 -1
  346. package/dist/types/lib/dev/StoryBackground.d.ts.map +1 -1
  347. package/dist/types/lib/react/components/Render/Render.d.ts.map +1 -1
  348. package/dist/types/lib/viewComponentContext/ViewComponentContextProvider.d.ts.map +1 -1
  349. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.mjs","sources":["../../../../../../../../../src/components/List/components/Footer/Footer.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport styles from \"./Footer.module.scss\";\nimport { PaginationInfos } from \"@/components/List/components/Footer/components/PaginationInfos\";\nimport { ShowNextBatchButton } from \"@/components/List/components/Footer/components/ShowNextBatchButton\";\nimport DivView from \"@/views/DivView\";\n\nexport const Footer: FC = () => {\n return (\n <DivView className={styles.footer}>\n <PaginationInfos />\n <ShowNextBatchButton />\n </DivView>\n );\n};\n\nexport default Footer;\n"],"names":[],"mappings":";;;;;;;AAOO,MAAM,SAAa,MAAM;AAC9B,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,MAAA,CAAO,MAAA,EACzB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,wBAChB,mBAAA,EAAA,EAAoB;AAAA,GAAA,EACvB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Footer.mjs","sources":["../../../../../../../../../src/components/List/components/Footer/Footer.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport styles from \"./Footer.module.scss\";\nimport { PaginationInfos } from \"@/components/List/components/Footer/components/PaginationInfos\";\nimport { ShowNextBatchButton } from \"@/components/List/components/Footer/components/ShowNextBatchButton\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport DivView from \"@/views/DivView\";\nimport LoadingSpinnerView from \"@/views/LoadingSpinnerView\";\nimport locales from \"../../locales/*.locale.json\";\n\nexport const Footer: FC = () => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const infiniteScroll = list.infiniteScroll;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n const showLoadMoreSpinner =\n infiniteScroll && isLoading && !isInitiallyLoading;\n\n return (\n <DivView className={styles.footer}>\n <PaginationInfos />\n {!infiniteScroll && <ShowNextBatchButton />}\n {showLoadMoreSpinner && (\n <LoadingSpinnerView\n aria-label={stringFormatter.format(\"loadingMore\")}\n />\n )}\n </DivView>\n );\n};\n\nexport default Footer;\n"],"names":[],"mappings":";;;;;;;;;;AAUO,MAAM,SAAa,MAAM;AAC9B,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AACnE,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,iBAAiB,IAAA,CAAK,cAAA;AAC5B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAE7D,EAAA,MAAM,mBAAA,GACJ,cAAA,IAAkB,SAAA,IAAa,CAAC,kBAAA;AAElC,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAW,MAAA,CAAO,MAAA,EACzB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,IAChB,CAAC,cAAA,oBAAkB,GAAA,CAAC,mBAAA,EAAA,EAAoB,CAAA;AAAA,IACxC,mBAAA,oBACC,GAAA;AAAA,MAAC,kBAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,aAAa;AAAA;AAAA;AAClD,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -12,13 +12,15 @@ const PaginationInfos = (props) => {
12
12
  const list = useList();
13
13
  const pagination = list.batches;
14
14
  const isLoading = list.loader.useIsLoading();
15
+ const isInitiallyLoading = list.loader.useIsInitiallyLoading();
15
16
  const isEmpty = list.useIsEmpty();
16
17
  const totalItemsCount = pagination.getTotalItemsCount();
17
18
  const visibleItemsCount = pagination.getVisibleItemsCount();
18
19
  if (isEmpty) {
19
20
  return null;
20
21
  }
21
- const text = isLoading ? /* @__PURE__ */ jsx(SkeletonView, { width: "200px" }) : stringFormatter.format("paginationInfo", {
22
+ const showSkeleton = isLoading && (!list.infiniteScroll || isInitiallyLoading);
23
+ const text = showSkeleton ? /* @__PURE__ */ jsx(SkeletonView, { width: "200px" }) : stringFormatter.format("paginationInfo", {
22
24
  visibleItemsCount,
23
25
  totalItemsCount
24
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationInfos.mjs","sources":["../../../../../../../../../../../src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.tsx"],"sourcesContent":["import { useList } from \"@/components/List/hooks/useList\";\nimport type { TextProps } from \"@/components/Text\";\nimport SkeletonView from \"@/views/SkeletonView\";\nimport TextView from \"@/views/TextView\";\nimport type { FC } from \"react\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const PaginationInfos: FC<TextProps> = (props) => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const list = useList();\n const pagination = list.batches;\n const isLoading = list.loader.useIsLoading();\n const isEmpty = list.useIsEmpty();\n\n const totalItemsCount = pagination.getTotalItemsCount();\n const visibleItemsCount = pagination.getVisibleItemsCount();\n\n if (isEmpty) {\n return null;\n }\n\n const text = isLoading ? (\n <SkeletonView width=\"200px\" />\n ) : (\n stringFormatter.format(\"paginationInfo\", {\n visibleItemsCount,\n totalItemsCount,\n })\n );\n\n return <TextView {...props}>{text}</TextView>;\n};\n\nexport default PaginationInfos;\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,eAAA,GAAiC,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,aAAa,IAAA,CAAK,OAAA;AACxB,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,EAAW;AAEhC,EAAA,MAAM,eAAA,GAAkB,WAAW,kBAAA,EAAmB;AACtD,EAAA,MAAM,iBAAA,GAAoB,WAAW,oBAAA,EAAqB;AAE1D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAO,4BACX,GAAA,CAAC,YAAA,EAAA,EAAa,OAAM,OAAA,EAAQ,CAAA,GAE5B,eAAA,CAAgB,MAAA,CAAO,gBAAA,EAAkB;AAAA,IACvC,iBAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGH,EAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAU,GAAG,KAAA,EAAQ,QAAA,EAAA,IAAA,EAAK,CAAA;AACpC;;;;"}
1
+ {"version":3,"file":"PaginationInfos.mjs","sources":["../../../../../../../../../../../src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.tsx"],"sourcesContent":["import { useList } from \"@/components/List/hooks/useList\";\nimport type { TextProps } from \"@/components/Text\";\nimport SkeletonView from \"@/views/SkeletonView\";\nimport TextView from \"@/views/TextView\";\nimport type { FC } from \"react\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\nexport const PaginationInfos: FC<TextProps> = (props) => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const list = useList();\n const pagination = list.batches;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const isEmpty = list.useIsEmpty();\n\n const totalItemsCount = pagination.getTotalItemsCount();\n const visibleItemsCount = pagination.getVisibleItemsCount();\n\n if (isEmpty) {\n return null;\n }\n\n const showSkeleton =\n isLoading && (!list.infiniteScroll || isInitiallyLoading);\n\n const text = showSkeleton ? (\n <SkeletonView width=\"200px\" />\n ) : (\n stringFormatter.format(\"paginationInfo\", {\n visibleItemsCount,\n totalItemsCount,\n })\n );\n\n return <TextView {...props}>{text}</TextView>;\n};\n\nexport default PaginationInfos;\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,eAAA,GAAiC,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,aAAa,IAAA,CAAK,OAAA;AACxB,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,EAAW;AAEhC,EAAA,MAAM,eAAA,GAAkB,WAAW,kBAAA,EAAmB;AACtD,EAAA,MAAM,iBAAA,GAAoB,WAAW,oBAAA,EAAqB;AAE1D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GACJ,SAAA,KAAc,CAAC,IAAA,CAAK,cAAA,IAAkB,kBAAA,CAAA;AAExC,EAAA,MAAM,IAAA,GAAO,+BACX,GAAA,CAAC,YAAA,EAAA,EAAa,OAAM,OAAA,EAAQ,CAAA,GAE5B,eAAA,CAAgB,MAAA,CAAO,gBAAA,EAAkB;AAAA,IACvC,iBAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGH,EAAA,uBAAO,GAAA,CAAC,QAAA,EAAA,EAAU,GAAG,KAAA,EAAQ,QAAA,EAAA,IAAA,EAAK,CAAA;AACpC;;;;"}
@@ -1,7 +1,6 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import 'react';
5
4
  import { useList } from '../../../../hooks/useList.mjs';
6
5
  import locales from '../../../../../../../../../_virtual/_.locale.json@8d5024994f97657f895a4e2a188d2d8a.mjs';
7
6
  import { useLocalizedStringFormatter } from '../../../../../TranslationProvider/useLocalizedStringFormatter.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"ShowNextBatchButton.mjs","sources":["../../../../../../../../../../../src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport type { ButtonProps } from \"@/components/Button\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ButtonView from \"@/views/ButtonView\";\n\nexport const ShowNextBatchButton: FC<ButtonProps> = (props) => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const pagination = list.batches;\n const canLoadMore = pagination.hasNextBatch();\n\n if (!canLoadMore && !isLoading) {\n return null;\n }\n\n return (\n <ButtonView\n isPending={isLoading && !isInitiallyLoading}\n isDisabled={isInitiallyLoading}\n {...props}\n onPress={() => list.batches.nextBatch()}\n variant=\"plain\"\n size=\"s\"\n >\n {stringFormatter.format(\"showMore\")}\n </ButtonView>\n );\n};\n\nexport default ShowNextBatchButton;\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,mBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AACnE,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,aAAa,IAAA,CAAK,OAAA;AACxB,EAAA,MAAM,WAAA,GAAc,WAAW,YAAA,EAAa;AAE5C,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,SAAA,EAAW;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAa,CAAC,kBAAA;AAAA,MACzB,UAAA,EAAY,kBAAA;AAAA,MACX,GAAG,KAAA;AAAA,MACJ,OAAA,EAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAU;AAAA,MACtC,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,GAAA;AAAA,MAEJ,QAAA,EAAA,eAAA,CAAgB,OAAO,UAAU;AAAA;AAAA,GACpC;AAEJ;;;;"}
1
+ {"version":3,"file":"ShowNextBatchButton.mjs","sources":["../../../../../../../../../../../src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { ButtonProps } from \"@/components/Button\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ButtonView from \"@/views/ButtonView\";\n\nexport const ShowNextBatchButton: FC<ButtonProps> = (props) => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const pagination = list.batches;\n const canLoadMore = pagination.hasNextBatch();\n\n if (!canLoadMore && !isLoading) {\n return null;\n }\n\n return (\n <ButtonView\n isPending={isLoading && !isInitiallyLoading}\n isDisabled={isInitiallyLoading}\n {...props}\n onPress={() => list.batches.nextBatch()}\n variant=\"plain\"\n size=\"s\"\n >\n {stringFormatter.format(\"showMore\")}\n </ButtonView>\n );\n};\n\nexport default ShowNextBatchButton;\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,mBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AACnE,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,aAAa,IAAA,CAAK,OAAA;AACxB,EAAA,MAAM,WAAA,GAAc,WAAW,YAAA,EAAa;AAE5C,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,SAAA,EAAW;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAa,CAAC,kBAAA;AAAA,MACzB,UAAA,EAAY,kBAAA;AAAA,MACX,GAAG,KAAA;AAAA,MACJ,OAAA,EAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,SAAA,EAAU;AAAA,MACtC,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,GAAA;AAAA,MAEJ,QAAA,EAAA,eAAA,CAAgB,OAAO,UAAU;AAAA;AAAA,GACpC;AAEJ;;;;"}
@@ -31,9 +31,9 @@ const Header = (props) => {
31
31
  DivView,
32
32
  {
33
33
  className: clsx(
34
- className,
35
34
  headerStyles.header,
36
- list.search && headerStyles.withSearch
35
+ list.search && headerStyles.withSearch,
36
+ className
37
37
  ),
38
38
  children: [
39
39
  /* @__PURE__ */ jsxs(DivView, { className: headerStyles.headerContent, children: [
@@ -1 +1 @@
1
- {"version":3,"file":"Header.mjs","sources":["../../../../../../../../../src/components/List/components/Header/Header.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport styles from \"./Header.module.css\";\nimport clsx from \"clsx\";\nimport { ActiveFilters } from \"@/components/List/components/Header/components/ActiveFilters\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { SearchField } from \"@/components/List/components/Header/components/SearchField/SearchField\";\nimport { ViewModeContextMenu } from \"@/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu\";\nimport DivView from \"@/views/DivView\";\nimport { SortingContextMenu } from \"@/components/List/components/Header/components/SortingContextMenu/SortingContextMenu\";\nimport { FilterContextMenus } from \"@/components/List/components/Header/components/FilterContextMenu/FilterContextMenus\";\nimport { AllFiltersModal } from \"@/components/List/components/Header/components/AllFiltersModal/AllFiltersModal\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport const Header: FC<PropsWithClassName> = (props) => {\n const { className } = props;\n const list = useList();\n\n const isEmpty = list.useIsEmpty();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const noItemsAvailable = isEmpty && list.getEmptyViewType() === \"list\";\n const isDisabled = isInitiallyLoading || noItemsAvailable;\n\n const availableViewModes = useAvailableViewModes();\n\n const hasOptions =\n list.filters.length > 0 ||\n list.visibleSorting.length > 0 ||\n list.search ||\n availableViewModes.length > 1;\n\n const listActions = <UiComponentTunnelExit id=\"actions\" component=\"List\" />;\n\n if (noItemsAvailable) {\n // IMPORTANT: we always render the listActions and returning the same dom tree like 'items are available'!\n // The correct dom nesting is required since noItemsAvailable makes an early return.\n // React will not trigger a complete unmount/remount and forces e.g. modalTrigger etc.\n // inside the Tunnel to get lost when switching from noItems to itemsAvailable and vise versa.\n // Reminder: A fixed key prop for 'UiComponentTunnelExit' has not the same effect!\n return (\n <DivView className={styles.hideVisuallyActions} aria-hidden={true}>\n <DivView>{listActions}</DivView>\n </DivView>\n );\n }\n\n return (\n <DivView\n className={clsx(\n className,\n styles.header,\n list.search && styles.withSearch,\n )}\n >\n <DivView className={styles.headerContent}>\n {listActions}\n {hasOptions && (\n <DivView className={styles.options}>\n <ViewModeContextMenu isDisabled={isDisabled} />\n <SortingContextMenu isDisabled={isDisabled} />\n <FilterContextMenus isDisabled={isDisabled} />\n <AllFiltersModal isDisabled={isDisabled} />\n\n {list.search && (\n <SearchField search={list.search} isDisabled={isDisabled} />\n )}\n </DivView>\n )}\n </DivView>\n <ActiveFilters isDisabled={isDisabled} />\n </DivView>\n );\n};\n\nexport default Header;\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAeO,MAAM,MAAA,GAAiC,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM,EAAE,WAAU,GAAI,KAAA;AACtB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,EAAW;AAChC,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,gBAAA,GAAmB,OAAA,IAAW,IAAA,CAAK,gBAAA,EAAiB,KAAM,MAAA;AAChE,EAAA,MAAM,aAAa,kBAAA,IAAsB,gBAAA;AAEzC,EAAA,MAAM,qBAAqB,qBAAA,EAAsB;AAEjD,EAAA,MAAM,UAAA,GACJ,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,CAAA,IACtB,IAAA,CAAK,cAAA,CAAe,MAAA,GAAS,CAAA,IAC7B,IAAA,CAAK,MAAA,IACL,kBAAA,CAAmB,MAAA,GAAS,CAAA;AAE9B,EAAA,MAAM,8BAAc,GAAA,CAAC,qBAAA,EAAA,EAAsB,EAAA,EAAG,SAAA,EAAU,WAAU,MAAA,EAAO,CAAA;AAEzE,EAAA,IAAI,gBAAA,EAAkB;AAMpB,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,YAAA,CAAO,mBAAA,EAAqB,eAAa,IAAA,EAC3D,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAS,QAAA,EAAA,WAAA,EAAY,CAAA,EACxB,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA;AAAA,QACT,SAAA;AAAA,QACAA,YAAA,CAAO,MAAA;AAAA,QACP,IAAA,CAAK,UAAUA,YAAA,CAAO;AAAA,OACxB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,YAAA,CAAO,aAAA,EACxB,QAAA,EAAA;AAAA,UAAA,WAAA;AAAA,UACA,UAAA,oBACC,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,aAAO,OAAA,EACzB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,uBAAoB,UAAA,EAAwB,CAAA;AAAA,4BAC7C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,mBAAgB,UAAA,EAAwB,CAAA;AAAA,YAExC,KAAK,MAAA,oBACJ,GAAA,CAAC,eAAY,MAAA,EAAQ,IAAA,CAAK,QAAQ,UAAA,EAAwB;AAAA,WAAA,EAE9D;AAAA,SAAA,EAEJ,CAAA;AAAA,wBACA,GAAA,CAAC,iBAAc,UAAA,EAAwB;AAAA;AAAA;AAAA,GACzC;AAEJ;;;;"}
1
+ {"version":3,"file":"Header.mjs","sources":["../../../../../../../../../src/components/List/components/Header/Header.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport styles from \"./Header.module.css\";\nimport clsx from \"clsx\";\nimport { ActiveFilters } from \"@/components/List/components/Header/components/ActiveFilters\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { SearchField } from \"@/components/List/components/Header/components/SearchField/SearchField\";\nimport { ViewModeContextMenu } from \"@/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu\";\nimport DivView from \"@/views/DivView\";\nimport { SortingContextMenu } from \"@/components/List/components/Header/components/SortingContextMenu/SortingContextMenu\";\nimport { FilterContextMenus } from \"@/components/List/components/Header/components/FilterContextMenu/FilterContextMenus\";\nimport { AllFiltersModal } from \"@/components/List/components/Header/components/AllFiltersModal/AllFiltersModal\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport const Header: FC<PropsWithClassName> = (props) => {\n const { className } = props;\n const list = useList();\n\n const isEmpty = list.useIsEmpty();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const noItemsAvailable = isEmpty && list.getEmptyViewType() === \"list\";\n const isDisabled = isInitiallyLoading || noItemsAvailable;\n\n const availableViewModes = useAvailableViewModes();\n\n const hasOptions =\n list.filters.length > 0 ||\n list.visibleSorting.length > 0 ||\n list.search ||\n availableViewModes.length > 1;\n\n const listActions = <UiComponentTunnelExit id=\"actions\" component=\"List\" />;\n\n if (noItemsAvailable) {\n // IMPORTANT: we always render the listActions and returning the same dom tree like 'items are available'!\n // The correct dom nesting is required since noItemsAvailable makes an early return.\n // React will not trigger a complete unmount/remount and forces e.g. modalTrigger etc.\n // inside the Tunnel to get lost when switching from noItems to itemsAvailable and vise versa.\n // Reminder: A fixed key prop for 'UiComponentTunnelExit' has not the same effect!\n return (\n <DivView className={styles.hideVisuallyActions} aria-hidden={true}>\n <DivView>{listActions}</DivView>\n </DivView>\n );\n }\n\n return (\n <DivView\n className={clsx(\n styles.header,\n list.search && styles.withSearch,\n className,\n )}\n >\n <DivView className={styles.headerContent}>\n {listActions}\n {hasOptions && (\n <DivView className={styles.options}>\n <ViewModeContextMenu isDisabled={isDisabled} />\n <SortingContextMenu isDisabled={isDisabled} />\n <FilterContextMenus isDisabled={isDisabled} />\n <AllFiltersModal isDisabled={isDisabled} />\n\n {list.search && (\n <SearchField search={list.search} isDisabled={isDisabled} />\n )}\n </DivView>\n )}\n </DivView>\n <ActiveFilters isDisabled={isDisabled} />\n </DivView>\n );\n};\n\nexport default Header;\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAeO,MAAM,MAAA,GAAiC,CAAC,KAAA,KAAU;AACvD,EAAA,MAAM,EAAE,WAAU,GAAI,KAAA;AACtB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,EAAW;AAChC,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAC7D,EAAA,MAAM,gBAAA,GAAmB,OAAA,IAAW,IAAA,CAAK,gBAAA,EAAiB,KAAM,MAAA;AAChE,EAAA,MAAM,aAAa,kBAAA,IAAsB,gBAAA;AAEzC,EAAA,MAAM,qBAAqB,qBAAA,EAAsB;AAEjD,EAAA,MAAM,UAAA,GACJ,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,CAAA,IACtB,IAAA,CAAK,cAAA,CAAe,MAAA,GAAS,CAAA,IAC7B,IAAA,CAAK,MAAA,IACL,kBAAA,CAAmB,MAAA,GAAS,CAAA;AAE9B,EAAA,MAAM,8BAAc,GAAA,CAAC,qBAAA,EAAA,EAAsB,EAAA,EAAG,SAAA,EAAU,WAAU,MAAA,EAAO,CAAA;AAEzE,EAAA,IAAI,gBAAA,EAAkB;AAMpB,IAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,YAAA,CAAO,mBAAA,EAAqB,eAAa,IAAA,EAC3D,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAS,QAAA,EAAA,WAAA,EAAY,CAAA,EACxB,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA;AAAA,QACTA,YAAA,CAAO,MAAA;AAAA,QACP,IAAA,CAAK,UAAUA,YAAA,CAAO,UAAA;AAAA,QACtB;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,YAAA,CAAO,aAAA,EACxB,QAAA,EAAA;AAAA,UAAA,WAAA;AAAA,UACA,UAAA,oBACC,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAWA,aAAO,OAAA,EACzB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,uBAAoB,UAAA,EAAwB,CAAA;AAAA,4BAC7C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,sBAAmB,UAAA,EAAwB,CAAA;AAAA,4BAC5C,GAAA,CAAC,mBAAgB,UAAA,EAAwB,CAAA;AAAA,YAExC,KAAK,MAAA,oBACJ,GAAA,CAAC,eAAY,MAAA,EAAQ,IAAA,CAAK,QAAQ,UAAA,EAAwB;AAAA,WAAA,EAE9D;AAAA,SAAA,EAEJ,CAAA;AAAA,wBACA,GAAA,CAAC,iBAAc,UAAA,EAAwB;AAAA;AAAA;AAAA,GACzC;AAEJ;;;;"}
@@ -2,21 +2,21 @@
2
2
  /* */
3
3
  const header = "flow--list--header";
4
4
  const headerContent = "flow--list--header--header-content";
5
- const actions = "flow--list--header--actions";
6
5
  const options = "flow--list--header--options";
7
6
  const withSearch = "flow--list--header--with-search";
8
7
  const hideOnDesktop = "flow--list--header--hide-on-desktop";
9
8
  const hideOnMobile = "flow--list--header--hide-on-mobile";
9
+ const actions = "flow--list--header--actions";
10
10
  const action = "flow--list--header--action";
11
11
  const hideVisuallyActions = "flow--list--header--hide-visually-actions";
12
12
  const headerStyles = {
13
13
  header: header,
14
14
  headerContent: headerContent,
15
- actions: actions,
16
15
  options: options,
17
16
  withSearch: withSearch,
18
17
  hideOnDesktop: hideOnDesktop,
19
18
  hideOnMobile: hideOnMobile,
19
+ actions: actions,
20
20
  action: action,
21
21
  hideVisuallyActions: hideVisuallyActions
22
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { FilterAccordionRadioGroup } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup\";\nimport { FilterAccordionCheckboxGroup } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup\";\nimport { FilterAccordionDateRange } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\ninterface Props {\n filter: Filter | DateRangeFilter;\n expandAccordions: boolean;\n}\n\nexport const FilterAccordion: FC<Props> = (props) => {\n const { filter, expandAccordions } = props;\n\n const name = filter.name ?? filter.property;\n\n const content =\n filter instanceof DateRangeFilter ? (\n <FilterAccordionDateRange filter={filter} />\n ) : filter.mode === \"one\" ? (\n <FilterAccordionRadioGroup filter={filter} />\n ) : (\n <FilterAccordionCheckboxGroup filter={filter} />\n );\n\n return (\n <AccordionView defaultExpanded={expandAccordions}>\n <HeadingView>{name}</HeadingView>\n <ContentView>{content}</ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAeO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,MAAA,EAAQ,gBAAA,EAAiB,GAAI,KAAA;AAErC,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,MAAM,UACJ,MAAA,YAAkB,eAAA,mBAChB,GAAA,CAAC,wBAAA,EAAA,EAAyB,QAAgB,CAAA,GACxC,MAAA,CAAO,IAAA,KAAS,KAAA,uBACjB,yBAAA,EAAA,EAA0B,MAAA,EAAgB,CAAA,mBAE3C,GAAA,CAAC,gCAA6B,MAAA,EAAgB,CAAA;AAGlD,EAAA,uBACE,IAAA,CAAC,aAAA,EAAA,EAAc,eAAA,EAAiB,gBAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAa,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACnB,GAAA,CAAC,eAAa,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EACxB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordion.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport ContentView from \"@/views/ContentView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport { FilterAccordionRadioGroup } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup\";\nimport { FilterAccordionCheckboxGroup } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup\";\nimport { FilterAccordionDateRange } from \"@/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\ninterface Props {\n filter: Filter | DateRangeFilter;\n expandAccordions: boolean;\n}\n\nexport const FilterAccordion: FC<Props> = (props) => {\n const { filter, expandAccordions } = props;\n\n const name = filter.name ?? filter.property;\n\n const content =\n filter instanceof DateRangeFilter ? (\n <FilterAccordionDateRange filter={filter} />\n ) : filter.mode === \"one\" ? (\n <FilterAccordionRadioGroup filter={filter} />\n ) : (\n <FilterAccordionCheckboxGroup filter={filter} />\n );\n\n return (\n <AccordionView defaultExpanded={expandAccordions}>\n <HeadingView>{name}</HeadingView>\n <ContentView>{content}</ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAeO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,MAAA,EAAQ,gBAAA,EAAiB,GAAI,KAAA;AAErC,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,MAAM,UACJ,MAAA,YAAkB,eAAA,mBAChB,GAAA,CAAC,wBAAA,EAAA,EAAyB,QAAgB,CAAA,GACxC,MAAA,CAAO,IAAA,KAAS,KAAA,uBACjB,yBAAA,EAAA,EAA0B,MAAA,EAAgB,CAAA,mBAE3C,GAAA,CAAC,gCAA6B,MAAA,EAAgB,CAAA;AAGlD,EAAA,uBACE,IAAA,CAAC,aAAA,EAAA,EAAc,eAAA,EAAiB,gBAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAa,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACnB,GAAA,CAAC,eAAa,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EACxB,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordionCheckboxGroup.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport CheckboxGroupView from \"@/views/CheckboxGroupView\";\nimport CheckboxView from \"@/views/CheckboxView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\n\ninterface Props {\n filter: Filter;\n}\n\nexport const FilterAccordionCheckboxGroup: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n const name = filter.name ?? filter.property;\n\n return (\n <CheckboxGroupView value={activeKeys} m={[1, 1]} aria-label={name}>\n {filter.values.map((v) => (\n <CheckboxView key={v.id} value={v.id} onPress={() => v.toggle()}>\n {v.render()}\n </CheckboxView>\n ))}\n </CheckboxGroupView>\n );\n};\n"],"names":[],"mappings":";;;;;AASO,MAAM,4BAAA,GAA0C,CAAC,KAAA,KAAU;AAChE,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,uBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,UAAA,EAAY,GAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,YAAA,EAAY,IAAA,EAC1D,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA,qBAClB,GAAA,CAAC,YAAA,EAAA,EAAwB,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,OAAA,EAAS,MAAM,CAAA,CAAE,MAAA,EAAO,EAC3D,QAAA,EAAA,CAAA,CAAE,MAAA,EAAO,EAAA,EADO,CAAA,CAAE,EAErB,CACD,CAAA,EACH,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterAccordionCheckboxGroup.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport CheckboxGroupView from \"@/views/CheckboxGroupView\";\nimport CheckboxView from \"@/views/CheckboxView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\n\ninterface Props {\n filter: Filter;\n}\n\nexport const FilterAccordionCheckboxGroup: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n const name = filter.name ?? filter.property;\n\n return (\n <CheckboxGroupView value={activeKeys} m={[1, 1]} aria-label={name}>\n {filter.values.map((v) => (\n <CheckboxView key={v.id} value={v.id} onPress={() => v.toggle()}>\n {v.render()}\n </CheckboxView>\n ))}\n </CheckboxGroupView>\n );\n};\n"],"names":[],"mappings":";;;;;AASO,MAAM,4BAAA,GAA0C,CAAC,KAAA,KAAU;AAChE,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,uBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,UAAA,EAAY,GAAG,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,YAAA,EAAY,IAAA,EAC1D,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA,qBAClB,GAAA,CAAC,YAAA,EAAA,EAAwB,KAAA,EAAO,CAAA,CAAE,EAAA,EAAI,OAAA,EAAS,MAAM,CAAA,CAAE,MAAA,EAAO,EAC3D,QAAA,EAAA,CAAA,CAAE,MAAA,EAAO,EAAA,EADO,CAAA,CAAE,EAErB,CACD,CAAA,EACH,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordionDateRange.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { Flex } from \"@/components/Flex\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport RangeCalendarView from \"@/views/RangeCalendarView\";\nimport type { AnyDateRangeFilter } from \"@/components/List/model/filter/types\";\n\ninterface Props {\n filter: AnyDateRangeFilter;\n}\n\nexport const FilterAccordionDateRange: FC<Props> = (props) => {\n const { filter } = props;\n\n const currentValue = filter.getValue();\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <Flex direction=\"column\" gap=\"m\">\n <RangeCalendarView\n {...filter.dateRangeOptions}\n value={currentValue}\n onChange={(range) => {\n filter.setValue(range);\n }}\n />\n {currentValue && (\n <ButtonView\n size=\"s\"\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => filter.clear()}\n >\n {stringFormatter.format(\"filters.clearSelection\")}\n </ButtonView>\n )}\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,wBAAA,GAAsC,CAAC,KAAA,KAAU;AAC5D,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,YAAA,GAAe,OAAO,QAAA,EAAS;AAErC,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAG,MAAA,CAAO,gBAAA;AAAA,QACX,KAAA,EAAO,YAAA;AAAA,QACP,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,UAAA,MAAA,CAAO,SAAS,KAAK,CAAA;AAAA,QACvB;AAAA;AAAA,KACF;AAAA,IACC,YAAA,oBACC,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,GAAA;AAAA,QACL,KAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,EAAM;AAAA,QAE3B,QAAA,EAAA,eAAA,CAAgB,OAAO,wBAAwB;AAAA;AAAA;AAClD,GAAA,EAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterAccordionDateRange.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { Flex } from \"@/components/Flex\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport RangeCalendarView from \"@/views/RangeCalendarView\";\nimport type { AnyDateRangeFilter } from \"@/components/List/model/filter/types\";\n\ninterface Props {\n filter: AnyDateRangeFilter;\n}\n\nexport const FilterAccordionDateRange: FC<Props> = (props) => {\n const { filter } = props;\n\n const currentValue = filter.getValue();\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <Flex direction=\"column\" gap=\"m\">\n <RangeCalendarView\n {...filter.dateRangeOptions}\n value={currentValue}\n onChange={(range) => {\n filter.setValue(range);\n }}\n />\n {currentValue && (\n <ButtonView\n size=\"s\"\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => filter.clear()}\n >\n {stringFormatter.format(\"filters.clearSelection\")}\n </ButtonView>\n )}\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,wBAAA,GAAsC,CAAC,KAAA,KAAU;AAC5D,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,YAAA,GAAe,OAAO,QAAA,EAAS;AAErC,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAG,MAAA,CAAO,gBAAA;AAAA,QACX,KAAA,EAAO,YAAA;AAAA,QACP,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,UAAA,MAAA,CAAO,SAAS,KAAK,CAAA;AAAA,QACvB;AAAA;AAAA,KACF;AAAA,IACC,YAAA,oBACC,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,GAAA;AAAA,QACL,KAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,EAAM;AAAA,QAE3B,QAAA,EAAA,eAAA,CAAgB,OAAO,wBAAwB;AAAA;AAAA;AAClD,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterAccordionRadioGroup.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { Flex } from \"@/components/Flex\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n filter: Filter;\n}\n\nexport const FilterAccordionRadioGroup: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n const name = filter.name ?? filter.property;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <Flex direction=\"column\" gap=\"m\">\n <RadioGroupView\n value={activeKeys[0]}\n m={[1, 1]}\n key={activeKeys[0]}\n aria-label={name}\n >\n {filter.values.map((v) => (\n <RadioView\n key={v.id}\n value={v.id}\n onPress={() => {\n if (!v.isActive) {\n v.toggle();\n }\n }}\n >\n {v.render()}\n </RadioView>\n ))}\n </RadioGroupView>\n {activeKeys.length > 0 && (\n <ButtonView\n size=\"s\"\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => filter.clear()}\n >\n {stringFormatter.format(\"filters.clearSelection\")}\n </ButtonView>\n )}\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAaO,MAAM,yBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,QACnB,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,QAER,YAAA,EAAY,IAAA;AAAA,QAEX,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAClB,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YAEC,OAAO,CAAA,CAAE,EAAA;AAAA,YACT,SAAS,MAAM;AACb,cAAA,IAAI,CAAC,EAAE,QAAA,EAAU;AACf,gBAAA,CAAA,CAAE,MAAA,EAAO;AAAA,cACX;AAAA,YACF,CAAA;AAAA,YAEC,YAAE,MAAA;AAAO,WAAA;AAAA,UARL,CAAA,CAAE;AAAA,SAUV;AAAA,OAAA;AAAA,MAfI,WAAW,CAAC;AAAA,KAgBnB;AAAA,IACC,UAAA,CAAW,SAAS,CAAA,oBACnB,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,GAAA;AAAA,QACL,KAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,EAAM;AAAA,QAE3B,QAAA,EAAA,eAAA,CAAgB,OAAO,wBAAwB;AAAA;AAAA;AAClD,GAAA,EAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"FilterAccordionRadioGroup.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport type { Filter } from \"@/components/List/model/filter/Filter\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { Flex } from \"@/components/Flex\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n filter: Filter;\n}\n\nexport const FilterAccordionRadioGroup: FC<Props> = (props) => {\n const { filter } = props;\n\n const activeKeys = filter.values.filter((v) => v.isActive).map((v) => v.id);\n\n const name = filter.name ?? filter.property;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <Flex direction=\"column\" gap=\"m\">\n <RadioGroupView\n value={activeKeys[0]}\n m={[1, 1]}\n key={activeKeys[0]}\n aria-label={name}\n >\n {filter.values.map((v) => (\n <RadioView\n key={v.id}\n value={v.id}\n onPress={() => {\n if (!v.isActive) {\n v.toggle();\n }\n }}\n >\n {v.render()}\n </RadioView>\n ))}\n </RadioGroupView>\n {activeKeys.length > 0 && (\n <ButtonView\n size=\"s\"\n color=\"secondary\"\n variant=\"soft\"\n onPress={() => filter.clear()}\n >\n {stringFormatter.format(\"filters.clearSelection\")}\n </ButtonView>\n )}\n </Flex>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAaO,MAAM,yBAAA,GAAuC,CAAC,KAAA,KAAU;AAC7D,EAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AAEnB,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,QAAA;AAEnC,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,QACnB,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,QAER,YAAA,EAAY,IAAA;AAAA,QAEX,QAAA,EAAA,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,qBAClB,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YAEC,OAAO,CAAA,CAAE,EAAA;AAAA,YACT,SAAS,MAAM;AACb,cAAA,IAAI,CAAC,EAAE,QAAA,EAAU;AACf,gBAAA,CAAA,CAAE,MAAA,EAAO;AAAA,cACX;AAAA,YACF,CAAA;AAAA,YAEC,YAAE,MAAA;AAAO,WAAA;AAAA,UARL,CAAA,CAAE;AAAA,SAUV;AAAA,OAAA;AAAA,MAfI,WAAW,CAAC;AAAA,KAgBnB;AAAA,IACC,UAAA,CAAW,SAAS,CAAA,oBACnB,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,GAAA;AAAA,QACL,KAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,MAAM,MAAA,CAAO,KAAA,EAAM;AAAA,QAE3B,QAAA,EAAA,eAAA,CAAgB,OAAO,wBAAwB;AAAA;AAAA;AAClD,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortingAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.tsx"],"sourcesContent":["import React, { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useList } from \"@/components/List\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n expandAccordions: boolean;\n}\n\nexport const SortingAccordion: FC<Props> = (props) => {\n const { expandAccordions } = props;\n\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const sorting = list.visibleSorting;\n const activeSorting = sorting.find((s) => s.isSorted());\n\n if (sorting.length === 0) {\n return null;\n }\n\n return (\n <AccordionView defaultExpanded={expandAccordions}>\n <HeadingView>{stringFormatter.format(\"sorting\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={activeSorting?.id} m={[1, 1]}>\n {sorting.map((s) => (\n <RadioView\n key={s.id}\n value={s.id}\n onPress={() => list.getSorting(s.id).enable()}\n >\n {`${s.name ?? s.property} ${s.directionName ?? \"\"}`.trim()}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,gBAAA,GAA8B,CAAC,KAAA,KAAU;AACpD,EAAA,MAAM,EAAE,kBAAiB,GAAI,KAAA;AAE7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,UAAU,IAAA,CAAK,cAAA;AACrB,EAAA,MAAM,gBAAgB,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,CAAA;AAEtD,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,IAAA,CAAC,aAAA,EAAA,EAAc,eAAA,EAAiB,gBAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,SAAS,CAAA,EAAE,CAAA;AAAA,oBAChD,GAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAO,aAAA,EAAe,EAAA,EAAI,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAC/C,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACZ,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEC,OAAO,CAAA,CAAE,EAAA;AAAA,QACT,SAAS,MAAM,IAAA,CAAK,WAAW,CAAA,CAAE,EAAE,EAAE,MAAA,EAAO;AAAA,QAE3C,QAAA,EAAA,CAAA,EAAG,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAQ,IAAI,CAAA,CAAE,aAAA,IAAiB,EAAE,CAAA,CAAA,CAAG,IAAA;AAAK,OAAA;AAAA,MAJpD,CAAA,CAAE;AAAA,KAMV,GACH,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SortingAccordion.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport AccordionView from \"@/views/AccordionView\";\nimport HeadingView from \"@/views/HeadingView\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ContentView from \"@/views/ContentView\";\nimport RadioGroupView from \"@/views/RadioGroupView\";\nimport RadioView from \"@/views/RadioView\";\nimport { useList } from \"@/components/List\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n expandAccordions: boolean;\n}\n\nexport const SortingAccordion: FC<Props> = (props) => {\n const { expandAccordions } = props;\n\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n const sorting = list.visibleSorting;\n const activeSorting = sorting.find((s) => s.isSorted());\n\n if (sorting.length === 0) {\n return null;\n }\n\n return (\n <AccordionView defaultExpanded={expandAccordions}>\n <HeadingView>{stringFormatter.format(\"sorting\")}</HeadingView>\n <ContentView>\n <RadioGroupView value={activeSorting?.id} m={[1, 1]}>\n {sorting.map((s) => (\n <RadioView\n key={s.id}\n value={s.id}\n onPress={() => list.getSorting(s.id).enable()}\n >\n {`${s.name ?? s.property} ${s.directionName ?? \"\"}`.trim()}\n </RadioView>\n ))}\n </RadioGroupView>\n </ContentView>\n </AccordionView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,gBAAA,GAA8B,CAAC,KAAA,KAAU;AACpD,EAAA,MAAM,EAAE,kBAAiB,GAAI,KAAA;AAE7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,MAAM,CAAA;AAEnE,EAAA,MAAM,UAAU,IAAA,CAAK,cAAA;AACrB,EAAA,MAAM,gBAAgB,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,CAAA;AAEtD,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,IAAA,CAAC,aAAA,EAAA,EAAc,eAAA,EAAiB,gBAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,eAAA,CAAgB,MAAA,CAAO,SAAS,CAAA,EAAE,CAAA;AAAA,oBAChD,GAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAO,aAAA,EAAe,EAAA,EAAI,CAAA,EAAG,CAAC,GAAG,CAAC,CAAA,EAC/C,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACZ,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QAEC,OAAO,CAAA,CAAE,EAAA;AAAA,QACT,SAAS,MAAM,IAAA,CAAK,WAAW,CAAA,CAAE,EAAE,EAAE,MAAA,EAAO;AAAA,QAE3C,QAAA,EAAA,CAAA,EAAG,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,QAAQ,IAAI,CAAA,CAAE,aAAA,IAAiB,EAAE,CAAA,CAAA,CAAG,IAAA;AAAK,OAAA;AAAA,MAJpD,CAAA,CAAE;AAAA,KAMV,GACH,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,7 +1,6 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import 'react';
5
4
  import MenuItemView from '../../../../../../views/MenuItemView.mjs';
6
5
  import 'invariant';
7
6
  import 'react-aria-components';
@@ -12,6 +11,7 @@ import '../../../../../../lib/propsContext/components/PropsContextProvider.mjs';
12
11
  import '../../../../../ColumnLayout/ColumnLayout.mjs';
13
12
  import '../../../ListSummary/ListSummary.mjs';
14
13
  import '../../../../../../views/DivView.mjs';
14
+ import 'react';
15
15
  import '@mittwald/flow-icons';
16
16
  import '../../../../../Icon/components/IconSetProvider.mjs';
17
17
  import '../../../../../Icon/Icon.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"SortingMenuItem.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport type { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport { useList } from \"@/components/List\";\n\ninterface Props {\n sorting: Sorting<never>;\n}\n\nexport const SortingMenuItem: FC<Props> = (props) => {\n const { sorting } = props;\n\n const list = useList();\n\n return (\n <MenuItemView\n id={sorting.id}\n onAction={() => {\n list.getSorting(sorting.id).enable();\n }}\n >\n {`${sorting.name ?? sorting.property} ${sorting.directionName ?? \"\"}`.trim()}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,SAAQ,GAAI,KAAA;AAEpB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAI,OAAA,CAAQ,EAAA;AAAA,MACZ,UAAU,MAAM;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,OAAA,CAAQ,EAAE,CAAA,CAAE,MAAA,EAAO;AAAA,MACrC,CAAA;AAAA,MAEC,QAAA,EAAA,CAAA,EAAG,OAAA,CAAQ,IAAA,IAAQ,OAAA,CAAQ,QAAQ,IAAI,OAAA,CAAQ,aAAA,IAAiB,EAAE,CAAA,CAAA,CAAG,IAAA;AAAK;AAAA,GAC7E;AAEJ;;;;"}
1
+ {"version":3,"file":"SortingMenuItem.mjs","sources":["../../../../../../../../../../../src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport type { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport { useList } from \"@/components/List\";\n\ninterface Props {\n sorting: Sorting<never>;\n}\n\nexport const SortingMenuItem: FC<Props> = (props) => {\n const { sorting } = props;\n\n const list = useList();\n\n return (\n <MenuItemView\n id={sorting.id}\n onAction={() => {\n list.getSorting(sorting.id).enable();\n }}\n >\n {`${sorting.name ?? sorting.property} ${sorting.directionName ?? \"\"}`.trim()}\n </MenuItemView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,eAAA,GAA6B,CAAC,KAAA,KAAU;AACnD,EAAA,MAAM,EAAE,SAAQ,GAAI,KAAA;AAEpB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,IAAI,OAAA,CAAQ,EAAA;AAAA,MACZ,UAAU,MAAM;AACd,QAAA,IAAA,CAAK,UAAA,CAAW,OAAA,CAAQ,EAAE,CAAA,CAAE,MAAA,EAAO;AAAA,MACrC,CAAA;AAAA,MAEC,QAAA,EAAA,CAAA,EAAG,OAAA,CAAQ,IAAA,IAAQ,OAAA,CAAQ,QAAQ,IAAI,OAAA,CAAQ,aAAA,IAAiB,EAAE,CAAA,CAAA,CAAG,IAAA;AAAK;AAAA,GAC7E;AAEJ;;;;"}
@@ -6,18 +6,34 @@ import { useList } from '../../hooks/useList.mjs';
6
6
  import DivView from '../../../../views/DivView.mjs';
7
7
  import ItemsGridListView from '../../../../views/ItemsGridListView.mjs';
8
8
  import clsx from 'clsx';
9
+ import { useRef } from 'react';
9
10
  import styles from './Items.module.scss.mjs';
10
11
  import { FallbackItems } from './components/FallbackItems/FallbackItems.mjs';
12
+ import { useInfiniteScrollTrigger, getLoadMoreThresholdRows } from './hooks/useInfiniteScrollTrigger.mjs';
11
13
 
12
14
  const Items = () => {
13
15
  const list = useList();
14
16
  const tiles = list.viewMode.isTiles;
15
17
  const isLoading = list.loader.useIsLoading();
16
18
  const isInitiallyLoading = list.loader.useIsInitiallyLoading();
19
+ const triggerRef = useRef(null);
20
+ useInfiniteScrollTrigger(triggerRef);
17
21
  if (!list.itemView) {
18
22
  return null;
19
23
  }
20
- const items = list.items.entries.map((item) => /* @__PURE__ */ jsx(Item, { data: item.data, id: item.id }, item.id));
24
+ const triggerIndex = Math.max(
25
+ 0,
26
+ list.items.entries.length - getLoadMoreThresholdRows(list.batches.batchSize)
27
+ );
28
+ const items = list.items.entries.map((item, index) => /* @__PURE__ */ jsx(
29
+ Item,
30
+ {
31
+ data: item.data,
32
+ id: item.id,
33
+ triggerRef: list.infiniteScroll && index === triggerIndex ? triggerRef : void 0
34
+ },
35
+ item.id
36
+ ));
21
37
  const rootClassName = clsx(
22
38
  styles.items,
23
39
  isLoading && styles.isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"Items.mjs","sources":["../../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode.isTiles;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n if (!list.itemView) {\n return null;\n }\n\n const items = list.items.entries.map((item) => (\n <Item key={item.id} data={item.data} id={item.id} />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && styles.isLoading,\n tiles && styles.tiles,\n );\n\n const {\n \"aria-labelledby\": ariaLabelledby,\n \"aria-label\": ariaLabel,\n ...rest\n } = list.componentProps;\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...rest}\n aria-labelledby={ariaLabel ? undefined : ariaLabelledby}\n aria-label={ariaLabel}\n layout={tiles ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"names":[],"mappings":";;;;;;;;;AASO,MAAM,QAAY,MAAM;AAC7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,CAAS,OAAA;AAC5B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAE7D,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,qBACpC,GAAA,CAAC,IAAA,EAAA,EAAmB,IAAA,EAAM,KAAK,IAAA,EAAM,EAAA,EAAI,KAAK,EAAA,EAAA,EAAnC,IAAA,CAAK,EAAkC,CACnD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,KAAA;AAAA,IACP,aAAa,MAAA,CAAO,SAAA;AAAA,IACpB,SAAS,MAAA,CAAO;AAAA,GAClB;AAEA,EAAA,MAAM;AAAA,IACJ,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,MACD,IAAA,CAAK,cAAA;AAET,EAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAa,kBAAA,EAAoB,aAAW,SAAA,EACnD,QAAA,kBAAA,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACJ,iBAAA,EAAiB,YAAY,MAAA,GAAY,cAAA;AAAA,MACzC,YAAA,EAAY,SAAA;AAAA,MACZ,MAAA,EAAQ,QAAQ,MAAA,GAAS,OAAA;AAAA,MACzB,YAAA,EAAc,KAAK,QAAA,CAAS,YAAA;AAAA,MAE3B,gBAAM,MAAA,KAAW,CAAA,IAAK,kBAAA,mBAAqB,GAAA,CAAC,iBAAc,CAAA,GAAK;AAAA;AAAA,GAClE,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Items.mjs","sources":["../../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport { useRef } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\nimport {\n getLoadMoreThresholdRows,\n useInfiniteScrollTrigger,\n} from \"./hooks/useInfiniteScrollTrigger\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode.isTiles;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n\n const triggerRef = useRef<HTMLDivElement>(null);\n useInfiniteScrollTrigger(triggerRef);\n\n if (!list.itemView) {\n return null;\n }\n\n const triggerIndex = Math.max(\n 0,\n list.items.entries.length -\n getLoadMoreThresholdRows(list.batches.batchSize),\n );\n\n const items = list.items.entries.map((item, index) => (\n <Item\n key={item.id}\n data={item.data}\n id={item.id}\n triggerRef={\n list.infiniteScroll && index === triggerIndex ? triggerRef : undefined\n }\n />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && styles.isLoading,\n tiles && styles.tiles,\n );\n\n const {\n \"aria-labelledby\": ariaLabelledby,\n \"aria-label\": ariaLabel,\n ...rest\n } = list.componentProps;\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...rest}\n aria-labelledby={ariaLabel ? undefined : ariaLabelledby}\n aria-label={ariaLabel}\n layout={tiles ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"names":[],"mappings":";;;;;;;;;;;AAcO,MAAM,QAAY,MAAM;AAC7B,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,CAAS,OAAA;AAC5B,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,MAAA,CAAO,qBAAA,EAAsB;AAE7D,EAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAC9C,EAAA,wBAAA,CAAyB,UAAU,CAAA;AAEnC,EAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,eAAe,IAAA,CAAK,GAAA;AAAA,IACxB,CAAA;AAAA,IACA,KAAK,KAAA,CAAM,OAAA,CAAQ,SACjB,wBAAA,CAAyB,IAAA,CAAK,QAAQ,SAAS;AAAA,GACnD;AAEA,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA,CAAM,QAAQ,GAAA,CAAI,CAAC,MAAM,KAAA,qBAC1C,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MAEC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,UAAA,EACE,IAAA,CAAK,cAAA,IAAkB,KAAA,KAAU,eAAe,UAAA,GAAa;AAAA,KAAA;AAAA,IAJ1D,IAAA,CAAK;AAAA,GAOb,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,KAAA;AAAA,IACP,aAAa,MAAA,CAAO,SAAA;AAAA,IACpB,SAAS,MAAA,CAAO;AAAA,GAClB;AAEA,EAAA,MAAM;AAAA,IACJ,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,MACD,IAAA,CAAK,cAAA;AAET,EAAA,uBACE,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAa,kBAAA,EAAoB,aAAW,SAAA,EACnD,QAAA,kBAAA,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACJ,iBAAA,EAAiB,YAAY,MAAA,GAAY,cAAA;AAAA,MACzC,YAAA,EAAY,SAAA;AAAA,MACZ,MAAA,EAAQ,QAAQ,MAAA,GAAS,OAAA;AAAA,MACzB,YAAA,EAAc,KAAK,QAAA,CAAS,YAAA;AAAA,MAE3B,gBAAM,MAAA,KAAW,CAAA,IAAK,kBAAA,mBAAqB,GAAA,CAAC,iBAAc,CAAA,GAAK;AAAA;AAAA,GAClE,EACF,CAAA;AAEJ;;;;"}
@@ -4,12 +4,13 @@ import { jsx } from 'react/jsx-runtime';
4
4
  import { useGridItemProps } from './hooks/useGridItemProps.mjs';
5
5
  import { useList } from '../../../../hooks/useList.mjs';
6
6
  import ItemsGridListItemView from '../../../../../../views/ItemsGridListItemView.mjs';
7
+ import { mergeRefs } from '@react-aria/utils';
7
8
  import { Suspense } from 'react';
8
9
  import styles from './Item.module.scss.mjs';
9
10
  import { ListItemSkeletonView } from './components/ListItemSkeletonView/ListItemSkeletonView.mjs';
10
11
 
11
12
  const Item = (props) => {
12
- const { id, data } = props;
13
+ const { id, data, triggerRef } = props;
13
14
  const list = useList();
14
15
  const itemView = list.itemView;
15
16
  const { gridItemProps, children } = useGridItemProps(props);
@@ -19,6 +20,8 @@ const Item = (props) => {
19
20
  const textValue = itemView.textValue ? itemView.textValue(data) : void 0;
20
21
  const href = itemView.href ? itemView.href(data) : void 0;
21
22
  const hasAction = !!gridItemProps.onAction || !!href;
23
+ const existingRef = "ref" in gridItemProps ? gridItemProps.ref : void 0;
24
+ const gridItemPropsWithRef = triggerRef ? { ...gridItemProps, ref: mergeRefs(existingRef, triggerRef) } : gridItemProps;
22
25
  return /* @__PURE__ */ jsx(
23
26
  ItemsGridListItemView,
24
27
  {
@@ -28,7 +31,7 @@ const Item = (props) => {
28
31
  target: itemView.target,
29
32
  hasAction,
30
33
  isTile: list.viewMode.isTiles,
31
- ...gridItemProps,
34
+ ...gridItemPropsWithRef,
32
35
  children: /* @__PURE__ */ jsx(
33
36
  Suspense,
34
37
  {
@@ -1 +1 @@
1
- {"version":3,"file":"Item.mjs","sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/Item.tsx"],"sourcesContent":["import { useGridItemProps } from \"@/components/List/components/Items/components/Item/hooks/useGridItemProps\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport ItemsGridListItemView from \"@/views/ItemsGridListItemView\";\nimport type { FC, PropsWithChildren } from \"react\";\nimport { Suspense } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport styles from \"./Item.module.scss\";\nimport { ListItemSkeletonView } from \"./components/ListItemSkeletonView/ListItemSkeletonView\";\n\ninterface Props extends PropsWithChildren {\n id: Key;\n data: never;\n}\n\nexport const Item = (props: Props) => {\n const { id, data } = props;\n const list = useList();\n\n const itemView = list.itemView;\n\n const { gridItemProps, children } = useGridItemProps(props);\n\n if (!itemView) {\n return null;\n }\n\n const textValue = itemView.textValue ? itemView.textValue(data) : undefined;\n const href = itemView.href ? itemView.href(data) : undefined;\n const hasAction = !!gridItemProps.onAction || !!href;\n\n return (\n <ItemsGridListItemView\n id={id}\n textValue={textValue}\n href={href}\n target={itemView.target}\n hasAction={hasAction}\n isTile={list.viewMode.isTiles}\n {...gridItemProps}\n >\n <Suspense\n fallback={<ListItemSkeletonView viewMode={list.viewMode.value} />}\n >\n {children}\n </Suspense>\n </ItemsGridListItemView>\n );\n};\n\nexport const ItemContainer: FC<Props> = (props) => {\n const list = useList();\n return (\n <ItemsGridListItemView\n textValue=\"-\"\n className={styles.item}\n isTile={list.viewMode.isTiles}\n >\n {props.children}\n </ItemsGridListItemView>\n );\n};\n\nexport default Item;\n"],"names":[],"mappings":";;;;;;;;AAcO,MAAM,IAAA,GAAO,CAAC,KAAA,KAAiB;AACpC,EAAA,MAAM,EAAE,EAAA,EAAI,IAAA,EAAK,GAAI,KAAA;AACrB,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,EAAA,MAAM,EAAE,aAAA,EAAe,QAAA,EAAS,GAAI,iBAAiB,KAAK,CAAA;AAE1D,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAY,QAAA,CAAS,SAAA,GAAY,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA,GAAI,MAAA;AAClE,EAAA,MAAM,OAAO,QAAA,CAAS,IAAA,GAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AACnD,EAAA,MAAM,YAAY,CAAC,CAAC,aAAA,CAAc,QAAA,IAAY,CAAC,CAAC,IAAA;AAEhD,EAAA,uBACE,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,EAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,SAAA;AAAA,MACA,MAAA,EAAQ,KAAK,QAAA,CAAS,OAAA;AAAA,MACrB,GAAG,aAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,0BAAU,GAAA,CAAC,oBAAA,EAAA,EAAqB,QAAA,EAAU,IAAA,CAAK,SAAS,KAAA,EAAO,CAAA;AAAA,UAE9D;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEO,MAAM,aAAA,GAA2B,CAAC,KAAA,KAAU;AACjD,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,uBACE,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,GAAA;AAAA,MACV,WAAW,MAAA,CAAO,IAAA;AAAA,MAClB,MAAA,EAAQ,KAAK,QAAA,CAAS,OAAA;AAAA,MAErB,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,GACT;AAEJ;;;;"}
1
+ {"version":3,"file":"Item.mjs","sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/Item.tsx"],"sourcesContent":["import { useGridItemProps } from \"@/components/List/components/Items/components/Item/hooks/useGridItemProps\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport ItemsGridListItemView from \"@/views/ItemsGridListItemView\";\nimport { mergeRefs } from \"@react-aria/utils\";\nimport type { FC, PropsWithChildren, Ref } from \"react\";\nimport { Suspense } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport styles from \"./Item.module.scss\";\nimport { ListItemSkeletonView } from \"./components/ListItemSkeletonView/ListItemSkeletonView\";\n\ninterface Props extends PropsWithChildren {\n id: Key;\n data: never;\n triggerRef?: Ref<HTMLDivElement>;\n}\n\nexport const Item = (props: Props) => {\n const { id, data, triggerRef } = props;\n const list = useList();\n\n const itemView = list.itemView;\n\n const { gridItemProps, children } = useGridItemProps(props);\n\n if (!itemView) {\n return null;\n }\n\n const textValue = itemView.textValue ? itemView.textValue(data) : undefined;\n const href = itemView.href ? itemView.href(data) : undefined;\n const hasAction = !!gridItemProps.onAction || !!href;\n\n const existingRef = \"ref\" in gridItemProps ? gridItemProps.ref : undefined;\n const gridItemPropsWithRef = triggerRef\n ? { ...gridItemProps, ref: mergeRefs(existingRef, triggerRef) }\n : gridItemProps;\n\n return (\n <ItemsGridListItemView\n id={id}\n textValue={textValue}\n href={href}\n target={itemView.target}\n hasAction={hasAction}\n isTile={list.viewMode.isTiles}\n {...gridItemPropsWithRef}\n >\n <Suspense\n fallback={<ListItemSkeletonView viewMode={list.viewMode.value} />}\n >\n {children}\n </Suspense>\n </ItemsGridListItemView>\n );\n};\n\nexport const ItemContainer: FC<Props> = (props) => {\n const list = useList();\n return (\n <ItemsGridListItemView\n textValue=\"-\"\n className={styles.item}\n isTile={list.viewMode.isTiles}\n >\n {props.children}\n </ItemsGridListItemView>\n );\n};\n\nexport default Item;\n"],"names":[],"mappings":";;;;;;;;;AAgBO,MAAM,IAAA,GAAO,CAAC,KAAA,KAAiB;AACpC,EAAA,MAAM,EAAE,EAAA,EAAI,IAAA,EAAM,UAAA,EAAW,GAAI,KAAA;AACjC,EAAA,MAAM,OAAO,OAAA,EAAQ;AAErB,EAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,EAAA,MAAM,EAAE,aAAA,EAAe,QAAA,EAAS,GAAI,iBAAiB,KAAK,CAAA;AAE1D,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAY,QAAA,CAAS,SAAA,GAAY,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA,GAAI,MAAA;AAClE,EAAA,MAAM,OAAO,QAAA,CAAS,IAAA,GAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AACnD,EAAA,MAAM,YAAY,CAAC,CAAC,aAAA,CAAc,QAAA,IAAY,CAAC,CAAC,IAAA;AAEhD,EAAA,MAAM,WAAA,GAAc,KAAA,IAAS,aAAA,GAAgB,aAAA,CAAc,GAAA,GAAM,MAAA;AACjE,EAAA,MAAM,oBAAA,GAAuB,UAAA,GACzB,EAAE,GAAG,aAAA,EAAe,KAAK,SAAA,CAAU,WAAA,EAAa,UAAU,CAAA,EAAE,GAC5D,aAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,EAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,SAAA;AAAA,MACA,MAAA,EAAQ,KAAK,QAAA,CAAS,OAAA;AAAA,MACrB,GAAG,oBAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,0BAAU,GAAA,CAAC,oBAAA,EAAA,EAAqB,QAAA,EAAU,IAAA,CAAK,SAAS,KAAA,EAAO,CAAA;AAAA,UAE9D;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEO,MAAM,aAAA,GAA2B,CAAC,KAAA,KAAU;AACjD,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,uBACE,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,GAAA;AAAA,MACV,WAAW,MAAA,CAAO,IAAA;AAAA,MAClB,MAAA,EAAQ,KAAK,QAAA,CAAS,OAAA;AAAA,MAErB,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,GACT;AAEJ;;;;"}
@@ -0,0 +1,41 @@
1
+ "use client"
2
+ /* */
3
+ import { useEffectEvent, useEffect } from 'react';
4
+ import { useList } from '../../../hooks/useList.mjs';
5
+
6
+ const loadMoreThresholdFactor = 0.2;
7
+ const minLoadMoreThresholdRows = 1;
8
+ const maxLoadMoreThresholdRows = 8;
9
+ const getLoadMoreThresholdRows = (batchSize) => Math.min(
10
+ maxLoadMoreThresholdRows,
11
+ Math.max(
12
+ minLoadMoreThresholdRows,
13
+ Math.round(batchSize * loadMoreThresholdFactor)
14
+ )
15
+ );
16
+ const useInfiniteScrollTrigger = (triggerRef) => {
17
+ const list = useList();
18
+ const isLoading = list.loader.useIsLoading();
19
+ const visibleItemsCount = list.batches.getVisibleItemsCount();
20
+ const loadNextBatch = useEffectEvent(() => {
21
+ if (list.batches.hasNextBatch() && !isLoading) {
22
+ list.batches.nextBatch();
23
+ }
24
+ });
25
+ useEffect(() => {
26
+ const trigger = triggerRef.current;
27
+ if (!trigger) {
28
+ return;
29
+ }
30
+ const observer = new IntersectionObserver((entries) => {
31
+ if (entries.some((entry) => entry.isIntersecting)) {
32
+ loadNextBatch();
33
+ }
34
+ });
35
+ observer.observe(trigger);
36
+ return () => observer.disconnect();
37
+ }, [loadNextBatch, triggerRef, visibleItemsCount]);
38
+ };
39
+
40
+ export { getLoadMoreThresholdRows, useInfiniteScrollTrigger };
41
+ //# sourceMappingURL=useInfiniteScrollTrigger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInfiniteScrollTrigger.mjs","sources":["../../../../../../../../../../src/components/List/components/Items/hooks/useInfiniteScrollTrigger.ts"],"sourcesContent":["import { useEffect, useEffectEvent, type RefObject } from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\n\nconst loadMoreThresholdFactor = 0.2;\nconst minLoadMoreThresholdRows = 1;\nconst maxLoadMoreThresholdRows = 8;\n\nexport const getLoadMoreThresholdRows = (batchSize: number): number =>\n Math.min(\n maxLoadMoreThresholdRows,\n Math.max(\n minLoadMoreThresholdRows,\n Math.round(batchSize * loadMoreThresholdFactor),\n ),\n );\n\nexport const useInfiniteScrollTrigger = (\n triggerRef: RefObject<HTMLElement | null>,\n): void => {\n const list = useList();\n const isLoading = list.loader.useIsLoading();\n const visibleItemsCount = list.batches.getVisibleItemsCount();\n\n const loadNextBatch = useEffectEvent(() => {\n if (list.batches.hasNextBatch() && !isLoading) {\n list.batches.nextBatch();\n }\n });\n\n useEffect(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n return;\n }\n\n const observer = new IntersectionObserver((entries) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n loadNextBatch();\n }\n });\n observer.observe(trigger);\n\n return () => observer.disconnect();\n }, [loadNextBatch, triggerRef, visibleItemsCount]);\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,uBAAA,GAA0B,GAAA;AAChC,MAAM,wBAAA,GAA2B,CAAA;AACjC,MAAM,wBAAA,GAA2B,CAAA;AAE1B,MAAM,wBAAA,GAA2B,CAAC,SAAA,KACvC,IAAA,CAAK,GAAA;AAAA,EACH,wBAAA;AAAA,EACA,IAAA,CAAK,GAAA;AAAA,IACH,wBAAA;AAAA,IACA,IAAA,CAAK,KAAA,CAAM,SAAA,GAAY,uBAAuB;AAAA;AAElD;AAEK,MAAM,wBAAA,GAA2B,CACtC,UAAA,KACS;AACT,EAAA,MAAM,OAAO,OAAA,EAAQ;AACrB,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,MAAA,CAAO,YAAA,EAAa;AAC3C,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,OAAA,CAAQ,oBAAA,EAAqB;AAE5D,EAAA,MAAM,aAAA,GAAgB,eAAe,MAAM;AACzC,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAa,IAAK,CAAC,SAAA,EAAW;AAC7C,MAAA,IAAA,CAAK,QAAQ,SAAA,EAAU;AAAA,IACzB;AAAA,EACF,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,UAAA,CAAW,OAAA;AAC3B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAA,GAAW,IAAI,oBAAA,CAAqB,CAAC,OAAA,KAAY;AACrD,MAAA,IAAI,QAAQ,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,cAAc,CAAA,EAAG;AACjD,QAAA,aAAA,EAAc;AAAA,MAChB;AAAA,IACF,CAAC,CAAA;AACD,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAExB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,CAAC,aAAA,EAAe,UAAA,EAAY,iBAAiB,CAAC,CAAA;AACnD;;;;"}
@@ -1,7 +1,6 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { jsx } from 'react/jsx-runtime';
4
- import 'react';
5
4
  import styles from './ListSummary.module.scss.mjs';
6
5
  import { flowComponent } from '../../../../lib/componentFactory/flowComponent.mjs';
7
6
  import clsx from 'clsx';
@@ -1 +1 @@
1
- {"version":3,"file":"ListSummary.mjs","sources":["../../../../../../../../../src/components/List/components/ListSummary/ListSummary.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport styles from \"./ListSummary.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport clsx from \"clsx\";\n\nexport interface ListSummaryProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the summary is placed above or underneath the list @default: \"top\" */\n position?: \"top\" | \"bottom\";\n}\n\n/** @flr-generate all */\nexport const ListSummary = flowComponent(\"ListSummary\", (props) => {\n const { children, position = \"top\", ref } = props;\n\n if (position === \"bottom\") {\n return (\n <footer\n ref={ref}\n className={clsx(styles.listSummary, styles.bottom)}\n {...props}\n >\n {children}\n </footer>\n );\n }\n\n return (\n <header\n ref={ref}\n className={clsx(styles.listSummary, styles.top)}\n {...props}\n >\n {children}\n </header>\n );\n});\n\nexport default ListSummary;\n"],"names":[],"mappings":";;;;;;AAcO,MAAM,WAAA,GAAc,aAAA,CAAc,aAAA,EAAe,CAAC,KAAA,KAAU;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,QAAA,GAAW,KAAA,EAAO,KAAI,GAAI,KAAA;AAE5C,EAAA,IAAI,aAAa,QAAA,EAAU;AACzB,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,WAAA,EAAa,OAAO,MAAM,CAAA;AAAA,QAChD,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,WAAA,EAAa,OAAO,GAAG,CAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"ListSummary.mjs","sources":["../../../../../../../../../src/components/List/components/ListSummary/ListSummary.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListSummary.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport clsx from \"clsx\";\n\nexport interface ListSummaryProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the summary is placed above or underneath the list @default: \"top\" */\n position?: \"top\" | \"bottom\";\n}\n\n/** @flr-generate all */\nexport const ListSummary = flowComponent(\"ListSummary\", (props) => {\n const { children, position = \"top\", ref } = props;\n\n if (position === \"bottom\") {\n return (\n <footer\n ref={ref}\n className={clsx(styles.listSummary, styles.bottom)}\n {...props}\n >\n {children}\n </footer>\n );\n }\n\n return (\n <header\n ref={ref}\n className={clsx(styles.listSummary, styles.top)}\n {...props}\n >\n {children}\n </header>\n );\n});\n\nexport default ListSummary;\n"],"names":[],"mappings":";;;;;AAaO,MAAM,WAAA,GAAc,aAAA,CAAc,aAAA,EAAe,CAAC,KAAA,KAAU;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,QAAA,GAAW,KAAA,EAAO,KAAI,GAAI,KAAA;AAE5C,EAAA,IAAI,aAAa,QAAA,EAAU;AACzB,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,WAAA,EAAa,OAAO,MAAM,CAAA;AAAA,QAChD,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,IAAA,CAAK,MAAA,CAAO,WAAA,EAAa,OAAO,GAAG,CAAA;AAAA,MAC7C,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -28,6 +28,7 @@ class List {
28
28
  loader;
29
29
  onAction;
30
30
  accordion;
31
+ infiniteScroll;
31
32
  getItemId;
32
33
  componentProps;
33
34
  metadata;
@@ -52,6 +53,7 @@ class List {
52
53
  getItemId,
53
54
  defaultViewMode,
54
55
  accordion = false,
56
+ infiniteScroll = false,
55
57
  loadingItemsCount = 5,
56
58
  settingsStorageDefaults,
57
59
  emptyView,
@@ -71,6 +73,7 @@ class List {
71
73
  this.search = search ? new Search(this, search) : void 0;
72
74
  this.itemView = itemView ? new ItemView(this, itemView) : void 0;
73
75
  this.accordion = accordion;
76
+ this.infiniteScroll = infiniteScroll;
74
77
  this.table = table ? new Table(this, table) : void 0;
75
78
  this.batches = new BatchesController(this, batchesController);
76
79
  this.componentProps = componentProps;
@@ -1 +1 @@
1
- {"version":3,"file":"List.mjs","sources":["../../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n EmptyViewType,\n GetItemId,\n ItemActionFn,\n ListSettingsStorageDefaults,\n ListShape,\n ListSupportedComponentProps,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, type ReactNode } from \"react\";\nimport { ListSettingsStore } from \"./ListSettingsStore\";\nimport { ListViewMode } from \"./ListViewMode\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\nexport class List<T = unknown, TMeta = unknown> {\n public readonly filters: (\n | Filter<T, never, never>\n | DateRangeFilter<T, never>\n )[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public metadata?: TMeta;\n public readonly settingsStorage?: ListSettingsStore<T>;\n public readonly loadingItemsCount;\n public readonly viewMode: ListViewMode<T>;\n public readonly emptyView?: ReactNode;\n public readonly emptySearchResultView?: ReactNode;\n public readonly settingsStorageDefaults?: ListSettingsStorageDefaults;\n\n public constructor(shape: ListShape<T, TMeta>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n loadingItemsCount = 5,\n settingsStorageDefaults,\n emptyView,\n emptySearchResultView,\n ...componentProps\n } = shape;\n\n this.settingsStorageDefaults = settingsStorageDefaults;\n const generalSettingsStore = useSettings();\n\n this.settingsStorage =\n settingStorageKey && generalSettingsStore\n ? new ListSettingsStore(this, generalSettingsStore, {\n storageKey: settingStorageKey,\n })\n : undefined;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) =>\n shape.mode === \"dateRange\"\n ? new DateRangeFilter(this, shape)\n : new Filter(this, shape),\n );\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.loadingItemsCount = loadingItemsCount;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n this.viewMode = new ListViewMode(this, { defaultViewMode });\n this.emptyView = emptyView;\n this.emptySearchResultView = emptySearchResultView;\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public getEmptyViewType(): EmptyViewType {\n return this.hasActiveFilters || this.search?.isSet ? \"search\" : \"list\";\n }\n\n public get hasActiveFilters(): boolean {\n return this.filters.some((f) => f.isActive());\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.initialEnabled !== \"hidden\");\n }\n\n public static useNew<T, TMeta = unknown>(\n shape: ListShape<T, TMeta>,\n ): List<T, TMeta> {\n return new List<T, TMeta>(shape);\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape"],"mappings":"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"}
1
+ {"version":3,"file":"List.mjs","sources":["../../../../../../../../src/components/List/model/List.ts"],"sourcesContent":["import { ItemCollection } from \"@/components/List/model/item/ItemCollection\";\nimport { BatchesController } from \"@/components/List/model/pagination/BatchesController\";\nimport { Filter } from \"./filter/Filter\";\nimport { Sorting } from \"@/components/List/model/sorting/Sorting\";\nimport ReactTable from \"@/components/List/model/ReactTable\";\nimport type {\n EmptyViewType,\n GetItemId,\n ItemActionFn,\n ListSettingsStorageDefaults,\n ListShape,\n ListSupportedComponentProps,\n} from \"@/components/List/model/types\";\nimport { IncrementalLoader } from \"@/components/List/model/loading/IncrementalLoader\";\nimport invariant from \"invariant\";\nimport { Search } from \"@/components/List/model/search/Search\";\nimport { ItemView } from \"@/components/List/model/item/ItemView\";\nimport { Table } from \"@/components/List/model/table/Table\";\nimport { useEffect, type ReactNode } from \"react\";\nimport { ListSettingsStore } from \"./ListSettingsStore\";\nimport { ListViewMode } from \"./ListViewMode\";\nimport { useSettings } from \"@/components/SettingsProvider/SettingsProvider\";\nimport { DateRangeFilter } from \"@/components/List/model/filter/DateRangeFilter\";\n\nexport class List<T = unknown, TMeta = unknown> {\n public readonly filters: (\n | Filter<T, never, never>\n | DateRangeFilter<T, never>\n )[];\n public readonly itemView?: ItemView<T>;\n public readonly table?: Table<T>;\n public readonly search?: Search<T>;\n public readonly sorting: Sorting<T>[];\n public readonly items: ItemCollection<T>;\n public readonly reactTable: ReactTable<T>;\n public readonly batches: BatchesController<T>;\n public readonly loader: IncrementalLoader<T>;\n public readonly onAction?: ItemActionFn<T>;\n public readonly accordion: boolean;\n public readonly infiniteScroll: boolean;\n public readonly getItemId?: GetItemId<T>;\n public readonly componentProps: ListSupportedComponentProps;\n public metadata?: TMeta;\n public readonly settingsStorage?: ListSettingsStore<T>;\n public readonly loadingItemsCount;\n public readonly viewMode: ListViewMode<T>;\n public readonly emptyView?: ReactNode;\n public readonly emptySearchResultView?: ReactNode;\n public readonly settingsStorageDefaults?: ListSettingsStorageDefaults;\n\n public constructor(shape: ListShape<T, TMeta>) {\n const {\n settingStorageKey,\n itemView,\n table,\n filters = [],\n sorting = [],\n batchesController,\n onChange,\n loader,\n search,\n onAction,\n getItemId,\n defaultViewMode,\n accordion = false,\n infiniteScroll = false,\n loadingItemsCount = 5,\n settingsStorageDefaults,\n emptyView,\n emptySearchResultView,\n ...componentProps\n } = shape;\n\n this.settingsStorageDefaults = settingsStorageDefaults;\n const generalSettingsStore = useSettings();\n\n this.settingsStorage =\n settingStorageKey && generalSettingsStore\n ? new ListSettingsStore(this, generalSettingsStore, {\n storageKey: settingStorageKey,\n })\n : undefined;\n\n this.items = new ItemCollection(this);\n this.filters = filters.map((shape) =>\n shape.mode === \"dateRange\"\n ? new DateRangeFilter(this, shape)\n : new Filter(this, shape),\n );\n this.sorting = sorting.map((shape) => new Sorting<T>(this, shape));\n this.search = search ? new Search(this, search) : undefined;\n this.itemView = itemView ? new ItemView(this, itemView) : undefined;\n this.accordion = accordion;\n this.infiniteScroll = infiniteScroll;\n this.table = table ? new Table(this, table) : undefined;\n this.batches = new BatchesController(this, batchesController);\n this.componentProps = componentProps;\n this.loader = IncrementalLoader.useNew<T>(this, loader);\n this.onAction = onAction;\n this.getItemId = getItemId;\n this.loadingItemsCount = loadingItemsCount;\n this.reactTable = ReactTable.useNew(this, onChange, {\n manualFiltering: this.loader.manualFiltering,\n manualPagination: this.loader.manualPagination,\n manualSorting: this.loader.manualSorting,\n });\n this.viewMode = new ListViewMode(this, { defaultViewMode });\n this.emptyView = emptyView;\n this.emptySearchResultView = emptySearchResultView;\n\n useEffect(() => {\n this.filters.forEach((f) => f.deleteUnknownFilterValues());\n }, [this.filters]);\n }\n\n public getEmptyViewType(): EmptyViewType {\n return this.hasActiveFilters || this.search?.isSet ? \"search\" : \"list\";\n }\n\n public get hasActiveFilters(): boolean {\n return this.filters.some((f) => f.isActive());\n }\n\n public get visibleSorting() {\n return this.sorting.filter((s) => s.initialEnabled !== \"hidden\");\n }\n\n public static useNew<T, TMeta = unknown>(\n shape: ListShape<T, TMeta>,\n ): List<T, TMeta> {\n return new List<T, TMeta>(shape);\n }\n\n public getSorting(id: string): Sorting<T> {\n const sorting = this.sorting.find((s) => s.id === id);\n invariant(!!sorting, `Could not get Sorting (ID: ${id})`);\n return sorting;\n }\n\n public clearSorting(): void {\n return this.sorting.forEach((s) => s.clear());\n }\n\n public resetFilters(): void {\n return this.filters.forEach((f) => f.resetValues());\n }\n\n public clearFilters(): void {\n return this.filters.forEach((f) => f.clear());\n }\n\n public useIsEmpty(): boolean {\n return !this.loader.useIsLoading() && this.items.entries.length === 0;\n }\n}\n\nexport default List;\n"],"names":["shape"],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  /* */
3
3
  import { Filter } from './Filter.mjs';
4
4
  import 'react/jsx-runtime';
5
- import 'react';
6
5
  import 'react-aria-components';
7
6
  import '../../../Button/Button.mjs';
7
+ import 'react';
8
8
  import '@mittwald/flow-icons';
9
9
  import '../../../Icon/components/IconSetProvider.mjs';
10
10
  import '../../../Icon/Icon.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T, TMeta = unknown> = (list: List<T, TMeta>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListSettingsStorageDefaults {\n filters?: {\n autosave?: boolean;\n manualSave?: boolean;\n };\n\n sorting?: {\n autosave?: boolean;\n };\n\n viewMode?: {\n autosave?: boolean;\n };\n\n search?: {\n autosave?: boolean;\n };\n}\n\nexport interface ListShape<\n T,\n TMeta = unknown,\n> extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n loadingItemsCount?: number;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T, TMeta>;\n defaultViewMode?: ListViewMode;\n settingsStorageDefaults?: ListSettingsStorageDefaults;\n\n emptySearchResultView?: ReactNode;\n emptyView?: ReactNode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport interface ListSettingsStorageShape {\n storageKey: string;\n}\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n\nexport type EmptyViewType = \"search\" | \"list\";\n"],"names":[],"mappings":"AAaO,MAAM,oBAAA,GAAuB;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../../../../../../../../src/components/List/model/types.ts"],"sourcesContent":["import type { FilterShape } from \"@/components/List/model/filter/types\";\nimport type { ItemViewShape } from \"@/components/List/model/item/ItemView\";\nimport type List from \"@/components/List/model/List\";\nimport type { IncrementalLoaderShape } from \"@/components/List/model/loading/types\";\nimport type { BatchesControllerShape } from \"@/components/List/model/pagination/types\";\nimport type { SearchShape } from \"@/components/List/model/search/types\";\nimport type { SortingShape } from \"@/components/List/model/sorting/types\";\nimport type { TableShape } from \"@/components/List/model/table/types\";\nimport type { ItemType } from \"@/lib/types/array\";\nimport type { MultipleSelection, SelectionBehavior } from \"@react-types/shared\";\nimport type { DeepKeys, DeepValue } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\n\nexport const customPropertyPrefix = \"$\" as const;\nexport type CustomPropertyName = `${typeof customPropertyPrefix}${string}`;\n\nexport type PropertyName<T> = DeepKeys<T> | CustomPropertyName;\nexport type PropertyValue<T, TProp> = TProp extends CustomPropertyName\n ? T\n : DeepValue<T, TProp>;\nexport type PropertyValueRenderMethod<TMatcherValue> = (\n prop: NonNullable<ItemType<TMatcherValue>>,\n) => ReactNode;\n\nexport type OnListChanged<T, TMeta = unknown> = (list: List<T, TMeta>) => void;\n\nexport interface ListSupportedComponentProps extends MultipleSelection {\n \"aria-labelledby\"?: string;\n \"aria-label\"?: string;\n selectionBehavior?: SelectionBehavior;\n}\n\nexport interface ListSettingsStorageDefaults {\n filters?: {\n autosave?: boolean;\n manualSave?: boolean;\n };\n\n sorting?: {\n autosave?: boolean;\n };\n\n viewMode?: {\n autosave?: boolean;\n };\n\n search?: {\n autosave?: boolean;\n };\n}\n\nexport interface ListShape<\n T,\n TMeta = unknown,\n> extends ListSupportedComponentProps {\n settingStorageKey?: string;\n\n loader?: IncrementalLoaderShape<T>;\n filters?: FilterShape<T, never, never>[];\n itemView?: ItemViewShape<T>;\n search?: SearchShape<T>;\n sorting?: SortingShape<T>[];\n batchesController?: BatchesControllerShape;\n table?: TableShape<T>;\n\n onAction?: ItemActionFn<T>;\n accordion?: boolean;\n infiniteScroll?: boolean;\n loadingItemsCount?: number;\n getItemId?: GetItemId<T>;\n onChange?: OnListChanged<T, TMeta>;\n defaultViewMode?: ListViewMode;\n settingsStorageDefaults?: ListSettingsStorageDefaults;\n\n emptySearchResultView?: ReactNode;\n emptyView?: ReactNode;\n}\n\nexport type PropertyRecord<T, TValue> = Partial<\n Record<PropertyName<T>, TValue>\n>;\n\nexport interface ListSettingsStorageShape {\n storageKey: string;\n}\n\nexport type ListViewMode = \"table\" | \"list\" | \"tiles\";\nexport type ItemActionFn<T> = (data: T) => void;\nexport type GetItemId<T> = (data: T) => string;\n\nexport type EmptyViewType = \"search\" | \"list\";\n"],"names":[],"mappings":"AAaO,MAAM,oBAAA,GAAuB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingSpinner.mjs","sources":["../../../../../../../src/components/LoadingSpinner/LoadingSpinner.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport React from \"react\";\nimport { IconPending } from \"@/components/Icon/components/icons\";\nimport styles from \"./LoadingSpinner.module.scss\";\nimport type { IconProps } from \"@/components/Icon\";\nimport clsx from \"clsx\";\nimport { type AlphaColor, isAlphaColor } from \"@/lib/types/props\";\nimport { useReducedMotion } from \"framer-motion\";\nimport { useDesignTokens } from \"@/lib/theming\";\n\nexport interface LoadingSpinnerProps extends IconProps {\n /** The color of the loading spinner. @default \"default\" */\n color?: \"default\" | AlphaColor;\n}\n\nconst globalSpinnerTime = performance.now();\n\n/** @flr-generate all */\nexport const LoadingSpinner: FC<LoadingSpinnerProps> = (props) => {\n const { className, color = \"default\", ...rest } = props;\n\n const preferReducedMotion = useReducedMotion();\n\n const designTokens = useDesignTokens();\n const loadingSpinnerTokens = designTokens[\"loading-spinner\"];\n\n const animationDurationMs = preferReducedMotion\n ? parseInt(loadingSpinnerTokens[\"transition-duration-slow\"].value)\n : parseInt(loadingSpinnerTokens[\"transition-duration\"].value);\n\n const rootClassName = clsx(\n styles.loadingSpinner,\n isAlphaColor(color) && styles[color],\n className,\n );\n\n return (\n <IconPending\n className={rootClassName}\n ref={(element) => {\n if (element) {\n const elapsedMs = performance.now() - globalSpinnerTime;\n const phaseMs = elapsedMs % animationDurationMs;\n\n element.style.setProperty(\"--animation-delay\", `${-phaseMs}ms`);\n }\n }}\n {...rest}\n />\n );\n};\n\nexport default LoadingSpinner;\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeA,MAAM,iBAAA,GAAoB,YAAY,GAAA,EAAI;AAGnC,MAAM,cAAA,GAA0C,CAAC,KAAA,KAAU;AAChE,EAAA,MAAM,EAAE,SAAA,EAAW,KAAA,GAAQ,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAElD,EAAA,MAAM,sBAAsB,gBAAA,EAAiB;AAE7C,EAAA,MAAM,eAAe,eAAA,EAAgB;AACrC,EAAA,MAAM,oBAAA,GAAuB,aAAa,iBAAiB,CAAA;AAE3D,EAAA,MAAM,mBAAA,GAAsB,mBAAA,GACxB,QAAA,CAAS,oBAAA,CAAqB,0BAA0B,CAAA,CAAE,KAAK,CAAA,GAC/D,QAAA,CAAS,oBAAA,CAAqB,qBAAqB,CAAA,CAAE,KAAK,CAAA;AAE9D,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,cAAA;AAAA,IACP,YAAA,CAAa,KAAK,CAAA,IAAK,MAAA,CAAO,KAAK,CAAA;AAAA,IACnC;AAAA,GACF;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAA;AAAA,MACX,GAAA,EAAK,CAAC,OAAA,KAAY;AAChB,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,MAAM,SAAA,GAAY,WAAA,CAAY,GAAA,EAAI,GAAI,iBAAA;AACtC,UAAA,MAAM,UAAU,SAAA,GAAY,mBAAA;AAE5B,UAAA,OAAA,CAAQ,MAAM,WAAA,CAAY,mBAAA,EAAqB,CAAA,EAAG,CAAC,OAAO,CAAA,EAAA,CAAI,CAAA;AAAA,QAChE;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
1
+ {"version":3,"file":"LoadingSpinner.mjs","sources":["../../../../../../../src/components/LoadingSpinner/LoadingSpinner.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { IconPending } from \"@/components/Icon/components/icons\";\nimport styles from \"./LoadingSpinner.module.scss\";\nimport type { IconProps } from \"@/components/Icon\";\nimport clsx from \"clsx\";\nimport { type AlphaColor, isAlphaColor } from \"@/lib/types/props\";\nimport { useReducedMotion } from \"framer-motion\";\nimport { useDesignTokens } from \"@/lib/theming\";\n\nexport interface LoadingSpinnerProps extends IconProps {\n /** The color of the loading spinner. @default \"default\" */\n color?: \"default\" | AlphaColor;\n}\n\nconst globalSpinnerTime = performance.now();\n\n/** @flr-generate all */\nexport const LoadingSpinner: FC<LoadingSpinnerProps> = (props) => {\n const { className, color = \"default\", ...rest } = props;\n\n const preferReducedMotion = useReducedMotion();\n\n const designTokens = useDesignTokens();\n const loadingSpinnerTokens = designTokens[\"loading-spinner\"];\n\n const animationDurationMs = preferReducedMotion\n ? parseInt(loadingSpinnerTokens[\"transition-duration-slow\"].value)\n : parseInt(loadingSpinnerTokens[\"transition-duration\"].value);\n\n const rootClassName = clsx(\n styles.loadingSpinner,\n isAlphaColor(color) && styles[color],\n className,\n );\n\n return (\n <IconPending\n className={rootClassName}\n ref={(element) => {\n if (element) {\n const elapsedMs = performance.now() - globalSpinnerTime;\n const phaseMs = elapsedMs % animationDurationMs;\n\n element.style.setProperty(\"--animation-delay\", `${-phaseMs}ms`);\n }\n }}\n {...rest}\n />\n );\n};\n\nexport default LoadingSpinner;\n"],"names":[],"mappings":";;;;;;;;;;;;;AAcA,MAAM,iBAAA,GAAoB,YAAY,GAAA,EAAI;AAGnC,MAAM,cAAA,GAA0C,CAAC,KAAA,KAAU;AAChE,EAAA,MAAM,EAAE,SAAA,EAAW,KAAA,GAAQ,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAElD,EAAA,MAAM,sBAAsB,gBAAA,EAAiB;AAE7C,EAAA,MAAM,eAAe,eAAA,EAAgB;AACrC,EAAA,MAAM,oBAAA,GAAuB,aAAa,iBAAiB,CAAA;AAE3D,EAAA,MAAM,mBAAA,GAAsB,mBAAA,GACxB,QAAA,CAAS,oBAAA,CAAqB,0BAA0B,CAAA,CAAE,KAAK,CAAA,GAC/D,QAAA,CAAS,oBAAA,CAAqB,qBAAqB,CAAA,CAAE,KAAK,CAAA;AAE9D,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,cAAA;AAAA,IACP,YAAA,CAAa,KAAK,CAAA,IAAK,MAAA,CAAO,KAAK,CAAA;AAAA,IACnC;AAAA,GACF;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,aAAA;AAAA,MACX,GAAA,EAAK,CAAC,OAAA,KAAY;AAChB,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,MAAM,SAAA,GAAY,WAAA,CAAY,GAAA,EAAI,GAAI,iBAAA;AACtC,UAAA,MAAM,UAAU,SAAA,GAAY,mBAAA;AAE5B,UAAA,OAAA,CAAQ,MAAM,WAAA,CAAY,mBAAA,EAAqB,CAAA,EAAG,CAAC,OAAO,CAAA,EAAA,CAAI,CAAA;AAAA,QAChE;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
@@ -32,8 +32,8 @@ const MarkdownEditor = flowComponent("MarkdownEditor", (props) => {
32
32
  const [mode, setMode] = useState("editor");
33
33
  const rootClassName = clsx(
34
34
  styles.markdownEditor,
35
- className,
36
- styles[`mode-${mode}`]
35
+ styles[`mode-${mode}`],
36
+ className
37
37
  );
38
38
  const handleKeyDown = (event) => {
39
39
  if (event.key !== "Enter") {