@mittwald/flow-react-components 0.2.0-alpha.804 → 0.2.0-alpha.806

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 (269) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/MIGRATION.md +101 -0
  3. package/dist/assets/doc-properties.json +9557 -9169
  4. package/dist/css/all.css +1 -1
  5. package/dist/js/_virtual/_.locale.json@cbc1b50fe3e51afbdb1b35a65308b79e.mjs +14 -0
  6. package/dist/js/_virtual/_.locale.json@cbc1b50fe3e51afbdb1b35a65308b79e.mjs.map +1 -0
  7. package/dist/js/default.mjs +2 -1
  8. package/dist/js/default.mjs.map +1 -1
  9. package/dist/js/flr-universal.mjs +10 -8
  10. package/dist/js/flr-universal.mjs.map +1 -1
  11. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs +72 -62
  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 +1 -1
  14. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs +1 -2
  15. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs +13 -4
  17. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
  18. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs +16 -3
  19. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  20. package/dist/js/packages/components/src/components/CartesianChart/components/Area/Area.mjs +2 -0
  21. package/dist/js/packages/components/src/components/CartesianChart/components/Area/Area.mjs.map +1 -1
  22. package/dist/js/packages/components/src/components/CartesianChart/components/ChartLegend/ChartLegend.mjs.map +1 -1
  23. package/dist/js/packages/components/src/components/CartesianChart/components/ChartLegend/LegendContent.mjs +3 -1
  24. package/dist/js/packages/components/src/components/CartesianChart/components/ChartLegend/LegendContent.mjs.map +1 -1
  25. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs +6 -6
  26. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs.map +1 -1
  27. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipContent.mjs +1 -1
  28. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipContent.mjs.map +1 -1
  29. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.mjs +5 -5
  30. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.mjs.map +1 -1
  31. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.mjs +7 -2
  32. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.mjs.map +1 -1
  33. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/types.mjs +16 -0
  34. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/types.mjs.map +1 -0
  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/XAxis/types.mjs +1 -1
  38. package/dist/js/packages/components/src/components/CartesianChart/components/XAxis/types.mjs.map +1 -1
  39. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
  40. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/types.mjs.map +1 -1
  41. package/dist/js/packages/components/src/components/CartesianChart/types.mjs +8 -0
  42. package/dist/js/packages/components/src/components/CartesianChart/types.mjs.map +1 -0
  43. package/dist/js/packages/components/src/components/Chat/Chat.mjs +37 -21
  44. package/dist/js/packages/components/src/components/Chat/Chat.mjs.map +1 -1
  45. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs +1 -1
  46. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
  47. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs +1 -1
  48. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
  49. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs +24 -12
  50. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  51. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs +70 -16
  52. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
  53. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.scss.mjs +7 -3
  54. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.module.scss.mjs.map +1 -1
  55. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +2 -3
  56. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
  57. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.scss.mjs +3 -1
  58. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.scss.mjs.map +1 -1
  59. package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs +4 -4
  60. package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs.map +1 -1
  61. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +9 -6
  62. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
  63. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs +1 -1
  64. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
  65. package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.module.scss.mjs +1 -2
  66. package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.module.scss.mjs.map +1 -1
  67. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +1 -1
  68. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
  69. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.module.scss.mjs +1 -2
  70. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.module.scss.mjs.map +1 -1
  71. package/dist/js/packages/components/src/components/FileCard/FileCard.mjs +13 -7
  72. package/dist/js/packages/components/src/components/FileCard/FileCard.mjs.map +1 -1
  73. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs +1 -1
  74. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
  75. package/dist/js/packages/components/src/components/FileField/FileField.mjs +1 -1
  76. package/dist/js/packages/components/src/components/FileField/FileField.mjs.map +1 -1
  77. package/dist/js/packages/components/src/components/Heading/Heading.mjs +18 -18
  78. package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
  79. package/dist/js/packages/components/src/components/Label/Label.mjs +19 -10
  80. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  81. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs +8 -5
  82. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs.map +1 -1
  83. package/dist/js/packages/components/src/components/List/List.mjs +12 -6
  84. package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
  85. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs +2 -2
  86. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs.map +1 -1
  87. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs +3 -5
  88. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
  89. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs +5 -8
  90. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs.map +1 -1
  91. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs +6 -9
  92. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs.map +1 -1
  93. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.mjs +9 -12
  94. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenus.mjs.map +1 -1
  95. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs +9 -12
  96. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingMenuItem.mjs.map +1 -1
  97. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs +6 -7
  98. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs.map +1 -1
  99. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs +6 -9
  100. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs.map +1 -1
  101. package/dist/js/packages/components/src/components/List/components/Header/lib.mjs +9 -12
  102. package/dist/js/packages/components/src/components/List/components/Header/lib.mjs.map +1 -1
  103. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs +4 -1
  104. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs.map +1 -1
  105. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs +1 -1
  106. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs.map +1 -1
  107. package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs +9 -12
  108. package/dist/js/packages/components/src/components/List/components/Items/components/Item/hooks/useGridItemProps.mjs.map +1 -1
  109. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs +84 -51
  110. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
  111. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs +9 -12
  112. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
  113. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs +2 -3
  114. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  115. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs +8 -5
  116. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs.map +1 -1
  117. package/dist/js/packages/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs +15 -21
  118. package/dist/js/packages/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs.map +1 -1
  119. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs +1 -1
  120. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs.map +1 -1
  121. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +21 -9
  122. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
  123. package/dist/js/packages/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs +1 -1
  124. package/dist/js/packages/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs.map +1 -1
  125. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs +16 -10
  126. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
  127. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.module.scss.mjs +1 -2
  128. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.module.scss.mjs.map +1 -1
  129. package/dist/js/packages/components/src/components/Rating/Rating.mjs +1 -1
  130. package/dist/js/packages/components/src/components/Rating/Rating.mjs.map +1 -1
  131. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +11 -8
  132. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs.map +1 -1
  133. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs +82 -48
  134. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
  135. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +17 -8
  136. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  137. package/dist/js/packages/components/src/components/Select/Select.mjs +11 -8
  138. package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
  139. package/dist/js/packages/components/src/components/Select/Select.module.scss.mjs +1 -2
  140. package/dist/js/packages/components/src/components/Select/Select.module.scss.mjs.map +1 -1
  141. package/dist/js/packages/components/src/components/Slider/Slider.mjs +9 -6
  142. package/dist/js/packages/components/src/components/Slider/Slider.mjs.map +1 -1
  143. package/dist/js/packages/components/src/components/Switch/Switch.mjs +1 -1
  144. package/dist/js/packages/components/src/components/Switch/Switch.mjs.map +1 -1
  145. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs +4 -4
  146. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs.map +1 -1
  147. package/dist/js/packages/components/src/components/Tabs/components/Tab/Tab.mjs +2 -2
  148. package/dist/js/packages/components/src/components/Tabs/components/Tab/Tab.mjs.map +1 -1
  149. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs +4 -4
  150. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs.map +1 -1
  151. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs +4 -5
  152. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs.map +1 -1
  153. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs +1 -1
  154. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs.map +1 -1
  155. package/dist/js/packages/components/src/components/TextArea/TextArea.module.scss.mjs +1 -2
  156. package/dist/js/packages/components/src/components/TextArea/TextArea.module.scss.mjs.map +1 -1
  157. package/dist/js/packages/components/src/components/TextField/TextField.mjs +16 -7
  158. package/dist/js/packages/components/src/components/TextField/TextField.mjs.map +1 -1
  159. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs +1 -1
  160. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs.map +1 -1
  161. package/dist/js/packages/components/src/components/TimeField/TimeField.module.scss.mjs +1 -2
  162. package/dist/js/packages/components/src/components/TimeField/TimeField.module.scss.mjs.map +1 -1
  163. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelEntry.mjs +19 -0
  164. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelEntry.mjs.map +1 -0
  165. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelExit.mjs +19 -0
  166. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelExit.mjs.map +1 -0
  167. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelProvider.mjs +13 -0
  168. package/dist/js/packages/components/src/components/UiComponentTunnel/UiComponentTunnelProvider.mjs.map +1 -0
  169. package/dist/js/packages/components/src/components/UiComponentTunnel/lib.mjs +7 -0
  170. package/dist/js/packages/components/src/components/UiComponentTunnel/lib.mjs.map +1 -0
  171. package/dist/js/packages/components/src/components/propTypes/index.mjs +4 -0
  172. package/dist/js/packages/components/src/components/propTypes/index.mjs.map +1 -1
  173. package/dist/js/packages/components/src/lib/componentFactory/flowComponent.mjs +8 -4
  174. package/dist/js/packages/components/src/lib/componentFactory/flowComponent.mjs.map +1 -1
  175. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs +4 -2
  176. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs.map +1 -1
  177. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs +6 -6
  178. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs.map +1 -1
  179. package/dist/js/packages/components/src/lib/types/props.mjs.map +1 -1
  180. package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
  181. package/dist/types/components/ActionGroup/ActionGroup.d.ts.map +1 -1
  182. package/dist/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  183. package/dist/types/components/CartesianChart/CartesianChart.d.ts +6 -8
  184. package/dist/types/components/CartesianChart/CartesianChart.d.ts.map +1 -1
  185. package/dist/types/components/CartesianChart/components/Area/Area.d.ts +9 -4
  186. package/dist/types/components/CartesianChart/components/Area/Area.d.ts.map +1 -1
  187. package/dist/types/components/CartesianChart/components/ChartLegend/ChartLegend.d.ts +1 -1
  188. package/dist/types/components/CartesianChart/components/ChartLegend/ChartLegend.d.ts.map +1 -1
  189. package/dist/types/components/CartesianChart/components/ChartLegend/LegendContent.d.ts.map +1 -1
  190. package/dist/types/components/CartesianChart/components/ChartTooltip/ChartTooltip.d.ts +5 -25
  191. package/dist/types/components/CartesianChart/components/ChartTooltip/ChartTooltip.d.ts.map +1 -1
  192. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipContent.d.ts +2 -2
  193. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipContent.d.ts.map +1 -1
  194. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.d.ts +2 -2
  195. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.d.ts.map +1 -1
  196. package/dist/types/components/CartesianChart/components/ChartTooltip/index.d.ts +1 -0
  197. package/dist/types/components/CartesianChart/components/ChartTooltip/index.d.ts.map +1 -1
  198. package/dist/types/components/CartesianChart/components/ChartTooltip/types.d.ts +26 -0
  199. package/dist/types/components/CartesianChart/components/ChartTooltip/types.d.ts.map +1 -0
  200. package/dist/types/components/CartesianChart/components/Line/Line.d.ts +3 -3
  201. package/dist/types/components/CartesianChart/components/Line/Line.d.ts.map +1 -1
  202. package/dist/types/components/CartesianChart/components/XAxis/XAxis.d.ts +3 -3
  203. package/dist/types/components/CartesianChart/components/XAxis/XAxis.d.ts.map +1 -1
  204. package/dist/types/components/CartesianChart/components/XAxis/types.d.ts +2 -2
  205. package/dist/types/components/CartesianChart/components/XAxis/types.d.ts.map +1 -1
  206. package/dist/types/components/CartesianChart/components/YAxis/YAxis.d.ts +2 -2
  207. package/dist/types/components/CartesianChart/components/YAxis/YAxis.d.ts.map +1 -1
  208. package/dist/types/components/CartesianChart/components/YAxis/types.d.ts +2 -2
  209. package/dist/types/components/CartesianChart/components/YAxis/types.d.ts.map +1 -1
  210. package/dist/types/components/CartesianChart/stories/Default.stories.d.ts.map +1 -1
  211. package/dist/types/components/CartesianChart/typedCartesianChart.test-types.d.ts +2 -0
  212. package/dist/types/components/CartesianChart/typedCartesianChart.test-types.d.ts.map +1 -0
  213. package/dist/types/components/CartesianChart/types.d.ts +11 -0
  214. package/dist/types/components/CartesianChart/types.d.ts.map +1 -0
  215. package/dist/types/components/Chat/Chat.d.ts.map +1 -1
  216. package/dist/types/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  217. package/dist/types/components/CodeBlock/CodeBlock.d.ts +7 -0
  218. package/dist/types/components/CodeBlock/CodeBlock.d.ts.map +1 -1
  219. package/dist/types/components/CodeBlock/stories/Default.stories.d.ts +1 -2
  220. package/dist/types/components/CodeBlock/stories/Default.stories.d.ts.map +1 -1
  221. package/dist/types/components/CodeEditor/CodeEditor.d.ts +1 -2
  222. package/dist/types/components/CodeEditor/CodeEditor.d.ts.map +1 -1
  223. package/dist/types/components/ComboBox/ComboBox.d.ts.map +1 -1
  224. package/dist/types/components/FileCard/FileCard.d.ts.map +1 -1
  225. package/dist/types/components/Heading/Heading.d.ts +0 -1
  226. package/dist/types/components/Heading/Heading.d.ts.map +1 -1
  227. package/dist/types/components/Heading/index.d.ts +1 -0
  228. package/dist/types/components/Heading/index.d.ts.map +1 -1
  229. package/dist/types/components/Label/Label.d.ts.map +1 -1
  230. package/dist/types/components/LightBox/LightBox.d.ts.map +1 -1
  231. package/dist/types/components/List/List.d.ts.map +1 -1
  232. package/dist/types/components/List/components/Items/components/Item/components/AccordionButton.d.ts.map +1 -1
  233. package/dist/types/components/List/components/ListItemView/ListItemView.d.ts +11 -1
  234. package/dist/types/components/List/components/ListItemView/ListItemView.d.ts.map +1 -1
  235. package/dist/types/components/List/typedList.d.ts +18 -8
  236. package/dist/types/components/List/typedList.d.ts.map +1 -1
  237. package/dist/types/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  238. package/dist/types/components/Navigation/Navigation.d.ts.map +1 -1
  239. package/dist/types/components/Navigation/components/NavigationGroup/NavigationGroup.d.ts.map +1 -1
  240. package/dist/types/components/Navigation/stories/Default.stories.d.ts.map +1 -1
  241. package/dist/types/components/PasswordCreationField/PasswordCreationField.d.ts.map +1 -1
  242. package/dist/types/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  243. package/dist/types/components/Rating/Rating.d.ts +2 -2
  244. package/dist/types/components/Rating/Rating.d.ts.map +1 -1
  245. package/dist/types/components/SearchField/SearchField.d.ts.map +1 -1
  246. package/dist/types/components/Section/components/SectionHeader/SectionHeader.d.ts.map +1 -1
  247. package/dist/types/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  248. package/dist/types/components/Select/Select.d.ts.map +1 -1
  249. package/dist/types/components/Slider/Slider.d.ts.map +1 -1
  250. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  251. package/dist/types/components/Tabs/components/TabTitle/TabTitle.d.ts.map +1 -1
  252. package/dist/types/components/TextField/TextField.d.ts.map +1 -1
  253. package/dist/types/components/UiComponentTunnel/UiComponentTunnelEntry.d.ts +8 -0
  254. package/dist/types/components/UiComponentTunnel/UiComponentTunnelEntry.d.ts.map +1 -0
  255. package/dist/types/components/UiComponentTunnel/UiComponentTunnelExit.d.ts +8 -0
  256. package/dist/types/components/UiComponentTunnel/UiComponentTunnelExit.d.ts.map +1 -0
  257. package/dist/types/components/UiComponentTunnel/UiComponentTunnelProvider.d.ts +7 -0
  258. package/dist/types/components/UiComponentTunnel/UiComponentTunnelProvider.d.ts.map +1 -0
  259. package/dist/types/components/UiComponentTunnel/lib.d.ts +3 -0
  260. package/dist/types/components/UiComponentTunnel/lib.d.ts.map +1 -0
  261. package/dist/types/components/propTypes/index.d.ts +8 -1
  262. package/dist/types/components/propTypes/index.d.ts.map +1 -1
  263. package/dist/types/lib/componentFactory/flowComponent.d.ts.map +1 -1
  264. package/dist/types/lib/hooks/useFieldComponent.d.ts +2 -1
  265. package/dist/types/lib/hooks/useFieldComponent.d.ts.map +1 -1
  266. package/dist/types/lib/hooks/useFieldError.d.ts +6 -1
  267. package/dist/types/lib/hooks/useFieldError.d.ts.map +1 -1
  268. package/dist/types/lib/types/props.d.ts.map +1 -1
  269. package/package.json +6 -6
@@ -1,9 +1,14 @@
1
1
  "use client"
2
2
  /* */
3
- import { jsx } from 'react/jsx-runtime';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+ import { useState, useId } from 'react';
4
5
  import clsx from 'clsx';
5
6
  import styles from './CodeBlock.module.scss.mjs';
6
7
  import { CodeEditor } from '../CodeEditor/CodeEditor.mjs';
8
+ import { Button } from '../Button/Button.mjs';
9
+ import '../TranslationProvider/TranslationProvider.mjs';
10
+ import { useLocalizedStringFormatter } from '../TranslationProvider/useLocalizedStringFormatter.mjs';
11
+ import locales from '../../../../../_virtual/_.locale.json@cbc1b50fe3e51afbdb1b35a65308b79e.mjs';
7
12
 
8
13
  const CodeBlock = (props) => {
9
14
  const {
@@ -12,26 +17,75 @@ const CodeBlock = (props) => {
12
17
  copyable = false,
13
18
  showLineNumbers = false,
14
19
  children,
20
+ truncateLines = false,
15
21
  ...rest
16
22
  } = props;
23
+ const [collapsed, setCollapsed] = useState(true);
24
+ const [maxHeight, setMaxHeight] = useState();
25
+ const stringFormatter = useLocalizedStringFormatter(locales, "CodeBlock");
17
26
  const rootClassName = clsx(styles.codeBlock, className);
27
+ const id = useId();
18
28
  if (!code) {
19
- return /* @__PURE__ */ jsx("div", { className: clsx(rootClassName, styles.withCodeContent), children: /* @__PURE__ */ jsx("pre", { children: /* @__PURE__ */ jsx("code", { children }) }) });
29
+ return /* @__PURE__ */ jsx("div", { className: clsx(rootClassName, styles.withChildren), children: /* @__PURE__ */ jsx("pre", { children: /* @__PURE__ */ jsx("code", { children }) }) });
20
30
  }
21
- return /* @__PURE__ */ jsx("div", { className: rootClassName, children: /* @__PURE__ */ jsx(
22
- CodeEditor,
23
- {
24
- ...rest,
25
- value: code,
26
- editable: false,
27
- copyable,
28
- showLineNumbers,
29
- showLinterMarkers: false,
30
- showCodeFolding: false,
31
- showActiveLineMarker: false,
32
- isReadOnly: true
33
- }
34
- ) });
31
+ return /* @__PURE__ */ jsxs("div", { children: [
32
+ /* @__PURE__ */ jsx(
33
+ "div",
34
+ {
35
+ className: rootClassName,
36
+ style: {
37
+ maxHeight: collapsed ? maxHeight : void 0
38
+ },
39
+ children: /* @__PURE__ */ jsx(
40
+ CodeEditor,
41
+ {
42
+ ...rest,
43
+ value: code,
44
+ editable: false,
45
+ copyable,
46
+ showLineNumbers,
47
+ showLinterMarkers: false,
48
+ showCodeFolding: false,
49
+ showActiveLineMarker: false,
50
+ isReadOnly: true,
51
+ onCreateEditor: (view) => {
52
+ if (!truncateLines) {
53
+ return;
54
+ }
55
+ const lineHeight = 20;
56
+ const padding = 12;
57
+ const visibleLines = typeof truncateLines === "number" ? truncateLines : 8;
58
+ const totalLines = view.state.doc.lines;
59
+ if (totalLines > visibleLines)
60
+ setMaxHeight(lineHeight * visibleLines + padding);
61
+ },
62
+ id
63
+ }
64
+ )
65
+ }
66
+ ),
67
+ truncateLines && maxHeight && /* @__PURE__ */ jsx(
68
+ "div",
69
+ {
70
+ className: clsx(
71
+ styles.buttonContainer,
72
+ collapsed && styles.collapsed
73
+ ),
74
+ children: /* @__PURE__ */ jsx(
75
+ Button,
76
+ {
77
+ variant: "plain",
78
+ color: "secondary",
79
+ size: "s",
80
+ onPress: () => setCollapsed((prev) => !prev),
81
+ "aria-expanded": !collapsed,
82
+ "aria-controls": id,
83
+ children: stringFormatter.format(collapsed ? "showMore" : "showLess")
84
+ }
85
+ )
86
+ }
87
+ )
88
+ ] });
35
89
  };
36
90
 
37
91
  export { CodeBlock };
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.mjs","sources":["../../../../../../../src/components/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport clsx from \"clsx\";\nimport styles from \"./CodeBlock.module.scss\";\nimport { CodeEditor, type CodeEditorProps } from \"@/components/CodeEditor\";\n\nexport interface CodeBlockProps\n extends\n PropsWithClassName,\n PropsWithChildren,\n Partial<\n Pick<CodeEditorProps, \"language\" | \"showLineNumbers\" | \"copyable\">\n > {\n code?: string;\n}\n\n/** @flr-generate all */\nexport const CodeBlock: FC<CodeBlockProps> = (props) => {\n const {\n code,\n className,\n copyable = false,\n showLineNumbers = false,\n children,\n ...rest\n } = props;\n\n const rootClassName = clsx(styles.codeBlock, className);\n\n if (!code) {\n return (\n <div className={clsx(rootClassName, styles.withCodeContent)}>\n <pre>\n <code>{children}</code>\n </pre>\n </div>\n );\n }\n\n return (\n <div className={rootClassName}>\n <CodeEditor\n {...rest}\n value={code}\n editable={false}\n copyable={copyable}\n showLineNumbers={showLineNumbers}\n showLinterMarkers={false}\n showCodeFolding={false}\n showActiveLineMarker={false}\n isReadOnly\n />\n </div>\n );\n};\n\nexport default CodeBlock;\n"],"names":[],"mappings":";;;;;AAiBO,MAAM,SAAA,GAAgC,CAAC,KAAA,KAAU;AACtD,EAAA,MAAM;AAAA,IACJ,IAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,eAAA,GAAkB,KAAA;AAAA,IAClB,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAEtD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,IAAA,CAAK,eAAe,MAAA,CAAO,eAAe,CAAA,EACxD,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAS,GAClB,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EACd,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,KAAA,EAAO,IAAA;AAAA,MACP,QAAA,EAAU,KAAA;AAAA,MACV,QAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA,EAAmB,KAAA;AAAA,MACnB,eAAA,EAAiB,KAAA;AAAA,MACjB,oBAAA,EAAsB,KAAA;AAAA,MACtB,UAAA,EAAU;AAAA;AAAA,GACZ,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CodeBlock.mjs","sources":["../../../../../../../src/components/CodeBlock/CodeBlock.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, useId, useState } from \"react\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport clsx from \"clsx\";\nimport styles from \"./CodeBlock.module.scss\";\nimport { CodeEditor, type CodeEditorProps } from \"@/components/CodeEditor\";\nimport { Button } from \"@/components/Button\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider\";\nimport locales from \"./locales/*.locale.json\";\n\nexport interface CodeBlockProps\n extends\n PropsWithClassName,\n PropsWithChildren,\n Partial<\n Pick<CodeEditorProps, \"language\" | \"showLineNumbers\" | \"copyable\">\n > {\n code?: string;\n /**\n * Controls truncation of long code blocks. `false` disables it, `true`\n * truncates after 8 lines, and a number sets the maximum line count.\n *\n * @default: false\n */\n truncateLines?: boolean | number;\n}\n\n/** @flr-generate all */\nexport const CodeBlock: FC<CodeBlockProps> = (props) => {\n const {\n code,\n className,\n copyable = false,\n showLineNumbers = false,\n children,\n truncateLines = false,\n ...rest\n } = props;\n\n const [collapsed, setCollapsed] = useState(true);\n const [maxHeight, setMaxHeight] = useState<number>();\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"CodeBlock\");\n\n const rootClassName = clsx(styles.codeBlock, className);\n\n const id = useId();\n\n if (!code) {\n return (\n <div className={clsx(rootClassName, styles.withChildren)}>\n <pre>\n <code>{children}</code>\n </pre>\n </div>\n );\n }\n\n return (\n <div>\n <div\n className={rootClassName}\n style={{\n maxHeight: collapsed ? maxHeight : undefined,\n }}\n >\n <CodeEditor\n {...rest}\n value={code}\n editable={false}\n copyable={copyable}\n showLineNumbers={showLineNumbers}\n showLinterMarkers={false}\n showCodeFolding={false}\n showActiveLineMarker={false}\n isReadOnly\n onCreateEditor={(view) => {\n if (!truncateLines) {\n return;\n }\n\n const lineHeight = 20;\n const padding = 12;\n\n const visibleLines =\n typeof truncateLines === \"number\" ? truncateLines : 8;\n\n const totalLines = view.state.doc.lines;\n\n if (totalLines > visibleLines)\n setMaxHeight(lineHeight * visibleLines + padding);\n }}\n id={id}\n />\n </div>\n\n {truncateLines && maxHeight && (\n <div\n className={clsx(\n styles.buttonContainer,\n collapsed && styles.collapsed,\n )}\n >\n <Button\n variant=\"plain\"\n color=\"secondary\"\n size=\"s\"\n onPress={() => setCollapsed((prev) => !prev)}\n aria-expanded={!collapsed}\n aria-controls={id}\n >\n {stringFormatter.format(collapsed ? \"showMore\" : \"showLess\")}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default CodeBlock;\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  "use client"
2
2
  /* */
3
3
  const codeBlock = "flow--code-block";
4
- const withCodeContent = "flow--code-block--with-code-content";
4
+ const withChildren = "flow--code-block--with-children";
5
+ const buttonContainer = "flow--code-block--button-container";
6
+ const collapsed = "flow--code-block--collapsed";
5
7
  const styles = {
6
8
  codeBlock: codeBlock,
7
- withCodeContent: withCodeContent
9
+ withChildren: withChildren,
10
+ buttonContainer: buttonContainer,
11
+ collapsed: collapsed
8
12
  };
9
13
 
10
- export { codeBlock, styles as default, withCodeContent };
14
+ export { buttonContainer, codeBlock, collapsed, styles as default, withChildren };
11
15
  //# sourceMappingURL=CodeBlock.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"CodeBlock.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -15,7 +15,6 @@ import { useObjectRef } from 'react-aria';
15
15
  import { defaultLightTheme } from './themes/defaultEditorTheme.mjs';
16
16
  import { useCodeEditorExtensions } from './hooks/useCodeEditorExtensions.mjs';
17
17
  import { CopyButton } from '../CopyButton/CopyButton.mjs';
18
- import 'react';
19
18
 
20
19
  const CodeEditor = flowComponent("CodeEditor", (props) => {
21
20
  const {
@@ -42,7 +41,7 @@ const CodeEditor = flowComponent("CodeEditor", (props) => {
42
41
  FieldErrorCaptureContext,
43
42
  fieldProps,
44
43
  fieldPropsContext
45
- } = useFieldComponent(props);
44
+ } = useFieldComponent(props, "CodeEditor");
46
45
  const rootClassName = clsx(
47
46
  fieldProps.className,
48
47
  styles.codeEditor,
@@ -75,7 +74,7 @@ const CodeEditor = flowComponent("CodeEditor", (props) => {
75
74
  "aria-required": isRequired,
76
75
  "aria-invalid": isInvalid,
77
76
  readOnly: isReadOnly,
78
- className: styles.codeMirror,
77
+ className: clsx(styles.codeMirror, isReadOnly && styles.readonly),
79
78
  ref: (codeMirrorRef) => {
80
79
  if (codeMirrorRef?.editor) {
81
80
  localRef.current = codeMirrorRef.editor;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.mjs","sources":["../../../../../../../src/components/CodeEditor/CodeEditor.tsx"],"sourcesContent":["import type { ReactCodeMirrorProps } from \"@uiw/react-codemirror\";\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport styles from \"./CodeEditor.module.scss\";\nimport { type CodeEditorLanguage } from \"@/components/CodeEditor/languages\";\nimport { useMakeFocusable } from \"@/lib/hooks/dom/useMakeFocusable\";\nimport { useObjectRef } from \"react-aria\";\nimport { defaultLightTheme } from \"@/components/CodeEditor/themes/defaultEditorTheme\";\nimport {\n type CodeEditorSetup,\n useCodeEditorExtensions,\n} from \"@/components/CodeEditor/hooks/useCodeEditorExtensions\";\nimport { CopyButton } from \"@/components/CopyButton\";\nimport React from \"react\";\n\nexport interface CodeEditorProps\n extends\n Omit<ReactCodeMirrorProps, \"theme\" | \"lang\" | \"basicSetup\" | \"readOnly\">,\n CodeEditorSetup,\n FlowComponentProps {\n defaultValue?: string;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n className?: string;\n language?: CodeEditorLanguage;\n copyable?: boolean;\n\n isRequired?: boolean;\n validationBehavior?: unknown;\n}\n\n/** @flr-generate all */\nexport const CodeEditor = flowComponent(\"CodeEditor\", (props) => {\n const {\n ref,\n children,\n className,\n language,\n extensions,\n isReadOnly,\n isInvalid,\n isRequired,\n validationBehavior: _ignoredValidationBehavior,\n value,\n showLineNumbers = true,\n showCodeFolding = true,\n showCodeIndentationMakers = true,\n showLinterMarkers = true,\n showActiveLineMarker = true,\n copyable = true,\n ...rest\n } = useControlledHostValueProps(props);\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(\n fieldProps.className,\n styles.codeEditor,\n className,\n );\n\n const enabledExtensions = useCodeEditorExtensions(language, extensions, {\n showLineNumbers: showLineNumbers,\n showCodeIndentationMakers: showCodeIndentationMakers,\n showCodeFolding: showCodeFolding,\n showLinterMarkers: showLinterMarkers,\n });\n\n const localRef = useObjectRef(ref);\n useMakeFocusable(localRef);\n\n return (\n <div className={rootClassName}>\n <PropsContextProvider props={fieldPropsContext}>\n <FieldErrorCaptureContext>\n <CodeMirror\n {...rest}\n value={value}\n basicSetup={{\n highlightActiveLine: showActiveLineMarker,\n highlightActiveLineGutter: showActiveLineMarker,\n autocompletion: false,\n lineNumbers: false,\n foldGutter: false,\n highlightSelectionMatches: false,\n }}\n theme={defaultLightTheme}\n aria-required={isRequired}\n aria-invalid={isInvalid}\n readOnly={isReadOnly}\n className={styles.codeMirror}\n ref={(codeMirrorRef) => {\n if (codeMirrorRef?.editor) {\n localRef.current = codeMirrorRef.editor;\n }\n }}\n extensions={enabledExtensions}\n >\n {copyable && (\n <CopyButton\n className={styles.copyButton}\n size=\"s\"\n variant=\"soft\"\n text={value}\n />\n )}\n </CodeMirror>\n {children}\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </PropsContextProvider>\n </div>\n );\n});\n\nexport default CodeEditor;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAuCO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,kBAAA,EAAoB,0BAAA;AAAA,IACpB,KAAA;AAAA,IACA,eAAA,GAAkB,IAAA;AAAA,IAClB,eAAA,GAAkB,IAAA;AAAA,IAClB,yBAAA,GAA4B,IAAA;AAAA,IAC5B,iBAAA,GAAoB,IAAA;AAAA,IACpB,oBAAA,GAAuB,IAAA;AAAA,IACvB,QAAA,GAAW,IAAA;AAAA,IACX,GAAG;AAAA,GACL,GAAI,4BAA4B,KAAK,CAAA;AAErC,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,UAAA,CAAW,SAAA;AAAA,IACX,MAAA,CAAO,UAAA;AAAA,IACP;AAAA,GACF;AAEA,EAAA,MAAM,iBAAA,GAAoB,uBAAA,CAAwB,QAAA,EAAU,UAAA,EAAY;AAAA,IACtE,eAAA;AAAA,IACA,yBAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,aAAa,GAAG,CAAA;AACjC,EAAA,gBAAA,CAAiB,QAAQ,CAAA;AAEzB,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,eACd,QAAA,kBAAA,IAAA,CAAC,oBAAA,EAAA,EAAqB,OAAO,iBAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACE,GAAG,IAAA;AAAA,UACJ,KAAA;AAAA,UACA,UAAA,EAAY;AAAA,YACV,mBAAA,EAAqB,oBAAA;AAAA,YACrB,yBAAA,EAA2B,oBAAA;AAAA,YAC3B,cAAA,EAAgB,KAAA;AAAA,YAChB,WAAA,EAAa,KAAA;AAAA,YACb,UAAA,EAAY,KAAA;AAAA,YACZ,yBAAA,EAA2B;AAAA,WAC7B;AAAA,UACA,KAAA,EAAO,iBAAA;AAAA,UACP,eAAA,EAAe,UAAA;AAAA,UACf,cAAA,EAAc,SAAA;AAAA,UACd,QAAA,EAAU,UAAA;AAAA,UACV,WAAW,MAAA,CAAO,UAAA;AAAA,UAClB,GAAA,EAAK,CAAC,aAAA,KAAkB;AACtB,YAAA,IAAI,eAAe,MAAA,EAAQ;AACzB,cAAA,QAAA,CAAS,UAAU,aAAA,CAAc,MAAA;AAAA,YACnC;AAAA,UACF,CAAA;AAAA,UACA,UAAA,EAAY,iBAAA;AAAA,UAEX,QAAA,EAAA,QAAA,oBACC,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,WAAW,MAAA,CAAO,UAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,MAAA;AAAA,cACR,IAAA,EAAM;AAAA;AAAA;AACR;AAAA,OAEJ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,wBACC,cAAA,EAAA,EAAe;AAAA,GAAA,EAClB,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CodeEditor.mjs","sources":["../../../../../../../src/components/CodeEditor/CodeEditor.tsx"],"sourcesContent":["import type { ReactCodeMirrorProps } from \"@uiw/react-codemirror\";\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport styles from \"./CodeEditor.module.scss\";\nimport { type CodeEditorLanguage } from \"@/components/CodeEditor/languages\";\nimport { useMakeFocusable } from \"@/lib/hooks/dom/useMakeFocusable\";\nimport { useObjectRef } from \"react-aria\";\nimport { defaultLightTheme } from \"@/components/CodeEditor/themes/defaultEditorTheme\";\nimport {\n type CodeEditorSetup,\n useCodeEditorExtensions,\n} from \"@/components/CodeEditor/hooks/useCodeEditorExtensions\";\nimport { CopyButton } from \"@/components/CopyButton\";\n\nexport interface CodeEditorProps\n extends\n Omit<ReactCodeMirrorProps, \"theme\" | \"lang\" | \"basicSetup\" | \"readOnly\">,\n CodeEditorSetup,\n FlowComponentProps {\n defaultValue?: string;\n isReadOnly?: boolean;\n isInvalid?: boolean;\n className?: string;\n language?: CodeEditorLanguage;\n copyable?: boolean;\n isRequired?: boolean;\n validationBehavior?: unknown;\n}\n\n/** @flr-generate all */\nexport const CodeEditor = flowComponent(\"CodeEditor\", (props) => {\n const {\n ref,\n children,\n className,\n language,\n extensions,\n isReadOnly,\n isInvalid,\n isRequired,\n validationBehavior: _ignoredValidationBehavior,\n value,\n showLineNumbers = true,\n showCodeFolding = true,\n showCodeIndentationMakers = true,\n showLinterMarkers = true,\n showActiveLineMarker = true,\n copyable = true,\n ...rest\n } = useControlledHostValueProps(props);\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props, \"CodeEditor\");\n\n const rootClassName = clsx(\n fieldProps.className,\n styles.codeEditor,\n className,\n );\n\n const enabledExtensions = useCodeEditorExtensions(language, extensions, {\n showLineNumbers: showLineNumbers,\n showCodeIndentationMakers: showCodeIndentationMakers,\n showCodeFolding: showCodeFolding,\n showLinterMarkers: showLinterMarkers,\n });\n\n const localRef = useObjectRef(ref);\n useMakeFocusable(localRef);\n\n return (\n <div className={rootClassName}>\n <PropsContextProvider props={fieldPropsContext}>\n <FieldErrorCaptureContext>\n <CodeMirror\n {...rest}\n value={value}\n basicSetup={{\n highlightActiveLine: showActiveLineMarker,\n highlightActiveLineGutter: showActiveLineMarker,\n autocompletion: false,\n lineNumbers: false,\n foldGutter: false,\n highlightSelectionMatches: false,\n }}\n theme={defaultLightTheme}\n aria-required={isRequired}\n aria-invalid={isInvalid}\n readOnly={isReadOnly}\n className={clsx(styles.codeMirror, isReadOnly && styles.readonly)}\n ref={(codeMirrorRef) => {\n if (codeMirrorRef?.editor) {\n localRef.current = codeMirrorRef.editor;\n }\n }}\n extensions={enabledExtensions}\n >\n {copyable && (\n <CopyButton\n className={styles.copyButton}\n size=\"s\"\n variant=\"soft\"\n text={value}\n />\n )}\n </CodeMirror>\n {children}\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </PropsContextProvider>\n </div>\n );\n});\n\nexport default CodeEditor;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqCO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,kBAAA,EAAoB,0BAAA;AAAA,IACpB,KAAA;AAAA,IACA,eAAA,GAAkB,IAAA;AAAA,IAClB,eAAA,GAAkB,IAAA;AAAA,IAClB,yBAAA,GAA4B,IAAA;AAAA,IAC5B,iBAAA,GAAoB,IAAA;AAAA,IACpB,oBAAA,GAAuB,IAAA;AAAA,IACvB,QAAA,GAAW,IAAA;AAAA,IACX,GAAG;AAAA,GACL,GAAI,4BAA4B,KAAK,CAAA;AAErC,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,iBAAA,CAAkB,KAAA,EAAO,YAAY,CAAA;AAEzC,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,UAAA,CAAW,SAAA;AAAA,IACX,MAAA,CAAO,UAAA;AAAA,IACP;AAAA,GACF;AAEA,EAAA,MAAM,iBAAA,GAAoB,uBAAA,CAAwB,QAAA,EAAU,UAAA,EAAY;AAAA,IACtE,eAAA;AAAA,IACA,yBAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,aAAa,GAAG,CAAA;AACjC,EAAA,gBAAA,CAAiB,QAAQ,CAAA;AAEzB,EAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,eACd,QAAA,kBAAA,IAAA,CAAC,oBAAA,EAAA,EAAqB,OAAO,iBAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACE,GAAG,IAAA;AAAA,UACJ,KAAA;AAAA,UACA,UAAA,EAAY;AAAA,YACV,mBAAA,EAAqB,oBAAA;AAAA,YACrB,yBAAA,EAA2B,oBAAA;AAAA,YAC3B,cAAA,EAAgB,KAAA;AAAA,YAChB,WAAA,EAAa,KAAA;AAAA,YACb,UAAA,EAAY,KAAA;AAAA,YACZ,yBAAA,EAA2B;AAAA,WAC7B;AAAA,UACA,KAAA,EAAO,iBAAA;AAAA,UACP,eAAA,EAAe,UAAA;AAAA,UACf,cAAA,EAAc,SAAA;AAAA,UACd,QAAA,EAAU,UAAA;AAAA,UACV,WAAW,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,UAAA,IAAc,OAAO,QAAQ,CAAA;AAAA,UAChE,GAAA,EAAK,CAAC,aAAA,KAAkB;AACtB,YAAA,IAAI,eAAe,MAAA,EAAQ;AACzB,cAAA,QAAA,CAAS,UAAU,aAAA,CAAc,MAAA;AAAA,YACnC;AAAA,UACF,CAAA;AAAA,UACA,UAAA,EAAY,iBAAA;AAAA,UAEX,QAAA,EAAA,QAAA,oBACC,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,WAAW,MAAA,CAAO,UAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,MAAA;AAAA,cACR,IAAA,EAAM;AAAA;AAAA;AACR;AAAA,OAEJ;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,wBACC,cAAA,EAAA,EAAe;AAAA,GAAA,EAClB,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -2,12 +2,14 @@
2
2
  /* */
3
3
  const codeEditor = "flow--code-editor";
4
4
  const codeMirror = "flow--code-editor--code-mirror";
5
+ const readonly = "flow--code-editor--readonly";
5
6
  const copyButton = "flow--code-editor--copy-button";
6
7
  const styles = {
7
8
  codeEditor: codeEditor,
8
9
  codeMirror: codeMirror,
10
+ readonly: readonly,
9
11
  copyButton: copyButton
10
12
  };
11
13
 
12
- export { codeEditor, codeMirror, copyButton, styles as default };
14
+ export { codeEditor, codeMirror, copyButton, styles as default, readonly };
13
15
  //# sourceMappingURL=CodeEditor.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"CodeEditor.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -6,12 +6,12 @@ import { tags } from '@lezer/highlight';
6
6
  const defaultLightTheme = githubLightInit({
7
7
  theme: "light",
8
8
  settings: {
9
- fontSize: "var(--code-editor--font-size);",
10
- fontFamily: "var(--code-editor--font-family);",
11
- foreground: "var(--color--code-syntax--title)",
9
+ fontSize: "var(--code-editor--font-size)",
10
+ fontFamily: "var(--code-editor--font-family)",
11
+ foreground: "var(--form-control--content-color--default)",
12
12
  background: "transparent",
13
13
  gutterBackground: "var(--form-control--background-color--default)",
14
- gutterForeground: "var(--color--code-syntax--title)"
14
+ gutterForeground: "var(--form-control--content-color--default)"
15
15
  },
16
16
  styles: [
17
17
  { tag: tags.keyword, color: "var(--color--code-syntax--keyword)" },
@@ -1 +1 @@
1
- {"version":3,"file":"defaultEditorTheme.mjs","sources":["../../../../../../../../src/components/CodeEditor/themes/defaultEditorTheme.ts"],"sourcesContent":["import { githubLightInit } from \"@uiw/codemirror-theme-github\";\nimport { tags as t } from \"@lezer/highlight\";\n\nexport const defaultLightTheme = githubLightInit({\n theme: \"light\",\n settings: {\n fontSize: \"var(--code-editor--font-size);\",\n fontFamily: \"var(--code-editor--font-family);\",\n foreground: \"var(--color--code-syntax--title)\",\n background: \"transparent\",\n gutterBackground: \"var(--form-control--background-color--default)\",\n gutterForeground: \"var(--color--code-syntax--title)\",\n },\n styles: [\n { tag: t.keyword, color: \"var(--color--code-syntax--keyword)\" },\n {\n tag: [t.typeName, t.className],\n color: \"var(--color--code-syntax--type)\",\n },\n { tag: t.variableName, color: \"var(--color--code-syntax--variable)\" },\n {\n tag: [t.propertyName, t.attributeName],\n color: \"var(--color--code-syntax--property)\",\n },\n { tag: [t.string, t.regexp], color: \"var(--color--code-syntax--string)\" },\n { tag: t.number, color: \"var(--color--code-syntax--number)\" },\n { tag: t.comment, color: \"var(--color--code-syntax--comment)\" },\n {\n tag: [t.function(t.variableName), t.function(t.propertyName)],\n color: \"var(--color--code-syntax--function)\",\n },\n {\n tag: [t.operator, t.typeOperator],\n color: \"var(--color--code-syntax--operator)\",\n },\n { tag: t.invalid, color: \"var(--color--code-syntax--invalid)\" },\n ],\n});\n"],"names":["t"],"mappings":";;;AAGO,MAAM,oBAAoB,eAAA,CAAgB;AAAA,EAC/C,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,gCAAA;AAAA,IACV,UAAA,EAAY,kCAAA;AAAA,IACZ,UAAA,EAAY,kCAAA;AAAA,IACZ,UAAA,EAAY,aAAA;AAAA,IACZ,gBAAA,EAAkB,gDAAA;AAAA,IAClB,gBAAA,EAAkB;AAAA,GACpB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA,EAAqC;AAAA,IAC9D;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,EAAUA,KAAE,SAAS,CAAA;AAAA,MAC7B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,GAAA,EAAKA,IAAA,CAAE,YAAA,EAAc,OAAO,qCAAA,EAAsC;AAAA,IACpE;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,YAAA,EAAcA,KAAE,aAAa,CAAA;AAAA,MACrC,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,KAAK,CAACA,IAAA,CAAE,QAAQA,IAAA,CAAE,MAAM,CAAA,EAAG,KAAA,EAAO,mCAAA,EAAoC;AAAA,IACxE,EAAE,GAAA,EAAKA,IAAA,CAAE,MAAA,EAAQ,OAAO,mCAAA,EAAoC;AAAA,IAC5D,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA,EAAqC;AAAA,IAC9D;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,CAASA,IAAA,CAAE,YAAY,CAAA,EAAGA,IAAA,CAAE,QAAA,CAASA,IAAA,CAAE,YAAY,CAAC,CAAA;AAAA,MAC5D,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,EAAUA,KAAE,YAAY,CAAA;AAAA,MAChC,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA;AAAqC;AAElE,CAAC;;;;"}
1
+ {"version":3,"file":"defaultEditorTheme.mjs","sources":["../../../../../../../../src/components/CodeEditor/themes/defaultEditorTheme.ts"],"sourcesContent":["import { githubLightInit } from \"@uiw/codemirror-theme-github\";\nimport { tags as t } from \"@lezer/highlight\";\n\nexport const defaultLightTheme = githubLightInit({\n theme: \"light\",\n settings: {\n fontSize: \"var(--code-editor--font-size)\",\n fontFamily: \"var(--code-editor--font-family)\",\n foreground: \"var(--form-control--content-color--default)\",\n background: \"transparent\",\n gutterBackground: \"var(--form-control--background-color--default)\",\n gutterForeground: \"var(--form-control--content-color--default)\",\n },\n styles: [\n { tag: t.keyword, color: \"var(--color--code-syntax--keyword)\" },\n {\n tag: [t.typeName, t.className],\n color: \"var(--color--code-syntax--type)\",\n },\n { tag: t.variableName, color: \"var(--color--code-syntax--variable)\" },\n {\n tag: [t.propertyName, t.attributeName],\n color: \"var(--color--code-syntax--property)\",\n },\n { tag: [t.string, t.regexp], color: \"var(--color--code-syntax--string)\" },\n { tag: t.number, color: \"var(--color--code-syntax--number)\" },\n { tag: t.comment, color: \"var(--color--code-syntax--comment)\" },\n {\n tag: [t.function(t.variableName), t.function(t.propertyName)],\n color: \"var(--color--code-syntax--function)\",\n },\n {\n tag: [t.operator, t.typeOperator],\n color: \"var(--color--code-syntax--operator)\",\n },\n { tag: t.invalid, color: \"var(--color--code-syntax--invalid)\" },\n ],\n});\n"],"names":["t"],"mappings":";;;AAGO,MAAM,oBAAoB,eAAA,CAAgB;AAAA,EAC/C,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,+BAAA;AAAA,IACV,UAAA,EAAY,iCAAA;AAAA,IACZ,UAAA,EAAY,6CAAA;AAAA,IACZ,UAAA,EAAY,aAAA;AAAA,IACZ,gBAAA,EAAkB,gDAAA;AAAA,IAClB,gBAAA,EAAkB;AAAA,GACpB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA,EAAqC;AAAA,IAC9D;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,EAAUA,KAAE,SAAS,CAAA;AAAA,MAC7B,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,GAAA,EAAKA,IAAA,CAAE,YAAA,EAAc,OAAO,qCAAA,EAAsC;AAAA,IACpE;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,YAAA,EAAcA,KAAE,aAAa,CAAA;AAAA,MACrC,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,KAAK,CAACA,IAAA,CAAE,QAAQA,IAAA,CAAE,MAAM,CAAA,EAAG,KAAA,EAAO,mCAAA,EAAoC;AAAA,IACxE,EAAE,GAAA,EAAKA,IAAA,CAAE,MAAA,EAAQ,OAAO,mCAAA,EAAoC;AAAA,IAC5D,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA,EAAqC;AAAA,IAC9D;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,CAASA,IAAA,CAAE,YAAY,CAAA,EAAGA,IAAA,CAAE,QAAA,CAASA,IAAA,CAAE,YAAY,CAAC,CAAA;AAAA,MAC5D,KAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,GAAA,EAAK,CAACA,IAAA,CAAE,QAAA,EAAUA,KAAE,YAAY,CAAA;AAAA,MAChC,KAAA,EAAO;AAAA,KACT;AAAA,IACA,EAAE,GAAA,EAAKA,IAAA,CAAE,OAAA,EAAS,OAAO,oCAAA;AAAqC;AAElE,CAAC;;;;"}
@@ -3,7 +3,6 @@
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import * as Aria from 'react-aria-components';
6
- import { TunnelProvider, TunnelExit } from '@mittwald/react-tunnel';
7
6
  import { Button } from '../Button/Button.mjs';
8
7
  import '@mittwald/flow-icons';
9
8
  import '../Icon/components/IconSetProvider.mjs';
@@ -24,6 +23,7 @@ import '@react-aria/utils';
24
23
  import 'dot-prop';
25
24
  import { useOverlayController } from '../../lib/controller/overlay/useOverlayController.mjs';
26
25
  import { useFieldComponent } from '../../lib/hooks/useFieldComponent.mjs';
26
+ import { UiComponentTunnelExit } from '../UiComponentTunnel/UiComponentTunnelExit.mjs';
27
27
 
28
28
  const ComboBox = flowComponent("ComboBox", (props) => {
29
29
  const {
@@ -42,12 +42,15 @@ const ComboBox = flowComponent("ComboBox", (props) => {
42
42
  FieldErrorCaptureContext,
43
43
  fieldProps,
44
44
  fieldPropsContext
45
- } = useFieldComponent(props);
45
+ } = useFieldComponent(props, "ComboBox");
46
46
  const stringFormatter = useLocalizedStringFormatter(locales, "ComboBox");
47
47
  const rootClassName = clsx(fieldProps.className, styles.comboBox, className);
48
48
  const propsContext = {
49
49
  Option: {
50
- tunnelId: "options"
50
+ tunnel: {
51
+ id: "options",
52
+ component: "ComboBox"
53
+ }
51
54
  },
52
55
  ...fieldPropsContext
53
56
  };
@@ -72,7 +75,7 @@ const ComboBox = flowComponent("ComboBox", (props) => {
72
75
  onOpenChange: (isOpen) => {
73
76
  controller.setOpen(isOpen);
74
77
  },
75
- children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsxs(TunnelProvider, { children: [
78
+ children: /* @__PURE__ */ jsxs(PropsContextProvider, { props: propsContext, children: [
76
79
  /* @__PURE__ */ jsxs(FieldErrorCaptureContext, { children: [
77
80
  /* @__PURE__ */ jsxs("div", { className: styles.input, children: [
78
81
  /* @__PURE__ */ jsx(Aria.Input, { placeholder, ref }),
@@ -95,12 +98,12 @@ const ComboBox = flowComponent("ComboBox", (props) => {
95
98
  onOpenChange: () => {
96
99
  },
97
100
  renderEmptyState,
98
- children: /* @__PURE__ */ jsx(TunnelExit, { id: "options" })
101
+ children: /* @__PURE__ */ jsx(UiComponentTunnelExit, { id: "options", component: "ComboBox" })
99
102
  }
100
103
  )
101
104
  ] }),
102
105
  /* @__PURE__ */ jsx(FieldErrorView, {})
103
- ] }) })
106
+ ] })
104
107
  }
105
108
  );
106
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.mjs","sources":["../../../../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport * as Aria from \"react-aria-components\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport { Button } from \"@/components/Button\";\nimport { IconChevronDown } from \"@/components/Icon/components/icons\";\nimport { Options } from \"@/components/Options\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport styles from \"./ComboBox.module.scss\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport type { OptionsProps } from \"@/components/Options/Options\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface ComboBoxProps\n extends\n Omit<Aria.ComboBoxProps<never>, \"children\">,\n Pick<Aria.InputProps, \"placeholder\">,\n Pick<OptionsProps, \"renderEmptyState\">,\n PropsWithChildren,\n FlowComponentProps<HTMLInputElement> {\n onChange?: (value: string) => void;\n}\n\n/** @flr-generate all */\nexport const ComboBox = flowComponent(\"ComboBox\", (props) => {\n const {\n children,\n className,\n menuTrigger = \"focus\",\n onChange,\n onSelectionChange,\n placeholder,\n ref,\n renderEmptyState,\n ...rest\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"ComboBox\");\n\n const rootClassName = clsx(fieldProps.className, styles.comboBox, className);\n\n const propsContext: PropsContext = {\n Option: {\n tunnelId: \"options\",\n },\n ...fieldPropsContext,\n };\n\n const handleSelectionChange = (key: Key | null) => {\n if (key === null) {\n return;\n }\n onChange?.(String(key));\n onSelectionChange?.(key);\n };\n\n const controller = useOverlayController(\"ComboBox\", {\n reuseControllerFromContext: false,\n });\n\n return (\n <Aria.ComboBox\n {...fieldProps}\n menuTrigger={menuTrigger}\n className={rootClassName}\n {...rest}\n onSelectionChange={handleSelectionChange}\n onOpenChange={(isOpen) => {\n controller.setOpen(isOpen);\n }}\n >\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <FieldErrorCaptureContext>\n <div className={styles.input}>\n <Aria.Input placeholder={placeholder} ref={ref} />\n <Button\n className={styles.toggle}\n aria-label={stringFormatter.format(\"showOptions\")}\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronDown />\n </Button>\n </div>\n\n {children}\n\n <Options\n controller={controller}\n onOpenChange={() => {\n // cut-off to avoid double controller state changes\n }}\n renderEmptyState={renderEmptyState}\n >\n <TunnelExit id=\"options\" />\n </Options>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </TunnelProvider>\n </PropsContextProvider>\n </Aria.ComboBox>\n );\n});\n\nexport default ComboBox;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,CAAC,KAAA,KAAU;AAC3D,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA,GAAc,OAAA;AAAA,IACd,QAAA;AAAA,IACA,iBAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAA;AAAA,IACA,gBAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,eAAA,GAAkB,2BAAA,CAA4B,OAAA,EAAS,UAAU,CAAA;AAEvE,EAAA,MAAM,gBAAgB,IAAA,CAAK,UAAA,CAAW,SAAA,EAAW,MAAA,CAAO,UAAU,SAAS,CAAA;AAE3E,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,qBAAA,GAAwB,CAAC,GAAA,KAAoB;AACjD,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,GAAW,MAAA,CAAO,GAAG,CAAC,CAAA;AACtB,IAAA,iBAAA,GAAoB,GAAG,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,qBAAqB,UAAA,EAAY;AAAA,IAClD,0BAAA,EAA4B;AAAA,GAC7B,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA,CAAK,QAAA;AAAA,IAAL;AAAA,MACE,GAAG,UAAA;AAAA,MACJ,WAAA;AAAA,MACA,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MACJ,iBAAA,EAAmB,qBAAA;AAAA,MACnB,YAAA,EAAc,CAAC,MAAA,KAAW;AACxB,QAAA,UAAA,CAAW,QAAQ,MAAM,CAAA;AAAA,MAC3B,CAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,+BAAC,cAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,KAAA,EACrB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,CAAK,KAAA,EAAL,EAAW,WAAA,EAA0B,GAAA,EAAU,CAAA;AAAA,4BAChD,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,WAAW,MAAA,CAAO,MAAA;AAAA,gBAClB,YAAA,EAAY,eAAA,CAAgB,MAAA,CAAO,aAAa,CAAA;AAAA,gBAChD,OAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAM,WAAA;AAAA,gBAEN,8BAAC,eAAA,EAAA,EAAgB;AAAA;AAAA;AACnB,WAAA,EACF,CAAA;AAAA,UAEC,QAAA;AAAA,0BAED,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,UAAA;AAAA,cACA,cAAc,MAAM;AAAA,cAEpB,CAAA;AAAA,cACA,gBAAA;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,SAAA,EAAU;AAAA;AAAA;AAC3B,SAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA,OAAA,EAClB,CAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"ComboBox.mjs","sources":["../../../../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport * as Aria from \"react-aria-components\";\nimport { Button } from \"@/components/Button\";\nimport { IconChevronDown } from \"@/components/Icon/components/icons\";\nimport { Options } from \"@/components/Options\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport clsx from \"clsx\";\nimport styles from \"./ComboBox.module.scss\";\nimport locales from \"./locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport type { OptionsProps } from \"@/components/Options/Options\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { UiComponentTunnelExit } from \"../UiComponentTunnel/UiComponentTunnelExit\";\n\nexport interface ComboBoxProps\n extends\n Omit<Aria.ComboBoxProps<never>, \"children\">,\n Pick<Aria.InputProps, \"placeholder\">,\n Pick<OptionsProps, \"renderEmptyState\">,\n PropsWithChildren,\n FlowComponentProps<HTMLInputElement> {\n onChange?: (value: string) => void;\n}\n\n/** @flr-generate all */\nexport const ComboBox = flowComponent(\"ComboBox\", (props) => {\n const {\n children,\n className,\n menuTrigger = \"focus\",\n onChange,\n onSelectionChange,\n placeholder,\n ref,\n renderEmptyState,\n ...rest\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props, \"ComboBox\");\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"ComboBox\");\n\n const rootClassName = clsx(fieldProps.className, styles.comboBox, className);\n\n const propsContext: PropsContext = {\n Option: {\n tunnel: {\n id: \"options\",\n component: \"ComboBox\",\n },\n },\n ...fieldPropsContext,\n };\n\n const handleSelectionChange = (key: Key | null) => {\n if (key === null) {\n return;\n }\n onChange?.(String(key));\n onSelectionChange?.(key);\n };\n\n const controller = useOverlayController(\"ComboBox\", {\n reuseControllerFromContext: false,\n });\n\n return (\n <Aria.ComboBox\n {...fieldProps}\n menuTrigger={menuTrigger}\n className={rootClassName}\n {...rest}\n onSelectionChange={handleSelectionChange}\n onOpenChange={(isOpen) => {\n controller.setOpen(isOpen);\n }}\n >\n <PropsContextProvider props={propsContext}>\n <FieldErrorCaptureContext>\n <div className={styles.input}>\n <Aria.Input placeholder={placeholder} ref={ref} />\n <Button\n className={styles.toggle}\n aria-label={stringFormatter.format(\"showOptions\")}\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronDown />\n </Button>\n </div>\n\n {children}\n\n <Options\n controller={controller}\n onOpenChange={() => {\n // cut-off to avoid double controller state changes\n }}\n renderEmptyState={renderEmptyState}\n >\n <UiComponentTunnelExit id=\"options\" component=\"ComboBox\" />\n </Options>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </PropsContextProvider>\n </Aria.ComboBox>\n );\n});\n\nexport default ComboBox;\n"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ const DatePicker = flowComponent("DatePicker", (props) => {
40
40
  FieldErrorCaptureContext,
41
41
  fieldProps,
42
42
  fieldPropsContext
43
- } = useFieldComponent(props);
43
+ } = useFieldComponent(props, "DatePicker");
44
44
  const rootClassName = clsx(fieldProps.className, className);
45
45
  return /* @__PURE__ */ jsxs(
46
46
  Aria.DatePicker,
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.mjs","sources":["../../../../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport * as Aria from \"react-aria-components\";\nimport { DateInput } from \"./components/DateInput\";\nimport { Popover } from \"@/components/Popover/Popover\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { Calendar } from \"@/components/Calendar\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport styles from \"./DatePicker.module.scss\";\n\nexport interface DatePickerProps<T extends Aria.DateValue = Aria.DateValue>\n extends\n PropsWithChildren<Omit<Aria.DatePickerProps<T>, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLSpanElement> {}\n\n/** @flr-generate all */\nexport const DatePicker = flowComponent(\"DatePicker\", (props) => {\n const { children, className, onChange, ref, ...rest } = props;\n\n const popoverController = useOverlayController(\"Popover\");\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(fieldProps.className, className);\n\n return (\n <Aria.DatePicker\n {...rest}\n {...fieldProps}\n className={rootClassName}\n onOpenChange={(v) => popoverController.setOpen(v)}\n isOpen={popoverController.isOpen}\n onChange={(value) => {\n if (onChange) {\n onChange(value);\n }\n popoverController.close();\n }}\n >\n <FieldErrorCaptureContext>\n <DateInput isDisabled={props.isDisabled} ref={ref} />\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n controller={popoverController}\n >\n <Calendar className={styles.calendar} />\n </Popover>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.DatePicker>\n );\n});\n\nexport default DatePicker;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,UAAU,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAExD,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,SAAS,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,UAAA,CAAW,SAAA,EAAW,SAAS,CAAA;AAE1D,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,UAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,SAAA,EAAW,aAAA;AAAA,MACX,YAAA,EAAc,CAAC,CAAA,KAAM,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MAChD,QAAQ,iBAAA,CAAkB,MAAA;AAAA,MAC1B,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,QAAA,CAAS,KAAK,CAAA;AAAA,QAChB;AACA,QAAA,iBAAA,CAAkB,KAAA,EAAM;AAAA,MAC1B,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,SAAA,EAAA,EAAU,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,GAAA,EAAU,CAAA;AAAA,0BACnD,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,eAAA,EAAe,IAAA;AAAA,cACf,UAAA,EAAY,iBAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EAAU;AAAA;AAAA;AACxC,SAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA;AAAA;AAAA,GAClB;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"DatePicker.mjs","sources":["../../../../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport * as Aria from \"react-aria-components\";\nimport { DateInput } from \"./components/DateInput\";\nimport { Popover } from \"@/components/Popover/Popover\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { Calendar } from \"@/components/Calendar\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport styles from \"./DatePicker.module.scss\";\n\nexport interface DatePickerProps<T extends Aria.DateValue = Aria.DateValue>\n extends\n PropsWithChildren<Omit<Aria.DatePickerProps<T>, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLSpanElement> {}\n\n/** @flr-generate all */\nexport const DatePicker = flowComponent(\"DatePicker\", (props) => {\n const { children, className, onChange, ref, ...rest } = props;\n\n const popoverController = useOverlayController(\"Popover\");\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props, \"DatePicker\");\n\n const rootClassName = clsx(fieldProps.className, className);\n\n return (\n <Aria.DatePicker\n {...rest}\n {...fieldProps}\n className={rootClassName}\n onOpenChange={(v) => popoverController.setOpen(v)}\n isOpen={popoverController.isOpen}\n onChange={(value) => {\n if (onChange) {\n onChange(value);\n }\n popoverController.close();\n }}\n >\n <FieldErrorCaptureContext>\n <DateInput isDisabled={props.isDisabled} ref={ref} />\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n controller={popoverController}\n >\n <Calendar className={styles.calendar} />\n </Popover>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.DatePicker>\n );\n});\n\nexport default DatePicker;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAM,UAAA,GAAa,aAAA,CAAc,YAAA,EAAc,CAAC,KAAA,KAAU;AAC/D,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,UAAU,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAExD,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,SAAS,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,iBAAA,CAAkB,KAAA,EAAO,YAAY,CAAA;AAEzC,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,UAAA,CAAW,SAAA,EAAW,SAAS,CAAA;AAE1D,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,UAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACH,GAAG,UAAA;AAAA,MACJ,SAAA,EAAW,aAAA;AAAA,MACX,YAAA,EAAc,CAAC,CAAA,KAAM,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MAChD,QAAQ,iBAAA,CAAkB,MAAA;AAAA,MAC1B,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,QAAA,CAAS,KAAK,CAAA;AAAA,QAChB;AACA,QAAA,iBAAA,CAAkB,KAAA,EAAM;AAAA,MAC1B,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,SAAA,EAAA,EAAU,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,GAAA,EAAU,CAAA;AAAA,0BACnD,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,eAAA,EAAe,IAAA;AAAA,cACf,UAAA,EAAY,iBAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,MAAA,CAAO,QAAA,EAAU;AAAA;AAAA;AACxC,SAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA;AAAA;AAAA,GAClB;AAEJ,CAAC;;;;"}
@@ -2,8 +2,7 @@
2
2
  /* */
3
3
  const dateInput = "flow--date-picker--date-input";
4
4
  const styles = {
5
- dateInput: dateInput
6
- };
5
+ dateInput: dateInput};
7
6
 
8
7
  export { dateInput, styles as default };
9
8
  //# sourceMappingURL=DateInput.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"DateInput.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -40,7 +40,7 @@ const DateRangePicker = flowComponent("DateRangePicker", (props) => {
40
40
  FieldErrorCaptureContext,
41
41
  fieldProps,
42
42
  fieldPropsContext
43
- } = useFieldComponent(props);
43
+ } = useFieldComponent(props, "DateRangePicker");
44
44
  const rootClassName = clsx(fieldProps.className, className);
45
45
  const onDatePickerChange = (value) => {
46
46
  if (onChange) {
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.mjs","sources":["../../../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport * as Aria from \"react-aria-components\";\nimport { Popover } from \"@/components/Popover\";\nimport { type DateRangePresets, RangeCalendar } from \"@/components/Calendar\";\nimport { DateRangeInput } from \"./components/DateRangeInput\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport type { RangeValue } from \"react-aria\";\nimport type { DateValue } from \"@internationalized/date\";\nimport styles from \"./DateRangePicker.module.scss\";\n\nexport interface DateRangePickerProps<T extends Aria.DateValue = Aria.DateValue>\n extends\n PropsWithChildren<Omit<Aria.DateRangePickerProps<T>, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLSpanElement> {\n withDatePickerPresets?: boolean | DateRangePresets;\n}\n\n/** @flr-generate all */\nexport const DateRangePicker = flowComponent(\"DateRangePicker\", (props) => {\n const {\n children,\n className,\n onChange,\n ref,\n withDatePickerPresets = false,\n ...rest\n } = useControlledHostValueProps(props);\n\n const popoverController = useOverlayController(\"Popover\");\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(fieldProps.className, className);\n\n const onDatePickerChange = (value: RangeValue<DateValue> | null) => {\n if (onChange) {\n onChange(value);\n }\n popoverController.close();\n };\n\n return (\n <Aria.DateRangePicker\n {...rest}\n className={rootClassName}\n onOpenChange={(v) => popoverController.setOpen(v)}\n isOpen={popoverController.isOpen}\n onChange={onDatePickerChange}\n >\n <FieldErrorCaptureContext>\n <DateRangeInput isDisabled={props.isDisabled} ref={ref} />\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n controller={popoverController}\n >\n <RangeCalendar\n withDatePickerPresets={withDatePickerPresets}\n className={styles.calendar}\n />\n </Popover>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.DateRangePicker>\n );\n});\n\nexport default DateRangePicker;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,eAAA,GAAkB,aAAA,CAAc,iBAAA,EAAmB,CAAC,KAAA,KAAU;AACzE,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,qBAAA,GAAwB,KAAA;AAAA,IACxB,GAAG;AAAA,GACL,GAAI,4BAA4B,KAAK,CAAA;AAErC,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,SAAS,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,kBAAkB,KAAK,CAAA;AAE3B,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,UAAA,CAAW,SAAA,EAAW,SAAS,CAAA;AAE1D,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAwC;AAClE,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,CAAS,KAAK,CAAA;AAAA,IAChB;AACA,IAAA,iBAAA,CAAkB,KAAA,EAAM;AAAA,EAC1B,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,eAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,SAAA,EAAW,aAAA;AAAA,MACX,YAAA,EAAc,CAAC,CAAA,KAAM,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MAChD,QAAQ,iBAAA,CAAkB,MAAA;AAAA,MAC1B,QAAA,EAAU,kBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,cAAA,EAAA,EAAe,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,GAAA,EAAU,CAAA;AAAA,0BACxD,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,eAAA,EAAe,IAAA;AAAA,cACf,UAAA,EAAY,iBAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA;AAAA,gBAAC,aAAA;AAAA,gBAAA;AAAA,kBACC,qBAAA;AAAA,kBACA,WAAW,MAAA,CAAO;AAAA;AAAA;AACpB;AAAA;AACF,SAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA;AAAA;AAAA,GAClB;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"DateRangePicker.mjs","sources":["../../../../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport * as Aria from \"react-aria-components\";\nimport { Popover } from \"@/components/Popover\";\nimport { type DateRangePresets, RangeCalendar } from \"@/components/Calendar\";\nimport { DateRangeInput } from \"./components/DateRangeInput\";\nimport { useOverlayController } from \"@/lib/controller\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport type { RangeValue } from \"react-aria\";\nimport type { DateValue } from \"@internationalized/date\";\nimport styles from \"./DateRangePicker.module.scss\";\n\nexport interface DateRangePickerProps<T extends Aria.DateValue = Aria.DateValue>\n extends\n PropsWithChildren<Omit<Aria.DateRangePickerProps<T>, \"children\" | \"ref\">>,\n FlowComponentProps<HTMLSpanElement> {\n withDatePickerPresets?: boolean | DateRangePresets;\n}\n\n/** @flr-generate all */\nexport const DateRangePicker = flowComponent(\"DateRangePicker\", (props) => {\n const {\n children,\n className,\n onChange,\n ref,\n withDatePickerPresets = false,\n ...rest\n } = useControlledHostValueProps(props);\n\n const popoverController = useOverlayController(\"Popover\");\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props, \"DateRangePicker\");\n\n const rootClassName = clsx(fieldProps.className, className);\n\n const onDatePickerChange = (value: RangeValue<DateValue> | null) => {\n if (onChange) {\n onChange(value);\n }\n popoverController.close();\n };\n\n return (\n <Aria.DateRangePicker\n {...rest}\n className={rootClassName}\n onOpenChange={(v) => popoverController.setOpen(v)}\n isOpen={popoverController.isOpen}\n onChange={onDatePickerChange}\n >\n <FieldErrorCaptureContext>\n <DateRangeInput isDisabled={props.isDisabled} ref={ref} />\n <PropsContextProvider props={fieldPropsContext}>\n {children}\n </PropsContextProvider>\n <Popover\n placement=\"bottom end\"\n isDialogContent\n controller={popoverController}\n >\n <RangeCalendar\n withDatePickerPresets={withDatePickerPresets}\n className={styles.calendar}\n />\n </Popover>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </Aria.DateRangePicker>\n );\n});\n\nexport default DateRangePicker;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,eAAA,GAAkB,aAAA,CAAc,iBAAA,EAAmB,CAAC,KAAA,KAAU;AACzE,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,qBAAA,GAAwB,KAAA;AAAA,IACxB,GAAG;AAAA,GACL,GAAI,4BAA4B,KAAK,CAAA;AAErC,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,SAAS,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,cAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,GAAI,iBAAA,CAAkB,KAAA,EAAO,iBAAiB,CAAA;AAE9C,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,UAAA,CAAW,SAAA,EAAW,SAAS,CAAA;AAE1D,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAwC;AAClE,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,CAAS,KAAK,CAAA;AAAA,IAChB;AACA,IAAA,iBAAA,CAAkB,KAAA,EAAM;AAAA,EAC1B,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,eAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,SAAA,EAAW,aAAA;AAAA,MACX,YAAA,EAAc,CAAC,CAAA,KAAM,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MAChD,QAAQ,iBAAA,CAAkB,MAAA;AAAA,MAC1B,QAAA,EAAU,kBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,wBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,cAAA,EAAA,EAAe,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,GAAA,EAAU,CAAA;AAAA,0BACxD,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,iBAAA,EAC1B,QAAA,EACH,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,YAAA;AAAA,cACV,eAAA,EAAe,IAAA;AAAA,cACf,UAAA,EAAY,iBAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA;AAAA,gBAAC,aAAA;AAAA,gBAAA;AAAA,kBACC,qBAAA;AAAA,kBACA,WAAW,MAAA,CAAO;AAAA;AAAA;AACpB;AAAA;AACF,SAAA,EACF,CAAA;AAAA,4BACC,cAAA,EAAA,EAAe;AAAA;AAAA;AAAA,GAClB;AAEJ,CAAC;;;;"}
@@ -2,8 +2,7 @@
2
2
  /* */
3
3
  const dateRangeInput = "flow--date-range-picker--date-range-input";
4
4
  const styles = {
5
- dateRangeInput: dateRangeInput
6
- };
5
+ dateRangeInput: dateRangeInput};
7
6
 
8
7
  export { dateRangeInput, styles as default };
9
8
  //# sourceMappingURL=DateRangeInput.module.scss.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeInput.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"DateRangeInput.module.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -13,7 +13,7 @@ import { DeleteButton } from './components/DeleteButton/DeleteButton.mjs';
13
13
  import '../../lib/propsContext/propsContext.mjs';
14
14
  import { PropsContextProvider } from '../../lib/propsContext/components/PropsContextProvider.mjs';
15
15
  import { OptionsButton } from '../List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs';
16
- import { TunnelProvider, TunnelExit } from '@mittwald/react-tunnel';
16
+ import { UiComponentTunnelExit } from '../UiComponentTunnel/UiComponentTunnelExit.mjs';
17
17
 
18
18
  const FileCard = flowComponent("FileCard", (props) => {
19
19
  const {
@@ -45,16 +45,22 @@ const FileCard = flowComponent("FileCard", (props) => {
45
45
  Text: {
46
46
  elementType: "span",
47
47
  className: styles.subTitle,
48
- tunnelId: "subTitle"
48
+ tunnel: {
49
+ id: "subTitle",
50
+ component: "FileCard"
51
+ }
49
52
  },
50
53
  ProgressBar: {
51
54
  size: "s",
52
- tunnelId: "progressBar"
55
+ tunnel: {
56
+ id: "progressBar",
57
+ component: "FileCard"
58
+ }
53
59
  },
54
60
  Button: { variant: "plain", color: "secondary" }
55
61
  };
56
62
  const Element = elementType;
57
- return /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(TunnelProvider, { children: /* @__PURE__ */ jsxs(Element, { ref, className: rootClassName, children: [
63
+ return /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsxs(Element, { ref, className: rootClassName, children: [
58
64
  /* @__PURE__ */ jsx(Wrap, { if: (href || onPress) && !isFailed, children: /* @__PURE__ */ jsxs(
59
65
  Link,
60
66
  {
@@ -69,15 +75,15 @@ const FileCard = flowComponent("FileCard", (props) => {
69
75
  /* @__PURE__ */ jsxs("span", { className: styles.text, children: [
70
76
  name && /* @__PURE__ */ jsx(Text, { className: styles.title, children: /* @__PURE__ */ jsx("strong", { children: name }) }),
71
77
  sizeInBytes && /* @__PURE__ */ jsx(FileSizeText, { sizeInBytes }),
72
- /* @__PURE__ */ jsx(TunnelExit, { id: "subTitle" }),
73
- /* @__PURE__ */ jsx(TunnelExit, { id: "progressBar" })
78
+ /* @__PURE__ */ jsx(UiComponentTunnelExit, { id: "subTitle", component: "FileCard" }),
79
+ /* @__PURE__ */ jsx(UiComponentTunnelExit, { id: "progressBar", component: "FileCard" })
74
80
  ] })
75
81
  ]
76
82
  }
77
83
  ) }),
78
84
  children,
79
85
  onDelete && /* @__PURE__ */ jsx(DeleteButton, { onDelete })
80
- ] }) }) });
86
+ ] }) });
81
87
  });
82
88
 
83
89
  export { FileCard };
@@ -1 +1 @@
1
- {"version":3,"file":"FileCard.mjs","sources":["../../../../../../../src/components/FileCard/FileCard.tsx"],"sourcesContent":["import { Avatar } from \"./components/Avatar\";\nimport { Text } from \"@/components/Text\";\nimport type {\n PropsWithClassName,\n PropsWithElementType,\n} from \"@/lib/types/props\";\nimport styles from \"./FileCard.module.scss\";\nimport clsx from \"clsx\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { FileSizeText } from \"@/components/FileCard/components/FileSizeText\";\nimport { Link, type LinkProps } from \"@/components/Link\";\nimport Wrap from \"@/components/Wrap\";\nimport { DeleteButton } from \"@/components/FileCard/components/DeleteButton\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\n\nexport interface FileCardProps\n extends\n FlowComponentProps<HTMLDivElement | HTMLLIElement>,\n PropsWithClassName,\n PropsWithElementType<\"div\" | \"li\">,\n Pick<LinkProps, \"onPress\" | \"href\" | \"target\" | \"download\"> {\n /** The name of the file. */\n name?: string;\n /** The type of the file. */\n type?: string;\n /** Handler that is called when the file cards delete button is clicked. */\n onDelete?: () => void;\n /** The size of the file in bytes. */\n sizeInBytes?: number;\n /** The source of an image file. */\n imageSrc?: string;\n /** Whether the file card is in a failed state. */\n isFailed?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileCard = flowComponent(\"FileCard\", (props) => {\n const {\n ref,\n onDelete,\n type,\n sizeInBytes,\n name,\n className,\n elementType = \"div\",\n onPress,\n href,\n target,\n download,\n imageSrc,\n children,\n isFailed,\n } = props;\n\n const rootClassName = clsx(\n styles.fileCard,\n isFailed && styles[\"failed\"],\n className,\n );\n\n const propsContext: PropsContext = {\n ContextMenu: {\n wrapWith: <OptionsButton />,\n placement: \"bottom right\",\n },\n Text: {\n elementType: \"span\",\n className: styles.subTitle,\n tunnelId: \"subTitle\",\n },\n ProgressBar: {\n size: \"s\",\n tunnelId: \"progressBar\",\n },\n Button: { variant: \"plain\", color: \"secondary\" },\n };\n\n const Element = elementType;\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <Element ref={ref as never} className={rootClassName}>\n <Wrap if={(href || onPress) && !isFailed}>\n <Link\n className={styles.link}\n unstyled\n href={href}\n onPress={onPress}\n target={target}\n download={download}\n >\n <Avatar type={type} imageSrc={imageSrc} isFailed={isFailed} />\n\n <span className={styles.text}>\n {name && (\n <Text className={styles.title}>\n <strong>{name}</strong>\n </Text>\n )}\n {sizeInBytes && <FileSizeText sizeInBytes={sizeInBytes} />}\n <TunnelExit id=\"subTitle\" />\n <TunnelExit id=\"progressBar\" />\n </span>\n </Link>\n </Wrap>\n {children}\n {onDelete && <DeleteButton onDelete={onDelete} />}\n </Element>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default FileCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyCO,MAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,CAAC,KAAA,KAAU;AAC3D,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd,OAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,QAAA;AAAA,IACP,QAAA,IAAY,OAAO,QAAQ,CAAA;AAAA,IAC3B;AAAA,GACF;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,WAAA,EAAa;AAAA,MACX,QAAA,sBAAW,aAAA,EAAA,EAAc,CAAA;AAAA,MACzB,SAAA,EAAW;AAAA,KACb;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,WAAA,EAAa,MAAA;AAAA,MACb,WAAW,MAAA,CAAO,QAAA;AAAA,MAClB,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,GAAA;AAAA,MACN,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,MAAA,EAAQ,EAAE,OAAA,EAAS,OAAA,EAAS,OAAO,WAAA;AAAY,GACjD;AAEA,EAAA,MAAM,OAAA,GAAU,WAAA;AAEhB,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,kBACC,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,GAAA,EAAmB,SAAA,EAAW,aAAA,EACrC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAA,CAAK,IAAA,IAAQ,OAAA,KAAY,CAAC,QAAA,EAC9B,QAAA,kBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,WAAW,MAAA,CAAO,IAAA;AAAA,QAClB,QAAA,EAAQ,IAAA;AAAA,QACR,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA;AAAA,0BAE5D,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,IAAA,EACrB,QAAA,EAAA;AAAA,YAAA,IAAA,oBACC,GAAA,CAAC,QAAK,SAAA,EAAW,MAAA,CAAO,OACtB,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAQ,gBAAK,CAAA,EAChB,CAAA;AAAA,YAED,WAAA,oBAAe,GAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAA0B,CAAA;AAAA,4BACxD,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,UAAA,EAAW,CAAA;AAAA,4BAC1B,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,aAAA,EAAc;AAAA,WAAA,EAC/B;AAAA;AAAA;AAAA,KACF,EACF,CAAA;AAAA,IACC,QAAA;AAAA,IACA,QAAA,oBAAY,GAAA,CAAC,YAAA,EAAA,EAAa,QAAA,EAAoB;AAAA,GAAA,EACjD,GACF,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"FileCard.mjs","sources":["../../../../../../../src/components/FileCard/FileCard.tsx"],"sourcesContent":["import { Avatar } from \"./components/Avatar\";\nimport { Text } from \"@/components/Text\";\nimport type {\n PropsWithClassName,\n PropsWithElementType,\n} from \"@/lib/types/props\";\nimport styles from \"./FileCard.module.scss\";\nimport clsx from \"clsx\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport { FileSizeText } from \"@/components/FileCard/components/FileSizeText\";\nimport { Link, type LinkProps } from \"@/components/Link\";\nimport Wrap from \"@/components/Wrap\";\nimport { DeleteButton } from \"@/components/FileCard/components/DeleteButton\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { UiComponentTunnelExit } from \"../UiComponentTunnel/UiComponentTunnelExit\";\n\nexport interface FileCardProps\n extends\n FlowComponentProps<HTMLDivElement | HTMLLIElement>,\n PropsWithClassName,\n PropsWithElementType<\"div\" | \"li\">,\n Pick<LinkProps, \"onPress\" | \"href\" | \"target\" | \"download\"> {\n /** The name of the file. */\n name?: string;\n /** The type of the file. */\n type?: string;\n /** Handler that is called when the file cards delete button is clicked. */\n onDelete?: () => void;\n /** The size of the file in bytes. */\n sizeInBytes?: number;\n /** The source of an image file. */\n imageSrc?: string;\n /** Whether the file card is in a failed state. */\n isFailed?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileCard = flowComponent(\"FileCard\", (props) => {\n const {\n ref,\n onDelete,\n type,\n sizeInBytes,\n name,\n className,\n elementType = \"div\",\n onPress,\n href,\n target,\n download,\n imageSrc,\n children,\n isFailed,\n } = props;\n\n const rootClassName = clsx(\n styles.fileCard,\n isFailed && styles[\"failed\"],\n className,\n );\n\n const propsContext: PropsContext = {\n ContextMenu: {\n wrapWith: <OptionsButton />,\n placement: \"bottom right\",\n },\n Text: {\n elementType: \"span\",\n className: styles.subTitle,\n tunnel: {\n id: \"subTitle\",\n component: \"FileCard\",\n },\n },\n ProgressBar: {\n size: \"s\",\n tunnel: {\n id: \"progressBar\",\n component: \"FileCard\",\n },\n },\n Button: { variant: \"plain\", color: \"secondary\" },\n };\n\n const Element = elementType;\n\n return (\n <PropsContextProvider props={propsContext}>\n <Element ref={ref as never} className={rootClassName}>\n <Wrap if={(href || onPress) && !isFailed}>\n <Link\n className={styles.link}\n unstyled\n href={href}\n onPress={onPress}\n target={target}\n download={download}\n >\n <Avatar type={type} imageSrc={imageSrc} isFailed={isFailed} />\n\n <span className={styles.text}>\n {name && (\n <Text className={styles.title}>\n <strong>{name}</strong>\n </Text>\n )}\n {sizeInBytes && <FileSizeText sizeInBytes={sizeInBytes} />}\n <UiComponentTunnelExit id=\"subTitle\" component=\"FileCard\" />\n <UiComponentTunnelExit id=\"progressBar\" component=\"FileCard\" />\n </span>\n </Link>\n </Wrap>\n {children}\n {onDelete && <DeleteButton onDelete={onDelete} />}\n </Element>\n </PropsContextProvider>\n );\n});\n\nexport default FileCard;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyCO,MAAM,QAAA,GAAW,aAAA,CAAc,UAAA,EAAY,CAAC,KAAA,KAAU;AAC3D,EAAA,MAAM;AAAA,IACJ,GAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd,OAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,QAAA;AAAA,IACP,QAAA,IAAY,OAAO,QAAQ,CAAA;AAAA,IAC3B;AAAA,GACF;AAEA,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,WAAA,EAAa;AAAA,MACX,QAAA,sBAAW,aAAA,EAAA,EAAc,CAAA;AAAA,MACzB,SAAA,EAAW;AAAA,KACb;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,WAAA,EAAa,MAAA;AAAA,MACb,WAAW,MAAA,CAAO,QAAA;AAAA,MAClB,MAAA,EAAQ;AAAA,QACN,EAAA,EAAI,UAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,GAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAA,EAAI,aAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AACb,KACF;AAAA,IACA,MAAA,EAAQ,EAAE,OAAA,EAAS,OAAA,EAAS,OAAO,WAAA;AAAY,GACjD;AAEA,EAAA,MAAM,OAAA,GAAU,WAAA;AAEhB,EAAA,uBACE,GAAA,CAAC,wBAAqB,KAAA,EAAO,YAAA,EAC3B,+BAAC,OAAA,EAAA,EAAQ,GAAA,EAAmB,WAAW,aAAA,EACrC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAA,CAAK,IAAA,IAAQ,OAAA,KAAY,CAAC,QAAA,EAC9B,QAAA,kBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,WAAW,MAAA,CAAO,IAAA;AAAA,QAClB,QAAA,EAAQ,IAAA;AAAA,QACR,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAY,QAAA,EAAoB,QAAA,EAAoB,CAAA;AAAA,0BAE5D,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,IAAA,EACrB,QAAA,EAAA;AAAA,YAAA,IAAA,oBACC,GAAA,CAAC,QAAK,SAAA,EAAW,MAAA,CAAO,OACtB,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAQ,gBAAK,CAAA,EAChB,CAAA;AAAA,YAED,WAAA,oBAAe,GAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAA0B,CAAA;AAAA,4BACxD,GAAA,CAAC,qBAAA,EAAA,EAAsB,EAAA,EAAG,UAAA,EAAW,WAAU,UAAA,EAAW,CAAA;AAAA,4BAC1D,GAAA,CAAC,qBAAA,EAAA,EAAsB,EAAA,EAAG,aAAA,EAAc,WAAU,UAAA,EAAW;AAAA,WAAA,EAC/D;AAAA;AAAA;AAAA,KACF,EACF,CAAA;AAAA,IACC,QAAA;AAAA,IACA,QAAA,oBAAY,GAAA,CAAC,YAAA,EAAA,EAAa,QAAA,EAAoB;AAAA,GAAA,EACjD,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -30,7 +30,7 @@ const FileDropZone = flowComponent(
30
30
  FieldErrorCaptureContext,
31
31
  fieldProps,
32
32
  fieldPropsContext
33
- } = useFieldComponent(props);
33
+ } = useFieldComponent(props, "FileDropZone");
34
34
  const fileFieldRef = useRef(null);
35
35
  const rootClassName = clsx(
36
36
  styles.fileDropZone,
@@ -1 +1 @@
1
- {"version":3,"file":"FileDropZone.mjs","sources":["../../../../../../../src/components/FileDropZone/FileDropZone.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, useRef } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport styles from \"./FileDropZone.module.scss\";\nimport clsx from \"clsx\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport type { DropEvent, FocusableElement } from \"@react-types/shared\";\nimport { addAwaitedArrayBuffer } from \"@mittwald/flow-core\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface FileDropZoneProps\n extends\n PropsWithClassName,\n FlowComponentProps<FocusableElement>,\n PropsWithChildren,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<Aria.DropZoneProps, \"isDisabled\"> {\n onChange?: FileInputOnChangeHandler;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileDropZone: FC<FileDropZoneProps> = flowComponent(\n \"FileDropZone\",\n (props) => {\n const {\n multiple,\n accept,\n className,\n onChange: onChangeDropZone,\n children,\n name,\n isDisabled,\n isReadOnly,\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const fileFieldRef = useRef<HTMLInputElement>(null);\n const rootClassName = clsx(\n styles.fileDropZone,\n isDisabled && styles.disabled,\n className,\n );\n\n const propsContext: PropsContext = {\n ...fieldPropsContext,\n IllustratedMessage: {\n FileField: {\n name,\n onChange: onChangeDropZone,\n ref: fileFieldRef,\n accept: accept,\n multiple: multiple,\n Button: { variant: \"outline\", color: \"dark\" },\n isDisabled,\n isReadOnly,\n },\n Heading: {\n className: styles.heading,\n },\n Icon: { className: styles.icon },\n Text: { className: styles.text },\n },\n };\n\n const onDropHandler = async (event: DropEvent) => {\n if (isReadOnly) {\n return;\n }\n\n const fileDropItems = event.items.filter(\n (file) => file.kind === \"file\",\n ) as Aria.FileDropItem[];\n\n const files = await Promise.all(\n fileDropItems\n .filter((f) => !accept || accept?.includes(f.type))\n .map(async (f) => {\n const file = await f.getFile();\n return await addAwaitedArrayBuffer(file);\n }),\n );\n\n if (files.length > 0) {\n const fileTransfer = new DataTransfer();\n for (const file of multiple ? files : [files[0]]) {\n if (file) {\n fileTransfer.items.add(file);\n }\n }\n\n onChangeDropZone?.(fileTransfer.files);\n if (fileFieldRef.current) {\n fileFieldRef.current.files = fileTransfer.files;\n }\n }\n };\n\n return (\n <div {...fieldProps}>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.DropZone\n className={rootClassName}\n onDrop={onDropHandler}\n isDisabled={isDisabled}\n data-readonly={isReadOnly}\n >\n <IllustratedMessage color=\"dark\">{children}</IllustratedMessage>\n </Aria.DropZone>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </div>\n );\n },\n);\n\nexport default FileDropZone;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileDropZone.mjs","sources":["../../../../../../../src/components/FileDropZone/FileDropZone.tsx"],"sourcesContent":["import { type FC, type PropsWithChildren, useRef } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport styles from \"./FileDropZone.module.scss\";\nimport clsx from \"clsx\";\nimport type { FileInputOnChangeHandler } from \"@/components/FileField/components/FileInput\";\nimport type { PropsContext } from \"@/lib/propsContext\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\nimport type { DropEvent, FocusableElement } from \"@react-types/shared\";\nimport { addAwaitedArrayBuffer } from \"@mittwald/flow-core\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\n\nexport interface FileDropZoneProps\n extends\n PropsWithClassName,\n FlowComponentProps<FocusableElement>,\n PropsWithChildren,\n Pick<Aria.InputProps, \"accept\" | \"multiple\" | \"name\">,\n Pick<Aria.DropZoneProps, \"isDisabled\"> {\n onChange?: FileInputOnChangeHandler;\n /** Whether the component is read only. */\n isReadOnly?: boolean;\n}\n\n/** @flr-generate all */\nexport const FileDropZone: FC<FileDropZoneProps> = flowComponent(\n \"FileDropZone\",\n (props) => {\n const {\n multiple,\n accept,\n className,\n onChange: onChangeDropZone,\n children,\n name,\n isDisabled,\n isReadOnly,\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props, \"FileDropZone\");\n\n const fileFieldRef = useRef<HTMLInputElement>(null);\n const rootClassName = clsx(\n styles.fileDropZone,\n isDisabled && styles.disabled,\n className,\n );\n\n const propsContext: PropsContext = {\n ...fieldPropsContext,\n IllustratedMessage: {\n FileField: {\n name,\n onChange: onChangeDropZone,\n ref: fileFieldRef,\n accept: accept,\n multiple: multiple,\n Button: { variant: \"outline\", color: \"dark\" },\n isDisabled,\n isReadOnly,\n },\n Heading: {\n className: styles.heading,\n },\n Icon: { className: styles.icon },\n Text: { className: styles.text },\n },\n };\n\n const onDropHandler = async (event: DropEvent) => {\n if (isReadOnly) {\n return;\n }\n\n const fileDropItems = event.items.filter(\n (file) => file.kind === \"file\",\n ) as Aria.FileDropItem[];\n\n const files = await Promise.all(\n fileDropItems\n .filter((f) => !accept || accept?.includes(f.type))\n .map(async (f) => {\n const file = await f.getFile();\n return await addAwaitedArrayBuffer(file);\n }),\n );\n\n if (files.length > 0) {\n const fileTransfer = new DataTransfer();\n for (const file of multiple ? files : [files[0]]) {\n if (file) {\n fileTransfer.items.add(file);\n }\n }\n\n onChangeDropZone?.(fileTransfer.files);\n if (fileFieldRef.current) {\n fileFieldRef.current.files = fileTransfer.files;\n }\n }\n };\n\n return (\n <div {...fieldProps}>\n <FieldErrorCaptureContext>\n <PropsContextProvider props={propsContext}>\n <Aria.DropZone\n className={rootClassName}\n onDrop={onDropHandler}\n isDisabled={isDisabled}\n data-readonly={isReadOnly}\n >\n <IllustratedMessage color=\"dark\">{children}</IllustratedMessage>\n </Aria.DropZone>\n </PropsContextProvider>\n </FieldErrorCaptureContext>\n <FieldErrorView />\n </div>\n );\n },\n);\n\nexport default FileDropZone;\n"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ const FileField = flowComponent("FileField", (props) => {
29
29
  FieldErrorCaptureContext,
30
30
  fieldProps,
31
31
  fieldPropsContext
32
- } = useFieldComponent(props);
32
+ } = useFieldComponent(props, "FileField");
33
33
  const inputRef = useObjectRef(ref);
34
34
  const formValidationState = useFormValidationState({
35
35
  value: void 0,