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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/AGENTS.md +31 -11
  2. package/USAGE.md +7 -0
  3. package/dist/assets/component-index.json +1 -1
  4. package/dist/assets/doc-properties.json +1 -1
  5. package/dist/css/all-layered.css +1 -1
  6. package/dist/css/all.css +1 -1
  7. package/dist/js/_virtual/_23.locale.mjs +2 -2
  8. package/dist/js/_virtual/_32.locale.mjs +3 -9
  9. package/dist/js/_virtual/_33.locale.mjs +5 -7
  10. package/dist/js/_virtual/_34.locale.mjs +7 -13
  11. package/dist/js/_virtual/_35.locale.mjs +23 -0
  12. package/dist/js/default.mjs +3 -2
  13. package/dist/js/packages/components/src/components/AccentBox/AccentBox.mjs.map +1 -1
  14. package/dist/js/packages/components/src/components/Accordion/Accordion.mjs.map +1 -1
  15. package/dist/js/packages/components/src/components/Accordion/Accordion.module.mjs.map +1 -1
  16. package/dist/js/packages/components/src/components/Action/lib/ariaLive.mjs.map +1 -1
  17. package/dist/js/packages/components/src/components/Action/models/ActionState.mjs.map +1 -1
  18. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.mjs.map +1 -1
  19. package/dist/js/packages/components/src/components/ActionGroup/ActionGroup.module.mjs.map +1 -1
  20. package/dist/js/packages/components/src/components/Alert/Alert.mjs +3 -1
  21. package/dist/js/packages/components/src/components/Alert/Alert.mjs.map +1 -1
  22. package/dist/js/packages/components/src/components/Alert/Alert.module.mjs +4 -2
  23. package/dist/js/packages/components/src/components/Alert/Alert.module.mjs.map +1 -1
  24. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs +7 -4
  25. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.mjs.map +1 -1
  26. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs +6 -2
  27. package/dist/js/packages/components/src/components/AlertBadge/AlertBadge.module.mjs.map +1 -1
  28. package/dist/js/packages/components/src/components/AlertIcon/AlertIcon.mjs +10 -0
  29. package/dist/js/packages/components/src/components/AlertIcon/AlertIcon.mjs.map +1 -1
  30. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs +9 -2
  31. package/dist/js/packages/components/src/components/AlertText/AlertText.mjs.map +1 -1
  32. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs +14 -7
  33. package/dist/js/packages/components/src/components/Autocomplete/Autocomplete.mjs.map +1 -1
  34. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs +11 -2
  35. package/dist/js/packages/components/src/components/Avatar/Avatar.mjs.map +1 -1
  36. package/dist/js/packages/components/src/components/Avatar/Avatar.module.mjs +6 -2
  37. package/dist/js/packages/components/src/components/Avatar/Avatar.module.mjs.map +1 -1
  38. package/dist/js/packages/components/src/components/AvatarStack/AvatarStack.mjs +1 -1
  39. package/dist/js/packages/components/src/components/AvatarStack/AvatarStack.mjs.map +1 -1
  40. package/dist/js/packages/components/src/components/Badge/Badge.mjs +6 -3
  41. package/dist/js/packages/components/src/components/Badge/Badge.mjs.map +1 -1
  42. package/dist/js/packages/components/src/components/Badge/Badge.module.mjs +6 -2
  43. package/dist/js/packages/components/src/components/Badge/Badge.module.mjs.map +1 -1
  44. package/dist/js/packages/components/src/components/BigNumber/BigNumber.mjs.map +1 -1
  45. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.mjs +3 -1
  46. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.mjs.map +1 -1
  47. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.module.mjs +3 -1
  48. package/dist/js/packages/components/src/components/Breadcrumb/Breadcrumb.module.mjs.map +1 -1
  49. package/dist/js/packages/components/src/components/Breadcrumb/components/BreadcrumbItem/BreadcrumbItem.mjs.map +1 -1
  50. package/dist/js/packages/components/src/components/Button/Button.mjs +14 -18
  51. package/dist/js/packages/components/src/components/Button/Button.mjs.map +1 -1
  52. package/dist/js/packages/components/src/components/Button/Button.module.mjs +6 -2
  53. package/dist/js/packages/components/src/components/Button/Button.module.mjs.map +1 -1
  54. package/dist/js/packages/components/src/components/Calendar/Calendar.mjs.map +1 -1
  55. package/dist/js/packages/components/src/components/Calendar/components/CalendarHeader/CalendarHeader.mjs.map +1 -1
  56. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/RangeCalendar.mjs.map +1 -1
  57. package/dist/js/packages/components/src/components/Calendar/components/RangeCalendar/helpers/useCalendarDateRangePresets.mjs.map +1 -1
  58. package/dist/js/packages/components/src/components/CartesianChart/CartesianChart.mjs.map +1 -1
  59. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/ChartTooltip.mjs.map +1 -1
  60. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.mjs.map +1 -1
  61. package/dist/js/packages/components/src/components/CartesianChart/components/ChartTooltip/TooltipProgressBar.mjs.map +1 -1
  62. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs +5 -1
  63. package/dist/js/packages/components/src/components/CartesianChart/components/YAxis/YAxis.mjs.map +1 -1
  64. package/dist/js/packages/components/src/components/Chat/Chat.mjs.map +1 -1
  65. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs +3 -3
  66. package/dist/js/packages/components/src/components/Checkbox/Checkbox.mjs.map +1 -1
  67. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs +3 -3
  68. package/dist/js/packages/components/src/components/CheckboxButton/CheckboxButton.mjs.map +1 -1
  69. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs +3 -3
  70. package/dist/js/packages/components/src/components/CheckboxGroup/CheckboxGroup.mjs.map +1 -1
  71. package/dist/js/packages/components/src/components/CoachMark/CoachMark.mjs.map +1 -1
  72. package/dist/js/packages/components/src/components/CodeBlock/CodeBlock.mjs.map +1 -1
  73. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs +35 -16
  74. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.mjs.map +1 -1
  75. package/dist/js/packages/components/src/components/CodeEditor/CodeEditor.module.mjs.map +1 -1
  76. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs +2 -2
  77. package/dist/js/packages/components/src/components/CodeEditor/hooks/useCodeEditorExtensions.mjs.map +1 -1
  78. package/dist/js/packages/components/src/components/CodeEditor/languages/dotEnv/index.mjs.map +1 -1
  79. package/dist/js/packages/components/src/components/CodeEditor/languages/index.mjs +2 -1
  80. package/dist/js/packages/components/src/components/CodeEditor/languages/index.mjs.map +1 -1
  81. package/dist/js/packages/components/src/components/CodeEditor/themes/defaultEditorTheme.mjs.map +1 -1
  82. package/dist/js/packages/components/src/components/Color/Color.mjs.map +1 -1
  83. package/dist/js/packages/components/src/components/ColumnLayout/ColumnLayout.mjs.map +1 -1
  84. package/dist/js/packages/components/src/components/Combine/Combine.mjs +1 -0
  85. package/dist/js/packages/components/src/components/Combine/Combine.mjs.map +1 -1
  86. package/dist/js/packages/components/src/components/Combine/Combine.module.mjs +4 -2
  87. package/dist/js/packages/components/src/components/Combine/Combine.module.mjs.map +1 -1
  88. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs +3 -3
  89. package/dist/js/packages/components/src/components/ComboBox/ComboBox.mjs.map +1 -1
  90. package/dist/js/packages/components/src/components/Content/Content.mjs +2 -1
  91. package/dist/js/packages/components/src/components/Content/Content.mjs.map +1 -1
  92. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs +5 -1
  93. package/dist/js/packages/components/src/components/ContextMenu/ContextMenu.mjs.map +1 -1
  94. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSection/ContextMenuSection.mjs.map +1 -1
  95. package/dist/js/packages/components/src/components/ContextMenu/components/ContextMenuSelectAll/ContextMenuSelectAll.mjs.map +1 -1
  96. package/dist/js/packages/components/src/components/ContextualHelp/ContextualHelp.mjs.map +1 -1
  97. package/dist/js/packages/components/src/components/ContextualHelp/components/ContextualHelpTrigger/ContextualHelpTrigger.mjs.map +1 -1
  98. package/dist/js/packages/components/src/components/CopyButton/CopyButton.mjs.map +1 -1
  99. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs +4 -1
  100. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.mjs.map +1 -1
  101. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.module.mjs +8 -2
  102. package/dist/js/packages/components/src/components/CounterBadge/CounterBadge.module.mjs.map +1 -1
  103. package/dist/js/packages/components/src/components/CountryOptions/CountryOptions.mjs.map +1 -1
  104. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs +6 -5
  105. package/dist/js/packages/components/src/components/DatePicker/DatePicker.mjs.map +1 -1
  106. package/dist/js/packages/components/src/components/DatePicker/components/DateInput/DateInput.mjs.map +1 -1
  107. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs +4 -3
  108. package/dist/js/packages/components/src/components/DateRangePicker/DateRangePicker.mjs.map +1 -1
  109. package/dist/js/packages/components/src/components/DateRangePicker/components/DateRangeInput/DateRangeInput.mjs.map +1 -1
  110. package/dist/js/packages/components/src/components/DonutChart/DonutChart.mjs.map +1 -1
  111. package/dist/js/packages/components/src/components/DonutChart/components/Donut.mjs.map +1 -1
  112. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartFill.mjs.map +1 -1
  113. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartLegend.mjs.map +1 -1
  114. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartValue.mjs +1 -1
  115. package/dist/js/packages/components/src/components/DonutChart/components/DonutChartValue.mjs.map +1 -1
  116. package/dist/js/packages/components/src/components/EmulatedBoldText/EmulatedBoldText.mjs.map +1 -1
  117. package/dist/js/packages/components/src/components/FieldDescription/FieldDescription.mjs.map +1 -1
  118. package/dist/js/packages/components/src/components/FieldError/FieldError.mjs +40 -31
  119. package/dist/js/packages/components/src/components/FieldError/FieldError.mjs.map +1 -1
  120. package/dist/js/packages/components/src/components/FileCard/FileCard.mjs.map +1 -1
  121. package/dist/js/packages/components/src/components/FileCard/components/Avatar/Avatar.mjs.map +1 -1
  122. package/dist/js/packages/components/src/components/FileCard/components/DeleteButton/DeleteButton.mjs.map +1 -1
  123. package/dist/js/packages/components/src/components/FileCard/components/FileSizeText/FileSizeText.mjs.map +1 -1
  124. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs +8 -6
  125. package/dist/js/packages/components/src/components/FileDropZone/FileDropZone.mjs.map +1 -1
  126. package/dist/js/packages/components/src/components/FileField/FileField.mjs +3 -3
  127. package/dist/js/packages/components/src/components/FileField/FileField.mjs.map +1 -1
  128. package/dist/js/packages/components/src/components/FileField/components/FileInput.mjs.map +1 -1
  129. package/dist/js/packages/components/src/components/Flex/Flex.mjs.map +1 -1
  130. package/dist/js/packages/components/src/components/Header/Header.mjs.map +1 -1
  131. package/dist/js/packages/components/src/components/HeaderNavigation/HeaderNavigation.mjs.map +1 -1
  132. package/dist/js/packages/components/src/components/Heading/Heading.mjs +8 -1
  133. package/dist/js/packages/components/src/components/Heading/Heading.mjs.map +1 -1
  134. package/dist/js/packages/components/src/components/Icon/Icon.mjs +9 -0
  135. package/dist/js/packages/components/src/components/Icon/Icon.mjs.map +1 -1
  136. package/dist/js/packages/components/src/components/Icon/Icon.module.mjs +6 -2
  137. package/dist/js/packages/components/src/components/Icon/Icon.module.mjs.map +1 -1
  138. package/dist/js/packages/components/src/components/Icon/components/icons/IconAI.mjs.map +1 -1
  139. package/dist/js/packages/components/src/components/Icon/components/icons/IconAIHosting.mjs.map +1 -1
  140. package/dist/js/packages/components/src/components/Icon/components/icons/IconAnalytics.mjs.map +1 -1
  141. package/dist/js/packages/components/src/components/Icon/components/icons/IconApp.mjs.map +1 -1
  142. package/dist/js/packages/components/src/components/Icon/components/icons/IconAscending.mjs.map +1 -1
  143. package/dist/js/packages/components/src/components/Icon/components/icons/IconAttachment.mjs.map +1 -1
  144. package/dist/js/packages/components/src/components/Icon/components/icons/IconAutoresponder.mjs.map +1 -1
  145. package/dist/js/packages/components/src/components/Icon/components/icons/IconBackLink.mjs.map +1 -1
  146. package/dist/js/packages/components/src/components/Icon/components/icons/IconBackup.mjs.map +1 -1
  147. package/dist/js/packages/components/src/components/Icon/components/icons/IconBold.mjs.map +1 -1
  148. package/dist/js/packages/components/src/components/Icon/components/icons/IconCamera.mjs.map +1 -1
  149. package/dist/js/packages/components/src/components/Icon/components/icons/IconCertificate.mjs.map +1 -1
  150. package/dist/js/packages/components/src/components/Icon/components/icons/IconChangelog.mjs.map +1 -1
  151. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheck.mjs.map +1 -1
  152. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxChecked.mjs.map +1 -1
  153. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxEmpty.mjs.map +1 -1
  154. package/dist/js/packages/components/src/components/Icon/components/icons/IconCheckboxIndeterminate.mjs.map +1 -1
  155. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronDown.mjs.map +1 -1
  156. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronLeft.mjs.map +1 -1
  157. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronRight.mjs.map +1 -1
  158. package/dist/js/packages/components/src/components/Icon/components/icons/IconChevronUp.mjs.map +1 -1
  159. package/dist/js/packages/components/src/components/Icon/components/icons/IconClose.mjs.map +1 -1
  160. package/dist/js/packages/components/src/components/Icon/components/icons/IconCode.mjs.map +1 -1
  161. package/dist/js/packages/components/src/components/Icon/components/icons/IconContainer.mjs.map +1 -1
  162. package/dist/js/packages/components/src/components/Icon/components/icons/IconContextMenu.mjs.map +1 -1
  163. package/dist/js/packages/components/src/components/Icon/components/icons/IconContextMenuVertical.mjs.map +1 -1
  164. package/dist/js/packages/components/src/components/Icon/components/icons/IconContract.mjs.map +1 -1
  165. package/dist/js/packages/components/src/components/Icon/components/icons/IconContractPartner.mjs.map +1 -1
  166. package/dist/js/packages/components/src/components/Icon/components/icons/IconContributor.mjs.map +1 -1
  167. package/dist/js/packages/components/src/components/Icon/components/icons/IconCopy.mjs.map +1 -1
  168. package/dist/js/packages/components/src/components/Icon/components/icons/IconCronjob.mjs.map +1 -1
  169. package/dist/js/packages/components/src/components/Icon/components/icons/IconCustomer.mjs.map +1 -1
  170. package/dist/js/packages/components/src/components/Icon/components/icons/IconDanger.mjs.map +1 -1
  171. package/dist/js/packages/components/src/components/Icon/components/icons/IconDashboard.mjs.map +1 -1
  172. package/dist/js/packages/components/src/components/Icon/components/icons/IconDatabase.mjs.map +1 -1
  173. package/dist/js/packages/components/src/components/Icon/components/icons/IconDate.mjs.map +1 -1
  174. package/dist/js/packages/components/src/components/Icon/components/icons/IconDelete.mjs.map +1 -1
  175. package/dist/js/packages/components/src/components/Icon/components/icons/IconDeliveryBox.mjs.map +1 -1
  176. package/dist/js/packages/components/src/components/Icon/components/icons/IconDescending.mjs.map +1 -1
  177. package/dist/js/packages/components/src/components/Icon/components/icons/IconDesktop.mjs.map +1 -1
  178. package/dist/js/packages/components/src/components/Icon/components/icons/IconDirectory.mjs.map +1 -1
  179. package/dist/js/packages/components/src/components/Icon/components/icons/IconDnsSubZone.mjs.map +1 -1
  180. package/dist/js/packages/components/src/components/Icon/components/icons/IconDnsZone.mjs.map +1 -1
  181. package/dist/js/packages/components/src/components/Icon/components/icons/IconDomain.mjs.map +1 -1
  182. package/dist/js/packages/components/src/components/Icon/components/icons/IconDownload.mjs.map +1 -1
  183. package/dist/js/packages/components/src/components/Icon/components/icons/IconEdit.mjs.map +1 -1
  184. package/dist/js/packages/components/src/components/Icon/components/icons/IconEmail.mjs.map +1 -1
  185. package/dist/js/packages/components/src/components/Icon/components/icons/IconEmailArchive.mjs.map +1 -1
  186. package/dist/js/packages/components/src/components/Icon/components/icons/IconExtension.mjs.map +1 -1
  187. package/dist/js/packages/components/src/components/Icon/components/icons/IconExternalLink.mjs.map +1 -1
  188. package/dist/js/packages/components/src/components/Icon/components/icons/IconFailed.mjs.map +1 -1
  189. package/dist/js/packages/components/src/components/Icon/components/icons/IconFeedback.mjs.map +1 -1
  190. package/dist/js/packages/components/src/components/Icon/components/icons/IconFile.mjs.map +1 -1
  191. package/dist/js/packages/components/src/components/Icon/components/icons/IconFilter.mjs.map +1 -1
  192. package/dist/js/packages/components/src/components/Icon/components/icons/IconForwardAddress.mjs.map +1 -1
  193. package/dist/js/packages/components/src/components/Icon/components/icons/IconForwardLink.mjs.map +1 -1
  194. package/dist/js/packages/components/src/components/Icon/components/icons/IconHide.mjs.map +1 -1
  195. package/dist/js/packages/components/src/components/Icon/components/icons/IconHome.mjs.map +1 -1
  196. package/dist/js/packages/components/src/components/Icon/components/icons/IconImage.mjs.map +1 -1
  197. package/dist/js/packages/components/src/components/Icon/components/icons/IconInfo.mjs.map +1 -1
  198. package/dist/js/packages/components/src/components/Icon/components/icons/IconInvite.mjs.map +1 -1
  199. package/dist/js/packages/components/src/components/Icon/components/icons/IconInvoice.mjs.map +1 -1
  200. package/dist/js/packages/components/src/components/Icon/components/icons/IconItalic.mjs.map +1 -1
  201. package/dist/js/packages/components/src/components/Icon/components/icons/IconKnowledgeHint.mjs.map +1 -1
  202. package/dist/js/packages/components/src/components/Icon/components/icons/IconLanguage.mjs.map +1 -1
  203. package/dist/js/packages/components/src/components/Icon/components/icons/IconLeadFyndr.mjs.map +1 -1
  204. package/dist/js/packages/components/src/components/Icon/components/icons/IconLink.mjs.map +1 -1
  205. package/dist/js/packages/components/src/components/Icon/components/icons/IconLock.mjs.map +1 -1
  206. package/dist/js/packages/components/src/components/Icon/components/icons/IconLockOpen.mjs.map +1 -1
  207. package/dist/js/packages/components/src/components/Icon/components/icons/IconLogout.mjs.map +1 -1
  208. package/dist/js/packages/components/src/components/Icon/components/icons/IconMainUser.mjs.map +1 -1
  209. package/dist/js/packages/components/src/components/Icon/components/icons/IconMarketplace.mjs.map +1 -1
  210. package/dist/js/packages/components/src/components/Icon/components/icons/IconMaximize.mjs.map +1 -1
  211. package/dist/js/packages/components/src/components/Icon/components/icons/IconMember.mjs.map +1 -1
  212. package/dist/js/packages/components/src/components/Icon/components/icons/IconMenu.mjs.map +1 -1
  213. package/dist/js/packages/components/src/components/Icon/components/icons/IconMinimize.mjs.map +1 -1
  214. package/dist/js/packages/components/src/components/Icon/components/icons/IconMinus.mjs.map +1 -1
  215. package/dist/js/packages/components/src/components/Icon/components/icons/IconMittwald.mjs.map +1 -1
  216. package/dist/js/packages/components/src/components/Icon/components/icons/IconMobile.mjs.map +1 -1
  217. package/dist/js/packages/components/src/components/Icon/components/icons/IconMonitoring.mjs.map +1 -1
  218. package/dist/js/packages/components/src/components/Icon/components/icons/IconMove.mjs.map +1 -1
  219. package/dist/js/packages/components/src/components/Icon/components/icons/IconNewsletter.mjs.map +1 -1
  220. package/dist/js/packages/components/src/components/Icon/components/icons/IconNotification.mjs.map +1 -1
  221. package/dist/js/packages/components/src/components/Icon/components/icons/IconNumber.mjs.map +1 -1
  222. package/dist/js/packages/components/src/components/Icon/components/icons/IconOrder.mjs.map +1 -1
  223. package/dist/js/packages/components/src/components/Icon/components/icons/IconOrderedList.mjs.map +1 -1
  224. package/dist/js/packages/components/src/components/Icon/components/icons/IconPassword.mjs.map +1 -1
  225. package/dist/js/packages/components/src/components/Icon/components/icons/IconPath.mjs.map +1 -1
  226. package/dist/js/packages/components/src/components/Icon/components/icons/IconPause.mjs.map +1 -1
  227. package/dist/js/packages/components/src/components/Icon/components/icons/IconPayment.mjs.map +1 -1
  228. package/dist/js/packages/components/src/components/Icon/components/icons/IconPending.mjs.map +1 -1
  229. package/dist/js/packages/components/src/components/Icon/components/icons/IconPicture.mjs.map +1 -1
  230. package/dist/js/packages/components/src/components/Icon/components/icons/IconPlus.mjs.map +1 -1
  231. package/dist/js/packages/components/src/components/Icon/components/icons/IconProject.mjs.map +1 -1
  232. package/dist/js/packages/components/src/components/Icon/components/icons/IconQuote.mjs.map +1 -1
  233. package/dist/js/packages/components/src/components/Icon/components/icons/IconRadioOff.mjs.map +1 -1
  234. package/dist/js/packages/components/src/components/Icon/components/icons/IconRadioOn.mjs.map +1 -1
  235. package/dist/js/packages/components/src/components/Icon/components/icons/IconRedo.mjs.map +1 -1
  236. package/dist/js/packages/components/src/components/Icon/components/icons/IconRefresh.mjs.map +1 -1
  237. package/dist/js/packages/components/src/components/Icon/components/icons/IconRegistry.mjs.map +1 -1
  238. package/dist/js/packages/components/src/components/Icon/components/icons/IconSave.mjs.map +1 -1
  239. package/dist/js/packages/components/src/components/Icon/components/icons/IconSearch.mjs.map +1 -1
  240. package/dist/js/packages/components/src/components/Icon/components/icons/IconSecurity.mjs.map +1 -1
  241. package/dist/js/packages/components/src/components/Icon/components/icons/IconSend.mjs.map +1 -1
  242. package/dist/js/packages/components/src/components/Icon/components/icons/IconServer.mjs.map +1 -1
  243. package/dist/js/packages/components/src/components/Icon/components/icons/IconSettings.mjs.map +1 -1
  244. package/dist/js/packages/components/src/components/Icon/components/icons/IconShare.mjs.map +1 -1
  245. package/dist/js/packages/components/src/components/Icon/components/icons/IconShow.mjs.map +1 -1
  246. package/dist/js/packages/components/src/components/Icon/components/icons/IconSorting.mjs.map +1 -1
  247. package/dist/js/packages/components/src/components/Icon/components/icons/IconSsh.mjs.map +1 -1
  248. package/dist/js/packages/components/src/components/Icon/components/icons/IconSshKey.mjs.map +1 -1
  249. package/dist/js/packages/components/src/components/Icon/components/icons/IconSshSftp.mjs.map +1 -1
  250. package/dist/js/packages/components/src/components/Icon/components/icons/IconStack.mjs.map +1 -1
  251. package/dist/js/packages/components/src/components/Icon/components/icons/IconStar.mjs.map +1 -1
  252. package/dist/js/packages/components/src/components/Icon/components/icons/IconStarFilled.mjs.map +1 -1
  253. package/dist/js/packages/components/src/components/Icon/components/icons/IconStart.mjs.map +1 -1
  254. package/dist/js/packages/components/src/components/Icon/components/icons/IconStrikeThrough.mjs.map +1 -1
  255. package/dist/js/packages/components/src/components/Icon/components/icons/IconSubdomain.mjs.map +1 -1
  256. package/dist/js/packages/components/src/components/Icon/components/icons/IconSucceeded.mjs.map +1 -1
  257. package/dist/js/packages/components/src/components/Icon/components/icons/IconSuccess.mjs.map +1 -1
  258. package/dist/js/packages/components/src/components/Icon/components/icons/IconSupport.mjs.map +1 -1
  259. package/dist/js/packages/components/src/components/Icon/components/icons/IconTerminate.mjs.map +1 -1
  260. package/dist/js/packages/components/src/components/Icon/components/icons/IconTicket.mjs.map +1 -1
  261. package/dist/js/packages/components/src/components/Icon/components/icons/IconTime.mjs.map +1 -1
  262. package/dist/js/packages/components/src/components/Icon/components/icons/IconUnavailable.mjs.map +1 -1
  263. package/dist/js/packages/components/src/components/Icon/components/icons/IconUndo.mjs.map +1 -1
  264. package/dist/js/packages/components/src/components/Icon/components/icons/IconUnorderedList.mjs.map +1 -1
  265. package/dist/js/packages/components/src/components/Icon/components/icons/IconUpload.mjs.map +1 -1
  266. package/dist/js/packages/components/src/components/Icon/components/icons/IconUser.mjs.map +1 -1
  267. package/dist/js/packages/components/src/components/Icon/components/icons/IconVhost.mjs.map +1 -1
  268. package/dist/js/packages/components/src/components/Icon/components/icons/IconView.mjs.map +1 -1
  269. package/dist/js/packages/components/src/components/Icon/components/icons/IconVolume.mjs.map +1 -1
  270. package/dist/js/packages/components/src/components/Icon/components/icons/IconWarning.mjs.map +1 -1
  271. package/dist/js/packages/components/src/components/IllustratedMessage/IllustratedMessage.mjs.map +1 -1
  272. package/dist/js/packages/components/src/components/Image/Image.mjs +23 -0
  273. package/dist/js/packages/components/src/components/Image/Image.mjs.map +1 -1
  274. package/dist/js/packages/components/src/components/Image/Image.module.mjs +6 -2
  275. package/dist/js/packages/components/src/components/Image/Image.module.mjs.map +1 -1
  276. package/dist/js/packages/components/src/components/ImageCropper/ImageCropper.mjs.map +1 -1
  277. package/dist/js/packages/components/src/components/Initials/Initials.mjs +4 -1
  278. package/dist/js/packages/components/src/components/Initials/Initials.mjs.map +1 -1
  279. package/dist/js/packages/components/src/components/Initials/Initials.module.mjs +8 -2
  280. package/dist/js/packages/components/src/components/Initials/Initials.module.mjs.map +1 -1
  281. package/dist/js/packages/components/src/components/Initials/lib/getColorFromInitials.mjs.map +1 -1
  282. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs +8 -1
  283. package/dist/js/packages/components/src/components/InlineCode/InlineCode.mjs.map +1 -1
  284. package/dist/js/packages/components/src/components/Kbd/Kbd.mjs.map +1 -1
  285. package/dist/js/packages/components/src/components/Label/Label.mjs +9 -2
  286. package/dist/js/packages/components/src/components/Label/Label.mjs.map +1 -1
  287. package/dist/js/packages/components/src/components/LabeledValue/LabeledValue.mjs.map +1 -1
  288. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.mjs +2 -1
  289. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.mjs.map +1 -1
  290. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.module.mjs +3 -1
  291. package/dist/js/packages/components/src/components/LayoutCard/LayoutCard.module.mjs.map +1 -1
  292. package/dist/js/packages/components/src/components/Legend/Legend.mjs.map +1 -1
  293. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.mjs +5 -2
  294. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.mjs.map +1 -1
  295. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.module.mjs +6 -2
  296. package/dist/js/packages/components/src/components/Legend/components/LegendItem/LegendItem.module.mjs.map +1 -1
  297. package/dist/js/packages/components/src/components/LightBox/LightBox.mjs.map +1 -1
  298. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/Controls.mjs.map +1 -1
  299. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/LightBoxGallery.mjs.map +1 -1
  300. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGallery/LightBoxGallery.module.mjs.map +1 -1
  301. package/dist/js/packages/components/src/components/LightBox/components/LightBoxGalleryItem/LightBoxGalleryItem.mjs.map +1 -1
  302. package/dist/js/packages/components/src/components/Link/Link.mjs +34 -14
  303. package/dist/js/packages/components/src/components/Link/Link.mjs.map +1 -1
  304. package/dist/js/packages/components/src/components/Link/components/LinkIcon/LinkIcon.mjs.map +1 -1
  305. package/dist/js/packages/components/src/components/List/List.mjs.map +1 -1
  306. package/dist/js/packages/components/src/components/List/components/DataLoader/DataLoaderSuspense.mjs.map +1 -1
  307. package/dist/js/packages/components/src/components/List/components/EmptySearchResultView/EmptySearchResultView.mjs.map +1 -1
  308. package/dist/js/packages/components/src/components/List/components/EmptyView/EmptyView.mjs.map +1 -1
  309. package/dist/js/packages/components/src/components/List/components/Footer/Footer.mjs.map +1 -1
  310. package/dist/js/packages/components/src/components/List/components/Footer/components/PaginationInfos/PaginationInfos.mjs.map +1 -1
  311. package/dist/js/packages/components/src/components/List/components/Footer/components/ShowNextBatchButton/ShowNextBatchButton.mjs.map +1 -1
  312. package/dist/js/packages/components/src/components/List/components/Header/Header.mjs.map +1 -1
  313. package/dist/js/packages/components/src/components/List/components/Header/components/ActiveFilters/ActiveFilters.mjs.map +1 -1
  314. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/AllFiltersModal.mjs.map +1 -1
  315. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionCheckboxGroup.mjs.map +1 -1
  316. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionDateRange.mjs.map +1 -1
  317. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/FilterAccordionRadioGroup.mjs.map +1 -1
  318. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/SortingAccordion.mjs.map +1 -1
  319. package/dist/js/packages/components/src/components/List/components/Header/components/AllFiltersModal/ViewModeAccordion.mjs.map +1 -1
  320. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/DateRangeFilterPopover.mjs.map +1 -1
  321. package/dist/js/packages/components/src/components/List/components/Header/components/FilterContextMenu/FilterContextMenu.mjs.map +1 -1
  322. package/dist/js/packages/components/src/components/List/components/Header/components/SearchField/SearchField.mjs.map +1 -1
  323. package/dist/js/packages/components/src/components/List/components/Header/components/SortingContextMenu/SortingContextMenu.mjs.map +1 -1
  324. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.mjs.map +1 -1
  325. package/dist/js/packages/components/src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.mjs.map +1 -1
  326. package/dist/js/packages/components/src/components/List/components/Items/Items.mjs.map +1 -1
  327. package/dist/js/packages/components/src/components/List/components/Items/components/Item/Item.mjs.map +1 -1
  328. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/AccordionButton.mjs.map +1 -1
  329. package/dist/js/packages/components/src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.mjs.map +1 -1
  330. package/dist/js/packages/components/src/components/List/components/Items/views/GridListItem/GridListItem.mjs.map +1 -1
  331. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.mjs.map +1 -1
  332. package/dist/js/packages/components/src/components/List/components/ListItemView/ListItemView.module.mjs.map +1 -1
  333. package/dist/js/packages/components/src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.mjs.map +1 -1
  334. package/dist/js/packages/components/src/components/List/components/ListSummary/ListSummary.mjs.map +1 -1
  335. package/dist/js/packages/components/src/components/List/components/Table/Table.mjs.map +1 -1
  336. package/dist/js/packages/components/src/components/List/components/Table/components/TableBodyLoadingView.mjs.map +1 -1
  337. package/dist/js/packages/components/src/components/List/components/Table/components/TableRowSkeletonView.mjs.map +1 -1
  338. package/dist/js/packages/components/src/components/List/hooks/useAriaAnnounceSearchState.mjs.map +1 -1
  339. package/dist/js/packages/components/src/components/List/model/filter/dateRangeFilterFn.mjs +2 -2
  340. package/dist/js/packages/components/src/components/List/model/filter/dateRangeFilterFn.mjs.map +1 -1
  341. package/dist/js/packages/components/src/components/List/views/EmptyView/EmptyView.mjs.map +1 -1
  342. package/dist/js/packages/components/src/components/List/views/EmptyViewContainer/EmptyViewContainer.mjs.map +1 -1
  343. package/dist/js/packages/components/src/components/LoadingSpinner/LoadingSpinner.mjs +7 -0
  344. package/dist/js/packages/components/src/components/LoadingSpinner/LoadingSpinner.mjs.map +1 -1
  345. package/dist/js/packages/components/src/components/Markdown/Markdown.mjs.map +1 -1
  346. package/dist/js/packages/components/src/components/MarkdownEditor/MarkdownEditor.mjs.map +1 -1
  347. package/dist/js/packages/components/src/components/MarkdownEditor/components/AttachmentButton.mjs.map +1 -1
  348. package/dist/js/packages/components/src/components/MarkdownEditor/components/ModeButton.mjs.map +1 -1
  349. package/dist/js/packages/components/src/components/MarkdownEditor/components/Toolbar.mjs.map +1 -1
  350. package/dist/js/packages/components/src/components/MarkdownEditor/components/ToolbarButton.mjs.map +1 -1
  351. package/dist/js/packages/components/src/components/MarkdownEditor/lib/useFileUpload.mjs.map +1 -1
  352. package/dist/js/packages/components/src/components/MenuItem/MenuItem.mjs.map +1 -1
  353. package/dist/js/packages/components/src/components/MenuItem/components/MenuItemContent/MenuItemContent.mjs.map +1 -1
  354. package/dist/js/packages/components/src/components/Message/Message.mjs +2 -1
  355. package/dist/js/packages/components/src/components/Message/Message.mjs.map +1 -1
  356. package/dist/js/packages/components/src/components/MessageThread/MessageThread.mjs.map +1 -1
  357. package/dist/js/packages/components/src/components/MessageThread/components/MessageSeparator/MessageSeparator.mjs.map +1 -1
  358. package/dist/js/packages/components/src/components/Modal/Modal.mjs.map +1 -1
  359. package/dist/js/packages/components/src/components/Modal/Modal.module.mjs.map +1 -1
  360. package/dist/js/packages/components/src/components/Modal/components/ConfirmUnsavedChangesModal/ConfirmUnsavedChangesModal.mjs.map +1 -1
  361. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs +8 -1
  362. package/dist/js/packages/components/src/components/Navigation/Navigation.mjs.map +1 -1
  363. package/dist/js/packages/components/src/components/Navigation/components/LinkListTunnelExit/LinkListTunnelExit.mjs.map +1 -1
  364. package/dist/js/packages/components/src/components/Navigation/components/NavigationGroup/NavigationGroup.mjs.map +1 -1
  365. package/dist/js/packages/components/src/components/Notification/Notification.mjs +19 -11
  366. package/dist/js/packages/components/src/components/Notification/Notification.mjs.map +1 -1
  367. package/dist/js/packages/components/src/components/Notification/Notification.module.mjs +4 -2
  368. package/dist/js/packages/components/src/components/Notification/Notification.module.mjs.map +1 -1
  369. package/dist/js/packages/components/src/components/NotificationProvider/NotificationContainer/NotificationContainer.mjs.map +1 -1
  370. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs +17 -7
  371. package/dist/js/packages/components/src/components/NumberField/NumberField.mjs.map +1 -1
  372. package/dist/js/packages/components/src/components/NumberField/NumberField.module.mjs +9 -1
  373. package/dist/js/packages/components/src/components/NumberField/NumberField.module.mjs.map +1 -1
  374. package/dist/js/packages/components/src/components/NumberField/components/NumberFieldUnit.mjs +36 -0
  375. package/dist/js/packages/components/src/components/NumberField/components/NumberFieldUnit.mjs.map +1 -0
  376. package/dist/js/packages/components/src/components/Option/Option.mjs.map +1 -1
  377. package/dist/js/packages/components/src/components/Options/Options.mjs.map +1 -1
  378. package/dist/js/packages/components/src/components/Overlay/Overlay.mjs.map +1 -1
  379. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs +6 -1
  380. package/dist/js/packages/components/src/components/Overlay/components/OverlayContent.mjs.map +1 -1
  381. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs +42 -19
  382. package/dist/js/packages/components/src/components/PasswordCreationField/PasswordCreationField.mjs.map +1 -1
  383. package/dist/js/packages/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs +2 -2
  384. package/dist/js/packages/components/src/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.mjs.map +1 -1
  385. package/dist/js/packages/components/src/components/PasswordCreationField/components/PasswordGenerateButton/PasswordGenerateButton.mjs.map +1 -1
  386. package/dist/js/packages/components/src/components/PasswordCreationField/components/TogglePasswordVisibilityButton/TogglePasswordVisibilityButton.mjs.map +1 -1
  387. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultButton/ValidationResultButton.mjs.map +1 -1
  388. package/dist/js/packages/components/src/components/PasswordCreationField/components/ValidationResultEntry/ValidationResultEntry.mjs.map +1 -1
  389. package/dist/js/packages/components/src/components/PasswordCreationField/lib/ariaAnnounce.mjs.map +1 -1
  390. package/dist/js/packages/components/src/components/PasswordCreationField/lib/usePolicyValidationResult.mjs +12 -0
  391. package/dist/js/packages/components/src/components/PasswordCreationField/lib/usePolicyValidationResult.mjs.map +1 -1
  392. package/dist/js/packages/components/src/components/Popover/Popover.mjs.map +1 -1
  393. package/dist/js/packages/components/src/components/Popover/components/NonModalPopoverContent/NonModalPopoverContent.mjs.map +1 -1
  394. package/dist/js/packages/components/src/components/Popover/components/PopoverContent/PopoverContent.mjs.map +1 -1
  395. package/dist/js/packages/components/src/components/Popover/components/PopoverTip/PopoverTip.mjs.map +1 -1
  396. package/dist/js/packages/components/src/components/Popover/viewportPadding.mjs.map +1 -1
  397. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs +4 -1
  398. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.mjs.map +1 -1
  399. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.module.mjs +6 -2
  400. package/dist/js/packages/components/src/components/ProgressBar/ProgressBar.module.mjs.map +1 -1
  401. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarBar.mjs +2 -0
  402. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarBar.mjs.map +1 -1
  403. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarLegend.mjs.map +1 -1
  404. package/dist/js/packages/components/src/components/ProgressBar/components/ProgressBarValue.mjs.map +1 -1
  405. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs +3 -2
  406. package/dist/js/packages/components/src/components/RadioGroup/RadioGroup.mjs.map +1 -1
  407. package/dist/js/packages/components/src/components/RadioGroup/components/Radio/Radio.mjs.map +1 -1
  408. package/dist/js/packages/components/src/components/RadioGroup/components/RadioButton/RadioButton.mjs.map +1 -1
  409. package/dist/js/packages/components/src/components/Rating/Rating.mjs +8 -4
  410. package/dist/js/packages/components/src/components/Rating/Rating.mjs.map +1 -1
  411. package/dist/js/packages/components/src/components/Rating/Rating.module.mjs +6 -2
  412. package/dist/js/packages/components/src/components/Rating/Rating.module.mjs.map +1 -1
  413. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/EmptySegment.mjs.map +1 -1
  414. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/FilledSegment.mjs.map +1 -1
  415. package/dist/js/packages/components/src/components/Rating/components/RatingSegment/RatingSegment.mjs.map +1 -1
  416. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs +3 -3
  417. package/dist/js/packages/components/src/components/SearchField/SearchField.mjs.map +1 -1
  418. package/dist/js/packages/components/src/components/Section/Section.mjs.map +1 -1
  419. package/dist/js/packages/components/src/components/Section/components/SectionHeader/SectionHeader.mjs.map +1 -1
  420. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs +3 -2
  421. package/dist/js/packages/components/src/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  422. package/dist/js/packages/components/src/components/SegmentedControl/components/Segment/Segment.mjs.map +1 -1
  423. package/dist/js/packages/components/src/components/Select/Select.mjs +3 -3
  424. package/dist/js/packages/components/src/components/Select/Select.mjs.map +1 -1
  425. package/dist/js/packages/components/src/components/Separator/Separator.mjs.map +1 -1
  426. package/dist/js/packages/components/src/components/Skeleton/Skeleton.mjs.map +1 -1
  427. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs +3 -3
  428. package/dist/js/packages/components/src/components/Skeleton/Skeleton.module.mjs.map +1 -1
  429. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs +35 -0
  430. package/dist/js/packages/components/src/components/SkeletonMode/SkeletonMode.mjs.map +1 -0
  431. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.mjs +24 -0
  432. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.mjs.map +1 -0
  433. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.module.mjs +13 -0
  434. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.module.mjs.map +1 -0
  435. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs +25 -0
  436. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.mjs.map +1 -0
  437. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs +29 -0
  438. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.mjs.map +1 -0
  439. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs +13 -0
  440. package/dist/js/packages/components/src/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.module.mjs.map +1 -0
  441. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs +11 -0
  442. package/dist/js/packages/components/src/components/SkeletonMode/lib/hasContent.mjs.map +1 -0
  443. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs +19 -0
  444. package/dist/js/packages/components/src/components/SkeletonMode/lib/isTextChild.mjs.map +1 -0
  445. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs +27 -0
  446. package/dist/js/packages/components/src/components/SkeletonMode/skeletonModeContext.mjs.map +1 -0
  447. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.mjs.map +1 -1
  448. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs +3 -3
  449. package/dist/js/packages/components/src/components/SkeletonText/SkeletonText.module.mjs.map +1 -1
  450. package/dist/js/packages/components/src/components/Slider/Slider.mjs +4 -3
  451. package/dist/js/packages/components/src/components/Slider/Slider.mjs.map +1 -1
  452. package/dist/js/packages/components/src/components/Switch/Switch.mjs +3 -2
  453. package/dist/js/packages/components/src/components/Switch/Switch.mjs.map +1 -1
  454. package/dist/js/packages/components/src/components/TabNavigation/TabNavigation.mjs +3 -0
  455. package/dist/js/packages/components/src/components/TabNavigation/TabNavigation.mjs.map +1 -1
  456. package/dist/js/packages/components/src/components/TabNavigation/components/LinkContent/LinkContent.mjs.map +1 -1
  457. package/dist/js/packages/components/src/components/Table/Table.mjs.map +1 -1
  458. package/dist/js/packages/components/src/components/Table/components/TableBody/TableBody.mjs.map +1 -1
  459. package/dist/js/packages/components/src/components/Table/components/TableCell/TableCell.mjs.map +1 -1
  460. package/dist/js/packages/components/src/components/Table/components/TableColumn/TableColumn.mjs.map +1 -1
  461. package/dist/js/packages/components/src/components/Table/components/TableHeader/TableHeader.mjs.map +1 -1
  462. package/dist/js/packages/components/src/components/Table/components/TableRow/TableRow.mjs.map +1 -1
  463. package/dist/js/packages/components/src/components/Tabs/Tabs.mjs.map +1 -1
  464. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs +1 -1
  465. package/dist/js/packages/components/src/components/Tabs/components/FallbackTab/FallbackTab.mjs.map +1 -1
  466. package/dist/js/packages/components/src/components/Tabs/components/Tab/Tab.mjs.map +1 -1
  467. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs +5 -1
  468. package/dist/js/packages/components/src/components/Tabs/components/TabList/TabList.mjs.map +1 -1
  469. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs +3 -1
  470. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.mjs.map +1 -1
  471. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs +3 -1
  472. package/dist/js/packages/components/src/components/Tabs/components/TabTitle/TabTitle.module.mjs.map +1 -1
  473. package/dist/js/packages/components/src/components/Text/Text.mjs +9 -2
  474. package/dist/js/packages/components/src/components/Text/Text.mjs.map +1 -1
  475. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs +3 -3
  476. package/dist/js/packages/components/src/components/TextArea/TextArea.mjs.map +1 -1
  477. package/dist/js/packages/components/src/components/TextField/TextField.mjs +4 -4
  478. package/dist/js/packages/components/src/components/TextField/TextField.mjs.map +1 -1
  479. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs +5 -3
  480. package/dist/js/packages/components/src/components/TimeField/TimeField.mjs.map +1 -1
  481. package/dist/js/packages/components/src/components/Tooltip/Tooltip.mjs.map +1 -1
  482. package/dist/js/packages/components/src/components/Truncate/Truncate.mjs.map +1 -1
  483. package/dist/js/packages/components/src/components/TunnelEntry/TunnelEntry.mjs.map +1 -1
  484. package/dist/js/packages/components/src/integrations/nextjs/components/RouterProvider/RouterProvider.mjs.map +1 -1
  485. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs +1 -1
  486. package/dist/js/packages/components/src/integrations/react-hook-form/components/Field/Field.mjs.map +1 -1
  487. package/dist/js/packages/components/src/integrations/react-hook-form/components/Form/Form.mjs.map +1 -1
  488. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormAction/FormAction.mjs.map +1 -1
  489. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormRootError/FormRootError.mjs +6 -3
  490. package/dist/js/packages/components/src/integrations/react-hook-form/components/FormRootError/FormRootError.mjs.map +1 -1
  491. package/dist/js/packages/components/src/lib/hooks/fieldErrorRenderedContext.mjs +16 -0
  492. package/dist/js/packages/components/src/lib/hooks/fieldErrorRenderedContext.mjs.map +1 -0
  493. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs +8 -7
  494. package/dist/js/packages/components/src/lib/hooks/useFieldComponent.mjs.map +1 -1
  495. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs +34 -21
  496. package/dist/js/packages/components/src/lib/hooks/useFieldError.mjs.map +1 -1
  497. package/dist/js/packages/components/src/lib/propsContext/nestedPropsContext/types.mjs.map +1 -1
  498. package/dist/js/packages/components/src/lib/propsContext/overlayTriggerTunnel.mjs.map +1 -1
  499. package/dist/js/packages/components/src/lib/react/cloneElement.mjs.map +1 -1
  500. package/dist/js/packages/components/src/lib/react/components/Render/Render.mjs.map +1 -1
  501. package/dist/js/packages/components/src/lib/react/getPropsMerger.mjs.map +1 -1
  502. package/dist/js/packages/components/src/lib/theming/hooks/useDesignTokens.mjs.map +1 -1
  503. package/dist/js/packages/components/src/lib/tokens/CategoricalColors.mjs.map +1 -1
  504. package/dist/js/packages/components/src/lib/tokens/isCategoricalColor.mjs.map +1 -1
  505. package/dist/js/packages/components/src/lib/types/props.mjs.map +1 -1
  506. package/dist/js/packages/components/src/status/component-status.mjs +4 -0
  507. package/dist/js/packages/components/src/status/component-status.mjs.map +1 -1
  508. package/dist/js/packages/components/src/status/componentStatus.mjs.map +1 -1
  509. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs +16 -0
  510. package/dist/js/packages/design-tokens/dist/json-runtime/all-dark.mjs.map +1 -1
  511. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs +16 -0
  512. package/dist/js/packages/design-tokens/dist/json-runtime/all-light.mjs.map +1 -1
  513. package/dist/types/components/ActionGroup/ActionGroup.d.ts +3 -2
  514. package/dist/types/components/Button/Button.d.ts +7 -1
  515. package/dist/types/components/Button/stories/lib.d.ts +1 -1
  516. package/dist/types/components/CartesianChart/components/ChartTooltip/TooltipLegendItem.d.ts +3 -1
  517. package/dist/types/components/CartesianChart/components/YAxis/YAxis.d.ts +7 -0
  518. package/dist/types/components/CodeEditor/CodeEditor.d.ts +12 -2
  519. package/dist/types/components/CodeEditor/hooks/useCodeEditorExtensions.d.ts +32 -1
  520. package/dist/types/components/CodeEditor/languages/all.d.ts +1 -1
  521. package/dist/types/components/CodeEditor/languages/index.d.ts +1 -0
  522. package/dist/types/components/FileField/FileField.d.ts +1 -1
  523. package/dist/types/components/Link/Link.d.ts +5 -1
  524. package/dist/types/components/List/components/DataLoader/DataLoader.d.ts +1 -1
  525. package/dist/types/components/List/components/Items/components/Item/Item.d.ts +1 -1
  526. package/dist/types/components/List/components/Items/components/Item/hooks/useGridItemProps.d.ts +1 -1
  527. package/dist/types/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.d.ts +1 -1
  528. package/dist/types/components/Modal/components/ModalTrigger/ModalTrigger.d.ts +1 -5
  529. package/dist/types/components/NumberField/NumberField.d.ts +5 -0
  530. package/dist/types/components/NumberField/components/NumberFieldUnit.d.ts +13 -0
  531. package/dist/types/components/PasswordCreationField/components/ComplexityIndicator/ComplexityIndicator.d.ts +5 -0
  532. package/dist/types/components/SkeletonMode/SkeletonMode.d.ts +16 -0
  533. package/dist/types/components/SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.d.ts +10 -0
  534. package/dist/types/components/SkeletonMode/components/SkeletonIconSurface/index.d.ts +2 -0
  535. package/dist/types/components/SkeletonMode/components/SkeletonRawText/SkeletonRawText.d.ts +8 -0
  536. package/dist/types/components/SkeletonMode/components/SkeletonRawText/index.d.ts +2 -0
  537. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/SkeletonTextContent.d.ts +12 -0
  538. package/dist/types/components/SkeletonMode/components/SkeletonTextContent/index.d.ts +2 -0
  539. package/dist/types/components/SkeletonMode/index.d.ts +3 -0
  540. package/dist/types/components/SkeletonMode/lib/hasContent.d.ts +3 -0
  541. package/dist/types/components/SkeletonMode/lib/isTextChild.d.ts +8 -0
  542. package/dist/types/components/SkeletonMode/skeletonModeContext.d.ts +16 -0
  543. package/dist/types/components/SkeletonMode/view.d.ts +7 -0
  544. package/dist/types/components/public.d.ts +1 -0
  545. package/dist/types/integrations/react-hook-form/components/Field/Field.d.ts +1 -1
  546. package/dist/types/integrations/react-hook-form/components/Form/Form.d.ts +1 -1
  547. package/dist/types/integrations/react-hook-form/components/FormContextProvider/FormContextProvider.d.ts +1 -1
  548. package/dist/types/integrations/react-hook-form/components/FormRootError/FormRootError.d.ts +12 -2
  549. package/dist/types/integrations/react-hook-form/components/FormSettingsProvider/FormSettingsProvider.d.ts +1 -1
  550. package/dist/types/lib/dev/parkPointer.d.ts +1 -0
  551. package/dist/types/lib/hooks/fieldErrorRenderedContext.d.ts +1 -0
  552. package/dist/types/lib/hooks/useFieldComponent.d.ts +15 -4
  553. package/dist/types/lib/hooks/useFieldError.d.ts +7 -1
  554. package/dist/types/lib/propsContext/nestedPropsContext/types.d.ts +3 -0
  555. package/dist/types/lib/propsContext/overlayTriggerTunnel.d.ts +2 -2
  556. package/dist/types/lib/theming/hooks/useDesignTokens.d.ts +12 -0
  557. package/dist/types/lib/types/props.d.ts +14 -0
  558. package/dist/types/status/component-status.json.d.ts +4 -0
  559. package/dist/types/views/SkeletonModeView.d.ts +4 -0
  560. package/package.json +13 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ViewModeContextMenu.mjs","names":[],"sources":["../../../../../../../../../../../src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport { useList } from \"@/components/List\";\nimport { IconView } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport TextView from \"@/views/TextView\";\nimport { ViewModeMenuItem } from \"@/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport styles from \"@/components/List/components/Header/Header.module.scss\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n isDisabled?: boolean;\n}\n\nexport const ViewModeContextMenu: FC<Props> = (props) => {\n const { isDisabled } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const selectedViewMode = list.viewMode.value;\n\n const availableViewModes = useAvailableViewModes();\n\n if (availableViewModes.length <= 1) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"settings\")}\n className={styles.hideOnMobile}\n isDisabled={isDisabled}\n >\n <TextView>\n {stringFormatter.format(`settings.viewMode.${selectedViewMode}`)}\n </TextView>\n <IconView />\n </ButtonView>\n <ContextMenuView selectionMode=\"single\" selectedKeys={[selectedViewMode]}>\n {availableViewModes.map((viewMode) => (\n <ViewModeMenuItem viewMode={viewMode} key={viewMode} />\n ))}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAa,uBAAkC,UAAU;CACvD,MAAM,EAAE,eAAe;CAEvB,MAAM,kBAAkB,4BAA4B,kBAAS,MAAM;CAEnE,MAAM,mBADO,QACY,CAAA,CAAK,SAAS;CAEvC,MAAM,qBAAqB,sBAAsB;CAEjD,IAAI,mBAAmB,UAAU,GAC/B,OAAO;CAGT,OACE,qBAAC,wBAAD,EAAA,UAAA,CACE,qBAAC,YAAD;EACE,SAAQ;EACR,OAAM;EACN,cAAY,gBAAgB,OAAO,UAAU;EAC7C,WAAW,sBAAO;EACN;EALd,UAAA,CAOE,oBAAC,UAAD,EAAA,UACG,gBAAgB,OAAO,qBAAqB,kBAAkB,EACvD,CAAA,GACV,oBAAC,UAAD,CAAW,CAAA,CACD;CACZ,CAAA,GAAA,oBAAC,iBAAD;EAAiB,eAAc;EAAS,cAAc,CAAC,gBAAgB;EACpE,UAAA,mBAAmB,KAAK,aACvB,oBAAC,kBAAD,EAA4B,SAA0B,GAAX,QAAW,CACvD;CACc,CAAA,CACK,EAAA,CAAA;AAE5B"}
1
+ {"version":3,"file":"ViewModeContextMenu.mjs","names":["locales","styles"],"sources":["../../../../../../../../../../../src/components/List/components/Header/components/ViewModeContextMenu/ViewModeContextMenu.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport locales from \"../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport { useList } from \"@/components/List\";\nimport { IconView } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport TextView from \"@/views/TextView\";\nimport { ViewModeMenuItem } from \"@/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem\";\nimport { useAvailableViewModes } from \"@/components/List/components/Header/lib\";\nimport styles from \"@/components/List/components/Header/Header.module.scss\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\nimport ContextMenuView from \"@/views/ContextMenuView\";\n\ninterface Props {\n isDisabled?: boolean;\n}\n\nexport const ViewModeContextMenu: FC<Props> = (props) => {\n const { isDisabled } = props;\n\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const selectedViewMode = list.viewMode.value;\n\n const availableViewModes = useAvailableViewModes();\n\n if (availableViewModes.length <= 1) {\n return null;\n }\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"outline\"\n color=\"secondary\"\n aria-label={stringFormatter.format(\"settings\")}\n className={styles.hideOnMobile}\n isDisabled={isDisabled}\n >\n <TextView>\n {stringFormatter.format(`settings.viewMode.${selectedViewMode}`)}\n </TextView>\n <IconView />\n </ButtonView>\n <ContextMenuView selectionMode=\"single\" selectedKeys={[selectedViewMode]}>\n {availableViewModes.map((viewMode) => (\n <ViewModeMenuItem viewMode={viewMode} key={viewMode} />\n ))}\n </ContextMenuView>\n </ContextMenuTriggerView>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAa,uBAAkC,UAAU;CACvD,MAAM,EAAE,eAAe;CAEvB,MAAM,kBAAkB,4BAA4BA,kBAAS,MAAM;CAEnE,MAAM,mBADO,QACY,CAAA,CAAK,SAAS;CAEvC,MAAM,qBAAqB,sBAAsB;CAEjD,IAAI,mBAAmB,UAAU,GAC/B,OAAO;CAGT,OACE,qBAAC,wBAAD,EAAA,UAAA,CACE,qBAAC,YAAD;EACE,SAAQ;EACR,OAAM;EACN,cAAY,gBAAgB,OAAO,UAAU;EAC7C,WAAWC,sBAAO;EACN;EALd,UAAA,CAOE,oBAAC,UAAD,EAAA,UACG,gBAAgB,OAAO,qBAAqB,kBAAkB,EACvD,CAAA,GACV,oBAAC,UAAD,CAAW,CAAA,CACD;CACZ,CAAA,GAAA,oBAAC,iBAAD;EAAiB,eAAc;EAAS,cAAc,CAAC,gBAAgB;EACpE,UAAA,mBAAmB,KAAK,aACvB,oBAAC,kBAAD,EAA4B,SAA0B,GAAX,QAAW,CACvD;CACc,CAAA,CACK,EAAA,CAAA;AAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewModeMenuItem.mjs","names":[],"sources":["../../../../../../../../../../../src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n viewMode: ListViewMode;\n}\n\nexport const ViewModeMenuItem: FC<Props> = (props) => {\n const { viewMode } = props;\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <MenuItemView\n id={viewMode}\n onAction={() => {\n list.viewMode.set(viewMode);\n }}\n >\n {stringFormatter.format(`settings.viewMode.${viewMode}`)}\n </MenuItemView>\n );\n};\n"],"mappings":";;;;;;;;;AAWA,IAAa,oBAA+B,UAAU;CACpD,MAAM,EAAE,aAAa;CACrB,MAAM,OAAO,QAAQ;CACrB,MAAM,kBAAkB,4BAA4B,kBAAS,MAAM;CAEnE,OACE,oBAAC,cAAD;EACE,IAAI;EACJ,gBAAgB;GACd,KAAK,SAAS,IAAI,QAAQ;EAC5B;EAEC,UAAA,gBAAgB,OAAO,qBAAqB,UAAU;CAC3C,CAAA;AAElB"}
1
+ {"version":3,"file":"ViewModeMenuItem.mjs","names":["locales"],"sources":["../../../../../../../../../../../src/components/List/components/Header/components/ViewModeContextMenu/ViewModeMenuItem.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport MenuItemView from \"@/views/MenuItemView\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport { useList } from \"@/components/List\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../../../../locales/*.locale.json\";\n\ninterface Props {\n viewMode: ListViewMode;\n}\n\nexport const ViewModeMenuItem: FC<Props> = (props) => {\n const { viewMode } = props;\n const list = useList();\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <MenuItemView\n id={viewMode}\n onAction={() => {\n list.viewMode.set(viewMode);\n }}\n >\n {stringFormatter.format(`settings.viewMode.${viewMode}`)}\n </MenuItemView>\n );\n};\n"],"mappings":";;;;;;;;;AAWA,IAAa,oBAA+B,UAAU;CACpD,MAAM,EAAE,aAAa;CACrB,MAAM,OAAO,QAAQ;CACrB,MAAM,kBAAkB,4BAA4BA,kBAAS,MAAM;CAEnE,OACE,oBAAC,cAAD;EACE,IAAI;EACJ,gBAAgB;GACd,KAAK,SAAS,IAAI,QAAQ;EAC5B;EAEC,UAAA,gBAAgB,OAAO,qBAAqB,UAAU;CAC3C,CAAA;AAElB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Items.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\nimport { useInfiniteScrollTrigger } from \"@/components/List/hooks/useInfiniteScrollTrigger\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode.isTiles;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const isLoadingMore = list.loader.useIsLoadingMore();\n\n const { triggerRef, triggerIndex } = useInfiniteScrollTrigger();\n\n if (!list.itemView) {\n return null;\n }\n\n const items = list.items.entries.map((item, index) => (\n <Item\n key={item.id}\n data={item.data}\n id={item.id}\n list={list}\n isTile={tiles}\n triggerRef={index === triggerIndex ? triggerRef : undefined}\n />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && !(list.infiniteScroll && isLoadingMore) && styles.isLoading,\n tiles && styles.tiles,\n );\n\n const {\n \"aria-labelledby\": ariaLabelledby,\n \"aria-label\": ariaLabel,\n ...rest\n } = list.componentProps;\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...rest}\n aria-labelledby={ariaLabel ? undefined : ariaLabelledby}\n aria-label={ariaLabel}\n layout={tiles ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"mappings":";;;;;;;;;;;;AAUA,IAAa,cAAkB;CAC7B,MAAM,OAAO,QAAQ;CACrB,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,YAAY,KAAK,OAAO,aAAa;CAC3C,MAAM,qBAAqB,KAAK,OAAO,sBAAsB;CAC7D,MAAM,gBAAgB,KAAK,OAAO,iBAAiB;CAEnD,MAAM,EAAE,YAAY,iBAAiB,yBAAyB;CAE9D,IAAI,CAAC,KAAK,UACR,OAAO;CAGT,MAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK,MAAM,UAC1C,oBAAC,MAAD;EAEE,MAAM,KAAK;EACX,IAAI,KAAK;EACH;EACN,QAAQ;EACR,YAAY,UAAU,eAAe,aAAa,KAAA;CACnD,GANM,KAAK,EAMX,CACF;CAED,MAAM,gBAAgB,KACpB,qBAAO,OACP,aAAa,EAAE,KAAK,kBAAkB,kBAAkB,qBAAO,WAC/D,SAAS,qBAAO,KAClB;CAEA,MAAM,EACJ,mBAAmB,gBACnB,cAAc,WACd,GAAG,SACD,KAAK;CAET,OACE,oBAAC,SAAD;EAAS,eAAa;EAAoB,aAAW;EACnD,UAAA,oBAAC,mBAAD;GACE,WAAW;GACX,GAAI;GACJ,mBAAiB,YAAY,KAAA,IAAY;GACzC,cAAY;GACZ,QAAQ,QAAQ,SAAS;GACzB,cAAc,KAAK,SAAS;GAE3B,UAAA,MAAM,WAAW,KAAK,qBAAqB,oBAAC,eAAD,CAAgB,CAAA,IAAI;EAC/C,CAAA;CACZ,CAAA;AAEb"}
1
+ {"version":3,"file":"Items.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/List/components/Items/Items.tsx"],"sourcesContent":["import Item from \"@/components/List/components/Items/components/Item/Item\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport DivView from \"@/views/DivView\";\nimport ItemsGridListView from \"@/views/ItemsGridListView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"./Items.module.scss\";\nimport { FallbackItems } from \"./components/FallbackItems\";\nimport { useInfiniteScrollTrigger } from \"@/components/List/hooks/useInfiniteScrollTrigger\";\n\nexport const Items: FC = () => {\n const list = useList();\n const tiles = list.viewMode.isTiles;\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const isLoadingMore = list.loader.useIsLoadingMore();\n\n const { triggerRef, triggerIndex } = useInfiniteScrollTrigger();\n\n if (!list.itemView) {\n return null;\n }\n\n const items = list.items.entries.map((item, index) => (\n <Item\n key={item.id}\n data={item.data}\n id={item.id}\n list={list}\n isTile={tiles}\n triggerRef={index === triggerIndex ? triggerRef : undefined}\n />\n ));\n\n const rootClassName = clsx(\n styles.items,\n isLoading && !(list.infiniteScroll && isLoadingMore) && styles.isLoading,\n tiles && styles.tiles,\n );\n\n const {\n \"aria-labelledby\": ariaLabelledby,\n \"aria-label\": ariaLabel,\n ...rest\n } = list.componentProps;\n\n return (\n <DivView aria-hidden={isInitiallyLoading} aria-busy={isLoading}>\n <ItemsGridListView\n className={rootClassName}\n {...rest}\n aria-labelledby={ariaLabel ? undefined : ariaLabelledby}\n aria-label={ariaLabel}\n layout={tiles ? \"grid\" : \"stack\"}\n tileMaxWidth={list.itemView.tileMaxWidth}\n >\n {items.length === 0 && isInitiallyLoading ? <FallbackItems /> : items}\n </ItemsGridListView>\n </DivView>\n );\n};\n\nexport default Items;\n"],"mappings":";;;;;;;;;;;;AAUA,IAAa,cAAkB;CAC7B,MAAM,OAAO,QAAQ;CACrB,MAAM,QAAQ,KAAK,SAAS;CAC5B,MAAM,YAAY,KAAK,OAAO,aAAa;CAC3C,MAAM,qBAAqB,KAAK,OAAO,sBAAsB;CAC7D,MAAM,gBAAgB,KAAK,OAAO,iBAAiB;CAEnD,MAAM,EAAE,YAAY,iBAAiB,yBAAyB;CAE9D,IAAI,CAAC,KAAK,UACR,OAAO;CAGT,MAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK,MAAM,UAC1C,oBAAC,MAAD;EAEE,MAAM,KAAK;EACX,IAAI,KAAK;EACH;EACN,QAAQ;EACR,YAAY,UAAU,eAAe,aAAa,KAAA;CACnD,GANM,KAAK,EAMX,CACF;CAED,MAAM,gBAAgB,KACpBA,qBAAO,OACP,aAAa,EAAE,KAAK,kBAAkB,kBAAkBA,qBAAO,WAC/D,SAASA,qBAAO,KAClB;CAEA,MAAM,EACJ,mBAAmB,gBACnB,cAAc,WACd,GAAG,SACD,KAAK;CAET,OACE,oBAAC,SAAD;EAAS,eAAa;EAAoB,aAAW;EACnD,UAAA,oBAAC,mBAAD;GACE,WAAW;GACX,GAAI;GACJ,mBAAiB,YAAY,KAAA,IAAY;GACzC,cAAY;GACZ,QAAQ,QAAQ,SAAS;GACzB,cAAc,KAAK,SAAS;GAE3B,UAAA,MAAM,WAAW,KAAK,qBAAqB,oBAAC,eAAD,CAAgB,CAAA,IAAI;EAC/C,CAAA;CACZ,CAAA;AAEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"Item.mjs","names":[],"sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/Item.tsx"],"sourcesContent":["import { useGridItemProps } from \"@/components/List/components/Items/components/Item/hooks/useGridItemProps\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type ListModel from \"@/components/List/model/List\";\nimport ItemsGridListItemView from \"@/views/ItemsGridListItemView\";\nimport { mergeRefs } from \"@react-aria/utils\";\nimport type { FC, PropsWithChildren, Ref } from \"react\";\nimport { memo, Suspense } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport styles from \"./Item.module.scss\";\nimport { ItemLoadingView } from \"./components/ItemLoadingView/ItemLoadingView\";\n\ninterface Props extends PropsWithChildren {\n id: Key;\n data: never;\n triggerRef?: Ref<HTMLDivElement>;\n list: ListModel<never>;\n isTile: boolean;\n}\n\nconst ItemImpl = (props: Props) => {\n const { id, data, triggerRef, list, isTile } = props;\n\n const itemView = list.itemView;\n\n const { gridItemProps, children } = useGridItemProps(props, list);\n\n if (!itemView) {\n return null;\n }\n\n const textValue = itemView.textValue ? itemView.textValue(data) : undefined;\n const href = itemView.href ? itemView.href(data) : undefined;\n const hasAction = !!gridItemProps.onAction || !!href;\n\n const existingRef = \"ref\" in gridItemProps ? gridItemProps.ref : undefined;\n const gridItemPropsWithRef = triggerRef\n ? { ...gridItemProps, ref: mergeRefs(existingRef, triggerRef) }\n : gridItemProps;\n\n return (\n <ItemsGridListItemView\n id={id}\n textValue={textValue}\n href={href}\n target={itemView.target}\n hasAction={hasAction}\n isTile={isTile}\n {...gridItemPropsWithRef}\n >\n <Suspense fallback={<ItemLoadingView />}>{children}</Suspense>\n </ItemsGridListItemView>\n );\n};\n\n// The list model is rebuilt on every render, so it cannot be compared by\n// identity — but everything an item renders from it can. Those closures come\n// from the consumer's own JSX and only change when the consumer re-renders,\n// so loading more still skips the re-render while parent state no longer\n// leaves an item frozen on the values it first saw.\nexport const Item = memo(\n ItemImpl,\n (prev, next) =>\n prev.id === next.id &&\n prev.data === next.data &&\n prev.triggerRef === next.triggerRef &&\n prev.isTile === next.isTile &&\n prev.list.onAction === next.list.onAction &&\n prev.list.accordion === next.list.accordion &&\n !!prev.list.itemView?.rendersSameAs(next.list.itemView),\n);\nItem.displayName = \"Item\";\n\ninterface ItemContainerProps extends PropsWithChildren {\n id?: Key;\n data?: never;\n}\n\nexport const ItemContainer: FC<ItemContainerProps> = (props) => {\n const list = useList();\n return (\n <ItemsGridListItemView\n textValue=\"-\"\n className={styles.item}\n isTile={list.viewMode.isTiles}\n >\n {props.children}\n </ItemsGridListItemView>\n );\n};\n\nexport default Item;\n"],"mappings":";;;;;;;;;;;AAmBA,IAAM,YAAY,UAAiB;CACjC,MAAM,EAAE,IAAI,MAAM,YAAY,MAAM,WAAW;CAE/C,MAAM,WAAW,KAAK;CAEtB,MAAM,EAAE,eAAe,aAAa,iBAAiB,OAAO,IAAI;CAEhE,IAAI,CAAC,UACH,OAAO;CAGT,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,IAAI,IAAI,KAAA;CAClE,MAAM,OAAO,SAAS,OAAO,SAAS,KAAK,IAAI,IAAI,KAAA;CACnD,MAAM,YAAY,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC;CAEhD,MAAM,cAAc,SAAS,gBAAgB,cAAc,MAAM,KAAA;CACjE,MAAM,uBAAuB,aACzB;EAAE,GAAG;EAAe,KAAK,UAAU,aAAa,UAAU;CAAE,IAC5D;CAEJ,OACE,oBAAC,uBAAD;EACM;EACO;EACL;EACN,QAAQ,SAAS;EACN;EACH;EACR,GAAI;EAEJ,UAAA,oBAAC,UAAD;GAAU,UAAU,oBAAC,iBAAD,CAAkB,CAAA;GAAI;EAAmB,CAAA;CACxC,CAAA;AAE3B;AAOA,IAAa,OAAO,KAClB,WACC,MAAM,SACL,KAAK,OAAO,KAAK,MACjB,KAAK,SAAS,KAAK,QACnB,KAAK,eAAe,KAAK,cACzB,KAAK,WAAW,KAAK,UACrB,KAAK,KAAK,aAAa,KAAK,KAAK,YACjC,KAAK,KAAK,cAAc,KAAK,KAAK,aAClC,CAAC,CAAC,KAAK,KAAK,UAAU,cAAc,KAAK,KAAK,QAAQ,CAC1D;AACA,KAAK,cAAc;AAOnB,IAAa,iBAAyC,UAAU;CAC9D,MAAM,OAAO,QAAQ;CACrB,OACE,oBAAC,uBAAD;EACE,WAAU;EACV,WAAW,oBAAO;EAClB,QAAQ,KAAK,SAAS;EAErB,UAAA,MAAM;CACc,CAAA;AAE3B"}
1
+ {"version":3,"file":"Item.mjs","names":["styles"],"sources":["../../../../../../../../../../../src/components/List/components/Items/components/Item/Item.tsx"],"sourcesContent":["import { useGridItemProps } from \"@/components/List/components/Items/components/Item/hooks/useGridItemProps\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type ListModel from \"@/components/List/model/List\";\nimport ItemsGridListItemView from \"@/views/ItemsGridListItemView\";\nimport { mergeRefs } from \"@react-aria/utils\";\nimport type { FC, PropsWithChildren, Ref } from \"react\";\nimport { memo, Suspense } from \"react\";\nimport type { Key } from \"react-aria-components\";\nimport styles from \"./Item.module.scss\";\nimport { ItemLoadingView } from \"./components/ItemLoadingView/ItemLoadingView\";\n\ninterface Props extends PropsWithChildren {\n id: Key;\n data: never;\n triggerRef?: Ref<HTMLDivElement>;\n list: ListModel<never>;\n isTile: boolean;\n}\n\nconst ItemImpl = (props: Props) => {\n const { id, data, triggerRef, list, isTile } = props;\n\n const itemView = list.itemView;\n\n const { gridItemProps, children } = useGridItemProps(props, list);\n\n if (!itemView) {\n return null;\n }\n\n const textValue = itemView.textValue ? itemView.textValue(data) : undefined;\n const href = itemView.href ? itemView.href(data) : undefined;\n const hasAction = !!gridItemProps.onAction || !!href;\n\n const existingRef = \"ref\" in gridItemProps ? gridItemProps.ref : undefined;\n const gridItemPropsWithRef = triggerRef\n ? { ...gridItemProps, ref: mergeRefs(existingRef, triggerRef) }\n : gridItemProps;\n\n return (\n <ItemsGridListItemView\n id={id}\n textValue={textValue}\n href={href}\n target={itemView.target}\n hasAction={hasAction}\n isTile={isTile}\n {...gridItemPropsWithRef}\n >\n <Suspense fallback={<ItemLoadingView />}>{children}</Suspense>\n </ItemsGridListItemView>\n );\n};\n\n// The list model is rebuilt on every render, so it cannot be compared by\n// identity — but everything an item renders from it can. Those closures come\n// from the consumer's own JSX and only change when the consumer re-renders,\n// so loading more still skips the re-render while parent state no longer\n// leaves an item frozen on the values it first saw.\nexport const Item = memo(\n ItemImpl,\n (prev, next) =>\n prev.id === next.id &&\n prev.data === next.data &&\n prev.triggerRef === next.triggerRef &&\n prev.isTile === next.isTile &&\n prev.list.onAction === next.list.onAction &&\n prev.list.accordion === next.list.accordion &&\n !!prev.list.itemView?.rendersSameAs(next.list.itemView),\n);\nItem.displayName = \"Item\";\n\ninterface ItemContainerProps extends PropsWithChildren {\n id?: Key;\n data?: never;\n}\n\nexport const ItemContainer: FC<ItemContainerProps> = (props) => {\n const list = useList();\n return (\n <ItemsGridListItemView\n textValue=\"-\"\n className={styles.item}\n isTile={list.viewMode.isTiles}\n >\n {props.children}\n </ItemsGridListItemView>\n );\n};\n\nexport default Item;\n"],"mappings":";;;;;;;;;;;AAmBA,IAAM,YAAY,UAAiB;CACjC,MAAM,EAAE,IAAI,MAAM,YAAY,MAAM,WAAW;CAE/C,MAAM,WAAW,KAAK;CAEtB,MAAM,EAAE,eAAe,aAAa,iBAAiB,OAAO,IAAI;CAEhE,IAAI,CAAC,UACH,OAAO;CAGT,MAAM,YAAY,SAAS,YAAY,SAAS,UAAU,IAAI,IAAI,KAAA;CAClE,MAAM,OAAO,SAAS,OAAO,SAAS,KAAK,IAAI,IAAI,KAAA;CACnD,MAAM,YAAY,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC;CAEhD,MAAM,cAAc,SAAS,gBAAgB,cAAc,MAAM,KAAA;CACjE,MAAM,uBAAuB,aACzB;EAAE,GAAG;EAAe,KAAK,UAAU,aAAa,UAAU;CAAE,IAC5D;CAEJ,OACE,oBAAC,uBAAD;EACM;EACO;EACL;EACN,QAAQ,SAAS;EACN;EACH;EACR,GAAI;EAEJ,UAAA,oBAAC,UAAD;GAAU,UAAU,oBAAC,iBAAD,CAAkB,CAAA;GAAI;EAAmB,CAAA;CACxC,CAAA;AAE3B;AAOA,IAAa,OAAO,KAClB,WACC,MAAM,SACL,KAAK,OAAO,KAAK,MACjB,KAAK,SAAS,KAAK,QACnB,KAAK,eAAe,KAAK,cACzB,KAAK,WAAW,KAAK,UACrB,KAAK,KAAK,aAAa,KAAK,KAAK,YACjC,KAAK,KAAK,cAAc,KAAK,KAAK,aAClC,CAAC,CAAC,KAAK,KAAK,UAAU,cAAc,KAAK,KAAK,QAAQ,CAC1D;AACA,KAAK,cAAc;AAOnB,IAAa,iBAAyC,UAAU;CAC9D,MAAM,OAAO,QAAQ;CACrB,OACE,oBAAC,uBAAD;EACE,WAAU;EACV,WAAWA,oBAAO;EAClB,QAAQ,KAAK,SAAS;EAErB,UAAA,MAAM;CACc,CAAA;AAE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionButton.mjs","names":[],"sources":["../../../../../../../../../../../../src/components/List/components/Items/components/Item/components/AccordionButton.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport {\n IconChevronDown,\n IconChevronUp,\n} from \"@/components/Icon/components/icons\";\nimport locales from \"../../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ButtonView from \"@/views/ButtonView\";\nimport styles from \"../../../../ListItemView/ListItemView.module.scss\";\n\ninterface Props extends PropsWithChildren {\n isExpanded: boolean;\n toggle: () => void;\n contentElementId: string;\n}\n\nexport const AccordionButton: FC<Props> = (props) => {\n const { isExpanded, toggle, children, contentElementId } = props;\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <>\n <ButtonView\n className={styles.action}\n tunnel={{\n id: \"button\",\n component: \"ListItemView\",\n }}\n variant=\"plain\"\n color=\"secondary\"\n onPress={toggle}\n aria-label={stringFormatter.format(\n \"toggleExpandButton.\" + (isExpanded ? \"collapse\" : \"expand\"),\n )}\n aria-controls={contentElementId}\n aria-expanded={isExpanded}\n >\n {isExpanded ? <IconChevronUp /> : <IconChevronDown />}\n </ButtonView>\n {isExpanded && children}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAgBA,IAAa,mBAA8B,UAAU;CACnD,MAAM,EAAE,YAAY,QAAQ,UAAU,qBAAqB;CAC3D,MAAM,kBAAkB,4BAA4B,kBAAS,MAAM;CAEnE,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,WAAW,4BAAO;EAClB,QAAQ;GACN,IAAI;GACJ,WAAW;EACb;EACA,SAAQ;EACR,OAAM;EACN,SAAS;EACT,cAAY,gBAAgB,OAC1B,yBAAyB,aAAa,aAAa,SACrD;EACA,iBAAe;EACf,iBAAe;EAEd,UAAA,aAAa,oBAAC,eAAD,CAAgB,CAAA,IAAI,oBAAC,iBAAD,CAAkB,CAAA;CAC1C,CAAA,GACX,cAAc,QACf,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"AccordionButton.mjs","names":["locales","_Fragment","styles"],"sources":["../../../../../../../../../../../../src/components/List/components/Items/components/Item/components/AccordionButton.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport {\n IconChevronDown,\n IconChevronUp,\n} from \"@/components/Icon/components/icons\";\nimport locales from \"../../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport ButtonView from \"@/views/ButtonView\";\nimport styles from \"../../../../ListItemView/ListItemView.module.scss\";\n\ninterface Props extends PropsWithChildren {\n isExpanded: boolean;\n toggle: () => void;\n contentElementId: string;\n}\n\nexport const AccordionButton: FC<Props> = (props) => {\n const { isExpanded, toggle, children, contentElementId } = props;\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <>\n <ButtonView\n className={styles.action}\n tunnel={{\n id: \"button\",\n component: \"ListItemView\",\n }}\n variant=\"plain\"\n color=\"secondary\"\n onPress={toggle}\n aria-label={stringFormatter.format(\n \"toggleExpandButton.\" + (isExpanded ? \"collapse\" : \"expand\"),\n )}\n aria-controls={contentElementId}\n aria-expanded={isExpanded}\n >\n {isExpanded ? <IconChevronUp /> : <IconChevronDown />}\n </ButtonView>\n {isExpanded && children}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAgBA,IAAa,mBAA8B,UAAU;CACnD,MAAM,EAAE,YAAY,QAAQ,UAAU,qBAAqB;CAC3D,MAAM,kBAAkB,4BAA4BA,kBAAS,MAAM;CAEnE,OACE,qBAAAC,UAAA,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,WAAWC,4BAAO;EAClB,QAAQ;GACN,IAAI;GACJ,WAAW;EACb;EACA,SAAQ;EACR,OAAM;EACN,SAAS;EACT,cAAY,gBAAgB,OAC1B,yBAAyB,aAAa,aAAa,SACrD;EACA,iBAAe;EACf,iBAAe;EAEd,UAAA,aAAa,oBAAC,eAAD,CAAgB,CAAA,IAAI,oBAAC,iBAAD,CAAkB,CAAA;CAC1C,CAAA,GACX,cAAc,QACf,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionsButton.mjs","names":[],"sources":["../../../../../../../../../../../../../src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport locales from \"../../../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { IconContextMenu } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\n\ninterface Props extends PropsWithChildren, PropsWithClassName {}\n\nexport const OptionsButton: FC<Props> = (props) => {\n const { className, children } = props;\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"plain\"\n color=\"dark\"\n className={className}\n aria-label={stringFormatter.format(\"options\")}\n tunnel={null}\n >\n <IconContextMenu />\n </ButtonView>\n {children}\n </ContextMenuTriggerView>\n );\n};\n\nexport default OptionsButton;\n"],"mappings":";;;;;;;;;AAUA,IAAa,iBAA4B,UAAU;CACjD,MAAM,EAAE,WAAW,aAAa;CAChC,MAAM,kBAAkB,4BAA4B,kBAAS,MAAM;CAEnE,OACE,qBAAC,wBAAD,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,SAAQ;EACR,OAAM;EACK;EACX,cAAY,gBAAgB,OAAO,SAAS;EAC5C,QAAQ;EAER,UAAA,oBAAC,iBAAD,CAAkB,CAAA;CACR,CAAA,GACX,QACqB,EAAA,CAAA;AAE5B"}
1
+ {"version":3,"file":"OptionsButton.mjs","names":["locales"],"sources":["../../../../../../../../../../../../../src/components/List/components/Items/components/Item/components/OptionsButton/OptionsButton.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport locales from \"../../../../../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport type { PropsWithClassName } from \"@/lib/types/props\";\nimport { IconContextMenu } from \"@/components/Icon/components/icons\";\nimport ButtonView from \"@/views/ButtonView\";\nimport ContextMenuTriggerView from \"@/views/ContextMenuTriggerView\";\n\ninterface Props extends PropsWithChildren, PropsWithClassName {}\n\nexport const OptionsButton: FC<Props> = (props) => {\n const { className, children } = props;\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <ContextMenuTriggerView>\n <ButtonView\n variant=\"plain\"\n color=\"dark\"\n className={className}\n aria-label={stringFormatter.format(\"options\")}\n tunnel={null}\n >\n <IconContextMenu />\n </ButtonView>\n {children}\n </ContextMenuTriggerView>\n );\n};\n\nexport default OptionsButton;\n"],"mappings":";;;;;;;;;AAUA,IAAa,iBAA4B,UAAU;CACjD,MAAM,EAAE,WAAW,aAAa;CAChC,MAAM,kBAAkB,4BAA4BA,kBAAS,MAAM;CAEnE,OACE,qBAAC,wBAAD,EAAA,UAAA,CACE,oBAAC,YAAD;EACE,SAAQ;EACR,OAAM;EACK;EACX,cAAY,gBAAgB,OAAO,SAAS;EAC5C,QAAQ;EAER,UAAA,oBAAC,iBAAD,CAAkB,CAAA;CACR,CAAA,GACX,QACqB,EAAA,CAAA;AAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridListItem.mjs","names":[],"sources":["../../../../../../../../../../../src/components/List/components/Items/views/GridListItem/GridListItem.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport type { FC } from \"react\";\nimport styles from \"@/components/List/components/Items/components/Item/Item.module.scss\";\nimport clsx from \"clsx\";\nimport { useLinkProps } from \"@react-aria/utils\";\n\nexport type GridListItemProps = Aria.GridListItemProps<never> & {\n hasAction?: boolean;\n isTile?: boolean;\n};\n\n/** @flr-generate all */\nexport const GridListItem: FC<GridListItemProps> = (props) => {\n const { hasAction, isTile, children, ...restProps } = props;\n\n // React Aria turns `href` into data attributes and navigates on press, so\n // the row itself is always a `div`. Overlay a real anchor to give the browser\n // back its own link affordances: context menu, middle-click, modifier-click.\n const linkProps = useLinkProps(props);\n\n const linkOverlay = linkProps.href ? (\n // The row keeps owning activation and the accessible semantics. The anchor\n // must stay untabbable — React Aria treats a tabbable descendant as\n // interactive content and would stop the row's own press — and out of the\n // accessibility tree, so screen readers announce the row unchanged.\n <a\n {...linkProps}\n aria-hidden\n className={styles.link}\n draggable={false}\n tabIndex={-1}\n />\n ) : null;\n\n return (\n <Aria.GridListItem\n {...restProps}\n className={(renderProps) =>\n clsx(\n styles.item,\n hasAction && styles.hasAction,\n isTile && styles.tile,\n renderProps.isSelected && styles.isSelected,\n )\n }\n >\n {(renderProps) => (\n <>\n {typeof children === \"function\" ? children(renderProps) : children}\n {linkOverlay}\n </>\n )}\n </Aria.GridListItem>\n );\n};\n\nexport default GridListItem;\n"],"mappings":";;;;;;;;;AAYA,IAAa,gBAAuC,UAAU;CAC5D,MAAM,EAAE,WAAW,QAAQ,UAAU,GAAG,cAAc;CAKtD,MAAM,YAAY,aAAa,KAAK;CAEpC,MAAM,cAAc,UAAU,OAK5B,oBAAC,KAAD;EACE,GAAI;EACJ,eAAA;EACA,WAAW,oBAAO;EAClB,WAAW;EACX,UAAU;CACX,CAAA,IACC;CAEJ,OACE,oBAAC,KAAK,cAAN;EACE,GAAI;EACJ,YAAY,gBACV,KACE,oBAAO,MACP,aAAa,oBAAO,WACpB,UAAU,oBAAO,MACjB,YAAY,cAAc,oBAAO,UACnC;EAGA,WAAA,gBACA,qBAAA,UAAA,EAAA,UAAA,CACG,OAAO,aAAa,aAAa,SAAS,WAAW,IAAI,UACzD,WACD,EAAA,CAAA;CAEa,CAAA;AAEvB"}
1
+ {"version":3,"file":"GridListItem.mjs","names":["styles","_Fragment"],"sources":["../../../../../../../../../../../src/components/List/components/Items/views/GridListItem/GridListItem.tsx"],"sourcesContent":["import * as Aria from \"react-aria-components\";\nimport type { FC } from \"react\";\nimport styles from \"@/components/List/components/Items/components/Item/Item.module.scss\";\nimport clsx from \"clsx\";\nimport { useLinkProps } from \"@react-aria/utils\";\n\nexport type GridListItemProps = Aria.GridListItemProps<never> & {\n hasAction?: boolean;\n isTile?: boolean;\n};\n\n/** @flr-generate all */\nexport const GridListItem: FC<GridListItemProps> = (props) => {\n const { hasAction, isTile, children, ...restProps } = props;\n\n // React Aria turns `href` into data attributes and navigates on press, so\n // the row itself is always a `div`. Overlay a real anchor to give the browser\n // back its own link affordances: context menu, middle-click, modifier-click.\n const linkProps = useLinkProps(props);\n\n const linkOverlay = linkProps.href ? (\n // The row keeps owning activation and the accessible semantics. The anchor\n // must stay untabbable — React Aria treats a tabbable descendant as\n // interactive content and would stop the row's own press — and out of the\n // accessibility tree, so screen readers announce the row unchanged.\n <a\n {...linkProps}\n aria-hidden\n className={styles.link}\n draggable={false}\n tabIndex={-1}\n />\n ) : null;\n\n return (\n <Aria.GridListItem\n {...restProps}\n className={(renderProps) =>\n clsx(\n styles.item,\n hasAction && styles.hasAction,\n isTile && styles.tile,\n renderProps.isSelected && styles.isSelected,\n )\n }\n >\n {(renderProps) => (\n <>\n {typeof children === \"function\" ? children(renderProps) : children}\n {linkOverlay}\n </>\n )}\n </Aria.GridListItem>\n );\n};\n\nexport default GridListItem;\n"],"mappings":";;;;;;;;;AAYA,IAAa,gBAAuC,UAAU;CAC5D,MAAM,EAAE,WAAW,QAAQ,UAAU,GAAG,cAAc;CAKtD,MAAM,YAAY,aAAa,KAAK;CAEpC,MAAM,cAAc,UAAU,OAK5B,oBAAC,KAAD;EACE,GAAI;EACJ,eAAA;EACA,WAAWA,oBAAO;EAClB,WAAW;EACX,UAAU;CACX,CAAA,IACC;CAEJ,OACE,oBAAC,KAAK,cAAN;EACE,GAAI;EACJ,YAAY,gBACV,KACEA,oBAAO,MACP,aAAaA,oBAAO,WACpB,UAAUA,oBAAO,MACjB,YAAY,cAAcA,oBAAO,UACnC;EAGA,WAAA,gBACA,qBAAAC,UAAA,EAAA,UAAA,CACG,OAAO,aAAa,aAAa,SAAS,WAAW,IAAI,UACzD,WACD,EAAA,CAAA;CAEa,CAAA;AAEvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemView.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/ListItemView/ListItemView.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListItemView.module.scss\";\nimport ListItemViewContentView from \"@/views/ListItemViewContentView\";\nimport {\n dynamic,\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { useList } from \"@/components/List\";\nimport type { ColumnLayoutProps } from \"@/components/ColumnLayout\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport type ListItemViewProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\">;\n\nexport const ListItemView = flowComponent(\n \"ListItemView\",\n (props: ListItemViewProps) => {\n const { children, s, m, l } = props;\n const list = useList();\n\n const buttonTunnel = {\n id: \"button\",\n component: \"ListItemView\",\n } as const;\n\n const propsContext: PropsContext = {\n ...overlayTriggersTunneledTo(buttonTunnel),\n ContextMenu: {\n tunnel: buttonTunnel,\n placement: \"bottom right\",\n wrapWith: <OptionsButton className={styles.action} />,\n },\n Button: {\n tunnel: buttonTunnel,\n size: dynamic(() => (useList().viewMode.isTiles ? \"s\" : \"m\")),\n },\n ActionGroup: {\n tunnel: buttonTunnel,\n Button: {\n tunnel: null,\n },\n },\n Avatar: {\n tunnel: {\n id: \"avatar\",\n component: \"ListItemView\",\n },\n },\n Heading: {\n tunnel: {\n id: \"title\",\n component: \"ListItemView\",\n },\n },\n Text: {\n tunnel: {\n id: \"text\",\n component: \"ListItemView\",\n },\n },\n Content: {\n tunnel: dynamic((p) =>\n p.slot === \"bottom\"\n ? {\n id: \"bottom\",\n component: \"ListItemView\",\n }\n : undefined,\n ),\n },\n Checkbox: {\n tunnel: {\n id: \"checkbox\",\n component: \"ListItemView\",\n },\n },\n };\n\n return (\n <ListItemViewContentView\n viewMode={list.viewMode.value}\n title={<UiComponentTunnelExit id=\"title\" component=\"ListItemView\" />}\n avatar={<UiComponentTunnelExit id=\"avatar\" component=\"ListItemView\" />}\n button={<UiComponentTunnelExit id=\"button\" component=\"ListItemView\" />}\n subTitle={<UiComponentTunnelExit id=\"text\" component=\"ListItemView\" />}\n bottom={<UiComponentTunnelExit id=\"bottom\" component=\"ListItemView\" />}\n checkbox={\n <UiComponentTunnelExit id=\"checkbox\" component=\"ListItemView\" />\n }\n s={s}\n m={m}\n l={l}\n >\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </ListItemViewContentView>\n );\n },\n {\n type: \"layout\",\n },\n);\n\nexport default ListItemView;\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAa,eAAe,cAC1B,iBACC,UAA6B;CAC5B,MAAM,EAAE,UAAU,GAAG,GAAG,MAAM;CAC9B,MAAM,OAAO,QAAQ;CAErB,MAAM,eAAe;EACnB,IAAI;EACJ,WAAW;CACb;CAEA,MAAM,eAA6B;EACjC,GAAG,0BAA0B,YAAY;EACzC,aAAa;GACX,QAAQ;GACR,WAAW;GACX,UAAU,oBAAC,eAAD,EAAe,WAAW,4BAAO,OAAS,CAAA;EACtD;EACA,QAAQ;GACN,QAAQ;GACR,MAAM,cAAe,QAAQ,CAAC,CAAC,SAAS,UAAU,MAAM,GAAI;EAC9D;EACA,aAAa;GACX,QAAQ;GACR,QAAQ,EACN,QAAQ,KACV;EACF;EACA,QAAQ,EACN,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,SAAS,EACP,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,MAAM,EACJ,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,SAAS,EACP,QAAQ,SAAS,MACf,EAAE,SAAS,WACP;GACE,IAAI;GACJ,WAAW;EACb,IACA,KAAA,CACN,EACF;EACA,UAAU,EACR,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;CACF;CAEA,OACE,oBAAC,yBAAD;EACE,UAAU,KAAK,SAAS;EACxB,OAAO,oBAAC,uBAAD;GAAuB,IAAG;GAAQ,WAAU;EAAgB,CAAA;EACnE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,UAAU,oBAAC,uBAAD;GAAuB,IAAG;GAAO,WAAU;EAAgB,CAAA;EACrE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,UACE,oBAAC,uBAAD;GAAuB,IAAG;GAAW,WAAU;EAAgB,CAAA;EAE9D;EACA;EACA;EAEH,UAAA,oBAAC,sBAAD;GAAsB,OAAO;GAC1B;EACmB,CAAA;CACC,CAAA;AAE7B,GACA,EACE,MAAM,SACR,CACF"}
1
+ {"version":3,"file":"ListItemView.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/List/components/ListItemView/ListItemView.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListItemView.module.scss\";\nimport ListItemViewContentView from \"@/views/ListItemViewContentView\";\nimport {\n dynamic,\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport { OptionsButton } from \"@/components/List/components/Items/components/Item/components/OptionsButton\";\nimport { useList } from \"@/components/List\";\nimport type { ColumnLayoutProps } from \"@/components/ColumnLayout\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\n\nexport type ListItemViewProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\">;\n\nexport const ListItemView = flowComponent(\n \"ListItemView\",\n (props: ListItemViewProps) => {\n const { children, s, m, l } = props;\n const list = useList();\n\n const buttonTunnel = {\n id: \"button\",\n component: \"ListItemView\",\n } as const;\n\n const propsContext: PropsContext = {\n ...overlayTriggersTunneledTo(buttonTunnel),\n ContextMenu: {\n tunnel: buttonTunnel,\n placement: \"bottom right\",\n wrapWith: <OptionsButton className={styles.action} />,\n },\n Button: {\n tunnel: buttonTunnel,\n size: dynamic(() => (useList().viewMode.isTiles ? \"s\" : \"m\")),\n },\n ActionGroup: {\n tunnel: buttonTunnel,\n Button: {\n tunnel: null,\n },\n },\n Avatar: {\n tunnel: {\n id: \"avatar\",\n component: \"ListItemView\",\n },\n },\n Heading: {\n tunnel: {\n id: \"title\",\n component: \"ListItemView\",\n },\n },\n Text: {\n tunnel: {\n id: \"text\",\n component: \"ListItemView\",\n },\n },\n Content: {\n tunnel: dynamic((p) =>\n p.slot === \"bottom\"\n ? {\n id: \"bottom\",\n component: \"ListItemView\",\n }\n : undefined,\n ),\n },\n Checkbox: {\n tunnel: {\n id: \"checkbox\",\n component: \"ListItemView\",\n },\n },\n };\n\n return (\n <ListItemViewContentView\n viewMode={list.viewMode.value}\n title={<UiComponentTunnelExit id=\"title\" component=\"ListItemView\" />}\n avatar={<UiComponentTunnelExit id=\"avatar\" component=\"ListItemView\" />}\n button={<UiComponentTunnelExit id=\"button\" component=\"ListItemView\" />}\n subTitle={<UiComponentTunnelExit id=\"text\" component=\"ListItemView\" />}\n bottom={<UiComponentTunnelExit id=\"bottom\" component=\"ListItemView\" />}\n checkbox={\n <UiComponentTunnelExit id=\"checkbox\" component=\"ListItemView\" />\n }\n s={s}\n m={m}\n l={l}\n >\n <PropsContextProvider props={propsContext}>\n {children}\n </PropsContextProvider>\n </ListItemViewContentView>\n );\n },\n {\n type: \"layout\",\n },\n);\n\nexport default ListItemView;\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAa,eAAe,cAC1B,iBACC,UAA6B;CAC5B,MAAM,EAAE,UAAU,GAAG,GAAG,MAAM;CAC9B,MAAM,OAAO,QAAQ;CAErB,MAAM,eAAe;EACnB,IAAI;EACJ,WAAW;CACb;CAEA,MAAM,eAA6B;EACjC,GAAG,0BAA0B,YAAY;EACzC,aAAa;GACX,QAAQ;GACR,WAAW;GACX,UAAU,oBAAC,eAAD,EAAe,WAAWA,4BAAO,OAAS,CAAA;EACtD;EACA,QAAQ;GACN,QAAQ;GACR,MAAM,cAAe,QAAQ,CAAC,CAAC,SAAS,UAAU,MAAM,GAAI;EAC9D;EACA,aAAa;GACX,QAAQ;GACR,QAAQ,EACN,QAAQ,KACV;EACF;EACA,QAAQ,EACN,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,SAAS,EACP,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,MAAM,EACJ,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;EACA,SAAS,EACP,QAAQ,SAAS,MACf,EAAE,SAAS,WACP;GACE,IAAI;GACJ,WAAW;EACb,IACA,KAAA,CACN,EACF;EACA,UAAU,EACR,QAAQ;GACN,IAAI;GACJ,WAAW;EACb,EACF;CACF;CAEA,OACE,oBAAC,yBAAD;EACE,UAAU,KAAK,SAAS;EACxB,OAAO,oBAAC,uBAAD;GAAuB,IAAG;GAAQ,WAAU;EAAgB,CAAA;EACnE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,UAAU,oBAAC,uBAAD;GAAuB,IAAG;GAAO,WAAU;EAAgB,CAAA;EACrE,QAAQ,oBAAC,uBAAD;GAAuB,IAAG;GAAS,WAAU;EAAgB,CAAA;EACrE,UACE,oBAAC,uBAAD;GAAuB,IAAG;GAAW,WAAU;EAAgB,CAAA;EAE9D;EACA;EACA;EAEH,UAAA,oBAAC,sBAAD;GAAsB,OAAO;GAC1B;EACmB,CAAA;CACC,CAAA;AAE7B,GACA,EACE,MAAM,SACR,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemView.module.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/ListItemView/ListItemView.module.scss"],"sourcesContent":[".view {\n display: flex;\n flex-direction: column;\n\n .checkboxContainer {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n\n &:empty {\n display: none;\n }\n }\n\n .content {\n min-width: 0;\n display: flex;\n gap: var(--list-item--spacing);\n flex-grow: 1;\n flex-wrap: wrap;\n }\n\n .topContent {\n overflow-wrap: anywhere;\n display: flex;\n }\n\n .bottomContent {\n width: 100%;\n overflow-wrap: anywhere;\n display: flex;\n flex-direction: column;\n }\n\n .heading {\n color: var(--text--color--default);\n overflow-wrap: anywhere;\n }\n\n .header {\n overflow-wrap: anywhere;\n display: flex;\n gap: var(--list-item--avatar-to-title-spacing);\n max-width: 100%;\n }\n\n .subTitle {\n font-size: var(--list-item--subtitle-font-size);\n\n .text:not(:last-child)::after {\n content: \"–\";\n display: inline-block;\n margin: 0 var(--size-rem--s);\n }\n }\n\n .badge {\n max-width: 100%;\n }\n\n &.listView {\n padding: var(--list-item--padding);\n gap: var(--list-item--spacing);\n\n .columnLayout {\n flex-grow: 1;\n\n > :global(.flow--column-layout) {\n flex-grow: 1;\n align-items: center;\n }\n }\n\n .contentWrapper {\n display: flex;\n gap: var(--list-item--spacing);\n justify-content: space-between;\n flex-grow: 1;\n align-items: flex-start;\n }\n\n .content {\n align-items: center;\n align-self: center;\n max-width: 100%;\n }\n\n .title {\n max-width: 100%;\n min-width: 0;\n }\n\n .action {\n margin-inline-start: auto;\n\n :global(.flow--button) {\n margin-inline-end: 0;\n }\n }\n\n .header {\n order: 0;\n flex-grow: 1;\n align-items: center;\n\n &:empty,\n .subTitle:empty {\n display: none;\n }\n\n .avatar,\n .checkboxContainer {\n align-self: start;\n }\n\n .checkboxContainer {\n height: var(--avatar--size--m);\n }\n }\n\n &:has(.subTitle:not(:empty)) {\n .action,\n .avatar,\n .checkboxContainer {\n margin-top: var(--size-px--xxs);\n }\n }\n\n .topContent {\n order: 1;\n }\n\n :global(.flow--heading--heading-content) {\n max-width: 100%;\n }\n }\n\n &.tileView {\n gap: var(--list-item--padding);\n border-color: var(--list-item--border-color);\n border-width: var(--list-item--border-width);\n border-style: var(--list-item--border-style);\n border-radius: var(--list-item--corner-radius);\n align-content: flex-start;\n height: 100%;\n position: relative;\n overflow: hidden;\n\n .content {\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n padding-inline: var(--list-item--padding);\n padding-bottom: var(--list-item--padding);\n width: 100%;\n }\n\n .avatarContainer {\n width: 100%;\n border-bottom: var(--list-item--border-width)\n var(--list-item--border-style) var(--list-item--border-color);\n aspect-ratio: 16 / 9;\n\n // A consumer child inside `Avatar` — Flow `Image` or a bare `<img>`.\n // stylelint-disable-next-line selector-max-type -- bare `<img>` has no class\n img {\n overflow-clip-margin: unset;\n aspect-ratio: 16 / 9;\n }\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n border-radius: 0;\n\n :global(.flow--avatar--icon) {\n width: var(--size-px--xxl);\n height: var(--size-px--xxl);\n }\n\n :global(.flow--avatar--initials) {\n font-size: var(--size-px--xxl);\n }\n }\n\n .checkboxContainer {\n position: absolute;\n top: var(--list-item--padding);\n inset-inline-start: var(--list-item--padding);\n background-color: var(--list-item--checkbox-background-color);\n border-radius: var(--list-item--checkbox-corner-radius);\n\n :global(.flow--checkbox .flow--checkbox--icon) {\n color: var(--list-item--checkbox-color);\n padding: var(--size-px--xxxs);\n }\n }\n\n .title {\n width: 100%;\n min-width: 0;\n\n :global(.flow--heading--heading-text-spacer) {\n display: none;\n }\n\n :global(.flow--heading--heading-content) {\n position: absolute;\n top: var(--list-item--padding);\n inset-inline: var(--list-item--padding);\n display: flex;\n flex-wrap: wrap;\n gap: var(--heading--icon-to-text-spacing);\n justify-content: end;\n }\n\n :global(.flow--heading--heading-content-item):not(:last-child) {\n margin-inline-end: 0;\n }\n }\n\n &:has(.checkboxContainer:not(:empty)) {\n :global(.flow--heading--heading-content) {\n inset-inline-start: calc(var(--list-item--padding) * 2 + var(--icon--size--m));\n }\n }\n\n .topContent,\n .header {\n width: 100%;\n }\n\n .action {\n align-self: start;\n }\n\n .bottomContent {\n margin-top: auto;\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ListItemView.module.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/ListItemView/ListItemView.module.scss"],"sourcesContent":[".view {\n display: flex;\n flex-direction: column;\n\n .checkboxContainer {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n\n &:empty {\n display: none;\n }\n }\n\n .content {\n min-width: 0;\n display: flex;\n gap: var(--list-item--spacing);\n flex-grow: 1;\n flex-wrap: wrap;\n }\n\n .topContent {\n overflow-wrap: anywhere;\n display: flex;\n }\n\n .bottomContent {\n width: 100%;\n overflow-wrap: anywhere;\n display: flex;\n flex-direction: column;\n }\n\n .heading {\n color: var(--text--color--default);\n overflow-wrap: anywhere;\n }\n\n .header {\n overflow-wrap: anywhere;\n display: flex;\n gap: var(--list-item--avatar-to-title-spacing);\n max-width: 100%;\n }\n\n .subTitle {\n font-size: var(--list-item--subtitle-font-size);\n\n .text:not(:last-child)::after {\n content: \"–\";\n display: inline-block;\n margin: 0 var(--size-rem--s);\n }\n }\n\n .badge {\n max-width: 100%;\n }\n\n &.listView {\n padding: var(--list-item--padding);\n gap: var(--list-item--spacing);\n\n .columnLayout {\n flex-grow: 1;\n\n > :global(.flow--column-layout) {\n flex-grow: 1;\n align-items: center;\n }\n }\n\n .contentWrapper {\n display: flex;\n gap: var(--list-item--spacing);\n justify-content: space-between;\n flex-grow: 1;\n align-items: flex-start;\n }\n\n .content {\n align-items: center;\n align-self: center;\n max-width: 100%;\n }\n\n .title {\n max-width: 100%;\n min-width: 0;\n }\n\n .action {\n margin-inline-start: auto;\n\n :global(.flow--button) {\n margin-inline-end: 0;\n }\n }\n\n .header {\n order: 0;\n flex-grow: 1;\n align-items: center;\n\n &:empty,\n .subTitle:empty {\n display: none;\n }\n\n .avatar,\n .checkboxContainer {\n align-self: start;\n }\n\n .checkboxContainer {\n height: var(--avatar--size--m);\n }\n }\n\n &:has(.subTitle:not(:empty)) {\n .action,\n .avatar,\n .checkboxContainer {\n margin-top: var(--size-px--xxs);\n }\n }\n\n .topContent {\n order: 1;\n }\n\n :global(.flow--heading--heading-content) {\n max-width: 100%;\n }\n }\n\n &.tileView {\n gap: var(--list-item--padding);\n border-color: var(--list-item--border-color);\n border-width: var(--list-item--border-width);\n border-style: var(--list-item--border-style);\n border-radius: var(--list-item--corner-radius);\n align-content: flex-start;\n height: 100%;\n position: relative;\n overflow: hidden;\n\n .content {\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n padding-inline: var(--list-item--padding);\n padding-bottom: var(--list-item--padding);\n width: 100%;\n }\n\n .avatarContainer {\n width: 100%;\n border-bottom: var(--list-item--border-width)\n var(--list-item--border-style) var(--list-item--border-color);\n aspect-ratio: 16 / 9;\n\n // A consumer child inside `Avatar` — Flow `Image` or a bare `<img>`.\n // stylelint-disable-next-line selector-max-type -- bare `<img>` has no class\n img {\n overflow-clip-margin: unset;\n aspect-ratio: 16 / 9;\n border-radius: 0;\n }\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n border-radius: 0;\n\n :global(.flow--avatar--icon) {\n width: var(--size-px--xxl);\n height: var(--size-px--xxl);\n }\n\n :global(.flow--avatar--initials) {\n font-size: var(--size-px--xxl);\n }\n }\n\n .checkboxContainer {\n position: absolute;\n top: var(--list-item--padding);\n inset-inline-start: var(--list-item--padding);\n background-color: var(--list-item--checkbox-background-color);\n border-radius: var(--list-item--checkbox-corner-radius);\n\n :global(.flow--checkbox .flow--checkbox--icon) {\n color: var(--list-item--checkbox-color);\n padding: var(--size-px--xxxs);\n }\n }\n\n .title {\n width: 100%;\n min-width: 0;\n\n :global(.flow--heading--heading-text-spacer) {\n display: none;\n }\n\n :global(.flow--heading--heading-content) {\n position: absolute;\n top: var(--list-item--padding);\n inset-inline: var(--list-item--padding);\n display: flex;\n flex-wrap: wrap;\n gap: var(--heading--icon-to-text-spacing);\n justify-content: end;\n }\n\n :global(.flow--heading--heading-content-item):not(:last-child) {\n margin-inline-end: 0;\n }\n }\n\n &:has(.checkboxContainer:not(:empty)) {\n :global(.flow--heading--heading-content) {\n inset-inline-start: calc(var(--list-item--padding) * 2 + var(--icon--size--m));\n }\n }\n\n .topContent,\n .header {\n width: 100%;\n }\n\n .action {\n align-self: start;\n }\n\n .bottomContent {\n margin-top: auto;\n }\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemViewContent.mjs","names":[],"sources":["../../../../../../../../../../../src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\nimport styles from \"../../ListItemView.module.scss\";\nimport itemStyles from \"@/components/List/components/Items/components/Item/Item.module.scss\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport clsx from \"clsx\";\nimport {\n ColumnLayout,\n type ColumnLayoutProps,\n} from \"@/components/ColumnLayout\";\n\nexport type ListItemViewContentProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\"> & {\n title?: ReactNode;\n subTitle?: ReactNode;\n avatar?: ReactNode;\n button?: ReactNode;\n bottom?: ReactNode;\n checkbox?: ReactNode;\n viewMode?: ListViewMode;\n };\n\n/*\n * The bottom content also carries Item's own `bottomContent` class.\n * Item.module.scss uses it to exclude this area from the item's hover and\n * pressed background — it has its own interactive elements.\n */\nconst getStyleForContentSlot = (slot?: string) =>\n slot === \"bottom\"\n ? clsx(styles.bottomContent, itemStyles.bottomContent)\n : styles.topContent;\n\n/** @flr-generate all */\nexport const ListItemViewContent = (props: ListItemViewContentProps) => {\n const {\n children,\n avatar,\n title,\n subTitle,\n button,\n bottom,\n checkbox,\n viewMode,\n s,\n m,\n l,\n } = props;\n\n const contentProps: Record<string, ComponentProps<\"div\">> = {\n bottom: {\n onMouseDown: (e) => e.stopPropagation(),\n onPointerDown: (e) => e.stopPropagation(),\n },\n };\n\n const propsContext: PropsContext = {\n ContextMenu: {\n placement: \"bottom end\",\n },\n Button: {\n className: styles.action,\n },\n ActionGroup: {\n className: styles.action,\n },\n Content: {\n className: dynamic((p) => getStyleForContentSlot(p.slot)),\n onMouseDown: dynamic((p) => contentProps[p.slot ?? \"top\"]?.onMouseDown),\n onPointerDown: dynamic(\n (p) => contentProps[p.slot ?? \"top\"]?.onPointerDown,\n ),\n },\n Avatar: {\n className: styles.avatar,\n },\n Heading: {\n className: styles.heading,\n level: 5,\n size: \"xs\",\n elementType: \"span\",\n Badge: { className: styles.badge },\n AlertBadge: { className: styles.badge },\n },\n Text: {\n className: styles.text,\n },\n Link: {\n unstyled: true,\n },\n };\n\n const className = clsx(\n styles.view,\n viewMode === \"tiles\" ? styles.tileView : styles.listView,\n );\n\n const header = (\n <div className={styles.header}>\n <div className={styles.checkboxContainer}>{checkbox}</div>\n {avatar}\n <div className={styles.title}>\n {title}\n <div className={styles.subTitle}>{subTitle}</div>\n </div>\n </div>\n );\n\n const innerListContent = (\n <>\n {header}\n {children}\n </>\n );\n\n const listColumnsContentView = (\n <ColumnLayout\n s={s}\n m={m}\n l={l}\n className={clsx(styles.content, styles.columnLayout)}\n >\n {innerListContent}\n </ColumnLayout>\n );\n\n const listDefaultContentView = (\n <div className={styles.content}>{innerListContent}</div>\n );\n\n const listView = (\n <>\n <div className={styles.contentWrapper}>\n {s || m || l ? listColumnsContentView : listDefaultContentView}\n {button}\n </div>\n {bottom}\n </>\n );\n\n const tilesViews = (\n <>\n <div className={styles.avatarContainer}>{avatar}</div>\n <div className={styles.content}>\n <div className={styles.header}>\n <div className={styles.checkboxContainer}>{checkbox}</div>\n <div className={styles.title}>\n {title}\n <div className={styles.subTitle}>{subTitle}</div>\n </div>\n {button}\n </div>\n {children}\n {bottom}\n </div>\n </>\n );\n\n return (\n <div className={className}>\n <PropsContextProvider props={propsContext}>\n {viewMode === \"list\" && listView}\n {viewMode === \"tiles\" && tilesViews}\n </PropsContextProvider>\n </div>\n );\n};\n\nexport default ListItemViewContent;\n"],"mappings":";;;;;;;;;;AA+BA,IAAM,0BAA0B,SAC9B,SAAS,WACL,KAAK,4BAAO,eAAe,oBAAW,aAAa,IACnD,4BAAO;;AAGb,IAAa,uBAAuB,UAAoC;CACtE,MAAM,EACJ,UACA,QACA,OACA,UACA,QACA,QACA,UACA,UACA,GACA,GACA,MACE;CAEJ,MAAM,eAAsD,EAC1D,QAAQ;EACN,cAAc,MAAM,EAAE,gBAAgB;EACtC,gBAAgB,MAAM,EAAE,gBAAgB;CAC1C,EACF;CAEA,MAAM,eAA6B;EACjC,aAAa,EACX,WAAW,aACb;EACA,QAAQ,EACN,WAAW,4BAAO,OACpB;EACA,aAAa,EACX,WAAW,4BAAO,OACpB;EACA,SAAS;GACP,WAAW,SAAS,MAAM,uBAAuB,EAAE,IAAI,CAAC;GACxD,aAAa,SAAS,MAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,WAAW;GACtE,eAAe,SACZ,MAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,aACxC;EACF;EACA,QAAQ,EACN,WAAW,4BAAO,OACpB;EACA,SAAS;GACP,WAAW,4BAAO;GAClB,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO,EAAE,WAAW,4BAAO,MAAM;GACjC,YAAY,EAAE,WAAW,4BAAO,MAAM;EACxC;EACA,MAAM,EACJ,WAAW,4BAAO,KACpB;EACA,MAAM,EACJ,UAAU,KACZ;CACF;CAEA,MAAM,YAAY,KAChB,4BAAO,MACP,aAAa,UAAU,4BAAO,WAAW,4BAAO,QAClD;CAEA,MAAM,SACJ,qBAAC,OAAD;EAAK,WAAW,4BAAO;EAAvB,UAAA;GACE,oBAAC,OAAD;IAAK,WAAW,4BAAO;IAAoB,UAAA;GAAc,CAAA;GACxD;GACD,qBAAC,OAAD;IAAK,WAAW,4BAAO;IAAvB,UAAA,CACG,OACD,oBAAC,OAAD;KAAK,WAAW,4BAAO;KAAW,UAAA;IAAc,CAAA,CAC7C;;EACF;;CAGP,MAAM,mBACJ,qBAAA,UAAA,EAAA,UAAA,CACG,QACA,QACD,EAAA,CAAA;CAGJ,MAAM,yBACJ,oBAAC,cAAD;EACK;EACA;EACA;EACH,WAAW,KAAK,4BAAO,SAAS,4BAAO,YAAY;EAElD,UAAA;CACW,CAAA;CAGhB,MAAM,yBACJ,oBAAC,OAAD;EAAK,WAAW,4BAAO;EAAU,UAAA;CAAsB,CAAA;CAGzD,MAAM,WACJ,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EAAK,WAAW,4BAAO;EAAvB,UAAA,CACG,KAAK,KAAK,IAAI,yBAAyB,wBACvC,MACE;CACJ,CAAA,GAAA,MACD,EAAA,CAAA;CAGJ,MAAM,aACJ,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EAAK,WAAW,4BAAO;EAAkB,UAAA;CAAY,CAAA,GACrD,qBAAC,OAAD;EAAK,WAAW,4BAAO;EAAvB,UAAA;GACE,qBAAC,OAAD;IAAK,WAAW,4BAAO;IAAvB,UAAA;KACE,oBAAC,OAAD;MAAK,WAAW,4BAAO;MAAoB,UAAA;KAAc,CAAA;KACzD,qBAAC,OAAD;MAAK,WAAW,4BAAO;MAAvB,UAAA,CACG,OACD,oBAAC,OAAD;OAAK,WAAW,4BAAO;OAAW,UAAA;MAAc,CAAA,CAC7C;;KACJ;IACE;;GACJ;GACA;EACE;CACL,CAAA,CAAA,EAAA,CAAA;CAGJ,OACE,oBAAC,OAAD;EAAgB;EACd,UAAA,qBAAC,sBAAD;GAAsB,OAAO;GAA7B,UAAA,CACG,aAAa,UAAU,UACvB,aAAa,WAAW,UACL;;CACnB,CAAA;AAET"}
1
+ {"version":3,"file":"ListItemViewContent.mjs","names":["styles","itemStyles","_Fragment"],"sources":["../../../../../../../../../../../src/components/List/components/ListItemView/components/ListItemViewContent/ListItemViewContent.tsx"],"sourcesContent":["import type { ComponentProps, PropsWithChildren, ReactNode } from \"react\";\nimport styles from \"../../ListItemView.module.scss\";\nimport itemStyles from \"@/components/List/components/Items/components/Item/Item.module.scss\";\nimport {\n dynamic,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\nimport type { ListViewMode } from \"@/components/List/model/types\";\nimport clsx from \"clsx\";\nimport {\n ColumnLayout,\n type ColumnLayoutProps,\n} from \"@/components/ColumnLayout\";\n\nexport type ListItemViewContentProps = PropsWithChildren &\n Pick<ColumnLayoutProps, \"s\" | \"m\" | \"l\"> & {\n title?: ReactNode;\n subTitle?: ReactNode;\n avatar?: ReactNode;\n button?: ReactNode;\n bottom?: ReactNode;\n checkbox?: ReactNode;\n viewMode?: ListViewMode;\n };\n\n/*\n * The bottom content also carries Item's own `bottomContent` class.\n * Item.module.scss uses it to exclude this area from the item's hover and\n * pressed background — it has its own interactive elements.\n */\nconst getStyleForContentSlot = (slot?: string) =>\n slot === \"bottom\"\n ? clsx(styles.bottomContent, itemStyles.bottomContent)\n : styles.topContent;\n\n/** @flr-generate all */\nexport const ListItemViewContent = (props: ListItemViewContentProps) => {\n const {\n children,\n avatar,\n title,\n subTitle,\n button,\n bottom,\n checkbox,\n viewMode,\n s,\n m,\n l,\n } = props;\n\n const contentProps: Record<string, ComponentProps<\"div\">> = {\n bottom: {\n onMouseDown: (e) => e.stopPropagation(),\n onPointerDown: (e) => e.stopPropagation(),\n },\n };\n\n const propsContext: PropsContext = {\n ContextMenu: {\n placement: \"bottom end\",\n },\n Button: {\n className: styles.action,\n },\n ActionGroup: {\n className: styles.action,\n },\n Content: {\n className: dynamic((p) => getStyleForContentSlot(p.slot)),\n onMouseDown: dynamic((p) => contentProps[p.slot ?? \"top\"]?.onMouseDown),\n onPointerDown: dynamic(\n (p) => contentProps[p.slot ?? \"top\"]?.onPointerDown,\n ),\n },\n Avatar: {\n className: styles.avatar,\n },\n Heading: {\n className: styles.heading,\n level: 5,\n size: \"xs\",\n elementType: \"span\",\n Badge: { className: styles.badge },\n AlertBadge: { className: styles.badge },\n },\n Text: {\n className: styles.text,\n },\n Link: {\n unstyled: true,\n },\n };\n\n const className = clsx(\n styles.view,\n viewMode === \"tiles\" ? styles.tileView : styles.listView,\n );\n\n const header = (\n <div className={styles.header}>\n <div className={styles.checkboxContainer}>{checkbox}</div>\n {avatar}\n <div className={styles.title}>\n {title}\n <div className={styles.subTitle}>{subTitle}</div>\n </div>\n </div>\n );\n\n const innerListContent = (\n <>\n {header}\n {children}\n </>\n );\n\n const listColumnsContentView = (\n <ColumnLayout\n s={s}\n m={m}\n l={l}\n className={clsx(styles.content, styles.columnLayout)}\n >\n {innerListContent}\n </ColumnLayout>\n );\n\n const listDefaultContentView = (\n <div className={styles.content}>{innerListContent}</div>\n );\n\n const listView = (\n <>\n <div className={styles.contentWrapper}>\n {s || m || l ? listColumnsContentView : listDefaultContentView}\n {button}\n </div>\n {bottom}\n </>\n );\n\n const tilesViews = (\n <>\n <div className={styles.avatarContainer}>{avatar}</div>\n <div className={styles.content}>\n <div className={styles.header}>\n <div className={styles.checkboxContainer}>{checkbox}</div>\n <div className={styles.title}>\n {title}\n <div className={styles.subTitle}>{subTitle}</div>\n </div>\n {button}\n </div>\n {children}\n {bottom}\n </div>\n </>\n );\n\n return (\n <div className={className}>\n <PropsContextProvider props={propsContext}>\n {viewMode === \"list\" && listView}\n {viewMode === \"tiles\" && tilesViews}\n </PropsContextProvider>\n </div>\n );\n};\n\nexport default ListItemViewContent;\n"],"mappings":";;;;;;;;;;AA+BA,IAAM,0BAA0B,SAC9B,SAAS,WACL,KAAKA,4BAAO,eAAeC,oBAAW,aAAa,IACnDD,4BAAO;;AAGb,IAAa,uBAAuB,UAAoC;CACtE,MAAM,EACJ,UACA,QACA,OACA,UACA,QACA,QACA,UACA,UACA,GACA,GACA,MACE;CAEJ,MAAM,eAAsD,EAC1D,QAAQ;EACN,cAAc,MAAM,EAAE,gBAAgB;EACtC,gBAAgB,MAAM,EAAE,gBAAgB;CAC1C,EACF;CAEA,MAAM,eAA6B;EACjC,aAAa,EACX,WAAW,aACb;EACA,QAAQ,EACN,WAAWA,4BAAO,OACpB;EACA,aAAa,EACX,WAAWA,4BAAO,OACpB;EACA,SAAS;GACP,WAAW,SAAS,MAAM,uBAAuB,EAAE,IAAI,CAAC;GACxD,aAAa,SAAS,MAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,WAAW;GACtE,eAAe,SACZ,MAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,aACxC;EACF;EACA,QAAQ,EACN,WAAWA,4BAAO,OACpB;EACA,SAAS;GACP,WAAWA,4BAAO;GAClB,OAAO;GACP,MAAM;GACN,aAAa;GACb,OAAO,EAAE,WAAWA,4BAAO,MAAM;GACjC,YAAY,EAAE,WAAWA,4BAAO,MAAM;EACxC;EACA,MAAM,EACJ,WAAWA,4BAAO,KACpB;EACA,MAAM,EACJ,UAAU,KACZ;CACF;CAEA,MAAM,YAAY,KAChBA,4BAAO,MACP,aAAa,UAAUA,4BAAO,WAAWA,4BAAO,QAClD;CAEA,MAAM,SACJ,qBAAC,OAAD;EAAK,WAAWA,4BAAO;EAAvB,UAAA;GACE,oBAAC,OAAD;IAAK,WAAWA,4BAAO;IAAoB,UAAA;GAAc,CAAA;GACxD;GACD,qBAAC,OAAD;IAAK,WAAWA,4BAAO;IAAvB,UAAA,CACG,OACD,oBAAC,OAAD;KAAK,WAAWA,4BAAO;KAAW,UAAA;IAAc,CAAA,CAC7C;;EACF;;CAGP,MAAM,mBACJ,qBAAAE,UAAA,EAAA,UAAA,CACG,QACA,QACD,EAAA,CAAA;CAGJ,MAAM,yBACJ,oBAAC,cAAD;EACK;EACA;EACA;EACH,WAAW,KAAKF,4BAAO,SAASA,4BAAO,YAAY;EAElD,UAAA;CACW,CAAA;CAGhB,MAAM,yBACJ,oBAAC,OAAD;EAAK,WAAWA,4BAAO;EAAU,UAAA;CAAsB,CAAA;CAGzD,MAAM,WACJ,qBAAAE,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EAAK,WAAWF,4BAAO;EAAvB,UAAA,CACG,KAAK,KAAK,IAAI,yBAAyB,wBACvC,MACE;CACJ,CAAA,GAAA,MACD,EAAA,CAAA;CAGJ,MAAM,aACJ,qBAAAE,UAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EAAK,WAAWF,4BAAO;EAAkB,UAAA;CAAY,CAAA,GACrD,qBAAC,OAAD;EAAK,WAAWA,4BAAO;EAAvB,UAAA;GACE,qBAAC,OAAD;IAAK,WAAWA,4BAAO;IAAvB,UAAA;KACE,oBAAC,OAAD;MAAK,WAAWA,4BAAO;MAAoB,UAAA;KAAc,CAAA;KACzD,qBAAC,OAAD;MAAK,WAAWA,4BAAO;MAAvB,UAAA,CACG,OACD,oBAAC,OAAD;OAAK,WAAWA,4BAAO;OAAW,UAAA;MAAc,CAAA,CAC7C;;KACJ;IACE;;GACJ;GACA;EACE;CACL,CAAA,CAAA,EAAA,CAAA;CAGJ,OACE,oBAAC,OAAD;EAAgB;EACd,UAAA,qBAAC,sBAAD;GAAsB,OAAO;GAA7B,UAAA,CACG,aAAa,UAAU,UACvB,aAAa,WAAW,UACL;;CACnB,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListSummary.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/ListSummary/ListSummary.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListSummary.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport clsx from \"clsx\";\n\nexport interface ListSummaryProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the summary is placed above or underneath the list @default: \"top\" */\n position?: \"top\" | \"bottom\";\n}\n\n/** @flr-generate all */\nexport const ListSummary = flowComponent(\"ListSummary\", (props) => {\n const { children, position = \"top\", ref } = props;\n\n if (position === \"bottom\") {\n return (\n <footer\n ref={ref}\n className={clsx(styles.listSummary, styles.bottom)}\n {...props}\n >\n {children}\n </footer>\n );\n }\n\n return (\n <header\n ref={ref}\n className={clsx(styles.listSummary, styles.top)}\n {...props}\n >\n {children}\n </header>\n );\n});\n\nexport default ListSummary;\n"],"mappings":";;;;;;;;AAaA,IAAa,cAAc,cAAc,gBAAgB,UAAU;CACjE,MAAM,EAAE,UAAU,WAAW,OAAO,QAAQ;CAE5C,IAAI,aAAa,UACf,OACE,oBAAC,UAAD;EACO;EACL,WAAW,KAAK,2BAAO,aAAa,2BAAO,MAAM;EACjD,GAAI;EAEH;CACK,CAAA;CAIZ,OACE,oBAAC,UAAD;EACO;EACL,WAAW,KAAK,2BAAO,aAAa,2BAAO,GAAG;EAC9C,GAAI;EAEH;CACK,CAAA;AAEZ,CAAC"}
1
+ {"version":3,"file":"ListSummary.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/List/components/ListSummary/ListSummary.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport styles from \"./ListSummary.module.scss\";\nimport type { FlowComponentProps } from \"@/lib/componentFactory/flowComponent\";\nimport { flowComponent } from \"@/lib/componentFactory/flowComponent\";\nimport clsx from \"clsx\";\n\nexport interface ListSummaryProps\n extends FlowComponentProps, PropsWithChildren {\n /** Whether the summary is placed above or underneath the list @default: \"top\" */\n position?: \"top\" | \"bottom\";\n}\n\n/** @flr-generate all */\nexport const ListSummary = flowComponent(\"ListSummary\", (props) => {\n const { children, position = \"top\", ref } = props;\n\n if (position === \"bottom\") {\n return (\n <footer\n ref={ref}\n className={clsx(styles.listSummary, styles.bottom)}\n {...props}\n >\n {children}\n </footer>\n );\n }\n\n return (\n <header\n ref={ref}\n className={clsx(styles.listSummary, styles.top)}\n {...props}\n >\n {children}\n </header>\n );\n});\n\nexport default ListSummary;\n"],"mappings":";;;;;;;;AAaA,IAAa,cAAc,cAAc,gBAAgB,UAAU;CACjE,MAAM,EAAE,UAAU,WAAW,OAAO,QAAQ;CAE5C,IAAI,aAAa,UACf,OACE,oBAAC,UAAD;EACO;EACL,WAAW,KAAKA,2BAAO,aAAaA,2BAAO,MAAM;EACjD,GAAI;EAEH;CACK,CAAA;CAIZ,OACE,oBAAC,UAAD;EACO;EACL,WAAW,KAAKA,2BAAO,aAAaA,2BAAO,GAAG;EAC9C,GAAI;EAEH;CACK,CAAA;AAEZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","names":[],"sources":["../../../../../../../../../src/components/List/components/Table/Table.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useList } from \"@/components/List\";\nimport styles from \"./Table.module.scss\";\nimport clsx from \"clsx\";\nimport TableView from \"@/views/TableView\";\nimport TableHeaderView from \"@/views/TableHeaderView\";\nimport TableBodyView from \"@/views/TableBodyView\";\nimport TableRowView from \"@/views/TableRowView\";\nimport TableCellView from \"@/views/TableCellView\";\nimport TableColumnView from \"@/views/TableColumnView\";\nimport { TableBodyLoadingView } from \"@/components/List/components/Table/components/TableBodyLoadingView\";\nimport { useInfiniteScrollTrigger } from \"@/components/List/hooks/useInfiniteScrollTrigger\";\n\nexport const Table: FC = () => {\n const list = useList();\n const table = list.table;\n const listIsEmpty = list.useIsEmpty();\n\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const isLoadingMore = list.loader.useIsLoadingMore();\n\n const { triggerRef, triggerIndex } = useInfiniteScrollTrigger();\n\n if (!table || listIsEmpty) {\n return null;\n }\n\n const rowAction = table.list.onAction;\n\n const tableClassName = clsx(\n styles.table,\n isLoading && !(list.infiniteScroll && isLoadingMore) && styles.isLoading,\n table.componentProps.className,\n );\n\n const rows = list.items.entries.map((item, index) => (\n <TableRowView\n className={clsx(\n styles.row,\n rowAction && styles.hasAction,\n table.body.row.componentProps.className,\n )}\n key={item.id}\n id={item.id}\n onAction={rowAction ? () => rowAction(item.data) : undefined}\n {...table.body.row.componentProps}\n {...(index === triggerIndex ? { ref: triggerRef } : {})}\n >\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.renderFn ? cell.renderFn(item.data, list) : undefined}\n </TableCellView>\n ))}\n </TableRowView>\n ));\n\n return (\n <TableView\n {...list.componentProps}\n {...table.componentProps}\n className={tableClassName}\n aria-hidden={isInitiallyLoading}\n aria-busy={isLoading}\n >\n <TableHeaderView {...table.header.componentProps}>\n {table.header.columns.map((col, i) => (\n <TableColumnView key={i} {...col.componentProps} />\n ))}\n </TableHeaderView>\n <TableBodyView {...table.body.componentProps}>\n {isInitiallyLoading ? <TableBodyLoadingView /> : rows}\n </TableBodyView>\n </TableView>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,cAAkB;CAC7B,MAAM,OAAO,QAAQ;CACrB,MAAM,QAAQ,KAAK;CACnB,MAAM,cAAc,KAAK,WAAW;CAEpC,MAAM,YAAY,KAAK,OAAO,aAAa;CAC3C,MAAM,qBAAqB,KAAK,OAAO,sBAAsB;CAC7D,MAAM,gBAAgB,KAAK,OAAO,iBAAiB;CAEnD,MAAM,EAAE,YAAY,iBAAiB,yBAAyB;CAE9D,IAAI,CAAC,SAAS,aACZ,OAAO;CAGT,MAAM,YAAY,MAAM,KAAK;CAE7B,MAAM,iBAAiB,KACrB,qBAAO,OACP,aAAa,EAAE,KAAK,kBAAkB,kBAAkB,qBAAO,WAC/D,MAAM,eAAe,SACvB;CAEA,MAAM,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,UACzC,oBAAC,cAAD;EACE,WAAW,KACT,qBAAO,KACP,aAAa,qBAAO,WACpB,MAAM,KAAK,IAAI,eAAe,SAChC;EAEA,IAAI,KAAK;EACT,UAAU,kBAAkB,UAAU,KAAK,IAAI,IAAI,KAAA;EACnD,GAAI,MAAM,KAAK,IAAI;EACnB,GAAK,UAAU,eAAe,EAAE,KAAK,WAAW,IAAI,CAAC;EAEpD,UAAA,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAChC,oBAAC,eAAD;GAAuB,GAAI,KAAK;GAC7B,UAAA,KAAK,WAAW,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI,KAAA;EACrC,GAFK,CAEL,CAChB;CACW,GAXP,KAAK,EAWE,CACf;CAED,OACE,qBAAC,WAAD;EACE,GAAI,KAAK;EACT,GAAI,MAAM;EACV,WAAW;EACX,eAAa;EACb,aAAW;EALb,UAAA,CAOE,oBAAC,iBAAD;GAAiB,GAAI,MAAM,OAAO;GAC/B,UAAA,MAAM,OAAO,QAAQ,KAAK,KAAK,MAC9B,oBAAC,iBAAD,EAAyB,GAAI,IAAI,eAAiB,GAA5B,CAA4B,CACnD;EACc,CAAA,GACjB,oBAAC,eAAD;GAAe,GAAI,MAAM,KAAK;GAC3B,UAAA,qBAAqB,oBAAC,sBAAD,CAAuB,CAAA,IAAI;EACpC,CAAA,CACN;;AAEf"}
1
+ {"version":3,"file":"Table.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/List/components/Table/Table.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useList } from \"@/components/List\";\nimport styles from \"./Table.module.scss\";\nimport clsx from \"clsx\";\nimport TableView from \"@/views/TableView\";\nimport TableHeaderView from \"@/views/TableHeaderView\";\nimport TableBodyView from \"@/views/TableBodyView\";\nimport TableRowView from \"@/views/TableRowView\";\nimport TableCellView from \"@/views/TableCellView\";\nimport TableColumnView from \"@/views/TableColumnView\";\nimport { TableBodyLoadingView } from \"@/components/List/components/Table/components/TableBodyLoadingView\";\nimport { useInfiniteScrollTrigger } from \"@/components/List/hooks/useInfiniteScrollTrigger\";\n\nexport const Table: FC = () => {\n const list = useList();\n const table = list.table;\n const listIsEmpty = list.useIsEmpty();\n\n const isLoading = list.loader.useIsLoading();\n const isInitiallyLoading = list.loader.useIsInitiallyLoading();\n const isLoadingMore = list.loader.useIsLoadingMore();\n\n const { triggerRef, triggerIndex } = useInfiniteScrollTrigger();\n\n if (!table || listIsEmpty) {\n return null;\n }\n\n const rowAction = table.list.onAction;\n\n const tableClassName = clsx(\n styles.table,\n isLoading && !(list.infiniteScroll && isLoadingMore) && styles.isLoading,\n table.componentProps.className,\n );\n\n const rows = list.items.entries.map((item, index) => (\n <TableRowView\n className={clsx(\n styles.row,\n rowAction && styles.hasAction,\n table.body.row.componentProps.className,\n )}\n key={item.id}\n id={item.id}\n onAction={rowAction ? () => rowAction(item.data) : undefined}\n {...table.body.row.componentProps}\n {...(index === triggerIndex ? { ref: triggerRef } : {})}\n >\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.renderFn ? cell.renderFn(item.data, list) : undefined}\n </TableCellView>\n ))}\n </TableRowView>\n ));\n\n return (\n <TableView\n {...list.componentProps}\n {...table.componentProps}\n className={tableClassName}\n aria-hidden={isInitiallyLoading}\n aria-busy={isLoading}\n >\n <TableHeaderView {...table.header.componentProps}>\n {table.header.columns.map((col, i) => (\n <TableColumnView key={i} {...col.componentProps} />\n ))}\n </TableHeaderView>\n <TableBodyView {...table.body.componentProps}>\n {isInitiallyLoading ? <TableBodyLoadingView /> : rows}\n </TableBodyView>\n </TableView>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,cAAkB;CAC7B,MAAM,OAAO,QAAQ;CACrB,MAAM,QAAQ,KAAK;CACnB,MAAM,cAAc,KAAK,WAAW;CAEpC,MAAM,YAAY,KAAK,OAAO,aAAa;CAC3C,MAAM,qBAAqB,KAAK,OAAO,sBAAsB;CAC7D,MAAM,gBAAgB,KAAK,OAAO,iBAAiB;CAEnD,MAAM,EAAE,YAAY,iBAAiB,yBAAyB;CAE9D,IAAI,CAAC,SAAS,aACZ,OAAO;CAGT,MAAM,YAAY,MAAM,KAAK;CAE7B,MAAM,iBAAiB,KACrBA,qBAAO,OACP,aAAa,EAAE,KAAK,kBAAkB,kBAAkBA,qBAAO,WAC/D,MAAM,eAAe,SACvB;CAEA,MAAM,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,UACzC,oBAAC,cAAD;EACE,WAAW,KACTA,qBAAO,KACP,aAAaA,qBAAO,WACpB,MAAM,KAAK,IAAI,eAAe,SAChC;EAEA,IAAI,KAAK;EACT,UAAU,kBAAkB,UAAU,KAAK,IAAI,IAAI,KAAA;EACnD,GAAI,MAAM,KAAK,IAAI;EACnB,GAAK,UAAU,eAAe,EAAE,KAAK,WAAW,IAAI,CAAC;EAEpD,UAAA,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAChC,oBAAC,eAAD;GAAuB,GAAI,KAAK;GAC7B,UAAA,KAAK,WAAW,KAAK,SAAS,KAAK,MAAM,IAAI,IAAI,KAAA;EACrC,GAFK,CAEL,CAChB;CACW,GAXP,KAAK,EAWE,CACf;CAED,OACE,qBAAC,WAAD;EACE,GAAI,KAAK;EACT,GAAI,MAAM;EACV,WAAW;EACX,eAAa;EACb,aAAW;EALb,UAAA,CAOE,oBAAC,iBAAD;GAAiB,GAAI,MAAM,OAAO;GAC/B,UAAA,MAAM,OAAO,QAAQ,KAAK,KAAK,MAC9B,oBAAC,iBAAD,EAAyB,GAAI,IAAI,eAAiB,GAA5B,CAA4B,CACnD;EACc,CAAA,GACjB,oBAAC,eAAD;GAAe,GAAI,MAAM,KAAK;GAC3B,UAAA,qBAAqB,oBAAC,sBAAD,CAAuB,CAAA,IAAI;EACpC,CAAA,CACN;;AAEf"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableBodyLoadingView.mjs","names":[],"sources":["../../../../../../../../../../src/components/List/components/Table/components/TableBodyLoadingView.tsx"],"sourcesContent":["import { TableRowSkeletonView } from \"@/components/List/components/Table/components/TableRowSkeletonView\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type { FC } from \"react\";\n\nexport const TableBodyLoadingView: FC = () => {\n const list = useList();\n\n return (\n <>\n {Array.from(Array(list.loadingItemsCount)).map((_, i) => (\n <TableRowSkeletonView key={i} />\n ))}\n </>\n );\n};\n"],"mappings":";;;;;;AAIA,IAAa,6BAAiC;CAC5C,MAAM,OAAO,QAAQ;CAErB,OACE,oBAAA,UAAA,EAAA,UACG,MAAM,KAAK,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,MACjD,oBAAC,sBAAD,CAA+B,GAAJ,CAAI,CAChC,EACD,CAAA;AAEN"}
1
+ {"version":3,"file":"TableBodyLoadingView.mjs","names":["_Fragment"],"sources":["../../../../../../../../../../src/components/List/components/Table/components/TableBodyLoadingView.tsx"],"sourcesContent":["import { TableRowSkeletonView } from \"@/components/List/components/Table/components/TableRowSkeletonView\";\nimport { useList } from \"@/components/List/hooks/useList\";\nimport type { FC } from \"react\";\n\nexport const TableBodyLoadingView: FC = () => {\n const list = useList();\n\n return (\n <>\n {Array.from(Array(list.loadingItemsCount)).map((_, i) => (\n <TableRowSkeletonView key={i} />\n ))}\n </>\n );\n};\n"],"mappings":";;;;;;AAIA,IAAa,6BAAiC;CAC5C,MAAM,OAAO,QAAQ;CAErB,OACE,oBAAAA,UAAA,EAAA,UACG,MAAM,KAAK,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,MACjD,oBAAC,sBAAD,CAA+B,GAAJ,CAAI,CAChC,EACD,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowSkeletonView.mjs","names":[],"sources":["../../../../../../../../../../src/components/List/components/Table/components/TableRowSkeletonView.tsx"],"sourcesContent":["import { useList } from \"@/components/List/hooks/useList\";\nimport TableRowView from \"@/views/TableRowView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"../Table.module.scss\";\nimport invariant from \"invariant\";\nimport TableCellView from \"@/views/TableCellView\";\nimport SkeletonTextView from \"@/views/SkeletonTextView\";\n\nexport const TableRowSkeletonView: FC = () => {\n const list = useList();\n const table = list.table;\n\n invariant(\n !!table,\n \"TableRowSkeletonView must be used within a Table component\",\n );\n\n const className = clsx(styles.row, table.body.row.componentProps.className);\n\n return (\n <TableRowView {...table.body.row.componentProps} className={className}>\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.loadingView ?? <SkeletonTextView width=\"10em\" />}\n </TableCellView>\n ))}\n </TableRowView>\n );\n};\n"],"mappings":";;;;;;;;;;;AASA,IAAa,6BAAiC;CAE5C,MAAM,QADO,QACC,CAAA,CAAK;CAEnB,UACE,CAAC,CAAC,OACF,4DACF;CAEA,MAAM,YAAY,KAAK,qBAAO,KAAK,MAAM,KAAK,IAAI,eAAe,SAAS;CAE1E,OACE,oBAAC,cAAD;EAAc,GAAI,MAAM,KAAK,IAAI;EAA2B;EACzD,UAAA,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAChC,oBAAC,eAAD;GAAuB,GAAI,KAAK;GAC7B,UAAA,KAAK,eAAe,oBAAC,kBAAD,EAAkB,OAAM,OAAQ,CAAA;EACxC,GAFK,CAEL,CAChB;CACW,CAAA;AAElB"}
1
+ {"version":3,"file":"TableRowSkeletonView.mjs","names":["styles"],"sources":["../../../../../../../../../../src/components/List/components/Table/components/TableRowSkeletonView.tsx"],"sourcesContent":["import { useList } from \"@/components/List/hooks/useList\";\nimport TableRowView from \"@/views/TableRowView\";\nimport clsx from \"clsx\";\nimport type { FC } from \"react\";\nimport styles from \"../Table.module.scss\";\nimport invariant from \"invariant\";\nimport TableCellView from \"@/views/TableCellView\";\nimport SkeletonTextView from \"@/views/SkeletonTextView\";\n\nexport const TableRowSkeletonView: FC = () => {\n const list = useList();\n const table = list.table;\n\n invariant(\n !!table,\n \"TableRowSkeletonView must be used within a Table component\",\n );\n\n const className = clsx(styles.row, table.body.row.componentProps.className);\n\n return (\n <TableRowView {...table.body.row.componentProps} className={className}>\n {table.body.row?.cells.map((cell, i) => (\n <TableCellView key={i} {...cell.componentProps}>\n {cell.loadingView ?? <SkeletonTextView width=\"10em\" />}\n </TableCellView>\n ))}\n </TableRowView>\n );\n};\n"],"mappings":";;;;;;;;;;;AASA,IAAa,6BAAiC;CAE5C,MAAM,QADO,QACC,CAAA,CAAK;CAEnB,UACE,CAAC,CAAC,OACF,4DACF;CAEA,MAAM,YAAY,KAAKA,qBAAO,KAAK,MAAM,KAAK,IAAI,eAAe,SAAS;CAE1E,OACE,oBAAC,cAAD;EAAc,GAAI,MAAM,KAAK,IAAI;EAA2B;EACzD,UAAA,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAChC,oBAAC,eAAD;GAAuB,GAAI,KAAK;GAC7B,UAAA,KAAK,eAAe,oBAAC,kBAAD,EAAkB,OAAM,OAAQ,CAAA;EACxC,GAFK,CAEL,CAChB;CACW,CAAA;AAElB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAriaAnnounceSearchState.mjs","names":[],"sources":["../../../../../../../../src/components/List/hooks/useAriaAnnounceSearchState.ts"],"sourcesContent":["import { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\nimport { announce } from \"@react-aria/live-announcer\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useEffect } from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\n\nconst announceDebounceMs = 600;\n\nexport const useAriaAnnounceSearchState = (): void => {\n const formatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const debouncedAnnounce = useDebounceCallback(announce, announceDebounceMs);\n\n const searchTerm = list.search?.value;\n const resultCount = list.batches.getTotalItemsCount();\n const isLoading = list.loader.loaderState.useIsLoading();\n\n useEffect(() => {\n if (isLoading || !searchTerm) {\n debouncedAnnounce.cancel();\n return;\n }\n\n const text = formatter.format(\n resultCount > 0 ? \"search.announce.result\" : \"search.announce.noResult\",\n {\n resultCount,\n searchTerm,\n },\n );\n\n debouncedAnnounce(text, \"polite\");\n }, [searchTerm, resultCount, isLoading]);\n};\n"],"mappings":";;;;;;;;;AAOA,IAAM,qBAAqB;AAE3B,IAAa,mCAAyC;CACpD,MAAM,YAAY,4BAA4B,kBAAS,MAAM;CAC7D,MAAM,OAAO,QAAQ;CACrB,MAAM,oBAAoB,oBAAoB,UAAU,kBAAkB;CAE1E,MAAM,aAAa,KAAK,QAAQ;CAChC,MAAM,cAAc,KAAK,QAAQ,mBAAmB;CACpD,MAAM,YAAY,KAAK,OAAO,YAAY,aAAa;CAEvD,gBAAgB;EACd,IAAI,aAAa,CAAC,YAAY;GAC5B,kBAAkB,OAAO;GACzB;EACF;EAEA,MAAM,OAAO,UAAU,OACrB,cAAc,IAAI,2BAA2B,4BAC7C;GACE;GACA;EACF,CACF;EAEA,kBAAkB,MAAM,QAAQ;CAClC,GAAG;EAAC;EAAY;EAAa;CAAS,CAAC;AACzC"}
1
+ {"version":3,"file":"useAriaAnnounceSearchState.mjs","names":["locales"],"sources":["../../../../../../../../src/components/List/hooks/useAriaAnnounceSearchState.ts"],"sourcesContent":["import { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\nimport { announce } from \"@react-aria/live-announcer\";\nimport { useDebounceCallback } from \"usehooks-ts\";\nimport { useEffect } from \"react\";\nimport { useList } from \"@/components/List/hooks/useList\";\n\nconst announceDebounceMs = 600;\n\nexport const useAriaAnnounceSearchState = (): void => {\n const formatter = useLocalizedStringFormatter(locales, \"List\");\n const list = useList();\n const debouncedAnnounce = useDebounceCallback(announce, announceDebounceMs);\n\n const searchTerm = list.search?.value;\n const resultCount = list.batches.getTotalItemsCount();\n const isLoading = list.loader.loaderState.useIsLoading();\n\n useEffect(() => {\n if (isLoading || !searchTerm) {\n debouncedAnnounce.cancel();\n return;\n }\n\n const text = formatter.format(\n resultCount > 0 ? \"search.announce.result\" : \"search.announce.noResult\",\n {\n resultCount,\n searchTerm,\n },\n );\n\n debouncedAnnounce(text, \"polite\");\n }, [searchTerm, resultCount, isLoading]);\n};\n"],"mappings":";;;;;;;;;AAOA,IAAM,qBAAqB;AAE3B,IAAa,mCAAyC;CACpD,MAAM,YAAY,4BAA4BA,kBAAS,MAAM;CAC7D,MAAM,OAAO,QAAQ;CACrB,MAAM,oBAAoB,oBAAoB,UAAU,kBAAkB;CAE1E,MAAM,aAAa,KAAK,QAAQ;CAChC,MAAM,cAAc,KAAK,QAAQ,mBAAmB;CACpD,MAAM,YAAY,KAAK,OAAO,YAAY,aAAa;CAEvD,gBAAgB;EACd,IAAI,aAAa,CAAC,YAAY;GAC5B,kBAAkB,OAAO;GACzB;EACF;EAEA,MAAM,OAAO,UAAU,OACrB,cAAc,IAAI,2BAA2B,4BAC7C;GACE;GACA;EACF,CACF;EAEA,kBAAkB,MAAM,QAAQ;CAClC,GAAG;EAAC;EAAY;EAAa;CAAS,CAAC;AACzC"}
@@ -10,10 +10,10 @@ function dateRangeFilterFn(row, columnId, range) {
10
10
  let dateValue;
11
11
  if (value instanceof DateTime) dateValue = value;
12
12
  else if (value instanceof CalendarDate) dateValue = transformDateValueToDateTime(value);
13
- else if (typeof value === "string") dateValue = DateTime.fromISO(value).startOf("day");
13
+ else if (typeof value === "string") dateValue = DateTime.fromISO(value);
14
14
  if (!dateValue) return true;
15
15
  const startDate = range.start ? transformDateValueToDateTime(range.start) : void 0;
16
- const endDate = range.end ? transformDateValueToDateTime(range.end) : void 0;
16
+ const endDate = range.end ? transformDateValueToDateTime(range.end).endOf("day") : void 0;
17
17
  if (startDate && dateValue < startDate) return false;
18
18
  return !(endDate && dateValue > endDate);
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dateRangeFilterFn.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/dateRangeFilterFn.ts"],"sourcesContent":["import { DateTime } from \"luxon\";\nimport { CalendarDate } from \"@internationalized/date\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { transformDateValueToDateTime } from \"@/lib/date/transformDateValueToDateTime\";\n\nexport function dateRangeFilterFn<T>(\n row: Row<T>,\n columnId: string,\n range?: { start?: CalendarDate; end?: CalendarDate },\n): boolean {\n if (!range) {\n return true;\n }\n\n const value = row.getValue(columnId);\n\n let dateValue;\n\n if (value instanceof DateTime) {\n dateValue = value;\n } else if (value instanceof CalendarDate) {\n dateValue = transformDateValueToDateTime(value);\n } else if (typeof value === \"string\") {\n dateValue = DateTime.fromISO(value).startOf(\"day\");\n }\n\n if (!dateValue) {\n return true;\n }\n\n const startDate = range.start\n ? transformDateValueToDateTime(range.start)\n : undefined;\n\n const endDate = range.end\n ? transformDateValueToDateTime(range.end)\n : undefined;\n\n if (startDate && dateValue < startDate) {\n return false;\n }\n\n return !(endDate && dateValue > endDate);\n}\n"],"mappings":";;;;;;AAKA,SAAgB,kBACd,KACA,UACA,OACS;CACT,IAAI,CAAC,OACH,OAAO;CAGT,MAAM,QAAQ,IAAI,SAAS,QAAQ;CAEnC,IAAI;CAEJ,IAAI,iBAAiB,UACnB,YAAY;MACP,IAAI,iBAAiB,cAC1B,YAAY,6BAA6B,KAAK;MACzC,IAAI,OAAO,UAAU,UAC1B,YAAY,SAAS,QAAQ,KAAK,CAAC,CAAC,QAAQ,KAAK;CAGnD,IAAI,CAAC,WACH,OAAO;CAGT,MAAM,YAAY,MAAM,QACpB,6BAA6B,MAAM,KAAK,IACxC,KAAA;CAEJ,MAAM,UAAU,MAAM,MAClB,6BAA6B,MAAM,GAAG,IACtC,KAAA;CAEJ,IAAI,aAAa,YAAY,WAC3B,OAAO;CAGT,OAAO,EAAE,WAAW,YAAY;AAClC"}
1
+ {"version":3,"file":"dateRangeFilterFn.mjs","names":[],"sources":["../../../../../../../../../src/components/List/model/filter/dateRangeFilterFn.ts"],"sourcesContent":["import { DateTime } from \"luxon\";\nimport { CalendarDate } from \"@internationalized/date\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { transformDateValueToDateTime } from \"@/lib/date/transformDateValueToDateTime\";\n\nexport function dateRangeFilterFn<T>(\n row: Row<T>,\n columnId: string,\n range?: { start?: CalendarDate; end?: CalendarDate },\n): boolean {\n if (!range) {\n return true;\n }\n\n const value = row.getValue(columnId);\n\n let dateValue;\n\n if (value instanceof DateTime) {\n dateValue = value;\n } else if (value instanceof CalendarDate) {\n dateValue = transformDateValueToDateTime(value);\n } else if (typeof value === \"string\") {\n dateValue = DateTime.fromISO(value);\n }\n\n if (!dateValue) {\n return true;\n }\n\n const startDate = range.start\n ? transformDateValueToDateTime(range.start)\n : undefined;\n\n const endDate = range.end\n ? transformDateValueToDateTime(range.end).endOf(\"day\")\n : undefined;\n\n if (startDate && dateValue < startDate) {\n return false;\n }\n\n return !(endDate && dateValue > endDate);\n}\n"],"mappings":";;;;;;AAKA,SAAgB,kBACd,KACA,UACA,OACS;CACT,IAAI,CAAC,OACH,OAAO;CAGT,MAAM,QAAQ,IAAI,SAAS,QAAQ;CAEnC,IAAI;CAEJ,IAAI,iBAAiB,UACnB,YAAY;MACP,IAAI,iBAAiB,cAC1B,YAAY,6BAA6B,KAAK;MACzC,IAAI,OAAO,UAAU,UAC1B,YAAY,SAAS,QAAQ,KAAK;CAGpC,IAAI,CAAC,WACH,OAAO;CAGT,MAAM,YAAY,MAAM,QACpB,6BAA6B,MAAM,KAAK,IACxC,KAAA;CAEJ,MAAM,UAAU,MAAM,MAClB,6BAA6B,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,IACnD,KAAA;CAEJ,IAAI,aAAa,YAAY,WAC3B,OAAO;CAGT,OAAO,EAAE,WAAW,YAAY;AAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyView.mjs","names":[],"sources":["../../../../../../../../../src/components/List/views/EmptyView/EmptyView.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport { IconSearch } from \"@/components/Icon/components/icons\";\nimport { Heading } from \"@/components/Heading\";\nimport { Text } from \"@/components/Text\";\nimport locales from \"../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport styles from \"../../components/Items/Items.module.scss\";\n\nexport type EmptyViewProps = Record<string, never>;\n\n/**\n * @flr-generate all\n *\n * Keep this unused component for backwards compatibility!\n */\nexport const EmptyView: FC<EmptyViewProps> = () => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <IllustratedMessage className={styles.emptyView}>\n <IconSearch />\n <Heading>{stringFormatter.format(\"noResult.heading\")}</Heading>\n <Text>{stringFormatter.format(\"noResult.text\")}</Text>\n </IllustratedMessage>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAa,kBAAsC;CACjD,MAAM,kBAAkB,4BAA4B,kBAAS,MAAM;CAEnE,OACE,qBAAC,oBAAD;EAAoB,WAAW,qBAAO;EAAtC,UAAA;GACE,oBAAC,YAAD,CAAa,CAAA;GACb,oBAAC,SAAD,EAAA,UAAU,gBAAgB,OAAO,kBAAkB,EAAW,CAAA;GAC9D,oBAAC,MAAD,EAAA,UAAO,gBAAgB,OAAO,eAAe,EAAQ,CAAA;EACnC;;AAExB"}
1
+ {"version":3,"file":"EmptyView.mjs","names":["locales","styles"],"sources":["../../../../../../../../../src/components/List/views/EmptyView/EmptyView.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { IllustratedMessage } from \"@/components/IllustratedMessage\";\nimport { IconSearch } from \"@/components/Icon/components/icons\";\nimport { Heading } from \"@/components/Heading\";\nimport { Text } from \"@/components/Text\";\nimport locales from \"../../locales/*.locale.json\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport styles from \"../../components/Items/Items.module.scss\";\n\nexport type EmptyViewProps = Record<string, never>;\n\n/**\n * @flr-generate all\n *\n * Keep this unused component for backwards compatibility!\n */\nexport const EmptyView: FC<EmptyViewProps> = () => {\n const stringFormatter = useLocalizedStringFormatter(locales, \"List\");\n\n return (\n <IllustratedMessage className={styles.emptyView}>\n <IconSearch />\n <Heading>{stringFormatter.format(\"noResult.heading\")}</Heading>\n <Text>{stringFormatter.format(\"noResult.text\")}</Text>\n </IllustratedMessage>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAa,kBAAsC;CACjD,MAAM,kBAAkB,4BAA4BA,kBAAS,MAAM;CAEnE,OACE,qBAAC,oBAAD;EAAoB,WAAWC,qBAAO;EAAtC,UAAA;GACE,oBAAC,YAAD,CAAa,CAAA;GACb,oBAAC,SAAD,EAAA,UAAU,gBAAgB,OAAO,kBAAkB,EAAW,CAAA;GAC9D,oBAAC,MAAD,EAAA,UAAO,gBAAgB,OAAO,eAAe,EAAQ,CAAA;EACnC;;AAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyViewContainer.mjs","names":[],"sources":["../../../../../../../../../src/components/List/views/EmptyViewContainer/EmptyViewContainer.tsx"],"sourcesContent":["import DivView from \"@/views/DivView\";\nimport type { FC, ReactNode } from \"react\";\nimport styles from \"../../components/Items/Items.module.scss\";\nimport type { EmptyViewType } from \"../../model/types\";\nimport { EmptySearchResultView } from \"../../components/EmptySearchResultView\";\nimport { EmptyView } from \"../../components/EmptyView\";\n\nexport interface EmptyViewContainerProps {\n emptyView?: ReactNode;\n emptySearchResultView?: ReactNode;\n viewType: EmptyViewType;\n}\n\n/** @flr-generate all */\nexport const EmptyViewContainer: FC<EmptyViewContainerProps> = (props) => {\n const emptyView = props.emptyView ?? <EmptyView />;\n const emptySearchResultView = props.emptySearchResultView ?? (\n <EmptySearchResultView />\n );\n return (\n <DivView className={styles.emptyView}>\n {props.viewType === \"search\" ? emptySearchResultView : emptyView}\n </DivView>\n );\n};\n"],"mappings":";;;;;;;;;AAcA,IAAa,sBAAmD,UAAU;CACxE,MAAM,YAAY,MAAM,aAAa,oBAAC,WAAD,CAAY,CAAA;CACjD,MAAM,wBAAwB,MAAM,yBAClC,oBAAC,uBAAD,CAAwB,CAAA;CAE1B,OACE,oBAAC,SAAD;EAAS,WAAW,qBAAO;EACxB,UAAA,MAAM,aAAa,WAAW,wBAAwB;CAChD,CAAA;AAEb"}
1
+ {"version":3,"file":"EmptyViewContainer.mjs","names":["styles"],"sources":["../../../../../../../../../src/components/List/views/EmptyViewContainer/EmptyViewContainer.tsx"],"sourcesContent":["import DivView from \"@/views/DivView\";\nimport type { FC, ReactNode } from \"react\";\nimport styles from \"../../components/Items/Items.module.scss\";\nimport type { EmptyViewType } from \"../../model/types\";\nimport { EmptySearchResultView } from \"../../components/EmptySearchResultView\";\nimport { EmptyView } from \"../../components/EmptyView\";\n\nexport interface EmptyViewContainerProps {\n emptyView?: ReactNode;\n emptySearchResultView?: ReactNode;\n viewType: EmptyViewType;\n}\n\n/** @flr-generate all */\nexport const EmptyViewContainer: FC<EmptyViewContainerProps> = (props) => {\n const emptyView = props.emptyView ?? <EmptyView />;\n const emptySearchResultView = props.emptySearchResultView ?? (\n <EmptySearchResultView />\n );\n return (\n <DivView className={styles.emptyView}>\n {props.viewType === \"search\" ? emptySearchResultView : emptyView}\n </DivView>\n );\n};\n"],"mappings":";;;;;;;;;AAcA,IAAa,sBAAmD,UAAU;CACxE,MAAM,YAAY,MAAM,aAAa,oBAAC,WAAD,CAAY,CAAA;CACjD,MAAM,wBAAwB,MAAM,yBAClC,oBAAC,uBAAD,CAAwB,CAAA;CAE1B,OACE,oBAAC,SAAD;EAAS,WAAWA,qBAAO;EACxB,UAAA,MAAM,aAAa,WAAW,wBAAwB;CAChD,CAAA;AAEb"}
@@ -1,9 +1,11 @@
1
1
  "use client"
2
2
  /* */
3
3
  import { isAlphaColor } from "../../lib/types/props.mjs";
4
+ import { useSkeletonMode } from "../SkeletonMode/skeletonModeContext.mjs";
4
5
  import { IconPending } from "../Icon/components/icons/IconPending.mjs";
5
6
  import LoadingSpinner_module_default from "./LoadingSpinner.module.mjs";
6
7
  import { useDesignTokens } from "../../lib/theming/hooks/useDesignTokens.mjs";
8
+ import { SkeletonIconSurface } from "../SkeletonMode/components/SkeletonIconSurface/SkeletonIconSurface.mjs";
7
9
  import clsx from "clsx";
8
10
  import "react";
9
11
  import { jsx } from "react/jsx-runtime";
@@ -14,9 +16,14 @@ var globalSpinnerTime = performance.now();
14
16
  var LoadingSpinner = (props) => {
15
17
  const { className, color = "default", ...rest } = props;
16
18
  const preferReducedMotion = useReducedMotion();
19
+ const isSkeleton = useSkeletonMode();
17
20
  const loadingSpinnerTokens = useDesignTokens()["loading-spinner"];
18
21
  const animationDurationMs = preferReducedMotion ? parseInt(loadingSpinnerTokens["transition-duration-slow"].value) : parseInt(loadingSpinnerTokens["transition-duration"].value);
19
22
  const rootClassName = clsx(LoadingSpinner_module_default.loadingSpinner, isAlphaColor(color) && LoadingSpinner_module_default[color], className);
23
+ if (isSkeleton) return /* @__PURE__ */ jsx(SkeletonIconSurface, {
24
+ className,
25
+ children: /* @__PURE__ */ jsx(IconPending, { ...rest })
26
+ });
20
27
  return /* @__PURE__ */ jsx(IconPending, {
21
28
  className: rootClassName,
22
29
  ref: (element) => {
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingSpinner.mjs","names":[],"sources":["../../../../../../../src/components/LoadingSpinner/LoadingSpinner.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { IconPending } from \"@/components/Icon/components/icons\";\nimport styles from \"./LoadingSpinner.module.scss\";\nimport type { IconProps } from \"@/components/Icon\";\nimport clsx from \"clsx\";\nimport { type AlphaColor, isAlphaColor } from \"@/lib/types/props\";\nimport { useReducedMotion } from \"framer-motion\";\nimport { useDesignTokens } from \"@/lib/theming\";\n\nexport interface LoadingSpinnerProps extends IconProps {\n /** The color of the loading spinner. @default \"default\" */\n color?: \"default\" | AlphaColor;\n}\n\nconst globalSpinnerTime = performance.now();\n\n/** @flr-generate all */\nexport const LoadingSpinner: FC<LoadingSpinnerProps> = (props) => {\n const { className, color = \"default\", ...rest } = props;\n\n const preferReducedMotion = useReducedMotion();\n\n const designTokens = useDesignTokens();\n const loadingSpinnerTokens = designTokens[\"loading-spinner\"];\n\n const animationDurationMs = preferReducedMotion\n ? parseInt(loadingSpinnerTokens[\"transition-duration-slow\"].value)\n : parseInt(loadingSpinnerTokens[\"transition-duration\"].value);\n\n const rootClassName = clsx(\n styles.loadingSpinner,\n isAlphaColor(color) && styles[color],\n className,\n );\n\n return (\n <IconPending\n className={rootClassName}\n ref={(element) => {\n if (element) {\n const elapsedMs = performance.now() - globalSpinnerTime;\n const phaseMs = elapsedMs % animationDurationMs;\n\n element.style.setProperty(\"--animation-delay\", `${-phaseMs}ms`);\n }\n }}\n {...rest}\n />\n );\n};\n\nexport default LoadingSpinner;\n"],"mappings":";;;;;;;;;;;AAcA,IAAM,oBAAoB,YAAY,IAAI;;AAG1C,IAAa,kBAA2C,UAAU;CAChE,MAAM,EAAE,WAAW,QAAQ,WAAW,GAAG,SAAS;CAElD,MAAM,sBAAsB,iBAAiB;CAG7C,MAAM,uBADe,gBACQ,CAAA,CAAa;CAE1C,MAAM,sBAAsB,sBACxB,SAAS,qBAAqB,2BAA2B,CAAC,KAAK,IAC/D,SAAS,qBAAqB,sBAAsB,CAAC,KAAK;CAE9D,MAAM,gBAAgB,KACpB,8BAAO,gBACP,aAAa,KAAK,KAAK,8BAAO,QAC9B,SACF;CAEA,OACE,oBAAC,aAAD;EACE,WAAW;EACX,MAAM,YAAY;GAChB,IAAI,SAAS;IAEX,MAAM,WADY,YAAY,IAAI,IAAI,qBACV;IAE5B,QAAQ,MAAM,YAAY,qBAAqB,GAAG,CAAC,QAAQ,GAAG;GAChE;EACF;EACA,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"LoadingSpinner.mjs","names":["styles"],"sources":["../../../../../../../src/components/LoadingSpinner/LoadingSpinner.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { IconPending } from \"@/components/Icon/components/icons\";\nimport styles from \"./LoadingSpinner.module.scss\";\nimport type { IconProps } from \"@/components/Icon\";\nimport clsx from \"clsx\";\nimport { type AlphaColor, isAlphaColor } from \"@/lib/types/props\";\nimport { useReducedMotion } from \"framer-motion\";\nimport { useDesignTokens } from \"@/lib/theming\";\nimport { SkeletonIconSurface } from \"@/components/SkeletonMode/components/SkeletonIconSurface\";\nimport { useSkeletonMode } from \"@/components/SkeletonMode/skeletonModeContext\";\n\nexport interface LoadingSpinnerProps extends IconProps {\n /** The color of the loading spinner. @default \"default\" */\n color?: \"default\" | AlphaColor;\n}\n\nconst globalSpinnerTime = performance.now();\n\n/** @flr-generate all */\nexport const LoadingSpinner: FC<LoadingSpinnerProps> = (props) => {\n const { className, color = \"default\", ...rest } = props;\n\n const preferReducedMotion = useReducedMotion();\n const isSkeleton = useSkeletonMode();\n\n const designTokens = useDesignTokens();\n const loadingSpinnerTokens = designTokens[\"loading-spinner\"];\n\n const animationDurationMs = preferReducedMotion\n ? parseInt(loadingSpinnerTokens[\"transition-duration-slow\"].value)\n : parseInt(loadingSpinnerTokens[\"transition-duration\"].value);\n\n const rootClassName = clsx(\n styles.loadingSpinner,\n isAlphaColor(color) && styles[color],\n className,\n );\n\n /* A round surface in the spinner's size, without the spinning. */\n if (isSkeleton) {\n return (\n <SkeletonIconSurface className={className}>\n <IconPending {...rest} />\n </SkeletonIconSurface>\n );\n }\n\n return (\n <IconPending\n className={rootClassName}\n ref={(element) => {\n if (element) {\n const elapsedMs = performance.now() - globalSpinnerTime;\n const phaseMs = elapsedMs % animationDurationMs;\n\n element.style.setProperty(\"--animation-delay\", `${-phaseMs}ms`);\n }\n }}\n {...rest}\n />\n );\n};\n\nexport default LoadingSpinner;\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAM,oBAAoB,YAAY,IAAI;;AAG1C,IAAa,kBAA2C,UAAU;CAChE,MAAM,EAAE,WAAW,QAAQ,WAAW,GAAG,SAAS;CAElD,MAAM,sBAAsB,iBAAiB;CAC7C,MAAM,aAAa,gBAAgB;CAGnC,MAAM,uBADe,gBACQ,CAAA,CAAa;CAE1C,MAAM,sBAAsB,sBACxB,SAAS,qBAAqB,2BAA2B,CAAC,KAAK,IAC/D,SAAS,qBAAqB,sBAAsB,CAAC,KAAK;CAE9D,MAAM,gBAAgB,KACpBA,8BAAO,gBACP,aAAa,KAAK,KAAKA,8BAAO,QAC9B,SACF;CAGA,IAAI,YACF,OACE,oBAAC,qBAAD;EAAgC;EAC9B,UAAA,oBAAC,aAAD,EAAa,GAAI,KAAO,CAAA;CACL,CAAA;CAIzB,OACE,oBAAC,aAAD;EACE,WAAW;EACX,MAAM,YAAY;GAChB,IAAI,SAAS;IAEX,MAAM,WADY,YAAY,IAAI,IAAI,qBACV;IAE5B,QAAQ,MAAM,YAAY,qBAAqB,GAAG,CAAC,QAAQ,GAAG;GAChE;EACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.mjs","names":[],"sources":["../../../../../../../src/components/Markdown/Markdown.tsx"],"sourcesContent":["import { CodeBlock } from \"@/components/CodeBlock\";\nimport { Heading } from \"@/components/Heading\";\nimport { InlineCode } from \"@/components/InlineCode\";\nimport { Link } from \"@/components/Link\";\nimport { Separator } from \"@/components/Separator\";\nimport { Text } from \"@/components/Text\";\nimport type { CSSProperties, FC, ReactNode, Ref } from \"react\";\nimport { Children, isValidElement } from \"react\";\nimport type { Components, Options } from \"react-markdown\";\nimport ReactMarkdown from \"react-markdown\";\nimport styles from \"./Markdown.module.scss\";\nimport { extractTextFromFirstChild } from \"@/lib/react/remote\";\nimport type { AlphaColor, PropsWithClassName } from \"@/lib/types/props\";\nimport clsx from \"clsx\";\nimport remarkGfm from \"remark-gfm\";\nimport { getHeadingLevelWithOffset } from \"@/components/Markdown/lib/getHeadingLevelWithOffset\";\nimport type { CodeEditorLanguage } from \"@/components/CodeEditor/languages\";\n\nexport interface MarkdownProps\n extends PropsWithClassName, Omit<Options, \"components\"> {\n /** The color schema of the markdown component. @default \"default\" */\n color?: \"default\" | AlphaColor;\n /** Shifts all heading levels by the given offset. @default 0 */\n headingOffset?: number;\n /** Allows overriding markdown element renderers from outside. */\n components?: Components;\n /** @internal */\n style?: CSSProperties;\n /** A ref to the elements root. */\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * @flr-generate all\n * @flr-ignore-props components\n */\nexport const Markdown: FC<MarkdownProps> = (props) => {\n const {\n children,\n color = \"default\",\n className,\n headingOffset = 0,\n components: customComponents,\n ref,\n allowElement,\n allowedElements,\n disallowedElements,\n rehypePlugins,\n remarkPlugins,\n remarkRehypeOptions,\n skipHtml,\n unwrapDisallowed,\n urlTransform,\n ...rest\n } = props;\n\n const defaultComponents: Components = {\n a: (props) => (\n <Link target=\"_blank\" color={color} href={props.href}>\n {props.children}\n </Link>\n ),\n p: (props) => (\n <Text elementType=\"p\" color={color}>\n {props.children}\n </Text>\n ),\n code: (props) => <InlineCode color={color}>{props.children}</InlineCode>,\n h1: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(1, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h2: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(2, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h3: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(3, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h4: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(4, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h5: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(5, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h6: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(6, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n hr: () => <Separator />,\n pre: (props) => {\n const preElementContent = Children.toArray(props.children)[0];\n\n return (\n <CodeBlock\n copyable={false}\n language={\n isValidElement<{ className?: string }>(preElementContent) &&\n preElementContent.props.className\n ? (preElementContent.props.className.replace(\n \"language-\",\n \"\",\n ) as CodeEditorLanguage)\n : undefined\n }\n code={String(\n isValidElement<{ children: string }>(preElementContent)\n ? preElementContent.props.children\n : preElementContent,\n ).trim()}\n />\n );\n },\n ul: (props) => (\n <Text color={color}>\n <ul>{props.children as ReactNode}</ul>\n </Text>\n ),\n ol: (props) => (\n <Text color={color}>\n <ol>{props.children as ReactNode}</ol>\n </Text>\n ),\n blockquote: (props) => (\n <Text color={color}>\n <blockquote>{props.children}</blockquote>\n </Text>\n ),\n };\n\n const textContent = extractTextFromFirstChild(children);\n const mergedComponents: Components = {\n ...defaultComponents,\n ...customComponents,\n };\n\n return (\n <div className={clsx(styles.markdown, className)} {...rest} ref={ref}>\n <ReactMarkdown\n allowElement={allowElement}\n allowedElements={allowedElements}\n disallowedElements={disallowedElements}\n rehypePlugins={rehypePlugins}\n remarkPlugins={remarkPlugins ?? [remarkGfm]}\n remarkRehypeOptions={remarkRehypeOptions}\n skipHtml={skipHtml}\n unwrapDisallowed={unwrapDisallowed}\n urlTransform={urlTransform}\n components={mergedComponents}\n >\n {textContent}\n </ReactMarkdown>\n </div>\n );\n};\n\nexport default Markdown;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAa,YAA+B,UAAU;CACpD,MAAM,EACJ,UACA,QAAQ,WACR,WACA,gBAAgB,GAChB,YAAY,kBACZ,KACA,cACA,iBACA,oBACA,eACA,eACA,qBACA,UACA,kBACA,cACA,GAAG,SACD;CAEJ,MAAM,oBAAgC;EACpC,IAAI,UACF,oBAAC,MAAD;GAAM,QAAO;GAAgB;GAAO,MAAM,MAAM;GAC7C,UAAA,MAAM;EACH,CAAA;EAER,IAAI,UACF,oBAAC,MAAD;GAAM,aAAY;GAAW;GAC1B,UAAA,MAAM;EACH,CAAA;EAER,OAAO,UAAU,oBAAC,YAAD;GAAmB;GAAQ,UAAA,MAAM;EAAqB,CAAA;EACvE,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,UAAU,oBAAC,WAAD,CAAY,CAAA;EACtB,MAAM,UAAU;GACd,MAAM,oBAAoB,SAAS,QAAQ,MAAM,QAAQ,CAAC,CAAC;GAE3D,OACE,oBAAC,WAAD;IACE,UAAU;IACV,UACE,eAAuC,iBAAiB,KACxD,kBAAkB,MAAM,YACnB,kBAAkB,MAAM,UAAU,QACjC,aACA,EACF,IACA,KAAA;IAEN,MAAM,OACJ,eAAqC,iBAAiB,IAClD,kBAAkB,MAAM,WACxB,iBACN,CAAC,CAAC,KAAK;GACR,CAAA;EAEL;EACA,KAAK,UACH,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,MAAD,EAAA,UAAK,MAAM,SAA0B,CAAA;EACjC,CAAA;EAER,KAAK,UACH,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,MAAD,EAAA,UAAK,MAAM,SAA0B,CAAA;EACjC,CAAA;EAER,aAAa,UACX,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,cAAD,EAAA,UAAa,MAAM,SAAqB,CAAA;EACpC,CAAA;CAEV;CAEA,MAAM,cAAc,0BAA0B,QAAQ;CACtD,MAAM,mBAA+B;EACnC,GAAG;EACH,GAAG;CACL;CAEA,OACE,oBAAC,OAAD;EAAK,WAAW,KAAK,wBAAO,UAAU,SAAS;EAAG,GAAI;EAAW;EAC/D,UAAA,oBAAC,eAAD;GACgB;GACG;GACG;GACL;GACf,eAAe,iBAAiB,CAAC,SAAS;GACrB;GACX;GACQ;GACJ;GACd,YAAY;GAEX,UAAA;EACY,CAAA;CACZ,CAAA;AAET"}
1
+ {"version":3,"file":"Markdown.mjs","names":["styles"],"sources":["../../../../../../../src/components/Markdown/Markdown.tsx"],"sourcesContent":["import { CodeBlock } from \"@/components/CodeBlock\";\nimport { Heading } from \"@/components/Heading\";\nimport { InlineCode } from \"@/components/InlineCode\";\nimport { Link } from \"@/components/Link\";\nimport { Separator } from \"@/components/Separator\";\nimport { Text } from \"@/components/Text\";\nimport type { CSSProperties, FC, ReactNode, Ref } from \"react\";\nimport { Children, isValidElement } from \"react\";\nimport type { Components, Options } from \"react-markdown\";\nimport ReactMarkdown from \"react-markdown\";\nimport styles from \"./Markdown.module.scss\";\nimport { extractTextFromFirstChild } from \"@/lib/react/remote\";\nimport type { AlphaColor, PropsWithClassName } from \"@/lib/types/props\";\nimport clsx from \"clsx\";\nimport remarkGfm from \"remark-gfm\";\nimport { getHeadingLevelWithOffset } from \"@/components/Markdown/lib/getHeadingLevelWithOffset\";\nimport type { CodeEditorLanguage } from \"@/components/CodeEditor/languages\";\n\nexport interface MarkdownProps\n extends PropsWithClassName, Omit<Options, \"components\"> {\n /** The color schema of the markdown component. @default \"default\" */\n color?: \"default\" | AlphaColor;\n /** Shifts all heading levels by the given offset. @default 0 */\n headingOffset?: number;\n /** Allows overriding markdown element renderers from outside. */\n components?: Components;\n /** @internal */\n style?: CSSProperties;\n /** A ref to the elements root. */\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * @flr-generate all\n * @flr-ignore-props components\n */\nexport const Markdown: FC<MarkdownProps> = (props) => {\n const {\n children,\n color = \"default\",\n className,\n headingOffset = 0,\n components: customComponents,\n ref,\n allowElement,\n allowedElements,\n disallowedElements,\n rehypePlugins,\n remarkPlugins,\n remarkRehypeOptions,\n skipHtml,\n unwrapDisallowed,\n urlTransform,\n ...rest\n } = props;\n\n const defaultComponents: Components = {\n a: (props) => (\n <Link target=\"_blank\" color={color} href={props.href}>\n {props.children}\n </Link>\n ),\n p: (props) => (\n <Text elementType=\"p\" color={color}>\n {props.children}\n </Text>\n ),\n code: (props) => <InlineCode color={color}>{props.children}</InlineCode>,\n h1: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(1, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h2: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(2, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h3: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(3, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h4: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(4, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h5: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(5, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n h6: (props) => (\n <Heading\n level={getHeadingLevelWithOffset(6, headingOffset)}\n color={color}\n >\n {props.children}\n </Heading>\n ),\n hr: () => <Separator />,\n pre: (props) => {\n const preElementContent = Children.toArray(props.children)[0];\n\n return (\n <CodeBlock\n copyable={false}\n language={\n isValidElement<{ className?: string }>(preElementContent) &&\n preElementContent.props.className\n ? (preElementContent.props.className.replace(\n \"language-\",\n \"\",\n ) as CodeEditorLanguage)\n : undefined\n }\n code={String(\n isValidElement<{ children: string }>(preElementContent)\n ? preElementContent.props.children\n : preElementContent,\n ).trim()}\n />\n );\n },\n ul: (props) => (\n <Text color={color}>\n <ul>{props.children as ReactNode}</ul>\n </Text>\n ),\n ol: (props) => (\n <Text color={color}>\n <ol>{props.children as ReactNode}</ol>\n </Text>\n ),\n blockquote: (props) => (\n <Text color={color}>\n <blockquote>{props.children}</blockquote>\n </Text>\n ),\n };\n\n const textContent = extractTextFromFirstChild(children);\n const mergedComponents: Components = {\n ...defaultComponents,\n ...customComponents,\n };\n\n return (\n <div className={clsx(styles.markdown, className)} {...rest} ref={ref}>\n <ReactMarkdown\n allowElement={allowElement}\n allowedElements={allowedElements}\n disallowedElements={disallowedElements}\n rehypePlugins={rehypePlugins}\n remarkPlugins={remarkPlugins ?? [remarkGfm]}\n remarkRehypeOptions={remarkRehypeOptions}\n skipHtml={skipHtml}\n unwrapDisallowed={unwrapDisallowed}\n urlTransform={urlTransform}\n components={mergedComponents}\n >\n {textContent}\n </ReactMarkdown>\n </div>\n );\n};\n\nexport default Markdown;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAa,YAA+B,UAAU;CACpD,MAAM,EACJ,UACA,QAAQ,WACR,WACA,gBAAgB,GAChB,YAAY,kBACZ,KACA,cACA,iBACA,oBACA,eACA,eACA,qBACA,UACA,kBACA,cACA,GAAG,SACD;CAEJ,MAAM,oBAAgC;EACpC,IAAI,UACF,oBAAC,MAAD;GAAM,QAAO;GAAgB;GAAO,MAAM,MAAM;GAC7C,UAAA,MAAM;EACH,CAAA;EAER,IAAI,UACF,oBAAC,MAAD;GAAM,aAAY;GAAW;GAC1B,UAAA,MAAM;EACH,CAAA;EAER,OAAO,UAAU,oBAAC,YAAD;GAAmB;GAAQ,UAAA,MAAM;EAAqB,CAAA;EACvE,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,KAAK,UACH,oBAAC,SAAD;GACE,OAAO,0BAA0B,GAAG,aAAa;GAC1C;GAEN,UAAA,MAAM;EACA,CAAA;EAEX,UAAU,oBAAC,WAAD,CAAY,CAAA;EACtB,MAAM,UAAU;GACd,MAAM,oBAAoB,SAAS,QAAQ,MAAM,QAAQ,CAAC,CAAC;GAE3D,OACE,oBAAC,WAAD;IACE,UAAU;IACV,UACE,eAAuC,iBAAiB,KACxD,kBAAkB,MAAM,YACnB,kBAAkB,MAAM,UAAU,QACjC,aACA,EACF,IACA,KAAA;IAEN,MAAM,OACJ,eAAqC,iBAAiB,IAClD,kBAAkB,MAAM,WACxB,iBACN,CAAC,CAAC,KAAK;GACR,CAAA;EAEL;EACA,KAAK,UACH,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,MAAD,EAAA,UAAK,MAAM,SAA0B,CAAA;EACjC,CAAA;EAER,KAAK,UACH,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,MAAD,EAAA,UAAK,MAAM,SAA0B,CAAA;EACjC,CAAA;EAER,aAAa,UACX,oBAAC,MAAD;GAAa;GACX,UAAA,oBAAC,cAAD,EAAA,UAAa,MAAM,SAAqB,CAAA;EACpC,CAAA;CAEV;CAEA,MAAM,cAAc,0BAA0B,QAAQ;CACtD,MAAM,mBAA+B;EACnC,GAAG;EACH,GAAG;CACL;CAEA,OACE,oBAAC,OAAD;EAAK,WAAW,KAAKA,wBAAO,UAAU,SAAS;EAAG,GAAI;EAAW;EAC/D,UAAA,oBAAC,eAAD;GACgB;GACG;GACG;GACL;GACf,eAAe,iBAAiB,CAAC,SAAS;GACrB;GACX;GACQ;GACJ;GACd,YAAY;GAEX,UAAA;EACY,CAAA;CACZ,CAAA;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.mjs","names":[],"sources":["../../../../../../../src/components/MarkdownEditor/MarkdownEditor.tsx"],"sourcesContent":["import { type ComponentType, type KeyboardEventHandler, useState } from \"react\";\nimport styles from \"./MarkdownEditor.module.scss\";\nimport {\n Markdown as DefaultMarkdown,\n type MarkdownProps,\n} 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 {\n modifyValueByMarkdownSyntax,\n scrollToCursor,\n} from \"@/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax\";\nimport {\n type InsertType,\n modifyValueByType,\n} from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport type { MarkdownEditorUpload } from \"@/components/MarkdownEditor/lib/fileUpload\";\nimport { useFileUpload } from \"@/components/MarkdownEditor/lib/useFileUpload\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport {\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\n\nexport type MarkdownEditorMode = \"editor\" | \"preview\";\n\nexport type { MarkdownEditorUpload };\n\nconst toolbarActionsTunnel = {\n id: \"toolbarActions\",\n component: \"MarkdownEditor\",\n} as const;\n\nexport interface MarkdownEditorProps\n extends TextAreaProps, Pick<MarkdownProps, \"headingOffset\"> {\n /**\n * Allows replacing the markdown preview renderer implementation. Defaults to\n * the internal `Markdown` component.\n */\n markdownComponent?: ComponentType<MarkdownProps>;\n /**\n * Uploads a file the user dropped onto the editor, pasted into it or picked\n * with its attachment button. A placeholder comment sits at the cursor while\n * the returned promise is pending: resolving replaces it with markdown\n * linking to the file — an image embed for an image — and rejecting takes it\n * back out. Without this prop the editor takes no files at all.\n *\n * Named without an `on` prefix on purpose: the remote generator turns an\n * `on*` prop into a fire-and-forget event, and this one has to hand a result\n * back.\n */\n uploadFile?: (file: File) => Promise<MarkdownEditorUpload>;\n /**\n * Which file types the editor takes, as the `accept` attribute of a file\n * input: a comma separated list of MIME types (`image/png`), MIME wildcards\n * (`image/*`) and file extensions (`.png`). Defaults to every type.\n */\n accept?: string;\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 markdownComponent: MarkdownComponent = DefaultMarkdown,\n value,\n onChange,\n uploadFile,\n accept,\n ref,\n ...rest\n } = useControlledHostValueProps(props, \"\");\n\n const inputRef = useObjectRef(ref);\n const [mode, setMode] = useState<MarkdownEditorMode>(\"editor\");\n const toolbarActionsDisabled = isDisabled || mode === \"preview\";\n\n const { dropProps, isDropTarget, uploadFiles } = useFileUpload({\n accept,\n uploadFile,\n isDisabled: isDisabled || isReadOnly || mode === \"preview\",\n value,\n onChange,\n textAreaRef: inputRef,\n });\n\n const rootClassName = clsx(\n styles.markdownEditor,\n styles[`mode-${mode}`],\n isDropTarget && styles.dropTarget,\n className,\n );\n\n const toolbarActionsPropsContext: PropsContext = {\n ...overlayTriggersTunneledTo(toolbarActionsTunnel),\n Button: {\n tunnel: toolbarActionsTunnel,\n size: \"s\",\n variant: \"plain\",\n color: \"dark\",\n isDisabled: toolbarActionsDisabled,\n },\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 requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.value = newValue;\n inputRef.current?.setSelectionRange(newSelectionStart, newSelectionEnd);\n scrollToCursor(newValue, inputRef.current);\n }\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 requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.value = newValue;\n inputRef.current.setSelectionRange(newSelectionStart, newSelectionEnd);\n inputRef.current.focus();\n }\n });\n\n onChange(newValue);\n };\n\n return (\n <div {...dropProps} className={rootClassName}>\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 <PropsContextProvider\n props={toolbarActionsPropsContext}\n dependencies={[toolbarActionsDisabled]}\n >\n {children}\n {mode === \"preview\" && (\n <MarkdownComponent\n headingOffset={headingOffset}\n className={styles.markdown}\n >\n {value}\n </MarkdownComponent>\n )}\n <Toolbar\n currentMode={mode}\n isDisabled={isDisabled}\n onModeChange={setMode}\n onToolPressed={handleToolButtonPressed}\n accept={accept}\n isReadOnly={isReadOnly}\n onFilesSelected={uploadFiles}\n />\n </PropsContextProvider>\n </TextArea>\n </div>\n );\n});\n\nexport default MarkdownEditor;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,IAAM,uBAAuB;CAC3B,IAAI;CACJ,WAAW;AACb;;AA8BA,IAAa,iBAAiB,cAAc,mBAAmB,UAAU;CACvE,MAAM,EACJ,YACA,YACA,UACA,WACA,OAAO,GACP,mBACA,eACA,mBAAmB,oBAAoB,UACvC,OACA,UACA,YACA,QACA,KACA,GAAG,SACD,4BAA4B,OAAO,EAAE;CAEzC,MAAM,WAAW,aAAa,GAAG;CACjC,MAAM,CAAC,MAAM,WAAW,SAA6B,QAAQ;CAC7D,MAAM,yBAAyB,cAAc,SAAS;CAEtD,MAAM,EAAE,WAAW,cAAc,gBAAgB,cAAc;EAC7D;EACA;EACA,YAAY,cAAc,cAAc,SAAS;EACjD;EACA;EACA,aAAa;CACf,CAAC;CAED,MAAM,gBAAgB,KACpB,8BAAO,gBACP,8BAAO,QAAQ,SACf,gBAAgB,8BAAO,YACvB,SACF;CAEA,MAAM,6BAA2C;EAC/C,GAAG,0BAA0B,oBAAoB;EACjD,QAAQ;GACN,QAAQ;GACR,MAAM;GACN,SAAS;GACT,OAAO;GACP,YAAY;EACd;CACF;CAEA,MAAM,iBAAuC,UAAU;EACrD,IAAI,MAAM,QAAQ,SAChB;EAGF,MAAM,eAAe,4BAA4B,OAAO,QAAQ;EAChE,IAAI,CAAC,cACH;EAGF,MAAM,EAAE,UAAU,mBAAmB,oBAAoB;EAEzD,4BAA4B;GAC1B,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,QAAQ;IACzB,SAAS,SAAS,kBAAkB,mBAAmB,eAAe;IACtE,eAAe,UAAU,SAAS,OAAO;GAC3C;EACF,CAAC;EAED,MAAM,eAAe;EACrB,SAAS,QAAQ;CACnB;CAEA,MAAM,2BAA2B,SAAqB;EACpD,MAAM,EAAE,UAAU,mBAAmB,oBAAoB,kBACvD,OACA,MACA,QACF;EAEA,4BAA4B;GAC1B,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,QAAQ;IACzB,SAAS,QAAQ,kBAAkB,mBAAmB,eAAe;IACrE,SAAS,QAAQ,MAAM;GACzB;EACF,CAAC;EAED,SAAS,QAAQ;CACnB;CAEA,OACE,oBAAC,OAAD;EAAK,GAAI;EAAW,WAAW;EAC7B,UAAA,oBAAC,UAAD;GACE,GAAI;GACJ,eAAa,SAAS;GACtB,YAAY,cAAc,SAAS;GACvB;GACZ,KAAK;GACE;GACD;GACa;GACT;GACV,WAAW;GAEX,UAAA,qBAAC,sBAAD;IACE,OAAO;IACP,cAAc,CAAC,sBAAsB;IAFvC,UAAA;KAIG;KACA,SAAS,aACR,oBAAC,mBAAD;MACiB;MACf,WAAW,8BAAO;MAEjB,UAAA;KACgB,CAAA;KAErB,oBAAC,SAAD;MACE,aAAa;MACD;MACZ,cAAc;MACd,eAAe;MACP;MACI;MACZ,iBAAiB;KAClB,CAAA;IACmB;;EACd,CAAA;CACP,CAAA;AAET,CAAC"}
1
+ {"version":3,"file":"MarkdownEditor.mjs","names":["DefaultMarkdown","styles"],"sources":["../../../../../../../src/components/MarkdownEditor/MarkdownEditor.tsx"],"sourcesContent":["import { type ComponentType, type KeyboardEventHandler, useState } from \"react\";\nimport styles from \"./MarkdownEditor.module.scss\";\nimport {\n Markdown as DefaultMarkdown,\n type MarkdownProps,\n} 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 {\n modifyValueByMarkdownSyntax,\n scrollToCursor,\n} from \"@/components/MarkdownEditor/lib/modifyValueByMarkdownSyntax\";\nimport {\n type InsertType,\n modifyValueByType,\n} from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport type { MarkdownEditorUpload } from \"@/components/MarkdownEditor/lib/fileUpload\";\nimport { useFileUpload } from \"@/components/MarkdownEditor/lib/useFileUpload\";\nimport { useControlledHostValueProps } from \"@/lib/remote/useControlledHostValueProps\";\nimport {\n overlayTriggersTunneledTo,\n type PropsContext,\n PropsContextProvider,\n} from \"@/lib/propsContext\";\n\nexport type MarkdownEditorMode = \"editor\" | \"preview\";\n\nexport type { MarkdownEditorUpload };\n\nconst toolbarActionsTunnel = {\n id: \"toolbarActions\",\n component: \"MarkdownEditor\",\n} as const;\n\nexport interface MarkdownEditorProps\n extends TextAreaProps, Pick<MarkdownProps, \"headingOffset\"> {\n /**\n * Allows replacing the markdown preview renderer implementation. Defaults to\n * the internal `Markdown` component.\n */\n markdownComponent?: ComponentType<MarkdownProps>;\n /**\n * Uploads a file the user dropped onto the editor, pasted into it or picked\n * with its attachment button. A placeholder comment sits at the cursor while\n * the returned promise is pending: resolving replaces it with markdown\n * linking to the file — an image embed for an image — and rejecting takes it\n * back out. Without this prop the editor takes no files at all.\n *\n * Named without an `on` prefix on purpose: the remote generator turns an\n * `on*` prop into a fire-and-forget event, and this one has to hand a result\n * back.\n */\n uploadFile?: (file: File) => Promise<MarkdownEditorUpload>;\n /**\n * Which file types the editor takes, as the `accept` attribute of a file\n * input: a comma separated list of MIME types (`image/png`), MIME wildcards\n * (`image/*`) and file extensions (`.png`). Defaults to every type.\n */\n accept?: string;\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 markdownComponent: MarkdownComponent = DefaultMarkdown,\n value,\n onChange,\n uploadFile,\n accept,\n ref,\n ...rest\n } = useControlledHostValueProps(props, \"\");\n\n const inputRef = useObjectRef(ref);\n const [mode, setMode] = useState<MarkdownEditorMode>(\"editor\");\n const toolbarActionsDisabled = isDisabled || mode === \"preview\";\n\n const { dropProps, isDropTarget, uploadFiles } = useFileUpload({\n accept,\n uploadFile,\n isDisabled: isDisabled || isReadOnly || mode === \"preview\",\n value,\n onChange,\n textAreaRef: inputRef,\n });\n\n const rootClassName = clsx(\n styles.markdownEditor,\n styles[`mode-${mode}`],\n isDropTarget && styles.dropTarget,\n className,\n );\n\n const toolbarActionsPropsContext: PropsContext = {\n ...overlayTriggersTunneledTo(toolbarActionsTunnel),\n Button: {\n tunnel: toolbarActionsTunnel,\n size: \"s\",\n variant: \"plain\",\n color: \"dark\",\n isDisabled: toolbarActionsDisabled,\n },\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 requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.value = newValue;\n inputRef.current?.setSelectionRange(newSelectionStart, newSelectionEnd);\n scrollToCursor(newValue, inputRef.current);\n }\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 requestAnimationFrame(() => {\n if (inputRef.current) {\n inputRef.current.value = newValue;\n inputRef.current.setSelectionRange(newSelectionStart, newSelectionEnd);\n inputRef.current.focus();\n }\n });\n\n onChange(newValue);\n };\n\n return (\n <div {...dropProps} className={rootClassName}>\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 <PropsContextProvider\n props={toolbarActionsPropsContext}\n dependencies={[toolbarActionsDisabled]}\n >\n {children}\n {mode === \"preview\" && (\n <MarkdownComponent\n headingOffset={headingOffset}\n className={styles.markdown}\n >\n {value}\n </MarkdownComponent>\n )}\n <Toolbar\n currentMode={mode}\n isDisabled={isDisabled}\n onModeChange={setMode}\n onToolPressed={handleToolButtonPressed}\n accept={accept}\n isReadOnly={isReadOnly}\n onFilesSelected={uploadFiles}\n />\n </PropsContextProvider>\n </TextArea>\n </div>\n );\n});\n\nexport default MarkdownEditor;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,IAAM,uBAAuB;CAC3B,IAAI;CACJ,WAAW;AACb;;AA8BA,IAAa,iBAAiB,cAAc,mBAAmB,UAAU;CACvE,MAAM,EACJ,YACA,YACA,UACA,WACA,OAAO,GACP,mBACA,eACA,mBAAmB,oBAAoBA,UACvC,OACA,UACA,YACA,QACA,KACA,GAAG,SACD,4BAA4B,OAAO,EAAE;CAEzC,MAAM,WAAW,aAAa,GAAG;CACjC,MAAM,CAAC,MAAM,WAAW,SAA6B,QAAQ;CAC7D,MAAM,yBAAyB,cAAc,SAAS;CAEtD,MAAM,EAAE,WAAW,cAAc,gBAAgB,cAAc;EAC7D;EACA;EACA,YAAY,cAAc,cAAc,SAAS;EACjD;EACA;EACA,aAAa;CACf,CAAC;CAED,MAAM,gBAAgB,KACpBC,8BAAO,gBACPA,8BAAO,QAAQ,SACf,gBAAgBA,8BAAO,YACvB,SACF;CAEA,MAAM,6BAA2C;EAC/C,GAAG,0BAA0B,oBAAoB;EACjD,QAAQ;GACN,QAAQ;GACR,MAAM;GACN,SAAS;GACT,OAAO;GACP,YAAY;EACd;CACF;CAEA,MAAM,iBAAuC,UAAU;EACrD,IAAI,MAAM,QAAQ,SAChB;EAGF,MAAM,eAAe,4BAA4B,OAAO,QAAQ;EAChE,IAAI,CAAC,cACH;EAGF,MAAM,EAAE,UAAU,mBAAmB,oBAAoB;EAEzD,4BAA4B;GAC1B,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,QAAQ;IACzB,SAAS,SAAS,kBAAkB,mBAAmB,eAAe;IACtE,eAAe,UAAU,SAAS,OAAO;GAC3C;EACF,CAAC;EAED,MAAM,eAAe;EACrB,SAAS,QAAQ;CACnB;CAEA,MAAM,2BAA2B,SAAqB;EACpD,MAAM,EAAE,UAAU,mBAAmB,oBAAoB,kBACvD,OACA,MACA,QACF;EAEA,4BAA4B;GAC1B,IAAI,SAAS,SAAS;IACpB,SAAS,QAAQ,QAAQ;IACzB,SAAS,QAAQ,kBAAkB,mBAAmB,eAAe;IACrE,SAAS,QAAQ,MAAM;GACzB;EACF,CAAC;EAED,SAAS,QAAQ;CACnB;CAEA,OACE,oBAAC,OAAD;EAAK,GAAI;EAAW,WAAW;EAC7B,UAAA,oBAAC,UAAD;GACE,GAAI;GACJ,eAAa,SAAS;GACtB,YAAY,cAAc,SAAS;GACvB;GACZ,KAAK;GACE;GACD;GACa;GACT;GACV,WAAW;GAEX,UAAA,qBAAC,sBAAD;IACE,OAAO;IACP,cAAc,CAAC,sBAAsB;IAFvC,UAAA;KAIG;KACA,SAAS,aACR,oBAAC,mBAAD;MACiB;MACf,WAAWA,8BAAO;MAEjB,UAAA;KACgB,CAAA;KAErB,oBAAC,SAAD;MACE,aAAa;MACD;MACZ,cAAc;MACd,eAAe;MACP;MACI;MACZ,iBAAiB;KAClB,CAAA;IACmB;;EACd,CAAA;CACP,CAAA;AAET,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentButton.mjs","names":[],"sources":["../../../../../../../../src/components/MarkdownEditor/components/AttachmentButton.tsx"],"sourcesContent":["import { type FC, useRef } from \"react\";\nimport { useVisuallyHidden } from \"react-aria\";\nimport { IconAttachment } from \"@/components/Icon/components/icons\";\nimport { ToolbarButton } from \"@/components/MarkdownEditor/components/ToolbarButton\";\n\n/** @internal */\nexport interface AttachmentButtonProps {\n /** Which file types to offer, as an `accept` attribute value. */\n accept?: string;\n isDisabled?: boolean;\n /** Called with the files the user picked. */\n onSelect: (files: File[]) => void;\n}\n\n/**\n * The toolbar's file picker — the keyboard and pointer equivalent of dropping a\n * file onto the editor. A `ToolbarButton` like every other tool, plus the\n * hidden input it opens.\n *\n * @internal\n */\nexport const AttachmentButton: FC<AttachmentButtonProps> = (props) => {\n const { accept, isDisabled, onSelect } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const { visuallyHiddenProps } = useVisuallyHidden();\n\n const handlePress = () => {\n const input = inputRef.current;\n\n if (!input) {\n return;\n }\n\n /*\n * Cleared first: an input that still holds the previous file fires no\n * `change` when the same file is picked again.\n */\n input.value = \"\";\n input.click();\n };\n\n return (\n <>\n <ToolbarButton\n type=\"attachment\"\n isDisabled={isDisabled}\n onPress={handlePress}\n >\n <IconAttachment />\n </ToolbarButton>\n\n {/*\n * A plain input rather than `FileField`'s `FileInput`: that one renders an\n * `Aria.Input`, which reads the `InputContext` the surrounding TextArea's\n * `Aria.TextField` provides and would be handed the editor's text as its\n * value — which a file input rejects outright.\n *\n * `tabIndex={-1}` keeps the hidden input out of the tab order; the button\n * in front of it is the focusable affordance.\n */}\n <input\n {...visuallyHiddenProps}\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple\n tabIndex={-1}\n onChange={(event) => {\n const files = event.target.files;\n\n if (files?.length) {\n onSelect(Array.from(files));\n }\n }}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAa,oBAA+C,UAAU;CACpE,MAAM,EAAE,QAAQ,YAAY,aAAa;CAEzC,MAAM,WAAW,OAAyB,IAAI;CAC9C,MAAM,EAAE,wBAAwB,kBAAkB;CAElD,MAAM,oBAAoB;EACxB,MAAM,QAAQ,SAAS;EAEvB,IAAI,CAAC,OACH;EAOF,MAAM,QAAQ;EACd,MAAM,MAAM;CACd;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,eAAD;EACE,MAAK;EACO;EACZ,SAAS;EAET,UAAA,oBAAC,gBAAD,CAAiB,CAAA;CACJ,CAAA,GAWf,oBAAC,SAAD;EACE,GAAI;EACJ,KAAK;EACL,MAAK;EACG;EACR,UAAA;EACA,UAAU;EACV,WAAW,UAAU;GACnB,MAAM,QAAQ,MAAM,OAAO;GAE3B,IAAI,OAAO,QACT,SAAS,MAAM,KAAK,KAAK,CAAC;EAE9B;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"AttachmentButton.mjs","names":["_Fragment"],"sources":["../../../../../../../../src/components/MarkdownEditor/components/AttachmentButton.tsx"],"sourcesContent":["import { type FC, useRef } from \"react\";\nimport { useVisuallyHidden } from \"react-aria\";\nimport { IconAttachment } from \"@/components/Icon/components/icons\";\nimport { ToolbarButton } from \"@/components/MarkdownEditor/components/ToolbarButton\";\n\n/** @internal */\nexport interface AttachmentButtonProps {\n /** Which file types to offer, as an `accept` attribute value. */\n accept?: string;\n isDisabled?: boolean;\n /** Called with the files the user picked. */\n onSelect: (files: File[]) => void;\n}\n\n/**\n * The toolbar's file picker — the keyboard and pointer equivalent of dropping a\n * file onto the editor. A `ToolbarButton` like every other tool, plus the\n * hidden input it opens.\n *\n * @internal\n */\nexport const AttachmentButton: FC<AttachmentButtonProps> = (props) => {\n const { accept, isDisabled, onSelect } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const { visuallyHiddenProps } = useVisuallyHidden();\n\n const handlePress = () => {\n const input = inputRef.current;\n\n if (!input) {\n return;\n }\n\n /*\n * Cleared first: an input that still holds the previous file fires no\n * `change` when the same file is picked again.\n */\n input.value = \"\";\n input.click();\n };\n\n return (\n <>\n <ToolbarButton\n type=\"attachment\"\n isDisabled={isDisabled}\n onPress={handlePress}\n >\n <IconAttachment />\n </ToolbarButton>\n\n {/*\n * A plain input rather than `FileField`'s `FileInput`: that one renders an\n * `Aria.Input`, which reads the `InputContext` the surrounding TextArea's\n * `Aria.TextField` provides and would be handed the editor's text as its\n * value — which a file input rejects outright.\n *\n * `tabIndex={-1}` keeps the hidden input out of the tab order; the button\n * in front of it is the focusable affordance.\n */}\n <input\n {...visuallyHiddenProps}\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple\n tabIndex={-1}\n onChange={(event) => {\n const files = event.target.files;\n\n if (files?.length) {\n onSelect(Array.from(files));\n }\n }}\n />\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAa,oBAA+C,UAAU;CACpE,MAAM,EAAE,QAAQ,YAAY,aAAa;CAEzC,MAAM,WAAW,OAAyB,IAAI;CAC9C,MAAM,EAAE,wBAAwB,kBAAkB;CAElD,MAAM,oBAAoB;EACxB,MAAM,QAAQ,SAAS;EAEvB,IAAI,CAAC,OACH;EAOF,MAAM,QAAQ;EACd,MAAM,MAAM;CACd;CAEA,OACE,qBAAAA,YAAA,EAAA,UAAA,CACE,oBAAC,eAAD;EACE,MAAK;EACO;EACZ,SAAS;EAET,UAAA,oBAAC,gBAAD,CAAiB,CAAA;CACJ,CAAA,GAWf,oBAAC,SAAD;EACE,GAAI;EACJ,KAAK;EACL,MAAK;EACG;EACR,UAAA;EACA,UAAU;EACV,WAAW,UAAU;GACnB,MAAM,QAAQ,MAAM,OAAO;GAE3B,IAAI,OAAO,QACT,SAAS,MAAM,KAAK,KAAK,CAAC;EAE9B;CACD,CAAA,CACD,EAAA,CAAA;AAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModeButton.mjs","names":[],"sources":["../../../../../../../../src/components/MarkdownEditor/components/ModeButton.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\nimport type { MarkdownEditorMode } from \"@/components/MarkdownEditor/MarkdownEditor\";\nimport styles from \"../MarkdownEditor.module.scss\";\n\nexport interface ModeButtonProps extends Pick<ButtonProps, \"isDisabled\"> {\n currentMode: MarkdownEditorMode;\n onChange?: (newMode: MarkdownEditorMode) => void;\n}\n\nexport const ModeButton: FC<ModeButtonProps> = (props) => {\n const { currentMode, onChange, ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(\n locales,\n \"MarkdownEditor\",\n );\n const otherMode = currentMode === \"editor\" ? \"preview\" : \"editor\";\n\n return (\n <Button\n tunnel={null}\n className={styles.modeButton}\n size=\"s\"\n variant=\"plain\"\n color=\"dark\"\n onPress={() => {\n onChange?.(otherMode);\n }}\n {...rest}\n >\n {stringFormatter.format(`mode.${otherMode}`)}\n </Button>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,IAAa,cAAmC,UAAU;CACxD,MAAM,EAAE,aAAa,UAAU,GAAG,SAAS;CAE3C,MAAM,kBAAkB,4BACtB,kBACA,gBACF;CACA,MAAM,YAAY,gBAAgB,WAAW,YAAY;CAEzD,OACE,oBAAC,QAAD;EACE,QAAQ;EACR,WAAW,8BAAO;EAClB,MAAK;EACL,SAAQ;EACR,OAAM;EACN,eAAe;GACb,WAAW,SAAS;EACtB;EACA,GAAI;EAEH,UAAA,gBAAgB,OAAO,QAAQ,WAAW;CACrC,CAAA;AAEZ"}
1
+ {"version":3,"file":"ModeButton.mjs","names":["locales","styles"],"sources":["../../../../../../../../src/components/MarkdownEditor/components/ModeButton.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\nimport type { MarkdownEditorMode } from \"@/components/MarkdownEditor/MarkdownEditor\";\nimport styles from \"../MarkdownEditor.module.scss\";\n\nexport interface ModeButtonProps extends Pick<ButtonProps, \"isDisabled\"> {\n currentMode: MarkdownEditorMode;\n onChange?: (newMode: MarkdownEditorMode) => void;\n}\n\nexport const ModeButton: FC<ModeButtonProps> = (props) => {\n const { currentMode, onChange, ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(\n locales,\n \"MarkdownEditor\",\n );\n const otherMode = currentMode === \"editor\" ? \"preview\" : \"editor\";\n\n return (\n <Button\n tunnel={null}\n className={styles.modeButton}\n size=\"s\"\n variant=\"plain\"\n color=\"dark\"\n onPress={() => {\n onChange?.(otherMode);\n }}\n {...rest}\n >\n {stringFormatter.format(`mode.${otherMode}`)}\n </Button>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,IAAa,cAAmC,UAAU;CACxD,MAAM,EAAE,aAAa,UAAU,GAAG,SAAS;CAE3C,MAAM,kBAAkB,4BACtBA,kBACA,gBACF;CACA,MAAM,YAAY,gBAAgB,WAAW,YAAY;CAEzD,OACE,oBAAC,QAAD;EACE,QAAQ;EACR,WAAWC,8BAAO;EAClB,MAAK;EACL,SAAQ;EACR,OAAM;EACN,eAAe;GACb,WAAW,SAAS;EACtB;EACA,GAAI;EAEH,UAAA,gBAAgB,OAAO,QAAQ,WAAW;CACrC,CAAA;AAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.mjs","names":[],"sources":["../../../../../../../../src/components/MarkdownEditor/components/Toolbar.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport styles from \"@/components/MarkdownEditor/MarkdownEditor.module.scss\";\nimport {\n IconBold,\n IconCode,\n IconItalic,\n IconLink,\n IconOrderedList,\n IconQuote,\n IconStrikeThrough,\n IconUnorderedList,\n} from \"@/components/Icon/components/icons\";\nimport {\n ToolbarButton,\n type ToolBarButtonProps,\n} from \"@/components/MarkdownEditor/components/ToolbarButton\";\nimport {\n ModeButton,\n type ModeButtonProps,\n} from \"@/components/MarkdownEditor/components/ModeButton\";\nimport { type ButtonProps } from \"@/components/Button\";\nimport { type InsertType } from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\nimport { AttachmentButton } from \"@/components/MarkdownEditor/components/AttachmentButton\";\n\ninterface ToolbarProps extends Pick<ButtonProps, \"isDisabled\"> {\n currentMode: ModeButtonProps[\"currentMode\"];\n onModeChange: ModeButtonProps[\"onChange\"];\n onToolPressed: (type: InsertType) => void;\n /** Which file types the attachment button offers. */\n accept?: string;\n /** Renders the attachment button when set. */\n onFilesSelected?: (files: File[]) => void;\n /**\n * Disables the attachment button, which a read-only editor takes no files\n * for.\n */\n isReadOnly?: boolean;\n}\n\nexport const Toolbar: FC<ToolbarProps> = (props) => {\n const isDisabled = props.isDisabled || props.currentMode === \"preview\";\n\n /** The props of a tool that inserts markdown — all of them but the attachment. */\n const insertTool = (type: InsertType): ToolBarButtonProps => ({\n type,\n isDisabled,\n onPress: () => props.onToolPressed(type),\n });\n\n return (\n <div className={styles.toolbar} role=\"toolbar\">\n <div className={styles.toolbarButtons}>\n <ToolbarButton {...insertTool(\"bold\")}>\n <IconBold />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"italic\")}>\n <IconItalic />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"strikeThrough\")}>\n <IconStrikeThrough />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"quote\")}>\n <IconQuote />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"code\")}>\n <IconCode />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"link\")}>\n <IconLink />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"unorderedList\")}>\n <IconUnorderedList />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"orderedList\")}>\n <IconOrderedList />\n </ToolbarButton>\n\n {props.onFilesSelected && (\n <AttachmentButton\n accept={props.accept}\n isDisabled={isDisabled || props.isReadOnly}\n onSelect={props.onFilesSelected}\n />\n )}\n\n <UiComponentTunnelExit id=\"toolbarActions\" component=\"MarkdownEditor\" />\n </div>\n\n <ModeButton\n onChange={props.onModeChange}\n currentMode={props.currentMode}\n isDisabled={props.isDisabled ?? false}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwCA,IAAa,WAA6B,UAAU;CAClD,MAAM,aAAa,MAAM,cAAc,MAAM,gBAAgB;;CAG7D,MAAM,cAAc,UAA0C;EAC5D;EACA;EACA,eAAe,MAAM,cAAc,IAAI;CACzC;CAEA,OACE,qBAAC,OAAD;EAAK,WAAW,8BAAO;EAAS,MAAK;EAArC,UAAA,CACE,qBAAC,OAAD;GAAK,WAAW,8BAAO;GAAvB,UAAA;IACE,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,QAAQ;KACpC,UAAA,oBAAC,YAAD,CAAa,CAAA;IACA,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,eAAe;KAC3C,UAAA,oBAAC,mBAAD,CAAoB,CAAA;IACP,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,OAAO;KACnC,UAAA,oBAAC,WAAD,CAAY,CAAA;IACC,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,eAAe;KAC3C,UAAA,oBAAC,mBAAD,CAAoB,CAAA;IACP,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,aAAa;KACzC,UAAA,oBAAC,iBAAD,CAAkB,CAAA;IACL,CAAA;IAEd,MAAM,mBACL,oBAAC,kBAAD;KACE,QAAQ,MAAM;KACd,YAAY,cAAc,MAAM;KAChC,UAAU,MAAM;IACjB,CAAA;IAGH,oBAAC,uBAAD;KAAuB,IAAG;KAAiB,WAAU;IAAkB,CAAA;GACpE;EAEL,CAAA,GAAA,oBAAC,YAAD;GACE,UAAU,MAAM;GAChB,aAAa,MAAM;GACnB,YAAY,MAAM,cAAc;EACjC,CAAA,CACE;;AAET"}
1
+ {"version":3,"file":"Toolbar.mjs","names":["styles"],"sources":["../../../../../../../../src/components/MarkdownEditor/components/Toolbar.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport styles from \"@/components/MarkdownEditor/MarkdownEditor.module.scss\";\nimport {\n IconBold,\n IconCode,\n IconItalic,\n IconLink,\n IconOrderedList,\n IconQuote,\n IconStrikeThrough,\n IconUnorderedList,\n} from \"@/components/Icon/components/icons\";\nimport {\n ToolbarButton,\n type ToolBarButtonProps,\n} from \"@/components/MarkdownEditor/components/ToolbarButton\";\nimport {\n ModeButton,\n type ModeButtonProps,\n} from \"@/components/MarkdownEditor/components/ModeButton\";\nimport { type ButtonProps } from \"@/components/Button\";\nimport { type InsertType } from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport { UiComponentTunnelExit } from \"@/components/UiComponentTunnel/UiComponentTunnelExit\";\nimport { AttachmentButton } from \"@/components/MarkdownEditor/components/AttachmentButton\";\n\ninterface ToolbarProps extends Pick<ButtonProps, \"isDisabled\"> {\n currentMode: ModeButtonProps[\"currentMode\"];\n onModeChange: ModeButtonProps[\"onChange\"];\n onToolPressed: (type: InsertType) => void;\n /** Which file types the attachment button offers. */\n accept?: string;\n /** Renders the attachment button when set. */\n onFilesSelected?: (files: File[]) => void;\n /**\n * Disables the attachment button, which a read-only editor takes no files\n * for.\n */\n isReadOnly?: boolean;\n}\n\nexport const Toolbar: FC<ToolbarProps> = (props) => {\n const isDisabled = props.isDisabled || props.currentMode === \"preview\";\n\n /** The props of a tool that inserts markdown — all of them but the attachment. */\n const insertTool = (type: InsertType): ToolBarButtonProps => ({\n type,\n isDisabled,\n onPress: () => props.onToolPressed(type),\n });\n\n return (\n <div className={styles.toolbar} role=\"toolbar\">\n <div className={styles.toolbarButtons}>\n <ToolbarButton {...insertTool(\"bold\")}>\n <IconBold />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"italic\")}>\n <IconItalic />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"strikeThrough\")}>\n <IconStrikeThrough />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"quote\")}>\n <IconQuote />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"code\")}>\n <IconCode />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"link\")}>\n <IconLink />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"unorderedList\")}>\n <IconUnorderedList />\n </ToolbarButton>\n\n <ToolbarButton {...insertTool(\"orderedList\")}>\n <IconOrderedList />\n </ToolbarButton>\n\n {props.onFilesSelected && (\n <AttachmentButton\n accept={props.accept}\n isDisabled={isDisabled || props.isReadOnly}\n onSelect={props.onFilesSelected}\n />\n )}\n\n <UiComponentTunnelExit id=\"toolbarActions\" component=\"MarkdownEditor\" />\n </div>\n\n <ModeButton\n onChange={props.onModeChange}\n currentMode={props.currentMode}\n isDisabled={props.isDisabled ?? false}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwCA,IAAa,WAA6B,UAAU;CAClD,MAAM,aAAa,MAAM,cAAc,MAAM,gBAAgB;;CAG7D,MAAM,cAAc,UAA0C;EAC5D;EACA;EACA,eAAe,MAAM,cAAc,IAAI;CACzC;CAEA,OACE,qBAAC,OAAD;EAAK,WAAWA,8BAAO;EAAS,MAAK;EAArC,UAAA,CACE,qBAAC,OAAD;GAAK,WAAWA,8BAAO;GAAvB,UAAA;IACE,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,QAAQ;KACpC,UAAA,oBAAC,YAAD,CAAa,CAAA;IACA,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,eAAe;KAC3C,UAAA,oBAAC,mBAAD,CAAoB,CAAA;IACP,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,OAAO;KACnC,UAAA,oBAAC,WAAD,CAAY,CAAA;IACC,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,MAAM;KAClC,UAAA,oBAAC,UAAD,CAAW,CAAA;IACE,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,eAAe;KAC3C,UAAA,oBAAC,mBAAD,CAAoB,CAAA;IACP,CAAA;IAEf,oBAAC,eAAD;KAAe,GAAI,WAAW,aAAa;KACzC,UAAA,oBAAC,iBAAD,CAAkB,CAAA;IACL,CAAA;IAEd,MAAM,mBACL,oBAAC,kBAAD;KACE,QAAQ,MAAM;KACd,YAAY,cAAc,MAAM;KAChC,UAAU,MAAM;IACjB,CAAA;IAGH,oBAAC,uBAAD;KAAuB,IAAG;KAAiB,WAAU;IAAkB,CAAA;GACpE;EAEL,CAAA,GAAA,oBAAC,YAAD;GACE,UAAU,MAAM;GAChB,aAAa,MAAM;GACnB,YAAY,MAAM,cAAc;EACjC,CAAA,CACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.mjs","names":[],"sources":["../../../../../../../../src/components/MarkdownEditor/components/ToolbarButton.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { type InsertType } from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\n\n/**\n * What a toolbar button is: every markdown syntax it inserts, plus the one tool\n * that does something else. The name is also the `toolbar.<type>` locale key of\n * the button's label.\n */\nexport type ToolbarButtonType = InsertType | \"attachment\";\n\nexport interface ToolBarButtonProps extends Pick<\n ButtonProps,\n \"isDisabled\" | \"children\"\n> {\n type: ToolbarButtonType;\n onPress?: () => void;\n}\n\nexport const ToolbarButton: FC<ToolBarButtonProps> = (props) => {\n const { children, type, onPress, ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(\n locales,\n \"MarkdownEditor\",\n );\n\n return (\n <Button\n {...rest}\n tunnel={null}\n data-button-type={type}\n aria-label={stringFormatter.format(`toolbar.${type}`)}\n size=\"s\"\n variant=\"plain\"\n color=\"dark\"\n onPress={onPress}\n >\n {children}\n </Button>\n );\n};\n"],"mappings":";;;;;;;;AAqBA,IAAa,iBAAyC,UAAU;CAC9D,MAAM,EAAE,UAAU,MAAM,SAAS,GAAG,SAAS;CAE7C,MAAM,kBAAkB,4BACtB,kBACA,gBACF;CAEA,OACE,oBAAC,QAAD;EACE,GAAI;EACJ,QAAQ;EACR,oBAAkB;EAClB,cAAY,gBAAgB,OAAO,WAAW,MAAM;EACpD,MAAK;EACL,SAAQ;EACR,OAAM;EACG;EAER;CACK,CAAA;AAEZ"}
1
+ {"version":3,"file":"ToolbarButton.mjs","names":["locales"],"sources":["../../../../../../../../src/components/MarkdownEditor/components/ToolbarButton.tsx"],"sourcesContent":["import { type FC } from \"react\";\nimport { type InsertType } from \"@/components/MarkdownEditor/lib/modifyValueByType\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useLocalizedStringFormatter } from \"@/components/TranslationProvider/useLocalizedStringFormatter\";\nimport locales from \"../locales/*.locale.json\";\n\n/**\n * What a toolbar button is: every markdown syntax it inserts, plus the one tool\n * that does something else. The name is also the `toolbar.<type>` locale key of\n * the button's label.\n */\nexport type ToolbarButtonType = InsertType | \"attachment\";\n\nexport interface ToolBarButtonProps extends Pick<\n ButtonProps,\n \"isDisabled\" | \"children\"\n> {\n type: ToolbarButtonType;\n onPress?: () => void;\n}\n\nexport const ToolbarButton: FC<ToolBarButtonProps> = (props) => {\n const { children, type, onPress, ...rest } = props;\n\n const stringFormatter = useLocalizedStringFormatter(\n locales,\n \"MarkdownEditor\",\n );\n\n return (\n <Button\n {...rest}\n tunnel={null}\n data-button-type={type}\n aria-label={stringFormatter.format(`toolbar.${type}`)}\n size=\"s\"\n variant=\"plain\"\n color=\"dark\"\n onPress={onPress}\n >\n {children}\n </Button>\n );\n};\n"],"mappings":";;;;;;;;AAqBA,IAAa,iBAAyC,UAAU;CAC9D,MAAM,EAAE,UAAU,MAAM,SAAS,GAAG,SAAS;CAE7C,MAAM,kBAAkB,4BACtBA,kBACA,gBACF;CAEA,OACE,oBAAC,QAAD;EACE,GAAI;EACJ,QAAQ;EACR,oBAAkB;EAClB,cAAY,gBAAgB,OAAO,WAAW,MAAM;EACpD,MAAK;EACL,SAAQ;EACR,OAAM;EACG;EAER;CACK,CAAA;AAEZ"}