@mittwald/flow-react-components 0.2.0-alpha.567 → 0.2.0-alpha.569

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 (268) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/assets/doc-properties.json +2065 -878
  3. package/dist/css/all.css +1 -1
  4. package/dist/js/components/src/components/AccentBox/AccentBox.mjs +22 -21
  5. package/dist/js/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
  6. package/dist/js/components/src/components/ActionGroup/ActionGroup.mjs +37 -31
  7. package/dist/js/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  8. package/dist/js/components/src/components/Align/Align.mjs +22 -16
  9. package/dist/js/components/src/components/Align/Align.mjs.map +1 -1
  10. package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs +61 -50
  11. package/dist/js/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
  12. package/dist/js/components/src/components/BrowserOnly/BrowserOnly.mjs +7 -0
  13. package/dist/js/components/src/components/BrowserOnly/BrowserOnly.mjs.map +1 -1
  14. package/dist/js/components/src/components/CartesianChart/CartesianChart.mjs +5 -2
  15. package/dist/js/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  16. package/dist/js/components/src/components/Checkbox/Checkbox.mjs +4 -11
  17. package/dist/js/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
  18. package/dist/js/components/src/components/CheckboxButton/CheckboxButton.mjs +2 -19
  19. package/dist/js/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
  20. package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs +4 -4
  21. package/dist/js/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  22. package/dist/js/components/src/components/ColumnLayout/ColumnLayout.mjs +64 -58
  23. package/dist/js/components/src/components/ColumnLayout/ColumnLayout.mjs.map +1 -1
  24. package/dist/js/components/src/components/ComboBox/ComboBox.mjs +11 -37
  25. package/dist/js/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
  26. package/dist/js/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs +2 -1
  27. package/dist/js/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs.map +1 -1
  28. package/dist/js/components/src/components/DateInput/DateInput.mjs +20 -0
  29. package/dist/js/components/src/components/DateInput/DateInput.mjs.map +1 -0
  30. package/dist/js/components/src/components/DatePicker/DatePicker.mjs +1 -6
  31. package/dist/js/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
  32. package/dist/js/components/src/components/DatePicker/components/DateInput/DateInput.mjs +3 -2
  33. package/dist/js/components/src/components/DatePicker/components/DateInput/DateInput.mjs.map +1 -1
  34. package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs +1 -6
  35. package/dist/js/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
  36. package/dist/js/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs +4 -3
  37. package/dist/js/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs.map +1 -1
  38. package/dist/js/components/src/components/FileField/FileField.mjs +4 -10
  39. package/dist/js/components/src/components/FileField/FileField.mjs.map +1 -1
  40. package/dist/js/components/src/components/Header/Header.mjs +20 -15
  41. package/dist/js/components/src/components/Header/Header.mjs.map +1 -1
  42. package/dist/js/components/src/components/IllustratedMessage/IllustratedMessage.mjs +1 -1
  43. package/dist/js/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  44. package/dist/js/components/src/components/LayoutCard/LayoutCard.mjs +16 -12
  45. package/dist/js/components/src/components/LayoutCard/LayoutCard.mjs.map +1 -1
  46. package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs +5 -2
  47. package/dist/js/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  48. package/dist/js/components/src/components/List/components/Header/components/SearchField/SearchField.mjs +6 -0
  49. package/dist/js/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
  50. package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs +5 -2
  51. package/dist/js/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
  52. package/dist/js/components/src/components/Markdown/Markdown.mjs.map +1 -1
  53. package/dist/js/components/src/components/MarkdownEditor/MarkdownEditor.mjs +19 -24
  54. package/dist/js/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  55. package/dist/js/components/src/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.mjs +2 -2
  56. package/dist/js/components/src/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.mjs.map +1 -1
  57. package/dist/js/components/src/components/MarkdownEditor/lib/modifyValueByType.mjs +1 -1
  58. package/dist/js/components/src/components/MarkdownEditor/lib/modifyValueByType.mjs.map +1 -1
  59. package/dist/js/components/src/components/Modal/Modal.mjs +70 -76
  60. package/dist/js/components/src/components/Modal/Modal.mjs.map +1 -1
  61. package/dist/js/components/src/components/Modal/components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.mjs +5 -2
  62. package/dist/js/components/src/components/Modal/components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.mjs.map +1 -1
  63. package/dist/js/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs +1 -4
  64. package/dist/js/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs.map +1 -1
  65. package/dist/js/components/src/components/NumberField/NumberField.mjs +4 -22
  66. package/dist/js/components/src/components/NumberField/NumberField.mjs.map +1 -1
  67. package/dist/js/components/src/components/Overlay/Overlay.mjs +2 -104
  68. package/dist/js/components/src/components/Overlay/Overlay.mjs.map +1 -1
  69. package/dist/js/components/src/components/Overlay/components/OverlaySuspenseFallback.mjs +5 -2
  70. package/dist/js/components/src/components/Overlay/components/OverlaySuspenseFallback.mjs.map +1 -1
  71. package/dist/js/components/src/components/PasswordCreationField/PasswordCreationField.mjs +10 -16
  72. package/dist/js/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
  73. package/dist/js/components/src/components/Popover/Popover.mjs +2 -106
  74. package/dist/js/components/src/components/Popover/Popover.mjs.map +1 -1
  75. package/dist/js/components/src/components/RadioGroup/RadioGroup.mjs +1 -1
  76. package/dist/js/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
  77. package/dist/js/components/src/components/SearchField/SearchField.mjs +6 -13
  78. package/dist/js/components/src/components/SearchField/SearchField.mjs.map +1 -1
  79. package/dist/js/components/src/components/Section/Section.mjs +41 -35
  80. package/dist/js/components/src/components/Section/Section.mjs.map +1 -1
  81. package/dist/js/components/src/components/SegmentedControl/SegmentedControl.mjs +3 -3
  82. package/dist/js/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  83. package/dist/js/components/src/components/Select/Select.mjs +5 -16
  84. package/dist/js/components/src/components/Select/Select.mjs.map +1 -1
  85. package/dist/js/components/src/components/Slider/Slider.mjs +2 -9
  86. package/dist/js/components/src/components/Slider/Slider.mjs.map +1 -1
  87. package/dist/js/components/src/components/Switch/Switch.mjs +6 -21
  88. package/dist/js/components/src/components/Switch/Switch.mjs.map +1 -1
  89. package/dist/js/components/src/components/TextArea/TextArea.mjs +13 -20
  90. package/dist/js/components/src/components/TextArea/TextArea.mjs.map +1 -1
  91. package/dist/js/components/src/components/TextField/TextField.mjs +4 -11
  92. package/dist/js/components/src/components/TextField/TextField.mjs.map +1 -1
  93. package/dist/js/components/src/components/TextFieldBase/TextFieldBase.mjs +9 -23
  94. package/dist/js/components/src/components/TextFieldBase/TextFieldBase.mjs.map +1 -1
  95. package/dist/js/components/src/components/TimeField/TimeField.mjs +3 -6
  96. package/dist/js/components/src/components/TimeField/TimeField.mjs.map +1 -1
  97. package/dist/js/components/src/components/Tooltip/Tooltip.mjs +6 -2
  98. package/dist/js/components/src/components/Tooltip/Tooltip.mjs.map +1 -1
  99. package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs +6 -7
  100. package/dist/js/components/src/integrations/react-hook-form/components/Field/Field.mjs.map +1 -1
  101. package/dist/js/components/src/integrations/react-hook-form/components/Form/Form.mjs +4 -6
  102. package/dist/js/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
  103. package/dist/js/components/src/integrations/react-hook-form/components/ResetButton/ResetButton.mjs +1 -3
  104. package/dist/js/components/src/integrations/react-hook-form/components/ResetButton/ResetButton.mjs.map +1 -1
  105. package/dist/js/components/src/integrations/react-hook-form/components/SubmitButton/SubmitButton.mjs +2 -2
  106. package/dist/js/components/src/lib/componentFactory/flowComponent.mjs +7 -23
  107. package/dist/js/components/src/lib/componentFactory/flowComponent.mjs.map +1 -1
  108. package/dist/js/components/src/lib/controller/overlay/OverlayController.mjs +6 -0
  109. package/dist/js/components/src/lib/controller/overlay/OverlayController.mjs.map +1 -1
  110. package/dist/js/components/src/lib/form/isFocused.mjs +8 -0
  111. package/dist/js/components/src/lib/form/isFocused.mjs.map +1 -0
  112. package/dist/js/components/src/lib/hooks/useFieldError.mjs +1 -2
  113. package/dist/js/components/src/lib/hooks/useFieldError.mjs.map +1 -1
  114. package/dist/js/components/src/lib/hooks/useProps.mjs +1 -2
  115. package/dist/js/components/src/lib/hooks/useProps.mjs.map +1 -1
  116. package/dist/js/components/src/lib/propsContext/components/ClearPropsContext.mjs +4 -10
  117. package/dist/js/components/src/lib/propsContext/components/ClearPropsContext.mjs.map +1 -1
  118. package/dist/js/components/src/lib/propsContext/components/ComponentPropsContextProvider.mjs +2 -2
  119. package/dist/js/components/src/lib/propsContext/components/ComponentPropsContextProvider.mjs.map +1 -1
  120. package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs +7 -22
  121. package/dist/js/components/src/lib/propsContext/components/PropsContextProvider.mjs.map +1 -1
  122. package/dist/js/components/src/lib/propsContext/mergePropsContext.mjs +22 -30
  123. package/dist/js/components/src/lib/propsContext/mergePropsContext.mjs.map +1 -1
  124. package/dist/js/components/src/lib/propsContext/nestedPropsContext/lib.mjs +27 -7
  125. package/dist/js/components/src/lib/propsContext/nestedPropsContext/lib.mjs.map +1 -1
  126. package/dist/js/components/src/lib/react/getPropsMerger.mjs +7 -2
  127. package/dist/js/components/src/lib/react/getPropsMerger.mjs.map +1 -1
  128. package/dist/js/components/src/lib/remote/eventHandlerContext.mjs +9 -0
  129. package/dist/js/components/src/lib/remote/eventHandlerContext.mjs.map +1 -0
  130. package/dist/js/components/src/lib/remote/useControlledHostValueProps.mjs +31 -0
  131. package/dist/js/components/src/lib/remote/useControlledHostValueProps.mjs.map +1 -0
  132. package/dist/js/components/src/lib/remote/useControlledRemoteValueProps.mjs +20 -0
  133. package/dist/js/components/src/lib/remote/useControlledRemoteValueProps.mjs.map +1 -0
  134. package/dist/js/default.mjs +2 -0
  135. package/dist/js/default.mjs.map +1 -1
  136. package/dist/js/flr-universal.mjs +2 -2
  137. package/dist/types/components/AccentBox/AccentBox.d.ts.map +1 -1
  138. package/dist/types/components/AccentBox/stories/Default.stories.d.ts +1 -0
  139. package/dist/types/components/AccentBox/stories/Default.stories.d.ts.map +1 -1
  140. package/dist/types/components/ActionGroup/ActionGroup.d.ts.map +1 -1
  141. package/dist/types/components/Align/Align.d.ts.map +1 -1
  142. package/dist/types/components/Autocomplete/Autocomplete.d.ts +2 -2
  143. package/dist/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  144. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -4
  145. package/dist/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  146. package/dist/types/components/CheckboxButton/CheckboxButton.d.ts +2 -4
  147. package/dist/types/components/CheckboxButton/CheckboxButton.d.ts.map +1 -1
  148. package/dist/types/components/ColumnLayout/ColumnLayout.d.ts.map +1 -1
  149. package/dist/types/components/ComboBox/ComboBox.d.ts +3 -6
  150. package/dist/types/components/ComboBox/ComboBox.d.ts.map +1 -1
  151. package/dist/types/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.d.ts.map +1 -1
  152. package/dist/types/components/DateInput/DateInput.d.ts +8 -0
  153. package/dist/types/components/DateInput/DateInput.d.ts.map +1 -0
  154. package/dist/types/components/DateInput/index.d.ts +3 -0
  155. package/dist/types/components/DateInput/index.d.ts.map +1 -0
  156. package/dist/types/components/DatePicker/DatePicker.d.ts +2 -2
  157. package/dist/types/components/DatePicker/DatePicker.d.ts.map +1 -1
  158. package/dist/types/components/DatePicker/components/DateInput/DateInput.d.ts +2 -1
  159. package/dist/types/components/DatePicker/components/DateInput/DateInput.d.ts.map +1 -1
  160. package/dist/types/components/DateRangePicker/DateRangePicker.d.ts +2 -2
  161. package/dist/types/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  162. package/dist/types/components/DateRangePicker/components/DateRangeInput/DateRangeInput.d.ts +2 -1
  163. package/dist/types/components/DateRangePicker/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  164. package/dist/types/components/FileField/FileField.d.ts +1 -2
  165. package/dist/types/components/FileField/FileField.d.ts.map +1 -1
  166. package/dist/types/components/Header/Header.d.ts +2 -2
  167. package/dist/types/components/Header/Header.d.ts.map +1 -1
  168. package/dist/types/components/LayoutCard/LayoutCard.d.ts.map +1 -1
  169. package/dist/types/components/List/typedList.d.ts +2 -2
  170. package/dist/types/components/Markdown/Markdown.d.ts +2 -2
  171. package/dist/types/components/Markdown/Markdown.d.ts.map +1 -1
  172. package/dist/types/components/MarkdownEditor/MarkdownEditor.d.ts +3 -7
  173. package/dist/types/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
  174. package/dist/types/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.d.ts +2 -2
  175. package/dist/types/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.d.ts.map +1 -1
  176. package/dist/types/components/MarkdownEditor/lib/modifyValueByType.d.ts +1 -1
  177. package/dist/types/components/MarkdownEditor/lib/modifyValueByType.d.ts.map +1 -1
  178. package/dist/types/components/Message/stories/Default.stories.d.ts.map +1 -1
  179. package/dist/types/components/Modal/Modal.d.ts.map +1 -1
  180. package/dist/types/components/Navigation/components/NavigationGroup/NavigationGroup.d.ts.map +1 -1
  181. package/dist/types/components/NumberField/NumberField.d.ts +3 -4
  182. package/dist/types/components/NumberField/NumberField.d.ts.map +1 -1
  183. package/dist/types/components/Overlay/Overlay.d.ts.map +1 -1
  184. package/dist/types/components/PasswordCreationField/PasswordCreationField.d.ts.map +1 -1
  185. package/dist/types/components/Popover/Popover.d.ts +1 -1
  186. package/dist/types/components/Popover/Popover.d.ts.map +1 -1
  187. package/dist/types/components/SearchField/SearchField.d.ts.map +1 -1
  188. package/dist/types/components/Section/Section.d.ts.map +1 -1
  189. package/dist/types/components/SegmentedControl/SegmentedControl.d.ts +3 -3
  190. package/dist/types/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  191. package/dist/types/components/Select/Select.d.ts +2 -5
  192. package/dist/types/components/Select/Select.d.ts.map +1 -1
  193. package/dist/types/components/Slider/Slider.d.ts +3 -3
  194. package/dist/types/components/Slider/Slider.d.ts.map +1 -1
  195. package/dist/types/components/Switch/Switch.d.ts +2 -2
  196. package/dist/types/components/Switch/Switch.d.ts.map +1 -1
  197. package/dist/types/components/TextArea/TextArea.d.ts.map +1 -1
  198. package/dist/types/components/TextField/TextField.d.ts.map +1 -1
  199. package/dist/types/components/TextFieldBase/TextFieldBase.d.ts.map +1 -1
  200. package/dist/types/components/TimeField/TimeField.d.ts +3 -3
  201. package/dist/types/components/TimeField/TimeField.d.ts.map +1 -1
  202. package/dist/types/index/default.d.ts +2 -0
  203. package/dist/types/index/default.d.ts.map +1 -1
  204. package/dist/types/integrations/react-hook-form/components/Field/Field.d.ts.map +1 -1
  205. package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts +2 -2
  206. package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts.map +1 -1
  207. package/dist/types/integrations/react-hook-form/components/ResetButton/ResetButton.d.ts +1 -1
  208. package/dist/types/integrations/react-hook-form/components/ResetButton/ResetButton.d.ts.map +1 -1
  209. package/dist/types/integrations/react-hook-form/components/SubmitButton/SubmitButton.d.ts +1 -1
  210. package/dist/types/lib/componentFactory/flowComponent.d.ts +1 -1
  211. package/dist/types/lib/componentFactory/flowComponent.d.ts.map +1 -1
  212. package/dist/types/lib/controller/overlay/OverlayController.d.ts.map +1 -1
  213. package/dist/types/lib/form/isFocused.d.ts +2 -0
  214. package/dist/types/lib/form/isFocused.d.ts.map +1 -0
  215. package/dist/types/lib/hooks/useFieldError.d.ts.map +1 -1
  216. package/dist/types/lib/hooks/useProps.d.ts.map +1 -1
  217. package/dist/types/lib/propsContext/components/ClearPropsContext.d.ts +1 -5
  218. package/dist/types/lib/propsContext/components/ClearPropsContext.d.ts.map +1 -1
  219. package/dist/types/lib/propsContext/components/ComponentPropsContextProvider.d.ts +0 -2
  220. package/dist/types/lib/propsContext/components/ComponentPropsContextProvider.d.ts.map +1 -1
  221. package/dist/types/lib/propsContext/components/PropsContextProvider.d.ts +0 -3
  222. package/dist/types/lib/propsContext/components/PropsContextProvider.d.ts.map +1 -1
  223. package/dist/types/lib/propsContext/mergePropsContext.d.ts +1 -1
  224. package/dist/types/lib/propsContext/mergePropsContext.d.ts.map +1 -1
  225. package/dist/types/lib/propsContext/nestedPropsContext/lib.d.ts +3 -84
  226. package/dist/types/lib/propsContext/nestedPropsContext/lib.d.ts.map +1 -1
  227. package/dist/types/lib/propsContext/types.d.ts +1 -2
  228. package/dist/types/lib/propsContext/types.d.ts.map +1 -1
  229. package/dist/types/lib/react/getPropsMerger.d.ts.map +1 -1
  230. package/dist/types/lib/remote/eventHandlerContext.d.ts +11 -0
  231. package/dist/types/lib/remote/eventHandlerContext.d.ts.map +1 -0
  232. package/dist/types/lib/remote/types.d.ts +6 -0
  233. package/dist/types/lib/remote/types.d.ts.map +1 -0
  234. package/dist/types/lib/remote/useControlledHostValueProps.d.ts +18 -0
  235. package/dist/types/lib/remote/useControlledHostValueProps.d.ts.map +1 -0
  236. package/dist/types/lib/remote/useControlledRemoteValueProps.d.ts +11 -0
  237. package/dist/types/lib/remote/useControlledRemoteValueProps.d.ts.map +1 -0
  238. package/package.json +5 -4
  239. package/dist/js/components/src/lib/hooks/useManagedValue.mjs +0 -27
  240. package/dist/js/components/src/lib/hooks/useManagedValue.mjs.map +0 -1
  241. package/dist/js/components/src/lib/propsContext/inherit/PropsContextLevelProvider.mjs +0 -20
  242. package/dist/js/components/src/lib/propsContext/inherit/PropsContextLevelProvider.mjs.map +0 -1
  243. package/dist/js/components/src/lib/propsContext/inherit/lib.mjs +0 -39
  244. package/dist/js/components/src/lib/propsContext/inherit/lib.mjs.map +0 -1
  245. package/dist/js/components/src/lib/propsContext/inherit/propsContextLevel.mjs +0 -13
  246. package/dist/js/components/src/lib/propsContext/inherit/propsContextLevel.mjs.map +0 -1
  247. package/dist/js/components/src/lib/propsContext/inherit/types.mjs +0 -6
  248. package/dist/js/components/src/lib/propsContext/inherit/types.mjs.map +0 -1
  249. package/dist/js/components/src/lib/react/ReactAriaControlledValueFix.mjs +0 -65
  250. package/dist/js/components/src/lib/react/ReactAriaControlledValueFix.mjs.map +0 -1
  251. package/dist/js/components/src/lib/react/emitElementValueChange.mjs +0 -22
  252. package/dist/js/components/src/lib/react/emitElementValueChange.mjs.map +0 -1
  253. package/dist/types/lib/hooks/useManagedValue.d.ts +0 -13
  254. package/dist/types/lib/hooks/useManagedValue.d.ts.map +0 -1
  255. package/dist/types/lib/propsContext/inherit/PropsContextLevelProvider.d.ts +0 -8
  256. package/dist/types/lib/propsContext/inherit/PropsContextLevelProvider.d.ts.map +0 -1
  257. package/dist/types/lib/propsContext/inherit/lib.d.ts +0 -8
  258. package/dist/types/lib/propsContext/inherit/lib.d.ts.map +0 -1
  259. package/dist/types/lib/propsContext/inherit/propsContextLevel.d.ts +0 -4
  260. package/dist/types/lib/propsContext/inherit/propsContextLevel.d.ts.map +0 -1
  261. package/dist/types/lib/propsContext/inherit/types.d.ts +0 -6
  262. package/dist/types/lib/propsContext/inherit/types.d.ts.map +0 -1
  263. package/dist/types/lib/react/ReactAriaControlledValueFix.d.ts +0 -16
  264. package/dist/types/lib/react/ReactAriaControlledValueFix.d.ts.map +0 -1
  265. package/dist/types/lib/react/ReactAriaControlledValueFix.test.d.ts +0 -2
  266. package/dist/types/lib/react/ReactAriaControlledValueFix.test.d.ts.map +0 -1
  267. package/dist/types/lib/react/emitElementValueChange.d.ts +0 -6
  268. package/dist/types/lib/react/emitElementValueChange.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.mjs","sources":["../../../../../../src/components/MarkdownEditor/MarkdownEditor.tsx"],"sourcesContent":["import React, {\n type KeyboardEventHandler,\n type RefObject,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport styles from \"./MarkdownEditor.module.scss\";\nimport { Markdown, type MarkdownProps } from \"@/components/Markdown\";\nimport { TextArea, type TextAreaProps } from \"@/components/TextArea\";\nimport { Toolbar } from \"@/components/MarkdownEditor/components/Toolbar\";\nimport clsx from \"clsx\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { useManagedValue } from \"@/lib/hooks/useManagedValue\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { TunnelProvider, TunnelExit } from \"@mittwald/react-tunnel\";\nimport {\n modifyValueByMarkdownSyntax,\n scrollToCursor,\n} from \"@/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax\";\nimport {\n type InsertType,\n modifyValueByType,\n} from \"@/components/MarkdownEditor/lib/modifyValueByType\";\n\nexport type MarkdownEditorMode = \"editor\" | \"preview\";\n\nexport type MarkdownEditorProps = Omit<TextAreaProps, \"ref\"> &\n Pick<MarkdownProps, \"headingOffset\" | \"ref\"> & {\n inputRef?: RefObject<HTMLTextAreaElement | null>;\n };\n\n/** @flr-generate all */\nexport const MarkdownEditor = flowComponent(\"MarkdownEditor\", (props) => {\n const {\n isDisabled,\n isReadOnly,\n children,\n className,\n rows = 5,\n autoResizeMaxRows,\n headingOffset,\n ref,\n inputRef,\n ...rest\n } = props;\n\n const localRef = useObjectRef(ref);\n const localInputRef = useObjectRef(inputRef);\n\n const [mode, setMode] = useState<MarkdownEditorMode>(\"editor\");\n const { value, handleOnChange } = useManagedValue(props);\n\n const selectionPresent = useRef<{\n shouldScrollToCursor: boolean;\n selectionStart: number | null;\n selectionEnd: number | null;\n } | null>(null);\n\n useEffect(() => {\n const inputRef = localInputRef.current;\n const present = selectionPresent.current;\n\n if (!present || !inputRef) {\n return;\n }\n\n setTimeout(() => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n inputRef.setSelectionRange(\n present.selectionStart,\n present.selectionEnd,\n );\n\n if (present.shouldScrollToCursor) {\n scrollToCursor(value, inputRef);\n }\n });\n });\n\n selectionPresent.current = null;\n }, 0);\n }, [selectionPresent.current, localInputRef.current, value]);\n\n const rootClassName = clsx(\n styles.markdownEditor,\n className,\n styles[`mode-${mode}`],\n );\n\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (event.key !== \"Enter\") {\n return;\n }\n\n const modifyParams = modifyValueByMarkdownSyntax(value, localInputRef);\n\n if (!modifyParams) {\n return;\n }\n\n const { newValue, newSelectionStart, newSelectionEnd } = modifyParams;\n\n event.preventDefault();\n localInputRef.current?.blur();\n\n selectionPresent.current = {\n shouldScrollToCursor: true,\n selectionStart: newSelectionStart,\n selectionEnd: newSelectionEnd,\n };\n\n handleOnChange(newValue);\n };\n\n const handleToolButtonPressed = (type: InsertType) => {\n const { newValue, newSelectionStart, newSelectionEnd } = modifyValueByType(\n value,\n type,\n localInputRef,\n );\n\n selectionPresent.current = {\n shouldScrollToCursor: false,\n selectionStart: newSelectionStart,\n selectionEnd: newSelectionEnd,\n };\n\n handleOnChange(newValue);\n };\n\n const propsContext: PropsContext = {\n Label: {\n tunnelId: \"label\",\n },\n };\n\n return (\n <div ref={localRef} className={rootClassName}>\n <TunnelProvider>\n <TunnelExit id=\"label\" />\n <Toolbar\n currentMode={mode}\n isDisabled={isDisabled}\n onModeChange={setMode}\n onToolPressed={handleToolButtonPressed}\n />\n <TextArea\n {...rest}\n aria-hidden={mode === \"preview\"}\n isReadOnly={isReadOnly || mode === \"preview\"}\n isDisabled={isDisabled}\n ref={localInputRef}\n value={value}\n rows={rows}\n autoResizeMaxRows={autoResizeMaxRows}\n onChange={handleOnChange}\n onKeyDown={handleKeyDown}\n >\n <Markdown\n headingOffset={headingOffset}\n className={styles.markdown}\n style={{\n height: localInputRef.current?.offsetHeight,\n }}\n >\n {value}\n </Markdown>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </TextArea>\n </TunnelProvider>\n </div>\n );\n});\n\nexport default MarkdownEditor;\n"],"names":["inputRef"],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownEditor.mjs","sources":["../../../../../../src/components/MarkdownEditor/MarkdownEditor.tsx"],"sourcesContent":["import { type KeyboardEventHandler, useEffect, useRef, useState } from \"react\";\nimport styles from \"./MarkdownEditor.module.scss\";\nimport { Markdown, type MarkdownProps } from \"@/components/Markdown\";\nimport { TextArea, type TextAreaProps } from \"@/components/TextArea\";\nimport { Toolbar } from \"@/components/MarkdownEditor/components/Toolbar\";\nimport clsx from \"clsx\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useObjectRef } from \"@react-aria/utils\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { TunnelProvider, TunnelExit } from \"@mittwald/react-tunnel\";\nimport {\n modifyValueByMarkdownSyntax,\n scrollToCursor,\n} from \"@/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax\";\nimport {\n type InsertType,\n modifyValueByType,\n} from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\n\nexport type MarkdownEditorMode = \"editor\" | \"preview\";\n\nexport interface MarkdownEditorProps\n extends TextAreaProps,\n Pick<MarkdownProps, \"headingOffset\"> {}\n\n/** @flr-generate all */\nexport const MarkdownEditor = flowComponent(\"MarkdownEditor\", (props) => {\n const {\n isDisabled,\n isReadOnly,\n children,\n className,\n rows = 5,\n autoResizeMaxRows,\n headingOffset,\n value,\n onChange,\n ref,\n ...rest\n } = useControlledHostValueProps(props);\n\n const inputRef = useObjectRef(ref);\n\n const [mode, setMode] = useState<MarkdownEditorMode>(\"editor\");\n\n const selectionPresent = useRef<{\n shouldScrollToCursor: boolean;\n selectionStart: number | null;\n selectionEnd: number | null;\n } | null>(null);\n\n useEffect(() => {\n const ref = inputRef.current;\n const present = selectionPresent.current;\n\n if (!present || !ref) {\n return;\n }\n\n setTimeout(() => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n ref.setSelectionRange(present.selectionStart, present.selectionEnd);\n\n if (present.shouldScrollToCursor) {\n scrollToCursor(value ?? \"\", ref);\n }\n });\n });\n\n selectionPresent.current = null;\n }, 0);\n }, [value]);\n\n const rootClassName = clsx(\n styles.markdownEditor,\n className,\n styles[`mode-${mode}`],\n );\n\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (event.key !== \"Enter\") {\n return;\n }\n\n const modifyParams = modifyValueByMarkdownSyntax(value, inputRef);\n if (!modifyParams) {\n return;\n }\n\n const { newValue, newSelectionStart, newSelectionEnd } = modifyParams;\n\n selectionPresent.current = {\n shouldScrollToCursor: true,\n selectionStart: newSelectionStart,\n selectionEnd: newSelectionEnd,\n };\n\n event.preventDefault();\n onChange(newValue);\n };\n\n const handleToolButtonPressed = (type: InsertType) => {\n const { newValue, newSelectionStart, newSelectionEnd } = modifyValueByType(\n value,\n type,\n inputRef,\n );\n\n selectionPresent.current = {\n shouldScrollToCursor: false,\n selectionStart: newSelectionStart,\n selectionEnd: newSelectionEnd,\n };\n\n onChange(newValue);\n };\n\n const propsContext: PropsContext = {\n Label: {\n tunnelId: \"label\",\n },\n };\n\n return (\n <div className={rootClassName}>\n <TunnelProvider>\n <TunnelExit id=\"label\" />\n <Toolbar\n currentMode={mode}\n isDisabled={isDisabled}\n onModeChange={setMode}\n onToolPressed={handleToolButtonPressed}\n />\n <TextArea\n {...rest}\n aria-hidden={mode === \"preview\"}\n isReadOnly={isReadOnly || mode === \"preview\"}\n isDisabled={isDisabled}\n ref={inputRef}\n value={value}\n rows={rows}\n autoResizeMaxRows={autoResizeMaxRows}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n >\n <Markdown\n headingOffset={headingOffset}\n className={styles.markdown}\n style={{\n height: inputRef.current?.offsetHeight,\n }}\n >\n {value}\n </Markdown>\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </TextArea>\n </TunnelProvider>\n </div>\n );\n});\n\nexport default MarkdownEditor;\n"],"names":["ref"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client"
2
2
  /* */
3
- const scrollToCursor = (value, textarea) => {
3
+ const scrollToCursor = (value = "", textarea) => {
4
4
  const { selectionStart } = textarea;
5
5
  const lineHeight = parseInt(
6
6
  getComputedStyle(textarea).lineHeight || "20",
@@ -9,7 +9,7 @@ const scrollToCursor = (value, textarea) => {
9
9
  const lines = value.slice(0, selectionStart).split("\n").length;
10
10
  textarea.scrollTop = (lines - 1) * lineHeight;
11
11
  };
12
- const modifyValueByMarkdownSyntax = (value, textAreaRef) => {
12
+ const modifyValueByMarkdownSyntax = (value = "", textAreaRef) => {
13
13
  const textarea = textAreaRef.current;
14
14
  if (!textarea) {
15
15
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"modifyValueByMarkdownSyntax.mjs","sources":["../../../../../../../src/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.ts"],"sourcesContent":["import type { RefObject } from \"react\";\n\nexport const scrollToCursor = (\n value: string,\n textarea: HTMLTextAreaElement,\n) => {\n const { selectionStart } = textarea;\n const lineHeight = parseInt(\n getComputedStyle(textarea).lineHeight || \"20\",\n 10,\n );\n const lines = value.slice(0, selectionStart).split(\"\\n\").length;\n textarea.scrollTop = (lines - 1) * lineHeight;\n};\n\nexport const modifyValueByMarkdownSyntax = (\n value: string,\n textAreaRef: RefObject<HTMLTextAreaElement | null>,\n) => {\n const textarea = textAreaRef.current;\n if (!textarea) {\n return;\n }\n\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n\n const before = value.slice(0, start);\n const after = value.slice(end);\n const lineStart = before.lastIndexOf(\"\\n\") + 1;\n const currentLine = before.slice(lineStart);\n\n const orderedMatch = currentLine.match(/^(\\s*)(\\d+)\\.\\s+/);\n const unorderedMatch = currentLine.match(/^(\\s*)([-*+])\\s+/);\n\n if (\n (orderedMatch || unorderedMatch) &&\n currentLine.trim().match(/^([-*+]|\\d+\\.)$/)\n ) {\n const newText = value.slice(0, lineStart) + \"\\n\" + after;\n\n return {\n newValue: newText,\n newSelectionStart: lineStart + 1,\n newSelectionEnd: lineStart + 1,\n } as const;\n }\n\n if (orderedMatch) {\n const indent = orderedMatch[1];\n const nextNum = parseInt(orderedMatch[2] ?? \"\", 10) + 1;\n const insert = `\\n${indent}${nextNum}. `;\n\n return {\n newValue: before + insert + after,\n newSelectionStart: start + insert.length,\n newSelectionEnd: start + insert.length,\n } as const;\n } else if (unorderedMatch) {\n const indent = unorderedMatch[1];\n const bullet = unorderedMatch[2];\n const insert = `\\n${indent}${bullet} `;\n\n const newText = before + insert + after;\n return {\n newValue: newText,\n newSelectionStart: start + insert.length,\n newSelectionEnd: start + insert.length,\n } as const;\n }\n};\n"],"names":[],"mappings":"AAEO,MAAM,cAAA,GAAiB,CAC5B,KAAA,EACA,QAAA,KACG;AACH,EAAA,MAAM,EAAE,gBAAe,GAAI,QAAA;AAC3B,EAAA,MAAM,UAAA,GAAa,QAAA;AAAA,IACjB,gBAAA,CAAiB,QAAQ,CAAA,CAAE,UAAA,IAAc,IAAA;AAAA,IACzC;AAAA,GACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,CAAM,CAAA,EAAG,cAAc,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA;AACzD,EAAA,QAAA,CAAS,SAAA,GAAA,CAAa,QAAQ,CAAA,IAAK,UAAA;AACrC;AAEO,MAAM,2BAAA,GAA8B,CACzC,KAAA,EACA,WAAA,KACG;AACH,EAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAQ,QAAA,CAAS,cAAA;AACvB,EAAA,MAAM,MAAM,QAAA,CAAS,YAAA;AAErB,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,WAAA,CAAY,IAAI,CAAA,GAAI,CAAA;AAC7C,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AAE1C,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,kBAAkB,CAAA;AACzD,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,KAAA,CAAM,kBAAkB,CAAA;AAE3D,EAAA,IAAA,CACG,gBAAgB,cAAA,KACjB,WAAA,CAAY,MAAK,CAAE,KAAA,CAAM,iBAAiB,CAAA,EAC1C;AACA,IAAA,MAAM,UAAU,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,SAAS,IAAI,IAAA,GAAO,KAAA;AAEnD,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAA;AAAA,MACV,mBAAmB,SAAA,GAAY,CAAA;AAAA,MAC/B,iBAAiB,SAAA,GAAY;AAAA,KAC/B;AAAA,EACF;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,MAAA,GAAS,aAAa,CAAC,CAAA;AAC7B,IAAA,MAAM,UAAU,QAAA,CAAS,YAAA,CAAa,CAAC,CAAA,IAAK,EAAA,EAAI,EAAE,CAAA,GAAI,CAAA;AACtD,IAAA,MAAM,MAAA,GAAS;AAAA,EAAK,MAAM,GAAG,OAAO,CAAA,EAAA,CAAA;AAEpC,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,SAAS,MAAA,GAAS,KAAA;AAAA,MAC5B,iBAAA,EAAmB,QAAQ,MAAA,CAAO,MAAA;AAAA,MAClC,eAAA,EAAiB,QAAQ,MAAA,CAAO;AAAA,KAClC;AAAA,EACF,WAAW,cAAA,EAAgB;AACzB,IAAA,MAAM,MAAA,GAAS,eAAe,CAAC,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS,eAAe,CAAC,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS;AAAA,EAAK,MAAM,GAAG,MAAM,CAAA,CAAA,CAAA;AAEnC,IAAA,MAAM,OAAA,GAAU,SAAS,MAAA,GAAS,KAAA;AAClC,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAA;AAAA,MACV,iBAAA,EAAmB,QAAQ,MAAA,CAAO,MAAA;AAAA,MAClC,eAAA,EAAiB,QAAQ,MAAA,CAAO;AAAA,KAClC;AAAA,EACF;AACF;;;;"}
1
+ {"version":3,"file":"modifyValueByMarkdownSyntax.mjs","sources":["../../../../../../../src/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax.ts"],"sourcesContent":["import type { RefObject } from \"react\";\n\nexport const scrollToCursor = (value = \"\", textarea: HTMLTextAreaElement) => {\n const { selectionStart } = textarea;\n const lineHeight = parseInt(\n getComputedStyle(textarea).lineHeight || \"20\",\n 10,\n );\n const lines = value.slice(0, selectionStart).split(\"\\n\").length;\n textarea.scrollTop = (lines - 1) * lineHeight;\n};\n\nexport const modifyValueByMarkdownSyntax = (\n value = \"\",\n textAreaRef: RefObject<HTMLTextAreaElement | null>,\n) => {\n const textarea = textAreaRef.current;\n if (!textarea) {\n return;\n }\n\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n\n const before = value.slice(0, start);\n const after = value.slice(end);\n const lineStart = before.lastIndexOf(\"\\n\") + 1;\n const currentLine = before.slice(lineStart);\n\n const orderedMatch = currentLine.match(/^(\\s*)(\\d+)\\.\\s+/);\n const unorderedMatch = currentLine.match(/^(\\s*)([-*+])\\s+/);\n\n if (\n (orderedMatch || unorderedMatch) &&\n currentLine.trim().match(/^([-*+]|\\d+\\.)$/)\n ) {\n const newText = value.slice(0, lineStart) + \"\\n\" + after;\n\n return {\n newValue: newText,\n newSelectionStart: lineStart + 1,\n newSelectionEnd: lineStart + 1,\n } as const;\n }\n\n if (orderedMatch) {\n const indent = orderedMatch[1];\n const nextNum = parseInt(orderedMatch[2] ?? \"\", 10) + 1;\n const insert = `\\n${indent}${nextNum}. `;\n\n return {\n newValue: before + insert + after,\n newSelectionStart: start + insert.length,\n newSelectionEnd: start + insert.length,\n } as const;\n } else if (unorderedMatch) {\n const indent = unorderedMatch[1];\n const bullet = unorderedMatch[2];\n const insert = `\\n${indent}${bullet} `;\n\n const newText = before + insert + after;\n return {\n newValue: newText,\n newSelectionStart: start + insert.length,\n newSelectionEnd: start + insert.length,\n } as const;\n }\n};\n"],"names":[],"mappings":"AAEO,MAAM,cAAA,GAAiB,CAAC,KAAA,GAAQ,EAAA,EAAI,QAAA,KAAkC;AAC3E,EAAA,MAAM,EAAE,gBAAe,GAAI,QAAA;AAC3B,EAAA,MAAM,UAAA,GAAa,QAAA;AAAA,IACjB,gBAAA,CAAiB,QAAQ,CAAA,CAAE,UAAA,IAAc,IAAA;AAAA,IACzC;AAAA,GACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,CAAM,CAAA,EAAG,cAAc,CAAA,CAAE,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA;AACzD,EAAA,QAAA,CAAS,SAAA,GAAA,CAAa,QAAQ,CAAA,IAAK,UAAA;AACrC;AAEO,MAAM,2BAAA,GAA8B,CACzC,KAAA,GAAQ,EAAA,EACR,WAAA,KACG;AACH,EAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAC7B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAQ,QAAA,CAAS,cAAA;AACvB,EAAA,MAAM,MAAM,QAAA,CAAS,YAAA;AAErB,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,WAAA,CAAY,IAAI,CAAA,GAAI,CAAA;AAC7C,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AAE1C,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,kBAAkB,CAAA;AACzD,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,KAAA,CAAM,kBAAkB,CAAA;AAE3D,EAAA,IAAA,CACG,gBAAgB,cAAA,KACjB,WAAA,CAAY,MAAK,CAAE,KAAA,CAAM,iBAAiB,CAAA,EAC1C;AACA,IAAA,MAAM,UAAU,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,SAAS,IAAI,IAAA,GAAO,KAAA;AAEnD,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAA;AAAA,MACV,mBAAmB,SAAA,GAAY,CAAA;AAAA,MAC/B,iBAAiB,SAAA,GAAY;AAAA,KAC/B;AAAA,EACF;AAEA,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,MAAA,GAAS,aAAa,CAAC,CAAA;AAC7B,IAAA,MAAM,UAAU,QAAA,CAAS,YAAA,CAAa,CAAC,CAAA,IAAK,EAAA,EAAI,EAAE,CAAA,GAAI,CAAA;AACtD,IAAA,MAAM,MAAA,GAAS;AAAA,EAAK,MAAM,GAAG,OAAO,CAAA,EAAA,CAAA;AAEpC,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,SAAS,MAAA,GAAS,KAAA;AAAA,MAC5B,iBAAA,EAAmB,QAAQ,MAAA,CAAO,MAAA;AAAA,MAClC,eAAA,EAAiB,QAAQ,MAAA,CAAO;AAAA,KAClC;AAAA,EACF,WAAW,cAAA,EAAgB;AACzB,IAAA,MAAM,MAAA,GAAS,eAAe,CAAC,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS,eAAe,CAAC,CAAA;AAC/B,IAAA,MAAM,MAAA,GAAS;AAAA,EAAK,MAAM,GAAG,MAAM,CAAA,CAAA,CAAA;AAEnC,IAAA,MAAM,OAAA,GAAU,SAAS,MAAA,GAAS,KAAA;AAClC,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,OAAA;AAAA,MACV,iBAAA,EAAmB,QAAQ,MAAA,CAAO,MAAA;AAAA,MAClC,eAAA,EAAiB,QAAQ,MAAA,CAAO;AAAA,KAClC;AAAA,EACF;AACF;;;;"}
@@ -20,7 +20,7 @@ const getLineEnd = (text, pos) => {
20
20
  const nextNewline = text.indexOf("\n", pos);
21
21
  return nextNewline === -1 ? text.length : nextNewline;
22
22
  };
23
- const modifyValueByType = (markdown, type, textAreaRef) => {
23
+ const modifyValueByType = (markdown = "", type, textAreaRef) => {
24
24
  if (!textAreaRef.current) {
25
25
  return {
26
26
  newValue: markdown,
@@ -1 +1 @@
1
- {"version":3,"file":"modifyValueByType.mjs","sources":["../../../../../../../src/components/MarkdownEditor/lib/modifyValueByType.ts"],"sourcesContent":["import { type RefObject } from \"react\";\n\nexport type InsertType =\n | \"bold\"\n | \"italic\"\n | \"strikeThrough\"\n | \"quote\"\n | \"code\"\n | \"link\"\n | \"unorderedList\"\n | \"orderedList\";\n\nconst markdownSyntax: Record<\n InsertType,\n { before: string; after?: string; toggleable?: boolean }\n> = {\n bold: { before: \"**\", after: \"**\", toggleable: true },\n italic: { before: \"_\", after: \"_\", toggleable: true },\n strikeThrough: { before: \"~~\", after: \"~~\", toggleable: true },\n quote: { before: \"> \" },\n code: { before: \"`\", after: \"`\", toggleable: true },\n link: { before: \"[\", after: \"](https://)\" },\n unorderedList: { before: \"- \" },\n orderedList: { before: \"1. \" },\n};\n\nconst getLineStart = (text: string, pos: number) => {\n const lastNewline = text.lastIndexOf(\"\\n\", pos - 1);\n return lastNewline === -1 ? 0 : lastNewline + 1;\n};\n\nconst getLineEnd = (text: string, pos: number) => {\n const nextNewline = text.indexOf(\"\\n\", pos);\n return nextNewline === -1 ? text.length : nextNewline;\n};\n\nexport const modifyValueByType = (\n markdown: string,\n type: InsertType,\n textAreaRef: RefObject<HTMLTextAreaElement | null>,\n) => {\n if (!textAreaRef.current) {\n return {\n newValue: markdown,\n newSelectionStart: null,\n newSelectionEnd: null,\n } as const;\n }\n\n const textarea = textAreaRef.current;\n const { before, after = \"\", toggleable = false } = markdownSyntax[type];\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n const selectedText = markdown.substring(start, end);\n const lines = selectedText.split(\"\\n\");\n\n let newText = markdown;\n let selectionStart = start;\n let selectionEnd = end;\n\n if (type === \"code\" && selectedText.includes(\"\\n\")) {\n newText =\n markdown.substring(0, start) +\n \"```\\n\" +\n selectedText +\n \"\\n```\\n\" +\n markdown.substring(end);\n selectionStart = start + 4;\n selectionEnd = selectionStart + selectedText.length;\n } else if (type === \"orderedList\") {\n if (selectedText) {\n const numbered = lines.map((line, i) => `${i + 1}. ${line}`).join(\"\\n\");\n newText =\n markdown.substring(0, start) + numbered + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + numbered.length;\n } else {\n const lineStart = getLineStart(markdown, start);\n const lineEnd = getLineEnd(markdown, start);\n const numberedLine = `1. ${markdown.substring(lineStart, lineEnd)}`;\n\n newText =\n markdown.substring(0, lineStart) +\n before +\n markdown.substring(lineStart);\n selectionStart = lineStart + numberedLine.length;\n selectionEnd = selectionStart;\n }\n } else if (type === \"unorderedList\") {\n if (selectedText) {\n const bulleted = lines.map((line) => `${before}${line}`).join(\"\\n\");\n newText =\n markdown.substring(0, start) + bulleted + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + bulleted.length;\n } else {\n const lineStart = getLineStart(markdown, start);\n const lineEnd = getLineEnd(markdown, start);\n const bulletedLine = `- ${markdown.substring(lineStart, lineEnd)}`;\n\n newText =\n markdown.substring(0, lineStart) +\n before +\n markdown.substring(lineStart);\n selectionStart = lineStart + bulletedLine.length;\n selectionEnd = selectionStart;\n }\n } else if (type === \"quote\") {\n if (selectedText) {\n const quoted = lines.map((line) => `${before}${line}`).join(\"\\n\");\n newText = markdown.substring(0, start) + quoted + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + quoted.length;\n } else {\n const quoteLine = `\\n${before} `;\n newText =\n markdown.substring(0, start) + quoteLine + markdown.substring(end);\n selectionStart = start + quoteLine.length;\n selectionEnd = selectionStart;\n }\n } else if (toggleable) {\n const prefix = markdown.substring(start - before.length, start);\n const suffix = markdown.substring(end, end + after.length);\n const isSurrounded = prefix === before && suffix === after;\n const isWrappedInside =\n selectedText.startsWith(before) && selectedText.endsWith(after);\n\n if (isSurrounded) {\n // Remove external wrapping (not selected)\n newText =\n markdown.substring(0, start - before.length) +\n selectedText +\n markdown.substring(end + after.length);\n selectionStart = start - before.length;\n selectionEnd = selectionStart + selectedText.length;\n } else if (isWrappedInside) {\n // Remove internal wrapping (selected)\n const unwrapped = selectedText.slice(\n before.length,\n selectedText.length - after.length,\n );\n newText =\n markdown.substring(0, start) + unwrapped + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + unwrapped.length;\n } else {\n // Add wrapping\n newText =\n markdown.substring(0, start) +\n before +\n selectedText +\n after +\n markdown.substring(end);\n\n if (selectedText.length === 0) {\n selectionStart = start + before.length;\n selectionEnd = selectionStart;\n } else {\n selectionStart = start + before.length;\n selectionEnd = selectionStart + selectedText.length;\n }\n }\n } else if (type === \"link\") {\n let linkText = \"\";\n let linkUrl = \"\";\n let inserted = \"\";\n let cursorOffsetStart = 0;\n\n const isValidUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n };\n\n if (selectedText) {\n if (isValidUrl(selectedText)) {\n linkUrl = selectedText;\n inserted = `[](${linkUrl})`;\n cursorOffsetStart = start + 1;\n } else {\n linkText = selectedText;\n inserted = `[${linkText}]()`;\n cursorOffsetStart = start + inserted.indexOf(\"](\") + 2;\n }\n } else {\n inserted = `[](https://)`;\n cursorOffsetStart = start + 1;\n }\n\n newText = markdown.substring(0, start) + inserted + markdown.substring(end);\n selectionStart = selectionEnd = cursorOffsetStart;\n } else {\n // Fallback for non-toggleable, inline syntax\n newText =\n markdown.substring(0, start) +\n before +\n selectedText +\n after +\n markdown.substring(end);\n\n if (selectedText.length === 0) {\n // No text selected – place cursor between syntax\n selectionStart = start + before.length;\n selectionEnd = selectionStart;\n } else {\n // Keep selection\n selectionStart = start + before.length;\n selectionEnd = selectionStart + selectedText.length;\n }\n }\n\n return {\n newValue: newText,\n newSelectionStart: selectionStart,\n newSelectionEnd: selectionEnd,\n } as const;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modifyValueByType.mjs","sources":["../../../../../../../src/components/MarkdownEditor/lib/modifyValueByType.ts"],"sourcesContent":["import { type RefObject } from \"react\";\n\nexport type InsertType =\n | \"bold\"\n | \"italic\"\n | \"strikeThrough\"\n | \"quote\"\n | \"code\"\n | \"link\"\n | \"unorderedList\"\n | \"orderedList\";\n\nconst markdownSyntax: Record<\n InsertType,\n { before: string; after?: string; toggleable?: boolean }\n> = {\n bold: { before: \"**\", after: \"**\", toggleable: true },\n italic: { before: \"_\", after: \"_\", toggleable: true },\n strikeThrough: { before: \"~~\", after: \"~~\", toggleable: true },\n quote: { before: \"> \" },\n code: { before: \"`\", after: \"`\", toggleable: true },\n link: { before: \"[\", after: \"](https://)\" },\n unorderedList: { before: \"- \" },\n orderedList: { before: \"1. \" },\n};\n\nconst getLineStart = (text: string, pos: number) => {\n const lastNewline = text.lastIndexOf(\"\\n\", pos - 1);\n return lastNewline === -1 ? 0 : lastNewline + 1;\n};\n\nconst getLineEnd = (text: string, pos: number) => {\n const nextNewline = text.indexOf(\"\\n\", pos);\n return nextNewline === -1 ? text.length : nextNewline;\n};\n\nexport const modifyValueByType = (\n markdown = \"\",\n type: InsertType,\n textAreaRef: RefObject<HTMLTextAreaElement | null>,\n) => {\n if (!textAreaRef.current) {\n return {\n newValue: markdown,\n newSelectionStart: null,\n newSelectionEnd: null,\n } as const;\n }\n\n const textarea = textAreaRef.current;\n const { before, after = \"\", toggleable = false } = markdownSyntax[type];\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n const selectedText = markdown.substring(start, end);\n const lines = selectedText.split(\"\\n\");\n\n let newText = markdown;\n let selectionStart = start;\n let selectionEnd = end;\n\n if (type === \"code\" && selectedText.includes(\"\\n\")) {\n newText =\n markdown.substring(0, start) +\n \"```\\n\" +\n selectedText +\n \"\\n```\\n\" +\n markdown.substring(end);\n selectionStart = start + 4;\n selectionEnd = selectionStart + selectedText.length;\n } else if (type === \"orderedList\") {\n if (selectedText) {\n const numbered = lines.map((line, i) => `${i + 1}. ${line}`).join(\"\\n\");\n newText =\n markdown.substring(0, start) + numbered + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + numbered.length;\n } else {\n const lineStart = getLineStart(markdown, start);\n const lineEnd = getLineEnd(markdown, start);\n const numberedLine = `1. ${markdown.substring(lineStart, lineEnd)}`;\n\n newText =\n markdown.substring(0, lineStart) +\n before +\n markdown.substring(lineStart);\n selectionStart = lineStart + numberedLine.length;\n selectionEnd = selectionStart;\n }\n } else if (type === \"unorderedList\") {\n if (selectedText) {\n const bulleted = lines.map((line) => `${before}${line}`).join(\"\\n\");\n newText =\n markdown.substring(0, start) + bulleted + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + bulleted.length;\n } else {\n const lineStart = getLineStart(markdown, start);\n const lineEnd = getLineEnd(markdown, start);\n const bulletedLine = `- ${markdown.substring(lineStart, lineEnd)}`;\n\n newText =\n markdown.substring(0, lineStart) +\n before +\n markdown.substring(lineStart);\n selectionStart = lineStart + bulletedLine.length;\n selectionEnd = selectionStart;\n }\n } else if (type === \"quote\") {\n if (selectedText) {\n const quoted = lines.map((line) => `${before}${line}`).join(\"\\n\");\n newText = markdown.substring(0, start) + quoted + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + quoted.length;\n } else {\n const quoteLine = `\\n${before} `;\n newText =\n markdown.substring(0, start) + quoteLine + markdown.substring(end);\n selectionStart = start + quoteLine.length;\n selectionEnd = selectionStart;\n }\n } else if (toggleable) {\n const prefix = markdown.substring(start - before.length, start);\n const suffix = markdown.substring(end, end + after.length);\n const isSurrounded = prefix === before && suffix === after;\n const isWrappedInside =\n selectedText.startsWith(before) && selectedText.endsWith(after);\n\n if (isSurrounded) {\n // Remove external wrapping (not selected)\n newText =\n markdown.substring(0, start - before.length) +\n selectedText +\n markdown.substring(end + after.length);\n selectionStart = start - before.length;\n selectionEnd = selectionStart + selectedText.length;\n } else if (isWrappedInside) {\n // Remove internal wrapping (selected)\n const unwrapped = selectedText.slice(\n before.length,\n selectedText.length - after.length,\n );\n newText =\n markdown.substring(0, start) + unwrapped + markdown.substring(end);\n selectionStart = start;\n selectionEnd = start + unwrapped.length;\n } else {\n // Add wrapping\n newText =\n markdown.substring(0, start) +\n before +\n selectedText +\n after +\n markdown.substring(end);\n\n if (selectedText.length === 0) {\n selectionStart = start + before.length;\n selectionEnd = selectionStart;\n } else {\n selectionStart = start + before.length;\n selectionEnd = selectionStart + selectedText.length;\n }\n }\n } else if (type === \"link\") {\n let linkText = \"\";\n let linkUrl = \"\";\n let inserted = \"\";\n let cursorOffsetStart = 0;\n\n const isValidUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n };\n\n if (selectedText) {\n if (isValidUrl(selectedText)) {\n linkUrl = selectedText;\n inserted = `[](${linkUrl})`;\n cursorOffsetStart = start + 1;\n } else {\n linkText = selectedText;\n inserted = `[${linkText}]()`;\n cursorOffsetStart = start + inserted.indexOf(\"](\") + 2;\n }\n } else {\n inserted = `[](https://)`;\n cursorOffsetStart = start + 1;\n }\n\n newText = markdown.substring(0, start) + inserted + markdown.substring(end);\n selectionStart = selectionEnd = cursorOffsetStart;\n } else {\n // Fallback for non-toggleable, inline syntax\n newText =\n markdown.substring(0, start) +\n before +\n selectedText +\n after +\n markdown.substring(end);\n\n if (selectedText.length === 0) {\n // No text selected – place cursor between syntax\n selectionStart = start + before.length;\n selectionEnd = selectionStart;\n } else {\n // Keep selection\n selectionStart = start + before.length;\n selectionEnd = selectionStart + selectedText.length;\n }\n }\n\n return {\n newValue: newText,\n newSelectionStart: selectionStart,\n newSelectionEnd: selectionEnd,\n } as const;\n};\n"],"names":[],"mappings":"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"}
@@ -20,84 +20,78 @@ import ButtonView from '../../views/ButtonView.mjs';
20
20
  import { OffCanvasSuspenseFallback } from './components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.mjs';
21
21
  import { Wrap } from '../Wrap/Wrap.mjs';
22
22
 
23
- const Modal = flowComponent(
24
- "Modal",
25
- (props) => {
26
- const {
27
- size = "s",
28
- offCanvas,
29
- controller,
30
- children,
31
- ref,
32
- className,
33
- offCanvasOrientation = "right",
34
- ...rest
35
- } = props;
36
- const rootClassName = clsx(
37
- offCanvas ? styles.offCanvas : styles.modal,
38
- styles[`size-${size}`],
39
- offCanvasOrientation === "left" && styles["left"],
40
- className
41
- );
42
- const header = (children2) => /* @__PURE__ */ jsxs(Fragment, { children: [
43
- children2,
44
- /* @__PURE__ */ jsx(Action, { closeOverlay: "Modal", children: /* @__PURE__ */ jsx(
45
- ButtonView,
46
- {
47
- variant: "plain",
48
- color: "secondary",
49
- onPress: controller?.close,
50
- children: /* @__PURE__ */ jsx(IconClose, {})
51
- }
52
- ) })
53
- ] });
54
- const nestedHeadingLevel = 3;
55
- const nestedHeadingProps = {
56
- Heading: { level: nestedHeadingLevel },
57
- Section: {
58
- Header: { Heading: { level: nestedHeadingLevel } },
59
- Heading: { level: nestedHeadingLevel }
60
- },
61
- Header: { Heading: { level: nestedHeadingLevel } }
62
- };
63
- const propsContext = {
64
- Content: {
65
- ...nestedHeadingProps,
66
- className: styles.content
67
- },
68
- ColumnLayout: {
69
- ...nestedHeadingProps,
70
- l: [2, 1],
71
- m: [1],
72
- className: styles.columnLayout,
73
- AccentBox: { className: styles.accentBox, color: "neutral" }
74
- },
75
- Heading: {
76
- className: styles.header,
77
- level: 2,
78
- slot: "title",
79
- children: dynamic((props2) => header(props2.children))
80
- },
81
- ActionGroup: {
82
- className: styles.actionGroup,
83
- spacing: "m"
84
- }
85
- };
86
- return /* @__PURE__ */ jsx(
87
- Overlay,
23
+ const Modal = flowComponent("Modal", (props) => {
24
+ const {
25
+ size = "s",
26
+ offCanvas,
27
+ controller,
28
+ children,
29
+ ref,
30
+ className,
31
+ offCanvasOrientation = "right",
32
+ ...rest
33
+ } = props;
34
+ const rootClassName = clsx(
35
+ offCanvas ? styles.offCanvas : styles.modal,
36
+ styles[`size-${size}`],
37
+ offCanvasOrientation === "left" && styles["left"],
38
+ className
39
+ );
40
+ const header = (children2) => /* @__PURE__ */ jsxs(Fragment, { children: [
41
+ children2,
42
+ /* @__PURE__ */ jsx(Action, { closeOverlay: "Modal", children: /* @__PURE__ */ jsx(
43
+ ButtonView,
88
44
  {
89
- className: rootClassName,
90
- controller,
91
- ref,
92
- ...rest,
93
- children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(Wrap, { if: offCanvas, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(OffCanvasSuspenseFallback, {}), children }) }) })
45
+ variant: "plain",
46
+ color: "secondary",
47
+ onPress: controller?.close,
48
+ children: /* @__PURE__ */ jsx(IconClose, {})
94
49
  }
95
- );
96
- },
97
- {
98
- type: "provider"
99
- }
100
- );
50
+ ) })
51
+ ] });
52
+ const nestedHeadingLevel = 3;
53
+ const nestedHeadingProps = {
54
+ Heading: { level: nestedHeadingLevel },
55
+ Section: {
56
+ Header: { Heading: { level: nestedHeadingLevel } },
57
+ Heading: { level: nestedHeadingLevel }
58
+ },
59
+ Header: { Heading: { level: nestedHeadingLevel } }
60
+ };
61
+ const propsContext = {
62
+ Content: {
63
+ ...nestedHeadingProps,
64
+ className: styles.content
65
+ },
66
+ ColumnLayout: {
67
+ ...nestedHeadingProps,
68
+ l: [2, 1],
69
+ m: [1],
70
+ className: styles.columnLayout,
71
+ AccentBox: { className: styles.accentBox, color: "neutral" }
72
+ },
73
+ Heading: {
74
+ className: styles.header,
75
+ level: 2,
76
+ slot: "title",
77
+ children: dynamic((props2) => header(props2.children))
78
+ },
79
+ ActionGroup: {
80
+ className: styles.actionGroup,
81
+ spacing: "m"
82
+ }
83
+ };
84
+ return /* @__PURE__ */ jsx(
85
+ Overlay,
86
+ {
87
+ className: rootClassName,
88
+ controller,
89
+ ref,
90
+ ...rest,
91
+ children: /* @__PURE__ */ jsx(PropsContextProvider, { props: propsContext, children: /* @__PURE__ */ jsx(Wrap, { if: offCanvas, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(OffCanvasSuspenseFallback, {}), children }) }) })
92
+ }
93
+ );
94
+ });
101
95
 
102
96
  export { Modal, Modal as default };
103
97
  //# sourceMappingURL=Modal.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.mjs","sources":["../../../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import { Suspense, type PropsWithChildren, type ReactNode } from \"react\";\nimport styles from \"./Modal.module.scss\";\nimport clsx from \"clsx\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport type { OverlayController } from \"@/lib/controller/overlay\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { Overlay } from \"@/components/Overlay/Overlay\";\nimport { Action } from \"@/components/Action\";\nimport { IconClose } from \"@/components/Icon/components/icons\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { OffCanvasSuspenseFallback } from \"@/components/Modal/components/OffCanvasSuspenseFallback\";\nimport Wrap from \"@/components/Wrap\";\n\nexport interface ModalProps\n extends PropsWithChildren,\n FlowComponentProps,\n PropsWithClassName {\n /** The size of the modal. @default \"s\" */\n size?: \"s\" | \"m\" | \"l\";\n /** Whether the modal should be displayed as an off canvas. */\n offCanvas?: boolean;\n /**\n * Whether the off canvas should be displayed on the right or left side of the\n * screen. @default \"right\"\n */\n offCanvasOrientation?: \"left\" | \"right\";\n /** An overlay controller to control the modal state. */\n controller?: OverlayController;\n /**\n * Accepts \"actionConfirm\" to use the modal as a confirmation modal for an\n * action.\n */\n slot?: string;\n /** Whether the modal can be closed by clicking outside of it. */\n isDismissable?: boolean;\n}\n\nexport const Modal = flowComponent(\n \"Modal\",\n (props) => {\n const {\n size = \"s\",\n offCanvas,\n controller,\n children,\n ref,\n className,\n offCanvasOrientation = \"right\",\n ...rest\n } = props;\n\n const rootClassName = clsx(\n offCanvas ? styles.offCanvas : styles.modal,\n styles[`size-${size}`],\n offCanvasOrientation === \"left\" && styles[\"left\"],\n className,\n );\n\n const header = (children: ReactNode) => (\n <>\n {children}\n <Action closeOverlay=\"Modal\">\n <ButtonView\n variant=\"plain\"\n color=\"secondary\"\n onPress={controller?.close}\n >\n <IconClose />\n </ButtonView>\n </Action>\n </>\n );\n\n const nestedHeadingLevel = 3;\n\n const nestedHeadingProps: PropsContext = {\n Heading: { level: nestedHeadingLevel },\n Section: {\n Header: { Heading: { level: nestedHeadingLevel } },\n Heading: { level: nestedHeadingLevel },\n },\n Header: { Heading: { level: nestedHeadingLevel } },\n };\n\n const propsContext: PropsContext = {\n Content: {\n ...nestedHeadingProps,\n className: styles.content,\n },\n ColumnLayout: {\n ...nestedHeadingProps,\n l: [2, 1],\n m: [1],\n className: styles.columnLayout,\n AccentBox: { className: styles.accentBox, color: \"neutral\" },\n },\n Heading: {\n className: styles.header,\n level: 2,\n slot: \"title\",\n children: dynamic((props) => header(props.children)),\n },\n ActionGroup: {\n className: styles.actionGroup,\n spacing: \"m\",\n },\n };\n\n return (\n <Overlay\n className={rootClassName}\n controller={controller}\n ref={ref}\n {...rest}\n >\n <PropsContextProvider props={propsContext}>\n <Wrap if={offCanvas}>\n <Suspense fallback={<OffCanvasSuspenseFallback />}>\n {children}\n </Suspense>\n </Wrap>\n </PropsContextProvider>\n </Overlay>\n );\n },\n {\n type: \"provider\",\n },\n);\n\nexport default Modal;\n"],"names":["children","props"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.mjs","sources":["../../../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import { Suspense, type PropsWithChildren, type ReactNode } from \"react\";\nimport styles from \"./Modal.module.scss\";\nimport clsx from \"clsx\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport type { OverlayController } from \"@/lib/controller/overlay\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { Overlay } from \"@/components/Overlay/Overlay\";\nimport { Action } from \"@/components/Action\";\nimport { IconClose } from \"@/components/Icon/components/icons\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport ButtonView from \"@/views/ButtonView\";\nimport { OffCanvasSuspenseFallback } from \"@/components/Modal/components/OffCanvasSuspenseFallback\";\nimport Wrap from \"@/components/Wrap\";\n\nexport interface ModalProps\n extends PropsWithChildren,\n FlowComponentProps,\n PropsWithClassName {\n /** The size of the modal. @default \"s\" */\n size?: \"s\" | \"m\" | \"l\";\n /** Whether the modal should be displayed as an off canvas. */\n offCanvas?: boolean;\n /**\n * Whether the off canvas should be displayed on the right or left side of the\n * screen. @default \"right\"\n */\n offCanvasOrientation?: \"left\" | \"right\";\n /** An overlay controller to control the modal state. */\n controller?: OverlayController;\n /**\n * Accepts \"actionConfirm\" to use the modal as a confirmation modal for an\n * action.\n */\n slot?: string;\n /** Whether the modal can be closed by clicking outside of it. */\n isDismissable?: boolean;\n}\n\nexport const Modal = flowComponent(\"Modal\", (props) => {\n const {\n size = \"s\",\n offCanvas,\n controller,\n children,\n ref,\n className,\n offCanvasOrientation = \"right\",\n ...rest\n } = props;\n\n const rootClassName = clsx(\n offCanvas ? styles.offCanvas : styles.modal,\n styles[`size-${size}`],\n offCanvasOrientation === \"left\" && styles[\"left\"],\n className,\n );\n\n const header = (children: ReactNode) => (\n <>\n {children}\n <Action closeOverlay=\"Modal\">\n <ButtonView\n variant=\"plain\"\n color=\"secondary\"\n onPress={controller?.close}\n >\n <IconClose />\n </ButtonView>\n </Action>\n </>\n );\n\n const nestedHeadingLevel = 3;\n\n const nestedHeadingProps: PropsContext = {\n Heading: { level: nestedHeadingLevel },\n Section: {\n Header: { Heading: { level: nestedHeadingLevel } },\n Heading: { level: nestedHeadingLevel },\n },\n Header: { Heading: { level: nestedHeadingLevel } },\n };\n\n const propsContext: PropsContext = {\n Content: {\n ...nestedHeadingProps,\n className: styles.content,\n },\n ColumnLayout: {\n ...nestedHeadingProps,\n l: [2, 1],\n m: [1],\n className: styles.columnLayout,\n AccentBox: { className: styles.accentBox, color: \"neutral\" },\n },\n Heading: {\n className: styles.header,\n level: 2,\n slot: \"title\",\n children: dynamic((props) => header(props.children)),\n },\n ActionGroup: {\n className: styles.actionGroup,\n spacing: \"m\",\n },\n };\n\n return (\n <Overlay\n className={rootClassName}\n controller={controller}\n ref={ref}\n {...rest}\n >\n <PropsContextProvider props={propsContext}>\n <Wrap if={offCanvas}>\n <Suspense fallback={<OffCanvasSuspenseFallback />}>\n {children}\n </Suspense>\n </Wrap>\n </PropsContextProvider>\n </Overlay>\n );\n});\n\nexport default Modal;\n"],"names":["children","props"],"mappings":"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"}
@@ -26,6 +26,10 @@ import 'react-aria-components';
26
26
  import 'mobx';
27
27
  import '../../../../lib/controller/overlay/context.mjs';
28
28
  import 'remeda';
29
+ import '../../../../lib/slotContext/SlotContextProvider.mjs';
30
+ import '../../../../lib/propsContext/components/ComponentPropsContextProvider.mjs';
31
+ import '../../../../views/ComponentPropsContextProviderView.mjs';
32
+ import '../../../../lib/viewComponentContext/viewComponentContext.mjs';
29
33
  import '@react-aria/utils';
30
34
  import 'dot-prop';
31
35
  import 'recharts';
@@ -34,12 +38,10 @@ import '../../../Text/Text.mjs';
34
38
  import '../../../Checkbox/Checkbox.mjs';
35
39
  import '../../../CheckboxButton/CheckboxButton.mjs';
36
40
  import '../../../CheckboxGroup/CheckboxGroup.mjs';
37
- import '../../../../lib/propsContext/inherit/PropsContextLevelProvider.mjs';
38
41
  import 'react-syntax-highlighter';
39
42
  import '../../../CopyButton/CopyButton.mjs';
40
43
  import '../../../ColumnLayout/ColumnLayout.mjs';
41
44
  import '../../../ComboBox/ComboBox.mjs';
42
- import '../../../../lib/propsContext/components/ComponentPropsContextProvider.mjs';
43
45
  import '../../../Content/Content.mjs';
44
46
  import '../../../ContextMenu/ContextMenu.mjs';
45
47
  import '../../../MenuItem/MenuItem.mjs';
@@ -108,6 +110,7 @@ import '../../../TextArea/TextArea.mjs';
108
110
  import '../../../TextField/TextField.mjs';
109
111
  import '../../../TimeField/TimeField.mjs';
110
112
  import '../../../TranslationProvider/TranslationProvider.mjs';
113
+ import '../../../../lib/remote/eventHandlerContext.mjs';
111
114
  import FlexView from '../../../../views/FlexView.mjs';
112
115
 
113
116
  const OffCanvasSuspenseFallback = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"OffCanvasSuspenseFallback.mjs","sources":["../../../../../../../../src/components/Modal/components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.tsx"],"sourcesContent":["import { useAriaAnnounceSuspense } from \"@/index/default\";\nimport FlexView from \"@/views/FlexView\";\nimport LoadingSpinnerView from \"@/views/LoadingSpinnerView\";\nimport type { FC } from \"react\";\n\nexport const OffCanvasSuspenseFallback: FC = () => {\n useAriaAnnounceSuspense();\n return (\n <FlexView grow align=\"center\" justify=\"center\">\n <LoadingSpinnerView />\n </FlexView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,4BAAgC,MAAM;AACjD,EAAA,uBAAA,EAAwB;AACxB,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAI,IAAA,EAAC,KAAA,EAAM,UAAS,OAAA,EAAQ,QAAA,EACpC,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,CAAA,EACtB,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"OffCanvasSuspenseFallback.mjs","sources":["../../../../../../../../src/components/Modal/components/OffCanvasSuspenseFallback/OffCanvasSuspenseFallback.tsx"],"sourcesContent":["import { useAriaAnnounceSuspense } from \"@/index/default\";\nimport FlexView from \"@/views/FlexView\";\nimport LoadingSpinnerView from \"@/views/LoadingSpinnerView\";\nimport type { FC } from \"react\";\n\nexport const OffCanvasSuspenseFallback: FC = () => {\n useAriaAnnounceSuspense();\n return (\n <FlexView grow align=\"center\" justify=\"center\">\n <LoadingSpinnerView />\n </FlexView>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,4BAAgC,MAAM;AACjD,EAAA,uBAAA,EAAwB;AACxB,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAI,IAAA,EAAC,KAAA,EAAM,UAAS,OAAA,EAAQ,QAAA,EACpC,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EAAmB,CAAA,EACtB,CAAA;AAEJ;;;;"}
@@ -25,10 +25,7 @@ const NavigationGroup = flowComponent("NavigationGroup", (props) => {
25
25
  className: styles.label
26
26
  },
27
27
  Link: {
28
- tunnelId: "groupLinks",
29
- unstyled: false,
30
- color: "light",
31
- className: "peter"
28
+ tunnelId: "groupLinks"
32
29
  }
33
30
  };
34
31
  if (collapsable) {
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationGroup.mjs","sources":["../../../../../../../../src/components/Navigation/components/NavigationGroup/NavigationGroup.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren } from \"react\";\nimport { useId } from \"react\";\nimport clsx from \"clsx\";\nimport styles from \"./NavigationGroup.module.scss\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport { Accordion } from \"@/components/Accordion\";\nimport { Content } from \"@/components/Content\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\n\nexport interface NavigationGroupProps\n extends PropsWithChildren<ComponentProps<\"section\">>,\n FlowComponentProps<HTMLElement> {\n collapsable?: boolean;\n}\n\n/** @flr-generate all */\nexport const NavigationGroup = flowComponent(\"NavigationGroup\", (props) => {\n const { children, className, collapsable, ...rest } = props;\n\n const rootClassName = clsx(\n styles.navigationGroup,\n collapsable && styles.collapsable,\n className,\n );\n\n const generatedId = useId();\n\n const propsContext: PropsContext = {\n Label: {\n id: generatedId,\n className: styles.label,\n },\n Link: {\n tunnelId: \"groupLinks\",\n unstyled: false,\n color: \"light\",\n className: \"peter\",\n },\n };\n\n if (collapsable) {\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <Accordion defaultExpanded className={rootClassName}>\n {children}\n <Content>\n <ul>\n <TunnelExit id=\"groupLinks\" />\n </ul>\n </Content>\n </Accordion>\n </TunnelProvider>\n </PropsContextProvider>\n );\n }\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <section\n aria-labelledby={generatedId}\n className={rootClassName}\n {...rest}\n >\n {children}\n <TunnelExit id=\"Label\" />\n <ul>\n <TunnelExit id=\"groupLinks\" />\n </ul>\n </section>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default NavigationGroup;\n"],"names":[],"mappings":";;;;;;;;;;;AAoBO,MAAM,eAAA,GAAkB,aAAA,CAAc,iBAAA,EAAmB,CAAC,KAAA,KAAU;AACzE,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,WAAA,EAAa,GAAG,MAAK,GAAI,KAAA;AAEtD,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,eAAA;AAAA,IACP,eAAe,MAAA,CAAO,WAAA;AAAA,IACtB;AAAA,GACF;AAEA,EAAA,MAAM,cAAc,KAAA,EAAM;AAE1B,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,KAAA,EAAO;AAAA,MACL,EAAA,EAAI,WAAA;AAAA,MACJ,WAAW,MAAA,CAAO;AAAA,KACpB;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,KAAA;AAAA,MACV,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACF;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,SAAA,EAAA,EAAU,eAAA,EAAe,IAAA,EAAC,SAAA,EAAW,aAAA,EACnC,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA,CAAC,WACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EACC,8BAAC,UAAA,EAAA,EAAW,EAAA,EAAG,YAAA,EAAa,CAAA,EAC9B,CAAA,EACF;AAAA,KAAA,EACF,GACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,8BAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,WAAA;AAAA,MACjB,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,OAAA,EAAQ,CAAA;AAAA,4BACtB,IAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,cAAa,CAAA,EAC9B;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"NavigationGroup.mjs","sources":["../../../../../../../../src/components/Navigation/components/NavigationGroup/NavigationGroup.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren } from \"react\";\nimport { useId } from \"react\";\nimport clsx from \"clsx\";\nimport styles from \"./NavigationGroup.module.scss\";\nimport { type PropsContext, PropsContextProvider } from \"@/lib/propsContext\";\nimport { TunnelExit, TunnelProvider } from \"@mittwald/react-tunnel\";\nimport { Accordion } from \"@/components/Accordion\";\nimport { Content } from \"@/components/Content\";\nimport {\n flowComponent,\n type FlowComponentProps,\n} from \"@/lib/componentFactory/flowComponent\";\n\nexport interface NavigationGroupProps\n extends PropsWithChildren<ComponentProps<\"section\">>,\n FlowComponentProps<HTMLElement> {\n collapsable?: boolean;\n}\n\n/** @flr-generate all */\nexport const NavigationGroup = flowComponent(\"NavigationGroup\", (props) => {\n const { children, className, collapsable, ...rest } = props;\n\n const rootClassName = clsx(\n styles.navigationGroup,\n collapsable && styles.collapsable,\n className,\n );\n\n const generatedId = useId();\n\n const propsContext: PropsContext = {\n Label: {\n id: generatedId,\n className: styles.label,\n },\n Link: {\n tunnelId: \"groupLinks\",\n },\n };\n\n if (collapsable) {\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <Accordion defaultExpanded className={rootClassName}>\n {children}\n <Content>\n <ul>\n <TunnelExit id=\"groupLinks\" />\n </ul>\n </Content>\n </Accordion>\n </TunnelProvider>\n </PropsContextProvider>\n );\n }\n\n return (\n <PropsContextProvider props={propsContext}>\n <TunnelProvider>\n <section\n aria-labelledby={generatedId}\n className={rootClassName}\n {...rest}\n >\n {children}\n <TunnelExit id=\"Label\" />\n <ul>\n <TunnelExit id=\"groupLinks\" />\n </ul>\n </section>\n </TunnelProvider>\n </PropsContextProvider>\n );\n});\n\nexport default NavigationGroup;\n"],"names":[],"mappings":";;;;;;;;;;;AAoBO,MAAM,eAAA,GAAkB,aAAA,CAAc,iBAAA,EAAmB,CAAC,KAAA,KAAU;AACzE,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,WAAA,EAAa,GAAG,MAAK,GAAI,KAAA;AAEtD,EAAA,MAAM,aAAA,GAAgB,IAAA;AAAA,IACpB,MAAA,CAAO,eAAA;AAAA,IACP,eAAe,MAAA,CAAO,WAAA;AAAA,IACtB;AAAA,GACF;AAEA,EAAA,MAAM,cAAc,KAAA,EAAM;AAE1B,EAAA,MAAM,YAAA,GAA6B;AAAA,IACjC,KAAA,EAAO;AAAA,MACL,EAAA,EAAI,WAAA;AAAA,MACJ,WAAW,MAAA,CAAO;AAAA,KACpB;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU;AAAA;AACZ,GACF;AAEA,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,SAAA,EAAA,EAAU,eAAA,EAAe,IAAA,EAAC,SAAA,EAAW,aAAA,EACnC,QAAA,EAAA;AAAA,MAAA,QAAA;AAAA,sBACD,GAAA,CAAC,WACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EACC,8BAAC,UAAA,EAAA,EAAW,EAAA,EAAG,YAAA,EAAa,CAAA,EAC9B,CAAA,EACF;AAAA,KAAA,EACF,GACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,GAAA,CAAC,oBAAA,EAAA,EAAqB,KAAA,EAAO,YAAA,EAC3B,8BAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,WAAA;AAAA,MACjB,SAAA,EAAW,aAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,OAAA,EAAQ,CAAA;AAAA,4BACtB,IAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,EAAA,EAAG,cAAa,CAAA,EAC9B;AAAA;AAAA;AAAA,KAEJ,CAAA,EACF,CAAA;AAEJ,CAAC;;;;"}
@@ -17,21 +17,17 @@ import { IconChevronUp } from '../Icon/components/icons/IconChevronUp.mjs';
17
17
  import { IconMinus } from '../Icon/components/icons/IconMinus.mjs';
18
18
  import { IconPlus } from '../Icon/components/icons/IconPlus.mjs';
19
19
  import { flowComponent } from '../../lib/componentFactory/flowComponent.mjs';
20
- import { ReactAriaControlledValueFix } from '../../lib/react/ReactAriaControlledValueFix.mjs';
21
20
  import { useFieldComponent } from '../../lib/hooks/useFieldComponent.mjs';
22
- import { useMakeFocusable } from '../../lib/hooks/dom/useMakeFocusable.mjs';
23
- import { useObjectRef } from '@react-aria/utils';
21
+ import { useControlledHostValueProps } from '../../lib/remote/useControlledHostValueProps.mjs';
24
22
 
25
23
  const NumberField = flowComponent("NumberField", (props) => {
26
24
  const {
27
25
  children,
28
26
  className,
29
- ref,
30
- inputRef,
31
- defaultValue,
32
27
  isWheelDisabled = true,
28
+ ref,
33
29
  ...rest
34
- } = props;
30
+ } = useControlledHostValueProps(props);
35
31
  const {
36
32
  FieldErrorView,
37
33
  FieldErrorCaptureContext,
@@ -39,18 +35,11 @@ const NumberField = flowComponent("NumberField", (props) => {
39
35
  fieldPropsContext
40
36
  } = useFieldComponent(props);
41
37
  const rootClassName = clsx(formFieldStyles.formField, className);
42
- const localNumberFieldRef = useObjectRef(ref);
43
- const localNumberFieldInputRef = useObjectRef(inputRef);
44
- useMakeFocusable(localNumberFieldRef, () => {
45
- localNumberFieldInputRef?.current?.focus();
46
- });
47
38
  return /* @__PURE__ */ jsxs(
48
39
  Aria.NumberField,
49
40
  {
50
41
  ...rest,
51
- ref: localNumberFieldRef,
52
42
  isWheelDisabled,
53
- defaultValue,
54
43
  className: clsx(rootClassName, fieldProps.className),
55
44
  children: [
56
45
  /* @__PURE__ */ jsxs(PropsContextProvider, { props: fieldPropsContext, children: [
@@ -72,14 +61,7 @@ const NumberField = flowComponent("NumberField", (props) => {
72
61
  ]
73
62
  }
74
63
  ),
75
- /* @__PURE__ */ jsx(
76
- ReactAriaControlledValueFix,
77
- {
78
- inputContext: Aria.NumberFieldContext,
79
- props,
80
- children: /* @__PURE__ */ jsx(Aria.Input, { className: styles.input, ref: localNumberFieldInputRef })
81
- }
82
- ),
64
+ /* @__PURE__ */ jsx(Aria.Input, { className: styles.input, ref }),
83
65
  /* @__PURE__ */ jsxs(
84
66
  Button,
85
67
  {
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField.mjs","sources":["../../../../../../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import React, { type PropsWithChildren, type RefObject } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport formFieldStyles from \"../FormField/FormField.module.scss\";\nimport styles from \"./NumberField.module.scss\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport { Button } from \"@/components/Button\";\nimport {\n IconChevronDown,\n IconChevronUp,\n IconMinus,\n IconPlus,\n} from \"@/components/Icon/components/icons\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { ReactAriaControlledValueFix } from \"@/lib/react/ReactAriaControlledValueFix\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { useMakeFocusable } from \"@/lib/hooks/dom/useMakeFocusable\";\nimport { useObjectRef } from \"@react-aria/utils\";\n\nexport interface NumberFieldProps\n extends PropsWithChildren<Omit<Aria.NumberFieldProps, \"children\">>,\n FlowComponentProps {\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\n/** @flr-generate all */\nexport const NumberField = flowComponent(\"NumberField\", (props) => {\n const {\n children,\n className,\n ref,\n inputRef,\n defaultValue,\n isWheelDisabled = true,\n ...rest\n } = props;\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(formFieldStyles.formField, className);\n\n const localNumberFieldRef = useObjectRef(ref);\n const localNumberFieldInputRef = useObjectRef(inputRef);\n\n useMakeFocusable(localNumberFieldRef, () => {\n localNumberFieldInputRef?.current?.focus();\n });\n\n return (\n <Aria.NumberField\n {...rest}\n ref={localNumberFieldRef}\n isWheelDisabled={isWheelDisabled}\n defaultValue={defaultValue}\n className={clsx(rootClassName, fieldProps.className)}\n >\n <PropsContextProvider props={fieldPropsContext}>\n <FieldErrorCaptureContext>{children}</FieldErrorCaptureContext>\n <FieldErrorView />\n </PropsContextProvider>\n <Aria.Group className={styles.group}>\n <Button\n ariaSlot=\"decrement\"\n className={styles.decrementButton}\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronDown />\n <IconMinus className={styles.coarsePointerIcon} />\n </Button>\n <ReactAriaControlledValueFix\n inputContext={Aria.NumberFieldContext}\n props={props}\n >\n <Aria.Input className={styles.input} ref={localNumberFieldInputRef} />\n </ReactAriaControlledValueFix>\n <Button\n ariaSlot=\"increment\"\n className={styles.incrementButton}\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronUp />\n <IconPlus className={styles.coarsePointerIcon} />\n </Button>\n </Aria.Group>\n </Aria.NumberField>\n );\n});\n\nexport default NumberField;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BO,MAAM,WAAA,GAAc,aAAA,CAAc,aAAA,EAAe,CAAC,KAAA,KAAU;AACjE,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA,GAAkB,IAAA;AAAA,IAClB,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,aAAA,GAAgB,IAAA,CAAK,eAAA,CAAgB,SAAA,EAAW,SAAS,CAAA;AAE/D,EAAA,MAAM,mBAAA,GAAsB,aAAa,GAAG,CAAA;AAC5C,EAAA,MAAM,wBAAA,GAA2B,aAAa,QAAQ,CAAA;AAEtD,EAAA,gBAAA,CAAiB,qBAAqB,MAAM;AAC1C,IAAA,wBAAA,EAA0B,SAAS,KAAA,EAAM;AAAA,EAC3C,CAAC,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,WAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA,EAAK,mBAAA;AAAA,MACL,eAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA,EAAW,IAAA,CAAK,aAAA,EAAe,UAAA,CAAW,SAAS,CAAA;AAAA,MAEnD,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,oBAAA,EAAA,EAAqB,OAAO,iBAAA,EAC3B,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,4BAA0B,QAAA,EAAS,CAAA;AAAA,8BACnC,cAAA,EAAA,EAAe;AAAA,SAAA,EAClB,CAAA;AAAA,6BACC,IAAA,CAAK,KAAA,EAAL,EAAW,SAAA,EAAW,OAAO,KAAA,EAC5B,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAS,WAAA;AAAA,cACT,WAAW,MAAA,CAAO,eAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAM,WAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,gCACjB,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,MAAA,CAAO,iBAAA,EAAmB;AAAA;AAAA;AAAA,WAClD;AAAA,0BACA,GAAA;AAAA,YAAC,2BAAA;AAAA,YAAA;AAAA,cACC,cAAc,IAAA,CAAK,kBAAA;AAAA,cACnB,KAAA;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,KAAK,KAAA,EAAL,EAAW,WAAW,MAAA,CAAO,KAAA,EAAO,KAAK,wBAAA,EAA0B;AAAA;AAAA,WACtE;AAAA,0BACA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAS,WAAA;AAAA,cACT,WAAW,MAAA,CAAO,eAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAM,WAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,gCACf,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,MAAA,CAAO,iBAAA,EAAmB;AAAA;AAAA;AAAA;AACjD,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"NumberField.mjs","sources":["../../../../../../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import { type PropsWithChildren } from \"react\";\nimport * as Aria from \"react-aria-components\";\nimport formFieldStyles from \"../FormField/FormField.module.scss\";\nimport styles from \"./NumberField.module.scss\";\nimport clsx from \"clsx\";\nimport { PropsContextProvider } from \"@/lib/propsContext\";\nimport { Button } from \"@/components/Button\";\nimport {\n IconChevronDown,\n IconChevronUp,\n IconMinus,\n IconPlus,\n} from \"@/components/Icon/components/icons\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { useFieldComponent } from \"@/lib/hooks/useFieldComponent\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\n\nexport interface NumberFieldProps\n extends PropsWithChildren<Omit<Aria.NumberFieldProps, \"children\">>,\n FlowComponentProps<HTMLInputElement> {}\n\n/** @flr-generate all */\nexport const NumberField = flowComponent(\"NumberField\", (props) => {\n const {\n children,\n className,\n isWheelDisabled = true,\n ref,\n ...rest\n } = useControlledHostValueProps(props);\n\n const {\n FieldErrorView,\n FieldErrorCaptureContext,\n fieldProps,\n fieldPropsContext,\n } = useFieldComponent(props);\n\n const rootClassName = clsx(formFieldStyles.formField, className);\n\n return (\n <Aria.NumberField\n {...rest}\n isWheelDisabled={isWheelDisabled}\n className={clsx(rootClassName, fieldProps.className)}\n >\n <PropsContextProvider props={fieldPropsContext}>\n <FieldErrorCaptureContext>{children}</FieldErrorCaptureContext>\n <FieldErrorView />\n </PropsContextProvider>\n <Aria.Group className={styles.group}>\n <Button\n ariaSlot=\"decrement\"\n className={styles.decrementButton}\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronDown />\n <IconMinus className={styles.coarsePointerIcon} />\n </Button>\n <Aria.Input className={styles.input} ref={ref} />\n <Button\n ariaSlot=\"increment\"\n className={styles.incrementButton}\n size=\"s\"\n variant=\"plain\"\n color=\"secondary\"\n >\n <IconChevronUp />\n <IconPlus className={styles.coarsePointerIcon} />\n </Button>\n </Aria.Group>\n </Aria.NumberField>\n );\n});\n\nexport default NumberField;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBO,MAAM,WAAA,GAAc,aAAA,CAAc,aAAA,EAAe,CAAC,KAAA,KAAU;AACjE,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAA,GAAkB,IAAA;AAAA,IAClB,GAAA;AAAA,IACA,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,CAAK,eAAA,CAAgB,SAAA,EAAW,SAAS,CAAA;AAE/D,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA,CAAK,WAAA;AAAA,IAAL;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,eAAA;AAAA,MACA,SAAA,EAAW,IAAA,CAAK,aAAA,EAAe,UAAA,CAAW,SAAS,CAAA;AAAA,MAEnD,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,oBAAA,EAAA,EAAqB,OAAO,iBAAA,EAC3B,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,4BAA0B,QAAA,EAAS,CAAA;AAAA,8BACnC,cAAA,EAAA,EAAe;AAAA,SAAA,EAClB,CAAA;AAAA,6BACC,IAAA,CAAK,KAAA,EAAL,EAAW,SAAA,EAAW,OAAO,KAAA,EAC5B,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAS,WAAA;AAAA,cACT,WAAW,MAAA,CAAO,eAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAM,WAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,gCACjB,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,MAAA,CAAO,iBAAA,EAAmB;AAAA;AAAA;AAAA,WAClD;AAAA,8BACC,IAAA,CAAK,KAAA,EAAL,EAAW,SAAA,EAAW,MAAA,CAAO,OAAO,GAAA,EAAU,CAAA;AAAA,0BAC/C,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAS,WAAA;AAAA,cACT,WAAW,MAAA,CAAO,eAAA;AAAA,cAClB,IAAA,EAAK,GAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAM,WAAA;AAAA,cAEN,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,gCACf,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAW,MAAA,CAAO,iBAAA,EAAmB;AAAA;AAAA;AAAA;AACjD,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}