@cratis/components 4.19.1 → 4.19.2

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 (720) hide show
  1. package/compat-manifest.json +11 -11
  2. package/dist/esm/Canvas/Canvas.d.ts +1 -0
  3. package/dist/esm/Canvas/Canvas.d.ts.map +1 -0
  4. package/dist/esm/Canvas/Canvas.js.map +1 -1
  5. package/dist/esm/Canvas/CanvasControls.d.ts +1 -0
  6. package/dist/esm/Canvas/CanvasControls.d.ts.map +1 -0
  7. package/dist/esm/Canvas/CanvasControls.js.map +1 -1
  8. package/dist/esm/Canvas/CanvasItem.js.map +1 -1
  9. package/dist/esm/Canvas/CanvasMinimap.js.map +1 -1
  10. package/dist/esm/Canvas/CanvasOverlay.js.map +1 -1
  11. package/dist/esm/Canvas/canvasGesture.js.map +1 -1
  12. package/dist/esm/Canvas/canvasTransformActivity.js.map +1 -1
  13. package/dist/esm/Canvas/index.d.ts +1 -0
  14. package/dist/esm/Canvas/index.d.ts.map +1 -0
  15. package/dist/esm/Canvas/isBackgroundPointerTarget.js.map +1 -1
  16. package/dist/esm/Canvas/isWithinScrollableContent.js.map +1 -1
  17. package/dist/esm/Canvas/panMomentum.js.map +1 -1
  18. package/dist/esm/Canvas/pinchGesture.js.map +1 -1
  19. package/dist/esm/Canvas/selfSuspendingFrameLoop.js.map +1 -1
  20. package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts +1 -0
  21. package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts.map +1 -0
  22. package/dist/esm/Canvas/shapes/ChatBubble/index.js +1 -0
  23. package/dist/esm/Canvas/shapes/ChatBubble/index.js.map +1 -0
  24. package/dist/esm/Canvas/shapes/Note/Note.js.map +1 -1
  25. package/dist/esm/Canvas/shapes/Note/NoteTextChanged.js.map +1 -1
  26. package/dist/esm/Canvas/shapes/Note/index.d.ts +1 -0
  27. package/dist/esm/Canvas/shapes/Note/index.d.ts.map +1 -0
  28. package/dist/esm/Canvas/shapes/Note/index.js +1 -0
  29. package/dist/esm/Canvas/shapes/Note/index.js.map +1 -0
  30. package/dist/esm/Canvas/shapes/Note/noteFont.js.map +1 -1
  31. package/dist/esm/Canvas/shapes/Region/ItemAddedToRegion.js.map +1 -1
  32. package/dist/esm/Canvas/shapes/Region/ItemRemovedFromRegion.js.map +1 -1
  33. package/dist/esm/Canvas/shapes/Region/Region.js.map +1 -1
  34. package/dist/esm/Canvas/shapes/Region/index.d.ts +1 -0
  35. package/dist/esm/Canvas/shapes/Region/index.d.ts.map +1 -0
  36. package/dist/esm/Canvas/shapes/Region/index.js +1 -0
  37. package/dist/esm/Canvas/shapes/Region/index.js.map +1 -0
  38. package/dist/esm/Canvas/shapes/Region/regionContainment.js.map +1 -1
  39. package/dist/esm/Canvas/useDragSelectionGuard.js.map +1 -1
  40. package/dist/esm/Canvas/zoomMechanism.js.map +1 -1
  41. package/dist/esm/Chat/ChatAuthor.d.ts +1 -0
  42. package/dist/esm/Chat/ChatAuthor.d.ts.map +1 -0
  43. package/dist/esm/Chat/ChatAuthor.js.map +1 -1
  44. package/dist/esm/Chat/ChatConversation.d.ts +1 -0
  45. package/dist/esm/Chat/ChatConversation.d.ts.map +1 -0
  46. package/dist/esm/Chat/ChatConversation.js.map +1 -1
  47. package/dist/esm/Chat/ChatIdentifier.js.map +1 -1
  48. package/dist/esm/Chat/ChatMention.d.ts +1 -0
  49. package/dist/esm/Chat/ChatMention.d.ts.map +1 -0
  50. package/dist/esm/Chat/ChatMention.js.map +1 -1
  51. package/dist/esm/Chat/ChatMessage.d.ts +1 -0
  52. package/dist/esm/Chat/ChatMessage.d.ts.map +1 -0
  53. package/dist/esm/Chat/ChatMessage.js.map +1 -1
  54. package/dist/esm/Chat/ChatMessageAction.d.ts +1 -0
  55. package/dist/esm/Chat/ChatMessageAction.d.ts.map +1 -0
  56. package/dist/esm/Chat/ChatMessageAction.js.map +1 -1
  57. package/dist/esm/Chat/ChatMessageBody.d.ts +1 -0
  58. package/dist/esm/Chat/ChatMessageBody.d.ts.map +1 -0
  59. package/dist/esm/Chat/ChatMessageBody.js.map +1 -1
  60. package/dist/esm/Chat/ChatSidebar.d.ts +1 -0
  61. package/dist/esm/Chat/ChatSidebar.d.ts.map +1 -0
  62. package/dist/esm/Chat/ChatSidebar.js.map +1 -1
  63. package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts +1 -0
  64. package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts.map +1 -0
  65. package/dist/esm/Chat/ChatSidebarForObservableQueries.js.map +1 -1
  66. package/dist/esm/Chat/ChatStatus.js.map +1 -1
  67. package/dist/esm/Chat/ChatTopic.d.ts +1 -0
  68. package/dist/esm/Chat/ChatTopic.d.ts.map +1 -0
  69. package/dist/esm/Chat/ChatTopic.js.map +1 -1
  70. package/dist/esm/Chat/ChatTopicList.d.ts +1 -0
  71. package/dist/esm/Chat/ChatTopicList.d.ts.map +1 -0
  72. package/dist/esm/Chat/ChatTopicList.js.map +1 -1
  73. package/dist/esm/Chat/Kit/AnchoredOverlay.js.map +1 -1
  74. package/dist/esm/Chat/Kit/Avatar/PersonAvatarCircle.js.map +1 -1
  75. package/dist/esm/Chat/Kit/Avatar/getAvatarColor.js.map +1 -1
  76. package/dist/esm/Chat/Kit/Avatar/getInitials.js.map +1 -1
  77. package/dist/esm/Chat/Kit/Avatar/index.d.ts +1 -0
  78. package/dist/esm/Chat/Kit/Avatar/index.d.ts.map +1 -0
  79. package/dist/esm/Chat/Kit/Avatar/index.js +1 -0
  80. package/dist/esm/Chat/Kit/Avatar/index.js.map +1 -0
  81. package/dist/esm/Chat/Kit/Chat.d.ts +1 -0
  82. package/dist/esm/Chat/Kit/Chat.d.ts.map +1 -0
  83. package/dist/esm/Chat/Kit/Chat.js.map +1 -1
  84. package/dist/esm/Chat/Kit/ChatAuthorKind.js.map +1 -1
  85. package/dist/esm/Chat/Kit/ChatBubble.d.ts +1 -0
  86. package/dist/esm/Chat/Kit/ChatBubble.d.ts.map +1 -0
  87. package/dist/esm/Chat/Kit/ChatBubble.js.map +1 -1
  88. package/dist/esm/Chat/Kit/ChatComposer.d.ts +1 -0
  89. package/dist/esm/Chat/Kit/ChatComposer.d.ts.map +1 -0
  90. package/dist/esm/Chat/Kit/ChatComposer.js.map +1 -1
  91. package/dist/esm/Chat/Kit/ChatMessage.d.ts +1 -0
  92. package/dist/esm/Chat/Kit/ChatMessage.d.ts.map +1 -0
  93. package/dist/esm/Chat/Kit/ChatMessage.js.map +1 -1
  94. package/dist/esm/Chat/Kit/ChatMessageAdded.js.map +1 -1
  95. package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts +1 -0
  96. package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts.map +1 -0
  97. package/dist/esm/Chat/Kit/ChatMessageBubble.js.map +1 -1
  98. package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts +1 -0
  99. package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts.map +1 -0
  100. package/dist/esm/Chat/Kit/ChatMessageReaction.js.map +1 -1
  101. package/dist/esm/Chat/Kit/ChatMessageReactionUser.js.map +1 -1
  102. package/dist/esm/Chat/Kit/ChatOwnReaction.js.map +1 -1
  103. package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts +1 -0
  104. package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts.map +1 -0
  105. package/dist/esm/Chat/Kit/ChatTypingAuthor.js.map +1 -1
  106. package/dist/esm/Chat/Kit/ChatVariant.js.map +1 -1
  107. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts +1 -0
  108. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts.map +1 -0
  109. package/dist/esm/Chat/Kit/Emoji/EmojiCategory.js.map +1 -1
  110. package/dist/esm/Chat/Kit/Emoji/EmojiCategoryKey.js.map +1 -1
  111. package/dist/esm/Chat/Kit/Emoji/EmojiMemory.js.map +1 -1
  112. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts +1 -0
  113. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts.map +1 -0
  114. package/dist/esm/Chat/Kit/Emoji/EmojiPicker.js.map +1 -1
  115. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts +1 -0
  116. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts.map +1 -0
  117. package/dist/esm/Chat/Kit/Emoji/emojiCatalog.js.map +1 -1
  118. package/dist/esm/Chat/Kit/Emoji/index.d.ts +1 -0
  119. package/dist/esm/Chat/Kit/Emoji/index.d.ts.map +1 -0
  120. package/dist/esm/Chat/Kit/Emoji/index.js +1 -0
  121. package/dist/esm/Chat/Kit/Emoji/index.js.map +1 -0
  122. package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts +1 -0
  123. package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts.map +1 -0
  124. package/dist/esm/Chat/Kit/Emoji/recentEmojis.js.map +1 -1
  125. package/dist/esm/Chat/Kit/FailedReply.d.ts +1 -0
  126. package/dist/esm/Chat/Kit/FailedReply.d.ts.map +1 -0
  127. package/dist/esm/Chat/Kit/FailedReply.js.map +1 -1
  128. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts +1 -0
  129. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts.map +1 -0
  130. package/dist/esm/Chat/Kit/Mentions/MentionCandidate.js.map +1 -1
  131. package/dist/esm/Chat/Kit/Mentions/MentionQuery.js.map +1 -1
  132. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts +1 -0
  133. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts.map +1 -0
  134. package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.js.map +1 -1
  135. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts +1 -0
  136. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts.map +1 -0
  137. package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.js.map +1 -1
  138. package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts +1 -0
  139. package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts.map +1 -0
  140. package/dist/esm/Chat/Kit/Mentions/applyMention.js.map +1 -1
  141. package/dist/esm/Chat/Kit/Mentions/extractMentions.js.map +1 -1
  142. package/dist/esm/Chat/Kit/Mentions/findMentionRanges.js.map +1 -1
  143. package/dist/esm/Chat/Kit/Mentions/index.d.ts +1 -0
  144. package/dist/esm/Chat/Kit/Mentions/index.d.ts.map +1 -0
  145. package/dist/esm/Chat/Kit/Mentions/index.js +1 -0
  146. package/dist/esm/Chat/Kit/Mentions/index.js.map +1 -0
  147. package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts +1 -0
  148. package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts.map +1 -0
  149. package/dist/esm/Chat/Kit/Mentions/matchCandidates.js.map +1 -1
  150. package/dist/esm/Chat/Kit/Mentions/mentionSegments.js.map +1 -1
  151. package/dist/esm/Chat/Kit/MessageReactions.d.ts +1 -0
  152. package/dist/esm/Chat/Kit/MessageReactions.d.ts.map +1 -0
  153. package/dist/esm/Chat/Kit/MessageReactions.js.map +1 -1
  154. package/dist/esm/Chat/Kit/ReactionPicker.d.ts +1 -0
  155. package/dist/esm/Chat/Kit/ReactionPicker.d.ts.map +1 -0
  156. package/dist/esm/Chat/Kit/ReactionPicker.js.map +1 -1
  157. package/dist/esm/Chat/Kit/TypingIndicator.d.ts +1 -0
  158. package/dist/esm/Chat/Kit/TypingIndicator.d.ts.map +1 -0
  159. package/dist/esm/Chat/Kit/TypingIndicator.js.map +1 -1
  160. package/dist/esm/Chat/Kit/findOwnReaction.d.ts +1 -0
  161. package/dist/esm/Chat/Kit/findOwnReaction.d.ts.map +1 -0
  162. package/dist/esm/Chat/Kit/findOwnReaction.js.map +1 -1
  163. package/dist/esm/Chat/Kit/index.d.ts +1 -0
  164. package/dist/esm/Chat/Kit/index.d.ts.map +1 -0
  165. package/dist/esm/Chat/Kit/index.js +1 -0
  166. package/dist/esm/Chat/Kit/index.js.map +1 -0
  167. package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts +1 -0
  168. package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts.map +1 -0
  169. package/dist/esm/Chat/Kit/reactionsExcludingUser.js.map +1 -1
  170. package/dist/esm/Chat/index.d.ts +1 -0
  171. package/dist/esm/Chat/index.d.ts.map +1 -0
  172. package/dist/esm/Chat/isTopicUnnamed.d.ts +1 -0
  173. package/dist/esm/Chat/isTopicUnnamed.d.ts.map +1 -0
  174. package/dist/esm/Chat/isTopicUnnamed.js.map +1 -1
  175. package/dist/esm/Chat/relativeTimestamp.js.map +1 -1
  176. package/dist/esm/Chat/shouldRequestTopicName.js.map +1 -1
  177. package/dist/esm/Chat/topicsByActivity.d.ts +1 -0
  178. package/dist/esm/Chat/topicsByActivity.d.ts.map +1 -0
  179. package/dist/esm/Chat/topicsByActivity.js.map +1 -1
  180. package/dist/esm/CommandDialog/CommandDialog.d.ts +1 -0
  181. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -0
  182. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  183. package/dist/esm/CommandDialog/CommandStepper.d.ts +1 -0
  184. package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -0
  185. package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
  186. package/dist/esm/CommandDialog/CommandStepperContent.d.ts +1 -0
  187. package/dist/esm/CommandDialog/CommandStepperContent.d.ts.map +1 -0
  188. package/dist/esm/CommandDialog/CommandStepperContent.js.map +1 -1
  189. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +1 -0
  190. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -0
  191. package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
  192. package/dist/esm/CommandDialog/StepperPanel.js.map +1 -1
  193. package/dist/esm/CommandDialog/applyBeforeExecute.js.map +1 -1
  194. package/dist/esm/CommandDialog/commandValuesUnchanged.js.map +1 -1
  195. package/dist/esm/CommandDialog/confirmBeforeExecute.js.map +1 -1
  196. package/dist/esm/CommandDialog/index.d.ts +1 -0
  197. package/dist/esm/CommandDialog/index.d.ts.map +1 -0
  198. package/dist/esm/CommandDialog/stepChildren.js.map +1 -1
  199. package/dist/esm/CommandDialog/transitionStep.d.ts +1 -0
  200. package/dist/esm/CommandDialog/transitionStep.d.ts.map +1 -0
  201. package/dist/esm/CommandDialog/transitionStep.js.map +1 -1
  202. package/dist/esm/CommandDialog/useCommandExecution.d.ts +1 -0
  203. package/dist/esm/CommandDialog/useCommandExecution.d.ts.map +1 -0
  204. package/dist/esm/CommandDialog/useCommandExecution.js.map +1 -1
  205. package/dist/esm/CommandDialog/useSubmissionFlight.js.map +1 -1
  206. package/dist/esm/CommandForm/AutoCommandForm.js.map +1 -1
  207. package/dist/esm/CommandForm/FieldTypeProvider.js.map +1 -1
  208. package/dist/esm/CommandForm/commandFormMarkers.js.map +1 -1
  209. package/dist/esm/CommandForm/defaultFieldTypeProviders.js.map +1 -1
  210. package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts +1 -0
  211. package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts.map +1 -0
  212. package/dist/esm/CommandForm/fieldTypeProviderRegistry.js.map +1 -1
  213. package/dist/esm/CommandForm/fields/CalendarField.d.ts +1 -0
  214. package/dist/esm/CommandForm/fields/CalendarField.d.ts.map +1 -0
  215. package/dist/esm/CommandForm/fields/CalendarField.js.map +1 -1
  216. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +1 -0
  217. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -0
  218. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  219. package/dist/esm/CommandForm/fields/ChipsField.d.ts +1 -0
  220. package/dist/esm/CommandForm/fields/ChipsField.d.ts.map +1 -0
  221. package/dist/esm/CommandForm/fields/ChipsField.js.map +1 -1
  222. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts +1 -0
  223. package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -0
  224. package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
  225. package/dist/esm/CommandForm/fields/DropdownField.d.ts +1 -0
  226. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -0
  227. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  228. package/dist/esm/CommandForm/fields/InputTextField.d.ts +1 -0
  229. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -0
  230. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  231. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts +1 -0
  232. package/dist/esm/CommandForm/fields/MultiSelectField.d.ts.map +1 -0
  233. package/dist/esm/CommandForm/fields/MultiSelectField.js.map +1 -1
  234. package/dist/esm/CommandForm/fields/NumberField.d.ts +1 -0
  235. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -0
  236. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  237. package/dist/esm/CommandForm/fields/NumberInputField.d.ts +1 -0
  238. package/dist/esm/CommandForm/fields/NumberInputField.d.ts.map +1 -0
  239. package/dist/esm/CommandForm/fields/NumberInputField.js.map +1 -1
  240. package/dist/esm/CommandForm/fields/PasswordField.d.ts +1 -0
  241. package/dist/esm/CommandForm/fields/PasswordField.d.ts.map +1 -0
  242. package/dist/esm/CommandForm/fields/PasswordField.js.map +1 -1
  243. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts +1 -0
  244. package/dist/esm/CommandForm/fields/RadioButtonField.d.ts.map +1 -0
  245. package/dist/esm/CommandForm/fields/RadioButtonField.js.map +1 -1
  246. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts +1 -0
  247. package/dist/esm/CommandForm/fields/RadioGroupField.d.ts.map +1 -0
  248. package/dist/esm/CommandForm/fields/RadioGroupField.js.map +1 -1
  249. package/dist/esm/CommandForm/fields/RatingField.d.ts +1 -0
  250. package/dist/esm/CommandForm/fields/RatingField.d.ts.map +1 -0
  251. package/dist/esm/CommandForm/fields/RatingField.js.map +1 -1
  252. package/dist/esm/CommandForm/fields/SliderField.d.ts +1 -0
  253. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -0
  254. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  255. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +1 -0
  256. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -0
  257. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  258. package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts +1 -0
  259. package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts.map +1 -0
  260. package/dist/esm/CommandForm/fields/ToggleSwitchField.js.map +1 -1
  261. package/dist/esm/CommandForm/fields/chipValues.js.map +1 -1
  262. package/dist/esm/CommandForm/fields/fieldAccessibility.js.map +1 -1
  263. package/dist/esm/CommandForm/fields/fieldValueFromEvent.js.map +1 -1
  264. package/dist/esm/CommandForm/fields/index.d.ts +1 -0
  265. package/dist/esm/CommandForm/fields/index.d.ts.map +1 -0
  266. package/dist/esm/CommandForm/fields/index.js +1 -0
  267. package/dist/esm/CommandForm/fields/index.js.map +1 -0
  268. package/dist/esm/CommandForm/index.d.ts +1 -0
  269. package/dist/esm/CommandForm/index.d.ts.map +1 -0
  270. package/dist/esm/Common/ActionMenubar.d.ts +1 -0
  271. package/dist/esm/Common/ActionMenubar.d.ts.map +1 -0
  272. package/dist/esm/Common/ActionMenubar.js.map +1 -1
  273. package/dist/esm/Common/Breadcrumbs.js.map +1 -1
  274. package/dist/esm/Common/Button.d.ts +1 -0
  275. package/dist/esm/Common/Button.d.ts.map +1 -0
  276. package/dist/esm/Common/Button.js.map +1 -1
  277. package/dist/esm/Common/ButtonImplementation.d.ts +1 -0
  278. package/dist/esm/Common/ButtonImplementation.d.ts.map +1 -0
  279. package/dist/esm/Common/ButtonImplementation.js.map +1 -1
  280. package/dist/esm/Common/Checkbox.d.ts +1 -0
  281. package/dist/esm/Common/Checkbox.d.ts.map +1 -0
  282. package/dist/esm/Common/Checkbox.js.map +1 -1
  283. package/dist/esm/Common/CheckboxImplementation.d.ts +1 -0
  284. package/dist/esm/Common/CheckboxImplementation.d.ts.map +1 -0
  285. package/dist/esm/Common/CheckboxImplementation.js.map +1 -1
  286. package/dist/esm/Common/ComboBox.js.map +1 -1
  287. package/dist/esm/Common/CratisComponentsProvider.d.ts +1 -0
  288. package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -0
  289. package/dist/esm/Common/CratisComponentsProvider.js.map +1 -1
  290. package/dist/esm/Common/DatePickerInput.d.ts +1 -0
  291. package/dist/esm/Common/DatePickerInput.d.ts.map +1 -0
  292. package/dist/esm/Common/DatePickerInput.js.map +1 -1
  293. package/dist/esm/Common/DatePickerInputImplementation.d.ts +1 -0
  294. package/dist/esm/Common/DatePickerInputImplementation.d.ts.map +1 -0
  295. package/dist/esm/Common/DatePickerInputImplementation.js.map +1 -1
  296. package/dist/esm/Common/ErrorBoundary.js.map +1 -1
  297. package/dist/esm/Common/FormElement.js.map +1 -1
  298. package/dist/esm/Common/Icon.js.map +1 -1
  299. package/dist/esm/Common/IconButton.d.ts +1 -0
  300. package/dist/esm/Common/IconButton.d.ts.map +1 -0
  301. package/dist/esm/Common/IconButton.js.map +1 -1
  302. package/dist/esm/Common/IconButtonImplementation.d.ts +1 -0
  303. package/dist/esm/Common/IconButtonImplementation.d.ts.map +1 -0
  304. package/dist/esm/Common/IconButtonImplementation.js.map +1 -1
  305. package/dist/esm/Common/NumberInput.d.ts +1 -0
  306. package/dist/esm/Common/NumberInput.d.ts.map +1 -0
  307. package/dist/esm/Common/NumberInput.js.map +1 -1
  308. package/dist/esm/Common/NumberInputCommitReason.js.map +1 -1
  309. package/dist/esm/Common/NumberInputPartAttributes.js.map +1 -1
  310. package/dist/esm/Common/Page.js.map +1 -1
  311. package/dist/esm/Common/Radio.d.ts +1 -0
  312. package/dist/esm/Common/Radio.d.ts.map +1 -0
  313. package/dist/esm/Common/Radio.js.map +1 -1
  314. package/dist/esm/Common/RadioImplementation.d.ts +1 -0
  315. package/dist/esm/Common/RadioImplementation.d.ts.map +1 -0
  316. package/dist/esm/Common/RadioImplementation.js.map +1 -1
  317. package/dist/esm/Common/Surface.js.map +1 -1
  318. package/dist/esm/Common/SurfaceImplementation.d.ts +1 -0
  319. package/dist/esm/Common/SurfaceImplementation.d.ts.map +1 -0
  320. package/dist/esm/Common/SurfaceImplementation.js.map +1 -1
  321. package/dist/esm/Common/Switch.d.ts +1 -0
  322. package/dist/esm/Common/Switch.d.ts.map +1 -0
  323. package/dist/esm/Common/Switch.js.map +1 -1
  324. package/dist/esm/Common/SwitchImplementation.d.ts +1 -0
  325. package/dist/esm/Common/SwitchImplementation.d.ts.map +1 -0
  326. package/dist/esm/Common/SwitchImplementation.js.map +1 -1
  327. package/dist/esm/Common/Tabs.js.map +1 -1
  328. package/dist/esm/Common/TagGroup.js.map +1 -1
  329. package/dist/esm/Common/TextArea.d.ts +1 -0
  330. package/dist/esm/Common/TextArea.d.ts.map +1 -0
  331. package/dist/esm/Common/TextArea.js.map +1 -1
  332. package/dist/esm/Common/TextAreaImplementation.d.ts +1 -0
  333. package/dist/esm/Common/TextAreaImplementation.d.ts.map +1 -0
  334. package/dist/esm/Common/TextAreaImplementation.js.map +1 -1
  335. package/dist/esm/Common/TextInput.d.ts +1 -0
  336. package/dist/esm/Common/TextInput.d.ts.map +1 -0
  337. package/dist/esm/Common/TextInput.js.map +1 -1
  338. package/dist/esm/Common/TextInputImplementation.d.ts +1 -0
  339. package/dist/esm/Common/TextInputImplementation.d.ts.map +1 -0
  340. package/dist/esm/Common/TextInputImplementation.js.map +1 -1
  341. package/dist/esm/Common/ToggleGroup.js.map +1 -1
  342. package/dist/esm/Common/ToolbarFocusMode.js.map +1 -1
  343. package/dist/esm/Common/Tooltip.js.map +1 -1
  344. package/dist/esm/Common/TooltipImplementation.d.ts +1 -0
  345. package/dist/esm/Common/TooltipImplementation.d.ts.map +1 -0
  346. package/dist/esm/Common/TooltipImplementation.js.map +1 -1
  347. package/dist/esm/Common/index.d.ts +1 -0
  348. package/dist/esm/Common/index.d.ts.map +1 -0
  349. package/dist/esm/Common/messaging/useOptionalMessenger.js.map +1 -1
  350. package/dist/esm/Common/normalizeIconClass.js.map +1 -1
  351. package/dist/esm/Common/reactAriaProps.js.map +1 -1
  352. package/dist/esm/Common/useNativeCheckedState.js.map +1 -1
  353. package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts +1 -0
  354. package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts.map +1 -0
  355. package/dist/esm/Common/useToolbarKeyboardNavigation.js.map +1 -1
  356. package/dist/esm/DataPage/DataPage.d.ts +1 -0
  357. package/dist/esm/DataPage/DataPage.d.ts.map +1 -0
  358. package/dist/esm/DataPage/DataPage.js.map +1 -1
  359. package/dist/esm/DataPage/DataPageLayout.js.map +1 -1
  360. package/dist/esm/DataPage/index.d.ts +1 -0
  361. package/dist/esm/DataPage/index.d.ts.map +1 -0
  362. package/dist/esm/DataTables/Column.d.ts +1 -0
  363. package/dist/esm/DataTables/Column.d.ts.map +1 -0
  364. package/dist/esm/DataTables/Column.js.map +1 -1
  365. package/dist/esm/DataTables/ColumnFilterMenu.d.ts +1 -0
  366. package/dist/esm/DataTables/ColumnFilterMenu.d.ts.map +1 -0
  367. package/dist/esm/DataTables/ColumnFilterMenu.js.map +1 -1
  368. package/dist/esm/DataTables/DataTableCore.d.ts +1 -0
  369. package/dist/esm/DataTables/DataTableCore.d.ts.map +1 -0
  370. package/dist/esm/DataTables/DataTableCore.js.map +1 -1
  371. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts +1 -0
  372. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts.map +1 -0
  373. package/dist/esm/DataTables/DataTableFilterMatcherRegistry.js.map +1 -1
  374. package/dist/esm/DataTables/DataTableFilterMeta.js.map +1 -1
  375. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
  376. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -0
  377. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  378. package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
  379. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -0
  380. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  381. package/dist/esm/DataTables/DataTableSelectionChangeEvent.js.map +1 -1
  382. package/dist/esm/DataTables/DataTableStatus.js.map +1 -1
  383. package/dist/esm/DataTables/TablePaginator.d.ts +1 -0
  384. package/dist/esm/DataTables/TablePaginator.d.ts.map +1 -0
  385. package/dist/esm/DataTables/TablePaginator.js.map +1 -1
  386. package/dist/esm/DataTables/TablePaginatorImplementation.d.ts +1 -0
  387. package/dist/esm/DataTables/TablePaginatorImplementation.d.ts.map +1 -0
  388. package/dist/esm/DataTables/TablePaginatorImplementation.js.map +1 -1
  389. package/dist/esm/DataTables/index.d.ts +1 -0
  390. package/dist/esm/DataTables/index.d.ts.map +1 -0
  391. package/dist/esm/DataTables/paginatorRange.js.map +1 -1
  392. package/dist/esm/DataTables/resolveDataTableStatus.d.ts +1 -0
  393. package/dist/esm/DataTables/resolveDataTableStatus.d.ts.map +1 -0
  394. package/dist/esm/DataTables/resolveDataTableStatus.js.map +1 -1
  395. package/dist/esm/DataTables/selectionKeys.js.map +1 -1
  396. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  397. package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
  398. package/dist/esm/Dialogs/Dialog.d.ts +1 -0
  399. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
  400. package/dist/esm/Dialogs/Dialog.js.map +1 -1
  401. package/dist/esm/Dialogs/DialogImplementation.d.ts +1 -0
  402. package/dist/esm/Dialogs/DialogImplementation.d.ts.map +1 -0
  403. package/dist/esm/Dialogs/DialogImplementation.js.map +1 -1
  404. package/dist/esm/Dialogs/DialogInitialFocus.js.map +1 -1
  405. package/dist/esm/Dialogs/index.d.ts +1 -0
  406. package/dist/esm/Dialogs/index.d.ts.map +1 -0
  407. package/dist/esm/Display/Avatar.js.map +1 -1
  408. package/dist/esm/Display/Badge.js.map +1 -1
  409. package/dist/esm/Display/Chip.js.map +1 -1
  410. package/dist/esm/Display/Message.js.map +1 -1
  411. package/dist/esm/Display/ProgressBar.js.map +1 -1
  412. package/dist/esm/Display/ProgressBarImplementation.d.ts +1 -0
  413. package/dist/esm/Display/ProgressBarImplementation.d.ts.map +1 -0
  414. package/dist/esm/Display/ProgressBarImplementation.js.map +1 -1
  415. package/dist/esm/Display/ProgressSpinner.js.map +1 -1
  416. package/dist/esm/Display/Skeleton.js.map +1 -1
  417. package/dist/esm/Display/Tag.js.map +1 -1
  418. package/dist/esm/Display/index.d.ts +1 -0
  419. package/dist/esm/Display/index.d.ts.map +1 -0
  420. package/dist/esm/Dropdown/Dropdown.d.ts +1 -0
  421. package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -0
  422. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  423. package/dist/esm/Dropdown/DropdownImplementation.d.ts +1 -0
  424. package/dist/esm/Dropdown/DropdownImplementation.d.ts.map +1 -0
  425. package/dist/esm/Dropdown/DropdownImplementation.js.map +1 -1
  426. package/dist/esm/Dropdown/index.d.ts +1 -0
  427. package/dist/esm/Dropdown/index.d.ts.map +1 -0
  428. package/dist/esm/Dropdown/observeLabelAssociations.js.map +1 -1
  429. package/dist/esm/Dropdown/useExternalLabel.js.map +1 -1
  430. package/dist/esm/Filter/CheckboxListFilter.d.ts +1 -0
  431. package/dist/esm/Filter/CheckboxListFilter.d.ts.map +1 -0
  432. package/dist/esm/Filter/CheckboxListFilter.js.map +1 -1
  433. package/dist/esm/Filter/FilterEditor.d.ts +1 -0
  434. package/dist/esm/Filter/FilterEditor.d.ts.map +1 -0
  435. package/dist/esm/Filter/FilterEditor.js.map +1 -1
  436. package/dist/esm/Filter/FilterEditorProps.d.ts +1 -0
  437. package/dist/esm/Filter/FilterEditorProps.d.ts.map +1 -0
  438. package/dist/esm/Filter/FilterEditorProps.js.map +1 -1
  439. package/dist/esm/Filter/FilterPanel.d.ts +1 -0
  440. package/dist/esm/Filter/FilterPanel.d.ts.map +1 -0
  441. package/dist/esm/Filter/FilterPanel.js.map +1 -1
  442. package/dist/esm/Filter/RangeHistogramFilter.d.ts +1 -0
  443. package/dist/esm/Filter/RangeHistogramFilter.d.ts.map +1 -0
  444. package/dist/esm/Filter/RangeHistogramFilter.js.map +1 -1
  445. package/dist/esm/Filter/index.d.ts +1 -0
  446. package/dist/esm/Filter/index.d.ts.map +1 -0
  447. package/dist/esm/Filter/types.js.map +1 -1
  448. package/dist/esm/Filter/useFilterState.d.ts +1 -0
  449. package/dist/esm/Filter/useFilterState.d.ts.map +1 -0
  450. package/dist/esm/Filter/useFilterState.js.map +1 -1
  451. package/dist/esm/Filter/useOptionListOverflow.js.map +1 -1
  452. package/dist/esm/Filter/utils.d.ts +1 -0
  453. package/dist/esm/Filter/utils.d.ts.map +1 -0
  454. package/dist/esm/Filter/utils.js.map +1 -1
  455. package/dist/esm/Notifications/Toaster.js.map +1 -1
  456. package/dist/esm/Notifications/index.d.ts +1 -0
  457. package/dist/esm/Notifications/index.d.ts.map +1 -0
  458. package/dist/esm/Notifications/toast.js.map +1 -1
  459. package/dist/esm/Notifications/toastCommandResult.js.map +1 -1
  460. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +1 -0
  461. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  462. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
  463. package/dist/esm/ObjectContentEditor/index.d.ts +1 -0
  464. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  465. package/dist/esm/ObjectContentEditor/objectHelpers.d.ts +1 -0
  466. package/dist/esm/ObjectContentEditor/objectHelpers.d.ts.map +1 -0
  467. package/dist/esm/ObjectContentEditor/objectHelpers.js.map +1 -1
  468. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
  469. package/dist/esm/ObjectNavigationalBar/breadcrumbHelpers.js.map +1 -1
  470. package/dist/esm/ObjectNavigationalBar/index.d.ts +1 -0
  471. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  472. package/dist/esm/PivotViewer/PivotViewer.d.ts +1 -0
  473. package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -0
  474. package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
  475. package/dist/esm/PivotViewer/PivotViewerLabels.js.map +1 -1
  476. package/dist/esm/PivotViewer/components/AxisLabels.d.ts +1 -0
  477. package/dist/esm/PivotViewer/components/AxisLabels.d.ts.map +1 -0
  478. package/dist/esm/PivotViewer/components/AxisLabels.js.map +1 -1
  479. package/dist/esm/PivotViewer/components/DetailPanel.js.map +1 -1
  480. package/dist/esm/PivotViewer/components/FilterPanel.d.ts +1 -0
  481. package/dist/esm/PivotViewer/components/FilterPanel.d.ts.map +1 -0
  482. package/dist/esm/PivotViewer/components/FilterPanel.js.map +1 -1
  483. package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts +1 -0
  484. package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts.map +1 -0
  485. package/dist/esm/PivotViewer/components/FilterPanelContainer.js.map +1 -1
  486. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +1 -0
  487. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -0
  488. package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -1
  489. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +1 -0
  490. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -0
  491. package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -1
  492. package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts +1 -0
  493. package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts.map +1 -0
  494. package/dist/esm/PivotViewer/components/RangeHistogramFilter.js.map +1 -1
  495. package/dist/esm/PivotViewer/components/Spinner.js.map +1 -1
  496. package/dist/esm/PivotViewer/components/Toolbar.d.ts +1 -0
  497. package/dist/esm/PivotViewer/components/Toolbar.d.ts.map +1 -0
  498. package/dist/esm/PivotViewer/components/Toolbar.js.map +1 -1
  499. package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts +1 -0
  500. package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts.map +1 -0
  501. package/dist/esm/PivotViewer/components/ToolbarContainer.js.map +1 -1
  502. package/dist/esm/PivotViewer/components/index.d.ts +1 -0
  503. package/dist/esm/PivotViewer/components/index.d.ts.map +1 -0
  504. package/dist/esm/PivotViewer/components/index.js +1 -0
  505. package/dist/esm/PivotViewer/components/index.js.map +1 -0
  506. package/dist/esm/PivotViewer/components/pivot/animation.d.ts +1 -0
  507. package/dist/esm/PivotViewer/components/pivot/animation.d.ts.map +1 -0
  508. package/dist/esm/PivotViewer/components/pivot/animation.js.map +1 -1
  509. package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts +1 -0
  510. package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts.map +1 -0
  511. package/dist/esm/PivotViewer/components/pivot/colorResolver.js.map +1 -1
  512. package/dist/esm/PivotViewer/components/pivot/constants.js.map +1 -1
  513. package/dist/esm/PivotViewer/components/pivot/ellipsize.js.map +1 -1
  514. package/dist/esm/PivotViewer/components/pivot/groups.d.ts +1 -0
  515. package/dist/esm/PivotViewer/components/pivot/groups.d.ts.map +1 -0
  516. package/dist/esm/PivotViewer/components/pivot/groups.js.map +1 -1
  517. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +1 -0
  518. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -0
  519. package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -1
  520. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts +1 -0
  521. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts.map +1 -0
  522. package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.js.map +1 -1
  523. package/dist/esm/PivotViewer/components/pivot/visibility.d.ts +1 -0
  524. package/dist/esm/PivotViewer/components/pivot/visibility.d.ts.map +1 -0
  525. package/dist/esm/PivotViewer/components/pivot/visibility.js.map +1 -1
  526. package/dist/esm/PivotViewer/constants.js.map +1 -1
  527. package/dist/esm/PivotViewer/engine/layout.d.ts +1 -0
  528. package/dist/esm/PivotViewer/engine/layout.d.ts.map +1 -0
  529. package/dist/esm/PivotViewer/engine/layout.js.map +1 -1
  530. package/dist/esm/PivotViewer/engine/pivot.worker.js +1 -0
  531. package/dist/esm/PivotViewer/engine/pivot.worker.js.map +1 -0
  532. package/dist/esm/PivotViewer/engine/requestCorrelator.js.map +1 -1
  533. package/dist/esm/PivotViewer/engine/store.d.ts +1 -0
  534. package/dist/esm/PivotViewer/engine/store.d.ts.map +1 -0
  535. package/dist/esm/PivotViewer/engine/store.js.map +1 -1
  536. package/dist/esm/PivotViewer/engine/types.js.map +1 -1
  537. package/dist/esm/PivotViewer/hooks/index.d.ts +1 -0
  538. package/dist/esm/PivotViewer/hooks/index.d.ts.map +1 -0
  539. package/dist/esm/PivotViewer/hooks/index.js +1 -0
  540. package/dist/esm/PivotViewer/hooks/index.js.map +1 -0
  541. package/dist/esm/PivotViewer/hooks/useAnimationModeTracking.js.map +1 -1
  542. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts +1 -0
  543. package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts.map +1 -0
  544. package/dist/esm/PivotViewer/hooks/useCardSelection.js.map +1 -1
  545. package/dist/esm/PivotViewer/hooks/useContainerDimensions.js.map +1 -1
  546. package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts +1 -0
  547. package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts.map +1 -0
  548. package/dist/esm/PivotViewer/hooks/useCurrentFilters.js.map +1 -1
  549. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts +1 -0
  550. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts.map +1 -0
  551. package/dist/esm/PivotViewer/hooks/useDetailPanelClose.js.map +1 -1
  552. package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts +1 -0
  553. package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts.map +1 -0
  554. package/dist/esm/PivotViewer/hooks/useDimensionState.js.map +1 -1
  555. package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts +1 -0
  556. package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts.map +1 -0
  557. package/dist/esm/PivotViewer/hooks/useFieldExtractors.js.map +1 -1
  558. package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts +1 -0
  559. package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts.map +1 -0
  560. package/dist/esm/PivotViewer/hooks/useFilterOptions.js.map +1 -1
  561. package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.js.map +1 -1
  562. package/dist/esm/PivotViewer/hooks/useFilterState.d.ts +1 -0
  563. package/dist/esm/PivotViewer/hooks/useFilterState.d.ts.map +1 -0
  564. package/dist/esm/PivotViewer/hooks/useFilterState.js.map +1 -1
  565. package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts +1 -0
  566. package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts.map +1 -0
  567. package/dist/esm/PivotViewer/hooks/useFilteredData.js +1 -0
  568. package/dist/esm/PivotViewer/hooks/useFilteredData.js.map +1 -0
  569. package/dist/esm/PivotViewer/hooks/usePanning.js.map +1 -1
  570. package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts +1 -0
  571. package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts.map +1 -0
  572. package/dist/esm/PivotViewer/hooks/usePivotEngine.js.map +1 -1
  573. package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts +1 -0
  574. package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts.map +1 -0
  575. package/dist/esm/PivotViewer/hooks/useScrollSync.js.map +1 -1
  576. package/dist/esm/PivotViewer/hooks/useSelectedItem.js +1 -0
  577. package/dist/esm/PivotViewer/hooks/useSelectedItem.js.map +1 -0
  578. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts +1 -0
  579. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts.map +1 -0
  580. package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.js.map +1 -1
  581. package/dist/esm/PivotViewer/hooks/useWheelZoom.js.map +1 -1
  582. package/dist/esm/PivotViewer/hooks/useZoomScrollAnchor.js.map +1 -1
  583. package/dist/esm/PivotViewer/hooks/useZoomState.js.map +1 -1
  584. package/dist/esm/PivotViewer/index.d.ts +1 -0
  585. package/dist/esm/PivotViewer/index.d.ts.map +1 -0
  586. package/dist/esm/PivotViewer/types.d.ts +1 -0
  587. package/dist/esm/PivotViewer/types.d.ts.map +1 -0
  588. package/dist/esm/PivotViewer/types.js.map +1 -1
  589. package/dist/esm/PivotViewer/utils/animations.js.map +1 -1
  590. package/dist/esm/PivotViewer/utils/cardPosition.d.ts +1 -0
  591. package/dist/esm/PivotViewer/utils/cardPosition.d.ts.map +1 -0
  592. package/dist/esm/PivotViewer/utils/cardPosition.js.map +1 -1
  593. package/dist/esm/PivotViewer/utils/constants.js.map +1 -1
  594. package/dist/esm/PivotViewer/utils/idResolution.d.ts +1 -0
  595. package/dist/esm/PivotViewer/utils/idResolution.d.ts.map +1 -0
  596. package/dist/esm/PivotViewer/utils/idResolution.js.map +1 -1
  597. package/dist/esm/PivotViewer/utils/index.d.ts +1 -0
  598. package/dist/esm/PivotViewer/utils/index.d.ts.map +1 -0
  599. package/dist/esm/PivotViewer/utils/index.js +1 -0
  600. package/dist/esm/PivotViewer/utils/index.js.map +1 -0
  601. package/dist/esm/PivotViewer/utils/presentGrouping.d.ts +1 -0
  602. package/dist/esm/PivotViewer/utils/presentGrouping.d.ts.map +1 -0
  603. package/dist/esm/PivotViewer/utils/presentGrouping.js.map +1 -1
  604. package/dist/esm/PivotViewer/utils/search.d.ts +1 -0
  605. package/dist/esm/PivotViewer/utils/search.d.ts.map +1 -0
  606. package/dist/esm/PivotViewer/utils/search.js.map +1 -1
  607. package/dist/esm/PivotViewer/utils/selection.d.ts +1 -0
  608. package/dist/esm/PivotViewer/utils/selection.d.ts.map +1 -0
  609. package/dist/esm/PivotViewer/utils/selection.js.map +1 -1
  610. package/dist/esm/PivotViewer/utils/utils.d.ts +1 -0
  611. package/dist/esm/PivotViewer/utils/utils.d.ts.map +1 -0
  612. package/dist/esm/PivotViewer/utils/utils.js.map +1 -1
  613. package/dist/esm/QueryStatus/QueryStatus.js.map +1 -1
  614. package/dist/esm/QueryStatus/resolveQueryStatus.d.ts +1 -0
  615. package/dist/esm/QueryStatus/resolveQueryStatus.d.ts.map +1 -0
  616. package/dist/esm/QueryStatus/resolveQueryStatus.js.map +1 -1
  617. package/dist/esm/SchemaEditor/NameCell.d.ts +1 -0
  618. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  619. package/dist/esm/SchemaEditor/NameCell.js.map +1 -1
  620. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +1 -0
  621. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  622. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
  623. package/dist/esm/SchemaEditor/TypeCell.d.ts +1 -0
  624. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  625. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -1
  626. package/dist/esm/SchemaEditor/index.d.ts +1 -0
  627. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  628. package/dist/esm/SchemaEditor/schemaHelpers.d.ts +1 -0
  629. package/dist/esm/SchemaEditor/schemaHelpers.d.ts.map +1 -0
  630. package/dist/esm/SchemaEditor/schemaHelpers.js.map +1 -1
  631. package/dist/esm/TimeMachine/EventsView.d.ts +1 -0
  632. package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -0
  633. package/dist/esm/TimeMachine/EventsView.js.map +1 -1
  634. package/dist/esm/TimeMachine/Properties.js.map +1 -1
  635. package/dist/esm/TimeMachine/ReadModelView.d.ts +1 -0
  636. package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -0
  637. package/dist/esm/TimeMachine/ReadModelView.js.map +1 -1
  638. package/dist/esm/TimeMachine/TimeMachine.d.ts +1 -0
  639. package/dist/esm/TimeMachine/TimeMachine.d.ts.map +1 -0
  640. package/dist/esm/TimeMachine/TimeMachine.js.map +1 -1
  641. package/dist/esm/TimeMachine/TimeMachineLabels.js.map +1 -1
  642. package/dist/esm/TimeMachine/index.d.ts +1 -0
  643. package/dist/esm/TimeMachine/index.d.ts.map +1 -0
  644. package/dist/esm/TimeMachine/propertiesHelpers.js.map +1 -1
  645. package/dist/esm/TimeMachine/types.js.map +1 -1
  646. package/dist/esm/Toolbar/Toolbar.d.ts +1 -0
  647. package/dist/esm/Toolbar/Toolbar.d.ts.map +1 -0
  648. package/dist/esm/Toolbar/Toolbar.js.map +1 -1
  649. package/dist/esm/Toolbar/ToolbarButton.d.ts +1 -0
  650. package/dist/esm/Toolbar/ToolbarButton.d.ts.map +1 -0
  651. package/dist/esm/Toolbar/ToolbarButton.js.map +1 -1
  652. package/dist/esm/Toolbar/ToolbarContext.js.map +1 -1
  653. package/dist/esm/Toolbar/ToolbarDragContext.js.map +1 -1
  654. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts +1 -0
  655. package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts.map +1 -0
  656. package/dist/esm/Toolbar/ToolbarFanOutItem.js.map +1 -1
  657. package/dist/esm/Toolbar/ToolbarFolder.d.ts +1 -0
  658. package/dist/esm/Toolbar/ToolbarFolder.d.ts.map +1 -0
  659. package/dist/esm/Toolbar/ToolbarFolder.js.map +1 -1
  660. package/dist/esm/Toolbar/ToolbarFolderContext.js.map +1 -1
  661. package/dist/esm/Toolbar/ToolbarGroup.js.map +1 -1
  662. package/dist/esm/Toolbar/ToolbarItemVisibilityContext.js.map +1 -1
  663. package/dist/esm/Toolbar/ToolbarLayout.js.map +1 -1
  664. package/dist/esm/Toolbar/ToolbarSection.js.map +1 -1
  665. package/dist/esm/Toolbar/ToolbarSeparator.js.map +1 -1
  666. package/dist/esm/Toolbar/ToolbarSlot.js.map +1 -1
  667. package/dist/esm/Toolbar/index.d.ts +1 -0
  668. package/dist/esm/Toolbar/index.d.ts.map +1 -0
  669. package/dist/esm/configuration/CratisComponentsContext.d.ts +1 -0
  670. package/dist/esm/configuration/CratisComponentsContext.d.ts.map +1 -0
  671. package/dist/esm/configuration/CratisComponentsContext.js.map +1 -1
  672. package/dist/esm/configuration/CratisComponentsDefaults.d.ts +1 -0
  673. package/dist/esm/configuration/CratisComponentsDefaults.d.ts.map +1 -0
  674. package/dist/esm/configuration/CratisComponentsDefaults.js.map +1 -1
  675. package/dist/esm/configuration/useCratisIcon.d.ts +1 -0
  676. package/dist/esm/configuration/useCratisIcon.d.ts.map +1 -0
  677. package/dist/esm/configuration/useCratisIcon.js.map +1 -1
  678. package/dist/esm/index.d.ts +1 -0
  679. package/dist/esm/index.d.ts.map +1 -0
  680. package/dist/esm/renderer/DialogStackContext.js.map +1 -1
  681. package/dist/esm/renderer/RendererContext.d.ts +1 -0
  682. package/dist/esm/renderer/RendererContext.d.ts.map +1 -0
  683. package/dist/esm/renderer/RendererContext.js.map +1 -1
  684. package/dist/esm/renderer/RendererScope.d.ts +1 -0
  685. package/dist/esm/renderer/RendererScope.d.ts.map +1 -0
  686. package/dist/esm/renderer/RendererScope.js.map +1 -1
  687. package/dist/esm/renderer/builtin/index.js.map +1 -1
  688. package/dist/esm/renderer/capabilities.js.map +1 -1
  689. package/dist/esm/renderer/coreSlots.d.ts +1 -0
  690. package/dist/esm/renderer/coreSlots.d.ts.map +1 -0
  691. package/dist/esm/renderer/coreSlots.js.map +1 -1
  692. package/dist/esm/renderer/dialogStack.js.map +1 -1
  693. package/dist/esm/renderer/errors.d.ts +1 -0
  694. package/dist/esm/renderer/errors.d.ts.map +1 -0
  695. package/dist/esm/renderer/errors.js.map +1 -1
  696. package/dist/esm/renderer/index.d.ts +1 -0
  697. package/dist/esm/renderer/index.d.ts.map +1 -0
  698. package/dist/esm/renderer/manifest.d.ts +1 -0
  699. package/dist/esm/renderer/manifest.d.ts.map +1 -0
  700. package/dist/esm/renderer/manifest.js.map +1 -1
  701. package/dist/esm/renderer/overlayEnvironment.js.map +1 -1
  702. package/dist/esm/renderer/presentation.d.ts +1 -0
  703. package/dist/esm/renderer/presentation.d.ts.map +1 -0
  704. package/dist/esm/renderer/presentation.js.map +1 -1
  705. package/dist/esm/renderer/renderSlot.js.map +1 -1
  706. package/dist/esm/renderer/resolve.d.ts +1 -0
  707. package/dist/esm/renderer/resolve.d.ts.map +1 -0
  708. package/dist/esm/renderer/resolve.js.map +1 -1
  709. package/dist/esm/renderer/slots.js.map +1 -1
  710. package/dist/esm/types/ChangeHandler.d.ts +1 -0
  711. package/dist/esm/types/ChangeHandler.d.ts.map +1 -0
  712. package/dist/esm/types/ChangeHandler.js.map +1 -1
  713. package/dist/esm/types/ChangeMeta.js.map +1 -1
  714. package/dist/esm/types/ExactPartKeys.js.map +1 -1
  715. package/dist/esm/types/JsonSchema.js.map +1 -1
  716. package/dist/esm/types/TypeFormat.js.map +1 -1
  717. package/dist/esm/types/index.d.ts +1 -0
  718. package/dist/esm/types/index.d.ts.map +1 -0
  719. package/dist/esm/types/parts.js.map +1 -1
  720. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TimeMachine.js","sources":["../../../TimeMachine/TimeMachine.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAYA,IAAK,SAGJ;AAHD,CAAA,UAAK,SAAS,EAAA;AACV,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACrB,CAAC,EAHI,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;MA+BD,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,mBAAmB,GAAG,CAAC,EACvB,eAAe,EACf,iBAAiB,GAAG,EAAE,EACtB,MAAM,GACT,KAAI;IACD,MAAM,CAAC,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IACvE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3D,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,SAAS,CAAC,SAAS,CAAC;AACxE,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC;AAEtC,IAAA,MAAM,mBAAmB,GAAG,WAAW,CACnC,CAAC,KAAa,KAAI;QACd,gBAAgB,CAAC,KAAK,CAAC;AACvB,QAAA,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAA,CAAC,EACD,CAAC,eAAe,CAAC,CACpB;AAED,IAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,KAAoB,KAAI;QAC7D,eAAe,CAAC,KAAK,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC;IAGN,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,SAAS,EAAE;YAClC;QACJ;AAEA,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO;AACtC,QAAA,IAAI,CAAC,SAAS;YAAE;AAEhB,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;YAElC,IAAI,cAAc,EAAE;gBAChB;YACJ;YAGA,CAAC,CAAC,cAAc,EAAE;AAIlB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAG3E,YAAA,oBAAoB,CAAC,OAAO,IAAI,KAAK;YAGrC,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE;AAC7D,gBAAA,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,CAC3D;AAED,gBAAA,IAAI,QAAQ,KAAK,aAAa,EAAE;oBAC5B,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,oBAAA,eAAe,GAAG,QAAQ,CAAC;gBAC/B;AAGA,gBAAA,oBAAoB,CAAC,OAAO,GAAG,CAAC;YACpC;AACJ,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAEpE,QAAA,OAAO,MAAK;AACR,YAAA,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;AACvD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE;AACC,QAAA,QAAQ,CAAC,MAAM;QACf,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,cAAc;QACd,QAAQ;AACX,KAAA,CAAC;IAQF,MAAM,SAAS,GAAG,OAAO,CACrB,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EACzD,CAAC,QAAQ,CAAC,CACb;AACD,IAAA,MAAM,4BAA4B,GAAG,OAAO,CACxC,MACI,IAAI,GAAG,CACH,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,CACvC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,CAClC,CACJ,EACL,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC5B;AAED,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,cAAc,EAAC,GAAG,EAAE,YAAY,aAE3CA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAC1BC,gBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,YAAA,EAAe,QAAQ,KAAK,SAAS,CAAC,SAAS,GAAG,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC5E,OAAO,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,gBACnC,CAAC,CAAC,aAAa,EAC3B,KAAK,EAAE,CAAC,CAAC,aAAa,EAAA,eAAA,EACP,QAAQ,KAAK,SAAS,CAAC,SAAS,IAAI,SAAS,EAAA,cAAA,EAC9C,QAAQ,KAAK,SAAS,CAAC,SAAS,IAAI,SAAS,YAE3DA,GAAA,CAAC,YAAY,mBAAa,MAAM,EAAA,CAAG,GAC9B,EACTA,GAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,YAAA,EAAe,QAAQ,KAAK,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,EAAE,EAAE,EACzE,OAAO,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA,YAAA,EAChC,CAAC,CAAC,UAAU,EACxB,KAAK,EAAE,CAAC,CAAC,UAAU,mBACJ,QAAQ,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,EAAA,cAAA,EAC3C,QAAQ,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,EAAA,QAAA,EAExDA,IAAC,MAAM,EAAA,EAAA,aAAA,EAAa,MAAM,EAAA,CAAG,EAAA,CACxB,IACP,EAGL,QAAQ,KAAK,SAAS,CAAC,SAAS,IAC7BA,IAAC,aAAa,EAAA,EACV,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,mBAAmB,EACpC,oBAAoB,EAAE,iBAAiB,EACvC,MAAM,EAAE,CAAC,GACX,KAEFA,IAAC,mCAAmC,CAAC,QAAQ,EAAA,EACzC,KAAK,EAAE,4BAA4B,EAAA,QAAA,EAEnCA,IAAC,UAAU,EAAA,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAA,CAAI,GACD,CAClD,EAGA,QAAQ,KAAK,SAAS,CAAC,SAAS,KAC7BA,GAAA,CAAC,QAAQ,IACL,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,mBAAmB,GAC9B,CACL,EAGA,QAAQ,KAAK,SAAS,CAAC,SAAS,KAC7BD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,aAChCC,GAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iBAAiB,EAC3B,QAAQ,EAAE,aAAa,KAAK,CAAC,EAC7B,OAAO,EAAE,MACL,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,EAAA,YAAA,EAE3C,CAAC,CAAC,eAAe,EAAA,eAAA,EACd,aAAa,KAAK,CAAC,IAAI,SAAS,EAAA,QAAA,EAAA,QAAA,EAAA,CAG1C,EACTA,gBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iBAAiB,EAC3B,QAAQ,EAAE,aAAa,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAC/C,OAAO,EAAE,MACL,mBAAmB,CACf,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CACnD,gBAEO,CAAC,CAAC,WAAW,EAAA,eAAA,EACV,aAAa,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,EAAA,QAAA,EAAA,QAAA,EAAA,CAG5D,IACP,CACT,CAAA,EAAA,CACC;AAEd;AAUA,MAAM,QAAQ,GAA4B,CAAC,EACvC,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,GACV,KAAI;AACD,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE;AAE9B,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,QAAuB,KAAY;QACxE,IAAI,QAAQ,KAAK,IAAI;AAAE,YAAA,OAAO,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;QAE3C,IAAI,QAAQ,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;QAC9B,IAAI,QAAQ,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;QAC9B,IAAI,QAAQ,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;QAC9B,IAAI,QAAQ,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;AAC9B,QAAA,OAAO,CAAC;AACZ,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,IAAU,KAAY;AACtC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACnC,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,IAAI,EAAE,SAAS;AAClB,SAAA,CAAC;AACN,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,IAAU,KAAY;AACtC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACnC,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AACpB,SAAA,CAAC;AACN,IAAA,CAAC;IAED,QACIA,aAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EACrBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,YAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;gBAC7B,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC;AAC3D,gBAAA,MAAM,UAAU,GAAG,KAAK,KAAK,aAAa;AAC1C,gBAAA,MAAM,SAAS,GAAG,KAAK,KAAK,YAAY;AAExC,gBAAA,QACID,IAAA,CAAA,QAAA,EAAA,EAEI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,eAAA,EAAkB,UAAU,GAAG,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,GAAG,SAAS,GAAG,EAAE,CAAA,CAAE,EACzF,KAAK,EACD;AACI,wBAAA,iBAAiB,EAAE,aAAa;qBACZ,EAE5B,YAAY,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,EAClC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,OAAO,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAA,cAAA,EAChB,UAAU,EAAA,YAAA,EACZ,CAAA,EAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAAE,EAAA,eAAA,EAChE,UAAU,IAAI,SAAS,EAAA,cAAA,EACxB,UAAU,IAAI,SAAS,EAAA,QAAA,EAAA,CAErCC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,CAAO,EACrCD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAC3BC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAC1B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAA,CAC3B,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAC1B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAA,CAC3B,CAAA,EAAA,CACL,CAAA,EAAA,EA1BD,OAAO,CAAC,EAAE,CA2BV;AAEjB,YAAA,CAAC,CAAC,EAAA,CACA,EAAA,CACJ;AAEd,CAAC;;"}
1
+ {"version":3,"file":"TimeMachine.js","sources":["../../../TimeMachine/TimeMachine.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type React from 'react';\nimport { useState, useCallback, useRef, useEffect, useMemo } from 'react';\nimport type { Version } from './types';\nimport { ReadModelView } from './ReadModelView';\nimport { EventsView, SelectedEventSequenceNumbersContext } from './EventsView';\nimport { type TimeMachineLabels, defaultTimeMachineLabels } from './TimeMachineLabels';\nimport { FaBoxArchive, FaList } from 'react-icons/fa6';\nimport { useLocale } from 'react-aria-components/I18nProvider';\n\nenum ViewModes {\n ReadModel = 'ReadModel',\n Events = 'Events',\n}\n\n/** Props for the localized, keyboard-accessible event/read-model timeline. */\nexport interface TimeMachineProps {\n /** Ordered list of historical entity versions (snapshots) to scrub through. */\n versions: Version[];\n /**\n * Initial zero-based selected version. Changes after mount do not replace the component's\n * internal selection; observe user changes through {@link onVersionChange}.\n */\n currentVersionIndex?: number;\n /**\n * Invoked when the user selects a different version through the timeline, wheel gesture, or\n * previous/next buttons. Called immediately after the internal state changes.\n */\n onVersionChange?: (index: number) => void;\n /** Scroll sensitivity - higher values require more scrolling to change versions */\n scrollSensitivity?: number;\n /** Override any user-facing string (for localization). See {@link TimeMachineLabels}. */\n labels?: Partial<TimeMachineLabels>;\n}\n\n/**\n * A version slider/timeline component that lets a user scrub through historical snapshots\n * of an event-sourced entity. Supports two view modes: read-model snapshots (with a\n * fish-eye timeline and version cards) and a vertical event timeline. Built on top of\n * event-sourced read models.\n */\nexport const TimeMachine: React.FC<TimeMachineProps> = ({\n versions,\n currentVersionIndex = 0,\n onVersionChange,\n scrollSensitivity = 50,\n labels,\n}) => {\n const l = { ...defaultTimeMachineLabels, ...labels };\n const [selectedIndex, setSelectedIndex] = useState(currentVersionIndex);\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n const [isHoveringCard, setIsHoveringCard] = useState(false);\n const [viewMode, setViewMode] = useState<ViewModes>(ViewModes.ReadModel);\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollAccumulatorRef = useRef(0);\n\n const handleVersionSelect = useCallback(\n (index: number) => {\n setSelectedIndex(index);\n onVersionChange?.(index);\n },\n [onVersionChange],\n );\n\n const handleTimelineHover = useCallback((index: number | null) => {\n setHoveredIndex(index);\n }, []);\n\n // Handle trackpad two-finger scroll gesture\n useEffect(() => {\n if (viewMode !== ViewModes.ReadModel) {\n return;\n }\n\n const container = containerRef.current;\n if (!container) return;\n\n const handleWheel = (e: WheelEvent) => {\n // Only handle navigation when not hovering over a card\n if (isHoveringCard) {\n return; // Allow normal scrolling within cards\n }\n\n // Prevent default scrolling behavior\n e.preventDefault();\n\n // Use deltaX for horizontal scroll, fallback to deltaY for vertical\n // Most trackpads send horizontal delta for two-finger swipe\n const delta = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? e.deltaX : e.deltaY;\n\n // Accumulate scroll delta\n scrollAccumulatorRef.current += delta;\n\n // Check if we've accumulated enough scroll to change version\n if (Math.abs(scrollAccumulatorRef.current) >= scrollSensitivity) {\n const direction = scrollAccumulatorRef.current > 0 ? 1 : -1;\n const newIndex = Math.max(\n 0,\n Math.min(versions.length - 1, selectedIndex + direction),\n );\n\n if (newIndex !== selectedIndex) {\n setSelectedIndex(newIndex);\n onVersionChange?.(newIndex);\n }\n\n // Reset accumulator after version change\n scrollAccumulatorRef.current = 0;\n }\n };\n\n container.addEventListener('wheel', handleWheel, { passive: false });\n\n return () => {\n container.removeEventListener('wheel', handleWheel);\n };\n }, [\n versions.length,\n selectedIndex,\n onVersionChange,\n scrollSensitivity,\n isHoveringCard,\n viewMode,\n ]);\n\n // Calculate the display index - either hovered or selected\n // (not used in this component; ReadModelView computes its own display index)\n void hoveredIndex;\n void selectedIndex;\n\n // Keep derived event collections stable across unrelated hover/view-mode renders.\n const allEvents = useMemo(\n () => versions.flatMap((version) => version.events || []),\n [versions],\n );\n const selectedEventSequenceNumbers = useMemo(\n () =>\n new Set(\n (versions[selectedIndex]?.events ?? []).map(\n (event) => event.sequenceNumber,\n ),\n ),\n [selectedIndex, versions],\n );\n\n return (\n <div className='time-machine' ref={containerRef}>\n {/* View Switcher */}\n <div className='view-switcher'>\n <button\n type='button'\n className={`view-button ${viewMode === ViewModes.ReadModel ? 'active' : ''}`}\n onClick={() => setViewMode(ViewModes.ReadModel)}\n aria-label={l.readModelView}\n title={l.readModelView}\n data-selected={viewMode === ViewModes.ReadModel || undefined}\n data-pressed={viewMode === ViewModes.ReadModel || undefined}\n >\n <FaBoxArchive aria-hidden='true' />\n </button>\n <button\n type='button'\n className={`view-button ${viewMode === ViewModes.Events ? 'active' : ''}`}\n onClick={() => setViewMode(ViewModes.Events)}\n aria-label={l.eventsView}\n title={l.eventsView}\n data-selected={viewMode === ViewModes.Events || undefined}\n data-pressed={viewMode === ViewModes.Events || undefined}\n >\n <FaList aria-hidden='true' />\n </button>\n </div>\n\n {/* Render the appropriate view */}\n {viewMode === ViewModes.ReadModel ? (\n <ReadModelView\n versions={versions}\n selectedIndex={selectedIndex}\n hoveredIndex={hoveredIndex}\n onVersionSelect={handleVersionSelect}\n onHoveringCardChange={setIsHoveringCard}\n labels={l}\n />\n ) : (\n <SelectedEventSequenceNumbersContext.Provider\n value={selectedEventSequenceNumbers}\n >\n <EventsView events={allEvents} labels={l} />\n </SelectedEventSequenceNumbersContext.Provider>\n )}\n\n {/* Timeline - only show in ReadModel view */}\n {viewMode === ViewModes.ReadModel && (\n <Timeline\n versions={versions}\n selectedIndex={selectedIndex}\n hoveredIndex={hoveredIndex}\n onSelect={handleVersionSelect}\n onHover={handleTimelineHover}\n />\n )}\n\n {/* Navigation arrows - only show in ReadModel view */}\n {viewMode === ViewModes.ReadModel && (\n <div className='navigation-controls'>\n <button\n type='button'\n className='nav-button prev'\n disabled={selectedIndex === 0}\n onClick={() =>\n handleVersionSelect(Math.max(0, selectedIndex - 1))\n }\n aria-label={l.previousVersion}\n data-disabled={selectedIndex === 0 || undefined}\n >\n ‹\n </button>\n <button\n type='button'\n className='nav-button next'\n disabled={selectedIndex === versions.length - 1}\n onClick={() =>\n handleVersionSelect(\n Math.min(versions.length - 1, selectedIndex + 1),\n )\n }\n aria-label={l.nextVersion}\n data-disabled={selectedIndex === versions.length - 1 || undefined}\n >\n ›\n </button>\n </div>\n )}\n </div>\n );\n};\n\ninterface TimelineProps {\n versions: Version[];\n selectedIndex: number;\n hoveredIndex: number | null;\n onSelect: (index: number) => void;\n onHover: (index: number | null) => void;\n}\n\nconst Timeline: React.FC<TimelineProps> = ({\n versions,\n selectedIndex,\n hoveredIndex,\n onSelect,\n onHover,\n}) => {\n const { locale } = useLocale();\n\n const getMagnification = (index: number, hoverIdx: number | null): number => {\n if (hoverIdx === null) return 1;\n const distance = Math.abs(index - hoverIdx);\n // Fish-eye effect: items close to hover get magnified\n if (distance === 0) return 2.0;\n if (distance === 1) return 1.6;\n if (distance === 2) return 1.3;\n if (distance === 3) return 1.1;\n return 1;\n };\n\n const formatDate = (date: Date): string => {\n return date.toLocaleDateString(locale, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n });\n };\n\n const formatTime = (date: Date): string => {\n return date.toLocaleTimeString(locale, {\n hour: 'numeric',\n minute: '2-digit',\n });\n };\n\n return (\n <div className='timeline'>\n <div className='timeline-track'>\n {versions.map((version, index) => {\n const magnification = getMagnification(index, hoveredIndex);\n const isSelected = index === selectedIndex;\n const isHovered = index === hoveredIndex;\n\n return (\n <button\n key={version.id}\n type='button'\n className={`timeline-entry ${isSelected ? 'selected' : ''} ${isHovered ? 'hovered' : ''}`}\n style={\n {\n '--magnification': magnification,\n } as React.CSSProperties\n }\n onMouseEnter={() => onHover(index)}\n onMouseLeave={() => onHover(null)}\n onFocus={() => onHover(index)}\n onBlur={() => onHover(null)}\n onClick={() => onSelect(index)}\n aria-pressed={isSelected}\n aria-label={`${formatDate(version.timestamp)} ${formatTime(version.timestamp)}`}\n data-selected={isSelected || undefined}\n data-pressed={isSelected || undefined}\n >\n <div className='timeline-tick'></div>\n <div className='timeline-label'>\n <span className='timeline-date'>\n {formatDate(version.timestamp)}\n </span>\n <span className='timeline-time'>\n {formatTime(version.timestamp)}\n </span>\n </div>\n </button>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default TimeMachine;\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimeMachineLabels.js","sources":["../../../TimeMachine/TimeMachineLabels.ts"],"sourcesContent":[null],"names":[],"mappings":"AAmCO,MAAM,wBAAwB,GAAsB;AACvD,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,eAAe,EAAE,kBAAkB;AACnC,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,iBAAiB,EAAE,qBAAqB;AACxC,IAAA,qBAAqB,EAAE,0BAA0B;AACjD,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,mBAAmB,EAAE,gBAAgB;AACrC,IAAA,uBAAuB,EAAE,qBAAqB;AAC9C,IAAA,mBAAmB,EAAE,gBAAgB;;;"}
1
+ {"version":3,"file":"TimeMachineLabels.js","sources":["../../../TimeMachine/TimeMachineLabels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * User-facing strings for {@link TimeMachine} and its sub-views. Every field is\n * optional at the call site; pass a partial `labels` to override any (for\n * localization). Omitted fields fall back to {@link defaultTimeMachineLabels}\n * (English).\n */\nexport interface TimeMachineLabels {\n /** Accessible name for the read-model view toggle. */\n readModelView: string;\n /** Accessible name for the events view toggle. */\n eventsView: string;\n /** Accessible name for the previous-version control. */\n previousVersion: string;\n /** Accessible name for the next-version control. */\n nextVersion: string;\n /** Accessible name for the \"show related events\" control. */\n showRelatedEvents: string;\n /** Accessible name for the \"show read-model snapshot\" control. */\n showReadModelSnapshot: string;\n /** Accessible name for the \"scroll to top\" control. */\n scrollToTop: string;\n /** Accessible name for the \"scroll to bottom\" control. */\n scrollToBottom: string;\n /** Accessible name for the scrollable event timeline region. */\n eventTimelineRegion: string;\n /** Accessible name for a version's scrollable read-model snapshot region. */\n readModelSnapshotRegion: string;\n /** Title and accessible name for a version's scrollable related-events region. */\n relatedEventsRegion: string;\n}\n\n/** English defaults for {@link TimeMachineLabels}. */\nexport const defaultTimeMachineLabels: TimeMachineLabels = {\n readModelView: 'Read Model View',\n eventsView: 'Events View',\n previousVersion: 'Previous version',\n nextVersion: 'Next version',\n showRelatedEvents: 'Show related events',\n showReadModelSnapshot: 'Show read model snapshot',\n scrollToTop: 'Scroll to top',\n scrollToBottom: 'Scroll to bottom',\n eventTimelineRegion: 'Event timeline',\n readModelSnapshotRegion: 'Read model snapshot',\n relatedEventsRegion: 'Related Events',\n};\n"],"names":[],"mappings":"AAmCO,MAAM,wBAAwB,GAAsB;AACvD,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,eAAe,EAAE,kBAAkB;AACnC,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,iBAAiB,EAAE,qBAAqB;AACxC,IAAA,qBAAqB,EAAE,0BAA0B;AACjD,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,mBAAmB,EAAE,gBAAgB;AACrC,IAAA,uBAAuB,EAAE,qBAAqB;AAC9C,IAAA,mBAAmB,EAAE,gBAAgB;;;"}
@@ -7,3 +7,4 @@ export { defaultTimeMachineLabels } from './TimeMachineLabels.js';
7
7
  export type { TimeMachineLabels } from './TimeMachineLabels.js';
8
8
  export { Properties } from './Properties.js';
9
9
  export * from './types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../TimeMachine/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAc,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAqB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC1C,cAAc,YAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"propertiesHelpers.js","sources":["../../../TimeMachine/propertiesHelpers.ts"],"sourcesContent":[null],"names":[],"mappings":"AAMM,SAAU,kBAAkB,CAAC,GAAW,EAAA;AAC1C,IAAA,OAAO;AACF,SAAA,OAAO,CAAC,UAAU,EAAE,KAAK;SACzB,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,SAAA,IAAI,EAAE;AACf;;"}
1
+ {"version":3,"file":"propertiesHelpers.js","sources":["../../../TimeMachine/propertiesHelpers.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Converts a camelCase property key to a human-readable Title Case label with spaces.\n */\nexport function formatPropertyName(key: string): string {\n return key\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, str => str.toUpperCase())\n .trim();\n}\n"],"names":[],"mappings":"AAMM,SAAU,kBAAkB,CAAC,GAAW,EAAA;AAC1C,IAAA,OAAO;AACF,SAAA,OAAO,CAAC,UAAU,EAAE,KAAK;SACzB,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;AACtC,SAAA,IAAI,EAAE;AACf;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../TimeMachine/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../TimeMachine/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG","sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * A historical snapshot of an entity at a point in time, holding the read-model state\n * and optionally the events that produced it.\n */\nexport interface Version {\n /** Unique identifier for this version snapshot. */\n id: string;\n /** Wall-clock timestamp when this version was captured. */\n timestamp: Date;\n /** User-facing label describing this version (e.g. \"Initial Registration\", \"Updated Profile\"). */\n label: string;\n /** Rendered read-model state at this point in time (typically a {@link Properties} table). */\n content: React.ReactNode;\n /** Domain events that produced this version, rendered in {@link EventsView}. */\n events?: Event[];\n}\n\n/**\n * A domain event rendered in the vertical timeline.\n * Represents one immutable fact appended to the event log.\n */\nexport interface Event {\n /** Event sequence number in the event log (determines timeline order). */\n sequenceNumber: number;\n /** Event type name (e.g. \"AuthorRegistered\", \"ProfileUpdated\"). */\n type: string;\n /** Wall-clock timestamp when this event occurred. */\n occurred: Date;\n /** Event payload (property bag) rendered by {@link Properties}. */\n content: Record<string, unknown>;\n}\n\n/**\n * A single entry in the fish-eye timeline scrubber.\n * A lightweight version reference without the full read-model snapshot.\n */\nexport interface TimelineEntry {\n /** Unique identifier for this timeline entry (typically the same as {@link Version.id}). */\n id: string;\n /** Wall-clock timestamp for this timeline tick. */\n timestamp: Date;\n /** User-facing label shown when hovering over this timeline entry. */\n label: string;\n}\n"]}
@@ -39,3 +39,4 @@ export interface ToolbarProps {
39
39
  * Supports both vertical (default) and horizontal orientations.
40
40
  */
41
41
  export declare const Toolbar: ({ children, orientation, focusMode, draggable, onItemDragStart, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, pt, }: ToolbarProps) => import("react").JSX.Element;
42
+ //# sourceMappingURL=Toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA4B,CAAC;AAM9D,kDAAkD;AAClD,MAAM,WAAW,YAAY;IACzB,oBAAoB;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACzC;AAKD,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,SAAS,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sCAAsC;IACtC,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CACrE;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,iJAUjB,YAAY,gCA+Bd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sources":["../../../Toolbar/Toolbar.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;;;;;;;AAsDO,MAAM,OAAO,GAAG,CAAC,EACpB,QAAQ,EACR,WAAW,GAAG,UAAU,EACxB,SAAS,GAAG,gBAAgB,CAAC,MAAM,EACnC,SAAS,GAAG,KAAK,EACjB,eAAe,EACf,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,EAAE,GACS,KAAI;AACf,IAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,4BAA4B,CAAC,WAAW,EAAE,SAAS,CAAC;AACnF,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAyB,EAAE;IAChD,MAAM,iBAAiB,GAAG,SAAS,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;IAE1E,QACIA,IAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,YAC9DA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1G,IAAI,EAAC,SAAS,EAAA,kBAAA,EACI,WAAW,EAAA,YAAA,EACjB,cAAc,GAAG,SAAS,GAAG,iBAAiB,EAAA,iBAAA,EACzC,cAAc,EAC/B,SAAS,EAAE;gBACP,4BAA4B;gBAC5B,WAAW,KAAK,YAAY,GAAG,iBAAiB,GAAG,iBAAiB;gBACpE,gEAAgE;gBAChE,EAAE,EAAE,IAAI,EAAE,SAAS;gBACnB,SAAS;AACZ;iBACI,MAAM,CAAC,OAAO;AACd,iBAAA,IAAI,CAAC,GAAG,CAAC,EAAA,kBAAA,EACG,MAAM,EAAA,kBAAA,EACL,WAAW,EAAA,QAAA,EAE5B,QAAQ,EAAA,CACP,EAAA,CACoB;AAEtC;;"}
1
+ {"version":3,"file":"Toolbar.js","sources":["../../../Toolbar/Toolbar.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { type HTMLAttributes, type ReactNode } from 'react';\nimport { ToolbarDragContext } from './ToolbarDragContext';\nimport { ToolbarFocusMode } from '../Common/ToolbarFocusMode';\nimport { useToolbarKeyboardNavigation } from '../Common/useToolbarKeyboardNavigation';\nimport { useCratisComponentsConfig } from '../Common/CratisComponentsProvider';\nimport type { ExactPartKeys } from '../types/ExactPartKeys';\nimport type { PartsOf } from '../types/parts';\n\n/** Stable part attributes for {@link Toolbar}. */\nexport interface ToolbarParts {\n /** Toolbar root. */\n root?: HTMLAttributes<HTMLDivElement>;\n}\n\nconst toolbarPartsMatchManifest: ExactPartKeys<ToolbarParts, PartsOf<'Toolbar'>> = true;\nvoid toolbarPartsMatchManifest;\n\n/** Props for the {@link Toolbar} component. */\nexport interface ToolbarProps {\n /** The {@link ToolbarButton} elements to render inside this toolbar group. */\n children: ReactNode;\n /** Keyboard focus behavior (default: {@link ToolbarFocusMode.Arrows}). */\n focusMode?: ToolbarFocusMode;\n /** Layout direction of the toolbar (default: 'vertical'). */\n orientation?: 'vertical' | 'horizontal';\n /** Extra class name for the toolbar root. */\n className?: string;\n /** Accessible toolbar name. Overrides the provider's `messages.toolbar.label` fallback. */\n 'aria-label'?: string;\n /** Identifies an external element that names the toolbar. Takes precedence over `aria-label`. */\n 'aria-labelledby'?: string;\n /** Stable toolbar part attributes. */\n pt?: ToolbarParts;\n /**\n * When `true`, all {@link ToolbarButton} children become draggable by default.\n * Individual buttons can still override this with their own `draggable` prop.\n */\n draggable?: boolean;\n /**\n * Callback invoked when any child toolbar item starts being dragged.\n * Receives the item's associated data and the originating drag event.\n * Only fires for items that are actually draggable.\n */\n onItemDragStart?: (data: unknown, event: React.DragEvent) => void;\n}\n\n/**\n * A toolbar container that groups icon buttons with a rounded border,\n * mimicking the style of tools panels found in canvas-based applications.\n * Supports both vertical (default) and horizontal orientations.\n */\nexport const Toolbar = ({\n children,\n orientation = 'vertical',\n focusMode = ToolbarFocusMode.Arrows,\n draggable = false,\n onItemDragStart,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n pt,\n}: ToolbarProps) => {\n const { rootRef, onKeyDown } = useToolbarKeyboardNavigation(orientation, focusMode);\n const { messages } = useCratisComponentsConfig();\n const resolvedAriaLabel = ariaLabel ?? messages?.toolbar?.label ?? 'Tools';\n\n return (\n <ToolbarDragContext.Provider value={{ draggable, onItemDragStart }}>\n <div\n {...pt?.root}\n ref={rootRef}\n onKeyDown={event => { pt?.root?.onKeyDown?.(event); if (!event.isPropagationStopped()) onKeyDown(event); }}\n role='toolbar'\n aria-orientation={orientation}\n aria-label={ariaLabelledBy ? undefined : resolvedAriaLabel}\n aria-labelledby={ariaLabelledBy}\n className={[\n 'toolbar cratis:inline-flex',\n orientation === 'horizontal' ? 'cratis:flex-row' : 'cratis:flex-col',\n 'cratis:items-center cratis:gap-1 cratis:p-2 cratis:rounded-2xl',\n pt?.root?.className,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n data-cratis-part='root'\n data-orientation={orientation}\n >\n {children}\n </div>\n </ToolbarDragContext.Provider>\n );\n};\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;AAsDO,MAAM,OAAO,GAAG,CAAC,EACpB,QAAQ,EACR,WAAW,GAAG,UAAU,EACxB,SAAS,GAAG,gBAAgB,CAAC,MAAM,EACnC,SAAS,GAAG,KAAK,EACjB,eAAe,EACf,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,EAAE,GACS,KAAI;AACf,IAAA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,4BAA4B,CAAC,WAAW,EAAE,SAAS,CAAC;AACnF,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAyB,EAAE;IAChD,MAAM,iBAAiB,GAAG,SAAS,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,OAAO;IAE1E,QACIA,IAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,YAC9DA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1G,IAAI,EAAC,SAAS,EAAA,kBAAA,EACI,WAAW,EAAA,YAAA,EACjB,cAAc,GAAG,SAAS,GAAG,iBAAiB,EAAA,iBAAA,EACzC,cAAc,EAC/B,SAAS,EAAE;gBACP,4BAA4B;gBAC5B,WAAW,KAAK,YAAY,GAAG,iBAAiB,GAAG,iBAAiB;gBACpE,gEAAgE;gBAChE,EAAE,EAAE,IAAI,EAAE,SAAS;gBACnB,SAAS;AACZ;iBACI,MAAM,CAAC,OAAO;AACd,iBAAA,IAAI,CAAC,GAAG,CAAC,EAAA,kBAAA,EACG,MAAM,EAAA,kBAAA,EACL,WAAW,EAAA,QAAA,EAE5B,QAAQ,EAAA,CACP,EAAA,CACoB;AAEtC;;"}
@@ -50,3 +50,4 @@ export interface ToolbarButtonProps {
50
50
  * Uses the shared {@link Tooltip} component for consistent hover labels.
51
51
  */
52
52
  export declare const ToolbarButton: ({ icon, text, title, active, onClick, tooltipPosition, draggable, data, onDragStart, className, pt, }: ToolbarButtonProps) => import("react").JSX.Element;
53
+ //# sourceMappingURL=ToolbarButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarButton.d.ts","sourceRoot":"","sources":["../../../Toolbar/ToolbarButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,oBAAoB,EACpB,cAAc,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAKzD,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IAC/B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,oBAAoB;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACvC,gCAAgC;IAChC,KAAK,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CAC3C;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IAC/B,2FAA2F;IAC3F,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,2GAA2G;IAC3G,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IAEd,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,yEAAyE;IACzE,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACpF;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,0GAYvB,kBAAkB,gCAoGpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.js","sources":["../../../Toolbar/ToolbarButton.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarButton.js","sources":["../../../Toolbar/ToolbarButton.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type {\n ButtonHTMLAttributes,\n HTMLAttributes,\n} from 'react';\nimport { IconDisplay } from '../Common/Icon';\nimport type { Icon } from '../Common/Icon';\nimport { Tooltip } from '../Common/Tooltip';\nimport type { TooltipPosition } from '../Common/Tooltip';\nimport { useToolbarDragContext } from './ToolbarDragContext';\nimport { useToolbarFolderMode } from './ToolbarFolderContext';\nimport { useToolbarItemVisibility } from './ToolbarItemVisibilityContext';\n\n/** Stable part attributes for {@link ToolbarButton}. */\nexport interface ToolbarButtonParts {\n /** Native button root. */\n root?: ButtonHTMLAttributes<HTMLButtonElement>;\n /** Icon wrapper. */\n icon?: HTMLAttributes<HTMLSpanElement>;\n /** Text/title label wrapper. */\n label?: HTMLAttributes<HTMLSpanElement>;\n}\n\n/** Props for the {@link ToolbarButton} component. */\nexport interface ToolbarButtonProps {\n /** React icon node or consumer-owned icon-font class. Components installs no icon font. */\n icon?: Icon;\n\n /** Optional text-first content (for example `120%`); when non-empty it renders instead of {@link icon}. */\n text?: string;\n\n /** Title text shown when the user hovers over the button. */\n title: string;\n\n /** Whether the button is currently in the active/selected state. */\n active?: boolean;\n\n /** Callback invoked when the button is clicked. */\n onClick?: () => void;\n\n /** Position of the tooltip relative to the button (default: 'right'). */\n tooltipPosition?: TooltipPosition;\n\n /** Extra class name for the native button. */\n className?: string;\n\n /** Stable button part attributes. */\n pt?: ToolbarButtonParts;\n\n /**\n * Whether this button can be dragged onto a surface.\n * When omitted the value is inherited from the parent {@link Toolbar}'s `draggable` prop.\n */\n draggable?: boolean;\n\n /**\n * Optional data associated with this button for identification during drag &amp; drop.\n * The value is passed to {@link onDragStart} and serialised onto the HTML5\n * `DataTransfer` object as `application/json` so drop targets can read it.\n */\n data?: unknown;\n\n /**\n * Callback invoked when a drag operation starts on this button.\n * Receives the button's {@link data} and the originating drag event.\n */\n onDragStart?: (data: unknown, event: React.DragEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * An icon button with a tooltip, intended to be placed inside a {@link Toolbar}.\n * Uses the shared {@link Tooltip} component for consistent hover labels.\n */\nexport const ToolbarButton = ({\n icon,\n text,\n title,\n active,\n onClick,\n tooltipPosition = 'right',\n draggable,\n data,\n onDragStart,\n className,\n pt,\n}: ToolbarButtonProps) => {\n const dragContext = useToolbarDragContext();\n const folderMode = useToolbarFolderMode();\n const isToolbarItemVisible = useToolbarItemVisibility();\n const isListMode = folderMode === 'list';\n const isDraggable = draggable ?? dragContext.draggable;\n\n const handleDragStart = (event: React.DragEvent<HTMLButtonElement>) => {\n event.dataTransfer.setData('application/json', JSON.stringify(data ?? null));\n event.dataTransfer.effectAllowed = 'copy';\n onDragStart?.(data, event);\n dragContext.onItemDragStart?.(data, event);\n };\n\n const activeClass = active ? 'toolbar-button--active' : '';\n const draggableClass = isDraggable ? 'toolbar-button--draggable' : '';\n const hasText = typeof text === 'string' && text.length > 0;\n const resolvedIcon = icon !== undefined && icon !== null && (typeof icon !== 'string' || icon.length > 0) ? icon : null;\n\n // List mode: icon + title label rendered side by side (no floating tooltip needed).\n if (isListMode) {\n return (\n <button\n aria-pressed={active}\n {...pt?.root}\n type='button'\n aria-label={title}\n onClick={onClick}\n draggable={isDraggable}\n onDragStart={isDraggable ? handleDragStart : undefined}\n className={`toolbar-button toolbar-button--list cratis:h-10 cratis:px-3 cratis:w-full cratis:flex cratis:items-center cratis:justify-start cratis:gap-2 cratis:rounded-lg cratis:cursor-pointer ${activeClass} ${draggableClass} ${pt?.root?.className ?? ''} ${className ?? ''}`}\n data-cratis-part='button'\n data-active={active || undefined}\n data-selected={active || undefined}\n >\n {resolvedIcon !== null && (\n <span\n {...pt?.icon}\n className={pt?.icon?.className}\n data-cratis-part='icon'\n >\n <IconDisplay\n icon={resolvedIcon}\n className='cratis:text-lg cratis:flex-shrink-0'\n />\n </span>\n )}\n <span\n {...pt?.label}\n className={`toolbar-button__label ${pt?.label?.className ?? ''}`}\n data-cratis-part='label'\n >\n {title}\n </span>\n </button>\n );\n }\n\n const buttonSizeClass = hasText ? 'cratis:h-10 cratis:px-3 cratis:min-w-[4rem]' : 'cratis:w-10 cratis:h-10';\n const buttonContent = hasText ? (\n <span\n {...pt?.label}\n className={`toolbar-button__text ${pt?.label?.className ?? ''}`}\n data-cratis-part='label'\n >\n {text}\n </span>\n ) : resolvedIcon === null ? null : (\n <span\n {...pt?.icon}\n className={pt?.icon?.className}\n data-cratis-part='icon'\n >\n <IconDisplay icon={resolvedIcon} className='cratis:text-lg' />\n </span>\n );\n\n return (\n <Tooltip\n content={title}\n position={tooltipPosition}\n disabled={!isToolbarItemVisible}\n >\n <button\n aria-pressed={active}\n {...pt?.root}\n type='button'\n aria-label={title}\n onClick={onClick}\n draggable={isDraggable}\n onDragStart={isDraggable ? handleDragStart : undefined}\n className={`toolbar-button ${buttonSizeClass} cratis:flex cratis:items-center cratis:justify-center cratis:rounded-lg cratis:cursor-pointer ${activeClass} ${draggableClass} ${pt?.root?.className ?? ''} ${className ?? ''}`}\n data-cratis-part='button'\n data-active={active || undefined}\n data-selected={active || undefined}\n >\n {buttonContent}\n </button>\n </Tooltip>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AA2EO,MAAM,aAAa,GAAG,CAAC,EAC1B,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,eAAe,GAAG,OAAO,EACzB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,SAAS,EACT,EAAE,GACe,KAAI;AACrB,IAAA,MAAM,WAAW,GAAG,qBAAqB,EAAE;AAC3C,IAAA,MAAM,UAAU,GAAG,oBAAoB,EAAE;AACzC,IAAA,MAAM,oBAAoB,GAAG,wBAAwB,EAAE;AACvD,IAAA,MAAM,UAAU,GAAG,UAAU,KAAK,MAAM;AACxC,IAAA,MAAM,WAAW,GAAG,SAAS,IAAI,WAAW,CAAC,SAAS;AAEtD,IAAA,MAAM,eAAe,GAAG,CAAC,KAAyC,KAAI;AAClE,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC5E,QAAA,KAAK,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM;AACzC,QAAA,WAAW,GAAG,IAAI,EAAE,KAAK,CAAC;QAC1B,WAAW,CAAC,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC;AAC9C,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,GAAG,wBAAwB,GAAG,EAAE;IAC1D,MAAM,cAAc,GAAG,WAAW,GAAG,2BAA2B,GAAG,EAAE;AACrE,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAC3D,IAAA,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;IAGvH,IAAI,UAAU,EAAE;QACZ,QACIA,IAAA,CAAA,QAAA,EAAA,EAAA,cAAA,EACkB,MAAM,EAAA,GAChB,EAAE,EAAE,IAAI,EACZ,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,KAAK,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,EACtD,SAAS,EAAE,CAAA,oLAAA,EAAuL,WAAW,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,kBAAA,EAChQ,QAAQ,EAAA,aAAA,EACZ,MAAM,IAAI,SAAS,EAAA,eAAA,EACjB,MAAM,IAAI,SAAS,EAAA,QAAA,EAAA,CAEjC,YAAY,KAAK,IAAI,KAClBC,GAAA,CAAA,MAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAA,kBAAA,EACb,MAAM,EAAA,QAAA,EAEvBA,GAAA,CAAC,WAAW,EAAA,EACR,IAAI,EAAE,YAAY,EAClB,SAAS,EAAC,qCAAqC,EAAA,CACjD,EAAA,CACC,CACV,EACDA,GAAA,CAAA,MAAA,EAAA,EAAA,GACQ,EAAE,EAAE,KAAK,EACb,SAAS,EAAE,CAAA,sBAAA,EAAyB,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,kBAAA,EAC/C,OAAO,EAAA,QAAA,EAEvB,KAAK,EAAA,CACH,CAAA,EAAA,CACF;IAEjB;IAEA,MAAM,eAAe,GAAG,OAAO,GAAG,6CAA6C,GAAG,yBAAyB;AAC3G,IAAA,MAAM,aAAa,GAAG,OAAO,IACzBA,GAAA,CAAA,MAAA,EAAA,EAAA,GACQ,EAAE,EAAE,KAAK,EACb,SAAS,EAAE,CAAA,qBAAA,EAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,EAAA,kBAAA,EAC9C,OAAO,EAAA,QAAA,EAEvB,IAAI,GACF,IACP,YAAY,KAAK,IAAI,GAAG,IAAI,IAC5BA,GAAA,CAAA,MAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAA,kBAAA,EACb,MAAM,EAAA,QAAA,EAEvBA,GAAA,CAAC,WAAW,IAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAC3D,CACV;AAED,IAAA,QACIA,GAAA,CAAC,OAAO,IACJ,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,CAAC,oBAAoB,EAAA,QAAA,EAE/BA,gCACkB,MAAM,EAAA,GAChB,EAAE,EAAE,IAAI,EACZ,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,KAAK,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,WAAW,GAAG,eAAe,GAAG,SAAS,EACtD,SAAS,EAAE,CAAA,eAAA,EAAkB,eAAe,CAAA,+FAAA,EAAkG,WAAW,IAAI,cAAc,CAAA,CAAA,EAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,EAAE,EAAA,kBAAA,EAC5M,QAAQ,iBACZ,MAAM,IAAI,SAAS,EAAA,eAAA,EACjB,MAAM,IAAI,SAAS,EAAA,QAAA,EAEjC,aAAa,EAAA,CACT,EAAA,CACH;AAElB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarContext.js","sources":["../../../Toolbar/ToolbarContext.tsx"],"sourcesContent":[null],"names":[],"mappings":"MA2Ba,cAAc,GAA4B,MAAM;;"}
1
+ {"version":3,"file":"ToolbarContext.js","sources":["../../../Toolbar/ToolbarContext.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { FC, ReactNode } from 'react';\n\n/** Props for the {@link ToolbarContext} component. */\nexport interface ToolbarContextProps {\n /** Unique name identifying this context within a {@link ToolbarSection}. */\n name: string;\n /** The toolbar items to render when this context is active. */\n children: ReactNode;\n /**\n * Optional slot name. When provided, any {@link ToolbarSlot} with a matching `slotName`\n * within the nearest {@link ToolbarSlotProvider} will render its content inside this\n * context alongside the declared children.\n *\n * Slot entries are appended after the context's own children and sorted by their `order` value.\n */\n slotName?: string;\n}\n\n/**\n * Defines a named context (a set of toolbar items) within a {@link ToolbarSection}.\n * The section renders only the active context at a time and animates between them.\n *\n * This is a data-only component; its rendering is fully managed by {@link ToolbarSection}.\n */\nexport const ToolbarContext: FC<ToolbarContextProps> = () => null;\n"],"names":[],"mappings":"MA2Ba,cAAc,GAA4B,MAAM;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarDragContext.js","sources":["../../../Toolbar/ToolbarDragContext.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAqBO,MAAM,kBAAkB,GAAG,aAAa,CAA0B;AACrE,IAAA,SAAS,EAAE,KAAK;AACnB,CAAA;AAOM,MAAM,qBAAqB,GAAG,MAA+B,UAAU,CAAC,kBAAkB;;"}
1
+ {"version":3,"file":"ToolbarDragContext.js","sources":["../../../Toolbar/ToolbarDragContext.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { createContext, useContext } from 'react';\n\n/** Internal context shared from {@link Toolbar} to its children for drag-and-drop wiring. */\nexport interface ToolbarDragContextValue {\n /** Whether all buttons inside this toolbar are draggable by default. */\n draggable: boolean;\n /**\n * Callback invoked when any child toolbar item starts being dragged.\n * Receives the item's associated data and the originating drag event.\n */\n onItemDragStart?: (data: unknown, event: React.DragEvent) => void;\n}\n\n/**\n * React context that propagates drag-and-drop settings from a {@link Toolbar}\n * down to its child {@link ToolbarButton} components without requiring explicit prop\n * threading through intermediate wrappers such as {@link ToolbarSection}.\n */\nexport const ToolbarDragContext = createContext<ToolbarDragContextValue>({\n draggable: false,\n});\n\n/**\n * Returns the nearest {@link ToolbarDragContext} value.\n * When no provider is present (i.e. the button is used outside a Toolbar),\n * the default value with {@link ToolbarDragContextValue.draggable} set to `false` is returned.\n */\nexport const useToolbarDragContext = (): ToolbarDragContextValue => useContext(ToolbarDragContext);\n"],"names":[],"mappings":";;AAqBO,MAAM,kBAAkB,GAAG,aAAa,CAA0B;AACrE,IAAA,SAAS,EAAE,KAAK;AACnB,CAAA;AAOM,MAAM,qBAAqB,GAAG,MAA+B,UAAU,CAAC,kBAAkB;;"}
@@ -38,3 +38,4 @@ export interface ToolbarFanOutItemProps {
38
38
  * - Clicking anywhere outside the panel also closes it
39
39
  */
40
40
  export declare const ToolbarFanOutItem: ({ icon, tooltip, tooltipPosition, fanOutDirection, className, pt, children, }: ToolbarFanOutItemProps) => React.JSX.Element;
41
+ //# sourceMappingURL=ToolbarFanOutItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarFanOutItem.d.ts","sourceRoot":"","sources":["../../../Toolbar/ToolbarFanOutItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EACV,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,SAAS,EAMjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAMzD,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IAC/B,gCAAgC;IAChC,IAAI,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAClD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACnC,yEAAyE;IACzE,IAAI,EAAE,IAAI,CAAC;IAEX,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAEhB,iFAAiF;IACjF,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAEnD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAExB,4DAA4D;IAC5D,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,kFAQ3B,sBAAsB,sBAmIxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarFanOutItem.js","sources":["../../../Toolbar/ToolbarFanOutItem.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarFanOutItem.js","sources":["../../../Toolbar/ToolbarFanOutItem.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport React, {\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport { IconDisplay } from '../Common/Icon';\nimport type { Icon } from '../Common/Icon';\nimport { Tooltip } from '../Common/Tooltip';\nimport type { TooltipPosition } from '../Common/Tooltip';\nimport {\n ToolbarItemVisibilityProvider,\n useToolbarItemVisibility,\n} from './ToolbarItemVisibilityContext';\n\n/** Stable part attributes for {@link ToolbarFanOutItem}. */\nexport interface ToolbarFanOutParts {\n /** Fan-out composition root. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** Native trigger button. */\n trigger?: ButtonHTMLAttributes<HTMLButtonElement>;\n /** Expanded tool panel. */\n panel?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarFanOutItem} component. */\nexport interface ToolbarFanOutItemProps {\n /** React icon node or consumer-owned icon-font class for the trigger. */\n icon: Icon;\n\n /** Tooltip text shown when hovering over the trigger button. */\n tooltip: string;\n\n /** Position of the tooltip relative to the trigger button (default: 'right'). */\n tooltipPosition?: TooltipPosition;\n\n /** Direction the panel fans out from the trigger button (default: 'right'). */\n fanOutDirection?: 'right' | 'left' | 'up' | 'down';\n\n /** Extra class name for the fan-out root. */\n className?: string;\n\n /** Stable fan-out part attributes. */\n pt?: ToolbarFanOutParts;\n\n /** The toolbar items to render inside the fan-out panel. */\n children: ReactNode;\n}\n\n/**\n * A toolbar button that fans out a horizontal panel of sub-tool buttons when clicked.\n *\n * Place this inside a vertical {@link Toolbar}. When the button is clicked, a pill-shaped\n * panel slides out to the side (right by default) containing the provided children.\n * The panel animates in/out using a clip-path reveal transition.\n *\n * - Clicking the button again closes the panel\n * - Clicking anywhere outside the panel also closes it\n */\nexport const ToolbarFanOutItem = ({\n icon,\n tooltip,\n tooltipPosition = 'right',\n fanOutDirection = 'right',\n className,\n pt,\n children,\n}: ToolbarFanOutItemProps) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [isSettled, setIsSettled] = useState(false);\n const isToolbarItemVisible = useToolbarItemVisibility();\n const containerRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const panelRef = useRef<HTMLDivElement>(null);\n const generatedPanelId = useId();\n const panelId = pt?.panel?.id ?? generatedPanelId;\n\n // A settled panel has `clip-path: none`, which cannot interpolate — closing\n // straight from it would snap the panel shut instead of wiping it closed.\n // Put an equivalent inset back and let the browser observe it (the forced\n // reflow) before React removes the visible class, so the close transition\n // has an interpolable starting value.\n const collapse = useCallback(() => {\n const panel = panelRef.current;\n if (panel && panel.classList.contains('toolbar-fanout-panel--settled')) {\n panel.style.setProperty('clip-path', 'inset(0 0 0 0 round 1rem)');\n panel.style.setProperty('transition', 'none');\n void panel.offsetWidth;\n panel.style.removeProperty('transition');\n panel.style.removeProperty('clip-path');\n }\n setIsSettled(false);\n setIsExpanded(false);\n }, []);\n\n const handleToggle = () => {\n if (isExpanded) {\n collapse();\n } else {\n setIsExpanded(true);\n }\n };\n\n const handleTransitionEnd = (event: React.TransitionEvent<HTMLDivElement>) => {\n if (\n event.target === panelRef.current &&\n event.propertyName === 'clip-path' &&\n isExpanded\n ) {\n setIsSettled(true);\n }\n };\n\n // Close the fan-out when clicking outside\n useEffect(() => {\n if (!isExpanded) return;\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n collapse();\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n event.preventDefault();\n event.stopPropagation();\n collapse();\n window.setTimeout(() => triggerRef.current?.focus(), 0);\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscape, true);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape, true);\n };\n }, [isExpanded, collapse]);\n\n const activeClass = isExpanded ? 'toolbar-button--active' : '';\n const panelVisibleClass = isExpanded ? 'toolbar-fanout-panel--visible' : '';\n const panelSettledClass =\n isExpanded && isSettled ? 'toolbar-fanout-panel--settled' : '';\n const directionClass = `toolbar-fanout-panel--${fanOutDirection}`;\n\n return (\n <div\n {...pt?.root}\n className={`toolbar-fanout-item ${pt?.root?.className ?? ''} ${className ?? ''}`}\n data-cratis-part='fanout-root'\n data-open={isExpanded || undefined}\n ref={containerRef}\n >\n <Tooltip\n content={tooltip}\n position={tooltipPosition}\n disabled={isExpanded || !isToolbarItemVisible}\n >\n <button\n {...pt?.trigger}\n ref={triggerRef}\n type='button'\n aria-label={tooltip}\n aria-expanded={isExpanded}\n aria-controls={panelId}\n onClick={handleToggle}\n className={`toolbar-button cratis:w-10 cratis:h-10 cratis:flex cratis:items-center cratis:justify-center cratis:rounded-lg cratis:cursor-pointer ${activeClass} ${pt?.trigger?.className ?? ''}`}\n data-cratis-part='fanout-trigger'\n data-open={isExpanded || undefined}\n >\n <IconDisplay icon={icon} className='cratis:text-lg' />\n </button>\n </Tooltip>\n <div\n {...pt?.panel}\n id={panelId}\n role='group'\n aria-label={tooltip}\n ref={panelRef}\n className={`toolbar-fanout-panel ${directionClass} ${panelVisibleClass} ${panelSettledClass} ${pt?.panel?.className ?? ''}`}\n data-cratis-part='fanout-panel'\n data-expanded={isExpanded || undefined}\n data-open={isExpanded || undefined}\n data-direction={fanOutDirection}\n data-settled={isSettled || undefined}\n aria-hidden={!isExpanded}\n inert={!isExpanded}\n onTransitionEnd={handleTransitionEnd}\n >\n <ToolbarItemVisibilityProvider value={isExpanded && isToolbarItemVisible}>\n {children}\n </ToolbarItemVisibilityProvider>\n </div>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -47,3 +47,4 @@ export interface ToolbarFolderProps {
47
47
  * side by side — useful when labels add important context to icon-only buttons.
48
48
  */
49
49
  export declare const ToolbarFolder: ({ icon, title, tooltipPosition, folderDirection, mode, maxColumns, className, pt, children, }: ToolbarFolderProps) => import("react").JSX.Element;
50
+ //# sourceMappingURL=ToolbarFolder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarFolder.d.ts","sourceRoot":"","sources":["../../../Toolbar/ToolbarFolder.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEH,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,SAAS,EAMjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAAwB,CAAC;AAEhE,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACtC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAClD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IAC/B,wDAAwD;IACxD,IAAI,EAAE,IAAI,CAAC;IAEX,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IAEd,iFAAiF;IACjF,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IAExB,6DAA6D;IAC7D,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,kGAUvB,kBAAkB,gCA0HpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarFolder.js","sources":["../../../Toolbar/ToolbarFolder.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarFolder.js","sources":["../../../Toolbar/ToolbarFolder.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport {\n Children,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { IconDisplay } from '../Common/Icon';\nimport type { Icon } from '../Common/Icon';\nimport { Tooltip } from '../Common/Tooltip';\nimport type { TooltipPosition } from '../Common/Tooltip';\nimport { ToolbarFolderContext } from './ToolbarFolderContext';\nimport {\n ToolbarItemVisibilityProvider,\n useToolbarItemVisibility,\n} from './ToolbarItemVisibilityContext';\nimport type { ToolbarFolderMode } from './ToolbarFolderContext';\n\n/** Stable part attributes for {@link ToolbarFolder}. */\nexport interface ToolbarFolderParts {\n /** Folder composition and measurement root. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** Native folder trigger. */\n trigger?: ButtonHTMLAttributes<HTMLButtonElement>;\n /** Expanded item panel. */\n panel?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarFolder} component. */\nexport interface ToolbarFolderProps {\n /** The icon to display on the folder trigger button. */\n icon: Icon;\n\n /** Title text shown when hovering over the folder trigger button. */\n title: string;\n\n /** Position of the tooltip relative to the trigger button (default: 'right'). */\n tooltipPosition?: TooltipPosition;\n\n /** Direction the folder opens from the trigger button (default: 'right'). */\n folderDirection?: 'right' | 'left';\n\n /**\n * Display mode for the folder's expanded panel (default: `'grid'`).\n *\n * - `'grid'` — items are arranged in a balanced grid (existing behaviour).\n * - `'list'` — items are stacked vertically with the icon and title label shown side by side.\n */\n mode?: ToolbarFolderMode;\n\n /** Maximum number of columns to render before adding more rows (default: 5). Only applies to `grid` mode. */\n maxColumns?: number;\n\n /** Extra class name for the folder root. */\n className?: string;\n\n /** Stable folder attributes. */\n pt?: ToolbarFolderParts;\n\n /** The toolbar buttons shown when the folder is expanded. */\n children: ReactNode;\n}\n\n/**\n * A toolbar folder that reveals a panel of buttons when clicked.\n *\n * **Grid mode** (default): items are arranged in a balanced grid that grows naturally as\n * more items are added and keeps a compact footprint for small sets.\n *\n * **List mode**: items are stacked vertically with their icon and title label rendered\n * side by side — useful when labels add important context to icon-only buttons.\n */\nexport const ToolbarFolder = ({\n icon,\n title,\n tooltipPosition = 'right',\n folderDirection = 'right',\n mode = 'grid',\n maxColumns = 5,\n className,\n pt,\n children,\n}: ToolbarFolderProps) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isToolbarItemVisible = useToolbarItemVisibility();\n const containerRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const generatedPanelId = useId();\n const panelId = pt?.panel?.id ?? generatedPanelId;\n\n const items = useMemo(\n () =>\n Children.toArray(children).filter(\n (child) => child !== null && child !== undefined,\n ),\n [children],\n );\n const itemCount = Math.max(1, items.length);\n\n const columns = useMemo(() => {\n const upperBound = Math.max(1, maxColumns);\n const balancedColumns = Math.ceil(Math.sqrt(itemCount));\n return Math.min(upperBound, balancedColumns);\n }, [itemCount, maxColumns]);\n\n const toggleExpanded = () => {\n setIsExpanded((current) => !current);\n };\n\n useEffect(() => {\n if (!isExpanded) {\n return;\n }\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n setIsExpanded(false);\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n event.preventDefault();\n event.stopPropagation();\n setIsExpanded(false);\n window.setTimeout(() => triggerRef.current?.focus(), 0);\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscape, true);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape, true);\n };\n }, [isExpanded]);\n\n const activeClass = isExpanded ? 'toolbar-button--active' : '';\n const panelVisibleClass = isExpanded ? 'toolbar-folder-panel--visible' : '';\n const directionClass = `toolbar-folder-panel--${folderDirection}`;\n const modeClass = mode === 'list' ? 'toolbar-folder-panel--list' : '';\n\n return (\n <ToolbarFolderContext.Provider value={mode}>\n <div\n {...pt?.root}\n className={`toolbar-folder-item ${pt?.root?.className ?? ''} ${className ?? ''}`}\n data-cratis-part='toolbar-folder'\n data-open={isExpanded || undefined}\n ref={containerRef}\n >\n <Tooltip\n content={title}\n position={tooltipPosition}\n disabled={isExpanded || !isToolbarItemVisible}\n >\n <button\n {...pt?.trigger}\n ref={triggerRef}\n type='button'\n aria-label={title}\n aria-expanded={isExpanded}\n aria-controls={panelId}\n onClick={toggleExpanded}\n className={`toolbar-button cratis:w-10 cratis:h-10 cratis:flex cratis:items-center cratis:justify-center cratis:rounded-lg cratis:cursor-pointer ${activeClass} ${pt?.trigger?.className ?? ''}`}\n data-cratis-part='toolbar-folder-trigger'\n data-open={isExpanded || undefined}\n >\n <IconDisplay icon={icon} className='cratis:text-lg' />\n </button>\n </Tooltip>\n <div\n {...pt?.panel}\n id={panelId}\n role='group'\n aria-label={title}\n className={`toolbar-folder-panel ${directionClass} ${panelVisibleClass} ${modeClass} ${pt?.panel?.className ?? ''}`}\n style={{\n ...pt?.panel?.style,\n ...(mode === 'grid'\n ? {\n gridTemplateColumns: `repeat(${columns}, minmax(2.5rem, 2.5rem))`,\n }\n : {}),\n }}\n data-cratis-part='toolbar-folder-panel'\n data-expanded={isExpanded || undefined}\n data-open={isExpanded || undefined}\n data-direction={folderDirection}\n data-mode={mode}\n aria-hidden={!isExpanded}\n inert={!isExpanded}\n >\n <ToolbarItemVisibilityProvider\n value={isExpanded && isToolbarItemVisible}\n >\n {items}\n </ToolbarItemVisibilityProvider>\n </div>\n </div>\n </ToolbarFolderContext.Provider>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarFolderContext.js","sources":["../../../Toolbar/ToolbarFolderContext.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAYa,oBAAoB,GAAG,aAAa,CAAoB,MAAM;AAMpE,MAAM,oBAAoB,GAAG,MAAyB,UAAU,CAAC,oBAAoB;;"}
1
+ {"version":3,"file":"ToolbarFolderContext.js","sources":["../../../Toolbar/ToolbarFolderContext.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { createContext, useContext } from 'react';\n\n/** Display mode for items inside a {@link ToolbarFolder}. */\nexport type ToolbarFolderMode = 'grid' | 'list';\n\n/**\n * Internal context propagated from {@link ToolbarFolder} to its children.\n * Allows {@link ToolbarButton} to adapt its rendering to the folder's display mode.\n */\nexport const ToolbarFolderContext = createContext<ToolbarFolderMode>('grid');\n\n/**\n * Returns the current {@link ToolbarFolderMode}.\n * Defaults to `'grid'` when used outside a {@link ToolbarFolder}.\n */\nexport const useToolbarFolderMode = (): ToolbarFolderMode => useContext(ToolbarFolderContext);\n"],"names":[],"mappings":";;MAYa,oBAAoB,GAAG,aAAa,CAAoB,MAAM;AAMpE,MAAM,oBAAoB,GAAG,MAAyB,UAAU,CAAC,oBAAoB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarGroup.js","sources":["../../../Toolbar/ToolbarGroup.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarGroup.js","sources":["../../../Toolbar/ToolbarGroup.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport {\n type HTMLAttributes,\n type ReactNode,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useToolbarSlot } from './ToolbarSlot';\n\n/** How long the fade-out animation runs (ms). React unmounts exiting content after this. */\nconst SLOT_TRANSITION_MS = 220;\n\n/**\n * Renders slot items with a cross-fade and size-morph transition that mirrors the\n * {@link ToolbarSection} / {@link ToolbarContext} animation:\n *\n * - The slot container resizes smoothly to fit the incoming content.\n * - The outgoing content fades out while the incoming content fades in simultaneously.\n *\n * The size update is intentionally deferred to {@link useEffect} (after paint) so that\n * the opacity animations start one frame before the resize — matching the feel of\n * {@link ToolbarSection} context switching.\n */\nconst SlotTransition = ({\n slotName,\n flexClass,\n pt,\n}: {\n slotName: string;\n flexClass: string;\n pt?: ToolbarGroupParts;\n}) => {\n const liveItems = useToolbarSlot(slotName);\n\n // `current` is the content fading in (or already settled at full opacity).\n // `exiting` is the previous content fading out, kept alive until its animation completes.\n const [current, setCurrent] = useState<ReactNode[]>(liveItems);\n const [exiting, setExiting] = useState<ReactNode[]>([]);\n const [exitRevision, setExitRevision] = useState(0);\n\n // Track `current` in a ref so the liveItems effect can read the latest value\n // without needing it in its dependency array (avoids an unnecessary re-run loop).\n const currentRef = useRef<ReactNode[]>(current);\n currentRef.current = current;\n\n const incomingRef = useRef<HTMLDivElement>(null);\n const [size, setSize] = useState<{ width: number; height: number } | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const hasMountedRef = useRef(false);\n\n const measureIncoming = useCallback(() => {\n if (incomingRef.current) {\n setSize({\n width: incomingRef.current.offsetWidth,\n height: incomingRef.current.offsetHeight,\n });\n }\n }, []);\n\n // Set the initial size synchronously before the first paint — no layout flash.\n useLayoutEffect(() => {\n measureIncoming();\n }, []); // mount only\n\n // Detect live-items reference change → start cross-fade transition.\n useEffect(() => {\n if (liveItems === currentRef.current) return;\n const old = currentRef.current;\n\n if (timerRef.current !== undefined) clearTimeout(timerRef.current);\n setCurrent(liveItems);\n\n if (old.length > 0) {\n setExiting(old);\n setExitRevision(r => r + 1);\n timerRef.current = setTimeout(() => setExiting([]), SLOT_TRANSITION_MS);\n }\n }, [liveItems]);\n\n // Re-measure the incoming content whenever `current` changes so the container\n // can size-morph. useEffect (not useLayoutEffect) is intentional: we let the\n // opacity animation start one frame before the resize — matching ToolbarSection.\n useEffect(() => {\n if (!hasMountedRef.current) {\n hasMountedRef.current = true;\n return; // initial measurement handled by useLayoutEffect above\n }\n measureIncoming();\n }, [current, measureIncoming]);\n\n useEffect(() => () => {\n if (timerRef.current !== undefined) clearTimeout(timerRef.current);\n }, []);\n\n if (current.length === 0 && exiting.length === 0) return null;\n\n // The section is only clipped while outgoing content is fading out, so it\n // doesn't bleed outside the container. Once the transition is complete the\n // section must be overflow:visible so fan-out and folder panels (which are\n // position:absolute children) can escape the slot section's bounds.\n const transitioningClass = exiting.length > 0 ? 'toolbar-slot-section--transitioning' : '';\n\n return (\n <div\n {...pt?.slot}\n className={`toolbar-slot-section ${transitioningClass} ${pt?.slot?.className ?? ''}`}\n style={{ ...pt?.slot?.style, ...(size ? { width: size.width, height: size.height } : {}) }}\n data-cratis-part='toolbar-slot'\n data-transitioning={exiting.length > 0 || undefined}\n >\n {/* Incoming content — fades in via @keyframes animation on mount */}\n <div\n {...pt?.incoming}\n ref={incomingRef}\n className={`toolbar-slot-incoming cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${pt?.incoming?.className ?? ''}`}\n data-cratis-part='toolbar-slot-incoming'\n >\n {current}\n </div>\n {/* Exiting content — fades out, then React unmounts it after SLOT_TRANSITION_MS */}\n {exiting.length > 0 && (\n <div\n key={exitRevision}\n {...pt?.outgoing}\n className={`toolbar-slot-outgoing cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${pt?.outgoing?.className ?? ''}`}\n data-cratis-part='toolbar-slot-outgoing'\n aria-hidden='true'\n inert\n >\n {exiting}\n </div>\n )}\n </div>\n );\n};\n\n/** Stable part attributes for {@link ToolbarGroup}. */\nexport interface ToolbarGroupParts {\n /** Group root used as one logical measurement boundary. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** Slot-transition boundary rendered when {@link ToolbarGroupProps.slotName} is used. */\n slot?: HTMLAttributes<HTMLDivElement>;\n /** Current slot content. */\n incoming?: HTMLAttributes<HTMLDivElement>;\n /** Previous slot content while it exits. */\n outgoing?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarGroup} component. */\nexport interface ToolbarGroupProps {\n /** The toolbar items to render inside this group. */\n children?: ReactNode;\n\n /**\n * Optional slot name. When provided, any {@link ToolbarSlot} with a matching `slotName`\n * within the nearest {@link ToolbarSlotProvider} will render its content inside this group.\n *\n * Slot entries are appended after the group's own children and sorted by their `order` value.\n */\n slotName?: string;\n\n /** Layout direction of the group, should match the parent {@link Toolbar} (default: `'vertical'`). */\n orientation?: 'vertical' | 'horizontal';\n\n /** Stable group and slot-transition part attributes. */\n pt?: ToolbarGroupParts;\n}\n\n/**\n * A logical sub-grouping of toolbar items within a {@link Toolbar}.\n *\n * Use `ToolbarGroup` to cluster related buttons into a visually cohesive unit.\n * Groups can participate in the slot system by providing a `slotName` — external\n * components anywhere in the {@link ToolbarSlotProvider} tree can then inject additional\n * buttons at a chosen position via {@link ToolbarSlot}.\n *\n * @example\n * ```tsx\n * <Toolbar>\n * <ToolbarGroup slotName=\"canvas-tools\">\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Draw\" />\n * </ToolbarGroup>\n * </Toolbar>\n * ```\n */\nexport const ToolbarGroup = ({\n children,\n slotName,\n orientation = 'vertical',\n pt,\n}: ToolbarGroupProps) => {\n const flexClass = orientation === 'horizontal' ? 'cratis:flex-row' : 'cratis:flex-col';\n\n return (\n <div\n {...pt?.root}\n className={`toolbar-group cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 cratis:p-2 cratis:rounded-2xl ${pt?.root?.className ?? ''}`}\n data-cratis-part='toolbar-group'\n data-orientation={orientation}\n >\n {children}\n {slotName && <SlotTransition slotName={slotName} flexClass={flexClass} pt={pt} />}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItemVisibilityContext.js","sources":["../../../Toolbar/ToolbarItemVisibilityContext.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,MAAM,4BAA4B,GAAG,aAAa,CAAC,IAAI,CAAC;AAEjD,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAEnE,MAAM,wBAAwB,GAAG,MAAM,UAAU,CAAC,4BAA4B;;"}
1
+ {"version":3,"file":"ToolbarItemVisibilityContext.js","sources":["../../../Toolbar/ToolbarItemVisibilityContext.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { createContext, useContext } from 'react';\n\nconst ToolbarItemVisibilityContext = createContext(true);\n\nexport const ToolbarItemVisibilityProvider = ToolbarItemVisibilityContext.Provider;\n\nexport const useToolbarItemVisibility = () => useContext(ToolbarItemVisibilityContext);\n"],"names":[],"mappings":";;AAKA,MAAM,4BAA4B,GAAG,aAAa,CAAC,IAAI,CAAC;AAEjD,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAEnE,MAAM,wBAAwB,GAAG,MAAM,UAAU,CAAC,4BAA4B;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarLayout.js","sources":["../../../Toolbar/ToolbarLayout.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarLayout.js","sources":["../../../Toolbar/ToolbarLayout.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport {\n Children,\n type HTMLAttributes,\n type ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useToolbarSlot } from './ToolbarSlot';\nimport { ToolbarItemVisibilityProvider } from './ToolbarItemVisibilityContext';\n\n/** How long the fade-out animation runs (ms). React unmounts exiting content after this. */\nconst LAYOUT_TRANSITION_MS = 220;\n\n/**\n * Renders toolbar layout content with a cross-fade and size-morph transition.\n *\n * - The container resizes smoothly to fit incoming layout content.\n * - Outgoing content fades out while incoming content fades in.\n */\nconst LayoutTransition = ({\n items,\n flexClass,\n pt,\n}: {\n items: ReactNode[];\n flexClass: string;\n pt?: ToolbarLayoutParts;\n}) => {\n const [current, setCurrent] = useState<ReactNode[]>(items);\n const [exiting, setExiting] = useState<ReactNode[]>([]);\n const [exitRevision, setExitRevision] = useState(0);\n\n const currentRef = useRef<ReactNode[]>(current);\n currentRef.current = current;\n\n const incomingRef = useRef<HTMLDivElement>(null);\n const [size, setSize] = useState<{ width: number; height: number } | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n // ResizeObserver keeps the container size in sync with the actual rendered\n // content, including when nested ToolbarLayouts finish their own transitions.\n // A one-shot offsetHeight read in useEffect misses those deferred size changes.\n useEffect(() => {\n const el = incomingRef.current;\n if (!el) return;\n\n const sync = () => setSize({ width: el.offsetWidth, height: el.offsetHeight });\n\n const observer = new ResizeObserver(sync);\n observer.observe(el);\n sync(); // capture initial size immediately\n\n return () => observer.disconnect();\n }, []); // mount only — observer tracks all subsequent changes automatically\n\n useEffect(() => {\n if (items === currentRef.current) return;\n const old = currentRef.current;\n\n if (timerRef.current !== undefined) clearTimeout(timerRef.current);\n setCurrent(items);\n\n if (old.length > 0) {\n setExiting(old);\n setExitRevision(revision => revision + 1);\n timerRef.current = setTimeout(() => setExiting([]), LAYOUT_TRANSITION_MS);\n }\n }, [items]);\n\n useEffect(() => () => {\n if (timerRef.current !== undefined) clearTimeout(timerRef.current);\n }, []);\n\n if (current.length === 0 && exiting.length === 0) return null;\n\n // The section is only clipped while outgoing content is fading out, so it\n // doesn't bleed outside the container. Once the transition is complete the\n // section must be overflow:visible so fan-out and folder panels (which are\n // position:absolute children) can escape the slot section's bounds.\n const transitioningClass = exiting.length > 0 ? 'toolbar-slot-section--transitioning' : '';\n\n return (\n <div\n {...pt?.slot}\n className={`toolbar-slot-section ${transitioningClass} ${pt?.slot?.className ?? ''}`}\n style={{ ...pt?.slot?.style, ...(size ? { width: size.width, height: size.height } : {}) }}\n data-cratis-part='toolbar-slot'\n data-transitioning={exiting.length > 0 || undefined}\n >\n <div\n {...pt?.incoming}\n ref={incomingRef}\n className={`toolbar-slot-incoming cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${pt?.incoming?.className ?? ''}`}\n data-cratis-part='toolbar-slot-incoming'\n >\n {current}\n </div>\n {exiting.length > 0 && (\n <div\n key={exitRevision}\n {...pt?.outgoing}\n className={`toolbar-slot-outgoing cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${pt?.outgoing?.className ?? ''}`}\n data-cratis-part='toolbar-slot-outgoing'\n aria-hidden='true'\n inert\n >\n <ToolbarItemVisibilityProvider value={false}>\n {exiting}\n </ToolbarItemVisibilityProvider>\n </div>\n )}\n </div>\n );\n};\n\n/** Stable part attributes for {@link ToolbarLayout}. */\nexport interface ToolbarLayoutParts {\n /** Named layout root. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** Slot-transition measurement boundary. */\n slot?: HTMLAttributes<HTMLDivElement>;\n /** Current layout content. */\n incoming?: HTMLAttributes<HTMLDivElement>;\n /** Previous layout content while it exits. */\n outgoing?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarLayout} component. */\nexport interface ToolbarLayoutProps {\n /**\n * The name identifying this layout region.\n * External components use this as the `slotName` on a {@link ToolbarSlot} to inject content.\n */\n name: string;\n\n /**\n * Default content shown when no slot content has been registered for this layout.\n * Can include {@link ToolbarGroup}, {@link ToolbarSection}, {@link ToolbarSeparator},\n * or any other toolbar elements.\n */\n children?: ReactNode;\n\n /** Layout direction matching the parent {@link Toolbar} (default: `'vertical'`). */\n orientation?: 'vertical' | 'horizontal';\n\n /** Stable layout and transition attributes. */\n pt?: ToolbarLayoutParts;\n}\n\n/**\n * A named, transparent layout region inside a {@link Toolbar} that enables decoupled,\n * dynamically swappable toolbar content.\n *\n * Unlike {@link ToolbarGroup}, `ToolbarLayout` has no visual container of its own.\n * It acts as a transparent mount point: external components inject complete toolbar\n * structures — multiple {@link ToolbarGroup}s, {@link ToolbarSection}s,\n * {@link ToolbarSeparator}s — using a {@link ToolbarSlot} with a matching `slotName`.\n *\n * When any slot content is registered it replaces the fallback `children`. Multiple\n * independent contributors can register into the same layout using different `order`\n * values on their {@link ToolbarSlot}.\n *\n * Wrap the toolbar and contributing components in a {@link ToolbarSlotProvider}:\n *\n * @example\n * ```tsx\n * // Application shell — define the layout region with optional fallback content:\n * <ToolbarSlotProvider>\n * <Toolbar>\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Select\" />\n * <ToolbarLayout name=\"canvas-tools\">\n * <ToolbarGroup>\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Draw (default)\" />\n * </ToolbarGroup>\n * </ToolbarLayout>\n * </Toolbar>\n *\n * <CanvasFeature />\n * </ToolbarSlotProvider>\n *\n * // Feature component — inject complete groups:\n * const CanvasFeature = () => (\n * <ToolbarSlot slotName=\"canvas-tools\">\n * <ToolbarGroup>\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Feature tool\" />\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarGroup>\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Quick action\" />\n * </ToolbarGroup>\n * </ToolbarSlot>\n * );\n * ```\n */\nexport const ToolbarLayout = ({\n name,\n children,\n orientation = 'vertical',\n pt,\n}: ToolbarLayoutProps) => {\n const slotItems = useToolbarSlot(name);\n const flexClass = orientation === 'horizontal' ? 'cratis:flex-row' : 'cratis:flex-col';\n const fallbackItems = useMemo(() => Children.toArray(children), [children]);\n const items = slotItems.length > 0 ? slotItems : fallbackItems;\n\n if (items.length === 0) return null;\n\n return (\n <div\n {...pt?.root}\n className={`toolbar-layout cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${pt?.root?.className ?? ''}`}\n data-cratis-part='toolbar-layout'\n data-layout-name={name}\n data-orientation={orientation}\n >\n <LayoutTransition items={items} flexClass={flexClass} pt={pt} />\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSection.js","sources":["../../../Toolbar/ToolbarSection.tsx"],"sourcesContent":[null],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarSection.js","sources":["../../../Toolbar/ToolbarSection.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport {\n Children,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n isValidElement,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nimport type { ToolbarContextProps } from './ToolbarContext';\nimport { useToolbarSlot } from './ToolbarSlot';\nimport { ToolbarItemVisibilityProvider } from './ToolbarItemVisibilityContext';\n\n/** Width/height transition duration used by the section resize animation (ms). */\nconst SECTION_TRANSITION_MS = 350;\n\n/**\n * Renders the children of a single {@link ToolbarContext} together with any slot items\n * that have been registered under the context's `slotName`.\n *\n * Extracted into its own component so that the `useToolbarSlot` hook can be called\n * inside it — hooks cannot be called inside a callback or loop in the parent.\n */\nconst ContextRenderer = ({ children, slotName }: { children: ReactNode; slotName?: string }) => {\n const slotItems = useToolbarSlot(slotName ?? '');\n return (\n <>\n {children}\n {slotName && slotItems.length > 0 && slotItems}\n </>\n );\n};\n\n/** Stable part attributes for {@link ToolbarSection}. */\nexport interface ToolbarSectionParts {\n /** Animated section root. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** One named context, with active state exposed through data attributes. */\n context?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarSection} component. */\nexport interface ToolbarSectionProps {\n /**\n * The name of the currently active context.\n * Change this to trigger the fade-out / morph / fade-in animation.\n * Defaults to the first context if not specified.\n */\n activeContext?: string;\n\n /** {@link ToolbarContext} elements that define each context's toolbar items. */\n children: ReactNode;\n\n /** Layout direction matching the parent {@link Toolbar} (default: 'vertical'). */\n orientation?: 'vertical' | 'horizontal';\n\n /** Stable section and context attributes. */\n pt?: ToolbarSectionParts;\n}\n\n/**\n * A section within a {@link Toolbar} that supports multiple named contexts.\n *\n * When {@link activeContext} changes:\n * - The current items fade out.\n * - The section smoothly morphs to the dimensions required by the new context.\n * - The new items fade in.\n *\n * Contexts are defined by placing {@link ToolbarContext} children inside this section.\n * Switching contexts only affects this section; other sections are unaffected.\n */\nexport const ToolbarSection = ({\n activeContext,\n children,\n orientation = 'vertical',\n pt,\n}: ToolbarSectionProps) => {\n const contextRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n const mutationObserverRef = useRef<MutationObserver | null>(null);\n const transitionTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const previousContextRef = useRef<string | null>(null);\n const [size, setSize] = useState<{ width: number; height: number } | null>(null);\n const [isTransitioning, setIsTransitioning] = useState(false);\n\n const contexts = Children.toArray(children).filter(\n (child): child is ReactElement<ToolbarContextProps> =>\n isValidElement(child) && typeof (child.props as ToolbarContextProps).name === 'string'\n );\n\n // Default to the first context if activeContext is not provided\n const effectiveContext = activeContext ?? (contexts[0]?.props as ToolbarContextProps)?.name ?? '';\n\n const flexClass = orientation === 'horizontal' ? 'cratis:flex-row' : 'cratis:flex-col';\n\n /** Measure the given context's natural dimensions and update the section size. */\n const measureAndSetSize = useCallback((contextName: string) => {\n const ref = contextRefs.current[contextName];\n if (ref) {\n setSize({\n width: ref.offsetWidth,\n height: ref.offsetHeight,\n });\n }\n }, []);\n\n // Set the initial size synchronously before the first browser paint so there is no layout flash.\n // Empty dependency array is intentional: ongoing context changes are handled by the useEffect below.\n useLayoutEffect(() => {\n measureAndSetSize(effectiveContext);\n }, []); // run only on mount\n\n // Clip content only while the section is morphing between contexts so incoming\n // buttons do not float outside the current bounds during growth.\n useEffect(() => {\n if (previousContextRef.current === null) {\n previousContextRef.current = effectiveContext;\n return;\n }\n if (previousContextRef.current === effectiveContext) return;\n\n previousContextRef.current = effectiveContext;\n setIsTransitioning(true);\n\n if (transitionTimeoutRef.current) clearTimeout(transitionTimeoutRef.current);\n transitionTimeoutRef.current = setTimeout(() => {\n setIsTransitioning(false);\n transitionTimeoutRef.current = null;\n }, SECTION_TRANSITION_MS);\n }, [effectiveContext]);\n\n // After a context switch, let the browser paint the opacity transition first,\n // then update the explicit size so the CSS width/height transition kicks in.\n useEffect(() => {\n measureAndSetSize(effectiveContext);\n }, [effectiveContext, measureAndSetSize]);\n\n // Keep section dimensions in sync when the active context's content changes size after render.\n useEffect(() => {\n const activeContextElement = contextRefs.current[effectiveContext];\n if (!activeContextElement || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n measureAndSetSize(effectiveContext);\n\n mutationObserverRef.current?.disconnect();\n resizeObserverRef.current?.disconnect();\n\n const observer = new ResizeObserver(() => {\n measureAndSetSize(effectiveContext);\n });\n\n observer.observe(activeContextElement);\n resizeObserverRef.current = observer;\n\n if (typeof MutationObserver !== 'undefined') {\n const mutationObserver = new MutationObserver(() => {\n measureAndSetSize(effectiveContext);\n });\n mutationObserver.observe(activeContextElement, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n mutationObserverRef.current = mutationObserver;\n }\n\n return () => {\n observer.disconnect();\n if (resizeObserverRef.current === observer) {\n resizeObserverRef.current = null;\n }\n\n mutationObserverRef.current?.disconnect();\n mutationObserverRef.current = null;\n };\n }, [effectiveContext, measureAndSetSize]);\n\n useEffect(() => () => {\n if (transitionTimeoutRef.current) clearTimeout(transitionTimeoutRef.current);\n }, []);\n\n return (\n <div\n {...pt?.root}\n className={`toolbar-section ${isTransitioning ? 'toolbar-section--transitioning' : ''} ${pt?.root?.className ?? ''}`}\n style={{ ...pt?.root?.style, ...(size ? { width: size.width, height: size.height } : {}) }}\n data-cratis-part='toolbar-section'\n data-transitioning={isTransitioning || undefined}\n data-orientation={orientation}\n >\n {contexts.map((child) => {\n const { name, children: contextChildren, slotName } = child.props as ToolbarContextProps;\n const isActive = name === effectiveContext;\n\n return (\n <div\n key={name}\n {...pt?.context}\n ref={(element) => { contextRefs.current[name] = element; }}\n className={`toolbar-context cratis:inline-flex ${flexClass} cratis:items-center cratis:gap-1 ${\n isActive ? 'toolbar-context--active' : 'toolbar-context--inactive'\n } ${pt?.context?.className ?? ''}`}\n data-cratis-part='toolbar-context'\n data-context-name={name}\n data-active={isActive || undefined}\n data-selected={isActive || undefined}\n aria-hidden={!isActive}\n inert={!isActive}\n >\n <ToolbarItemVisibilityProvider value={isActive}>\n <ContextRenderer slotName={slotName}>\n {contextChildren}\n </ContextRenderer>\n </ToolbarItemVisibilityProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSeparator.js","sources":["../../../Toolbar/ToolbarSeparator.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;AAyBO,MAAM,gBAAgB,GAAG,CAAC,EAC7B,WAAW,GAAG,UAAU,EACxB,EAAE,GACkB,MACpBA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,IAAI,EAAC,WAAW,EAAA,kBAAA,EACE,WAAW,KAAK,YAAY,GAAG,UAAU,GAAG,YAAY,EAC1E,SAAS,EAAE,CAAA,EAAG,WAAW,KAAK,YAAY,GAAG,oDAAoD,GAAG,kDAAkD,CAAA,CAAA,EAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,kBAAA,EACpK,mBAAmB,EAAA,kBAAA,EAClB,WAAW,EAAA,CAC/B;;"}
1
+ {"version":3,"file":"ToolbarSeparator.js","sources":["../../../Toolbar/ToolbarSeparator.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { HTMLAttributes } from 'react';\n\n/** Stable part attributes for {@link ToolbarSeparator}. */\nexport interface ToolbarSeparatorParts {\n /** Native separator root. */\n root?: HTMLAttributes<HTMLDivElement>;\n}\n\n/** Props for the {@link ToolbarSeparator} component. */\nexport interface ToolbarSeparatorProps {\n /** Layout direction matching the parent {@link Toolbar} (default: 'vertical'). */\n orientation?: 'vertical' | 'horizontal';\n /** Stable separator attributes. */\n pt?: ToolbarSeparatorParts;\n}\n\n/**\n * A visual divider for use inside a {@link Toolbar}.\n *\n * In a vertical toolbar (default) the separator renders as a horizontal rule.\n * In a horizontal toolbar it renders as a vertical rule.\n */\nexport const ToolbarSeparator = ({\n orientation = 'vertical',\n pt,\n}: ToolbarSeparatorProps) => (\n <div\n {...pt?.root}\n role='separator'\n aria-orientation={orientation === 'horizontal' ? 'vertical' : 'horizontal'}\n className={`${orientation === 'horizontal' ? 'toolbar-separator toolbar-separator--in-horizontal' : 'toolbar-separator toolbar-separator--in-vertical'} ${pt?.root?.className ?? ''}`}\n data-cratis-part='toolbar-separator'\n data-orientation={orientation}\n />\n);\n"],"names":["_jsx"],"mappings":";;AAyBO,MAAM,gBAAgB,GAAG,CAAC,EAC7B,WAAW,GAAG,UAAU,EACxB,EAAE,GACkB,MACpBA,GAAA,CAAA,KAAA,EAAA,EAAA,GACQ,EAAE,EAAE,IAAI,EACZ,IAAI,EAAC,WAAW,EAAA,kBAAA,EACE,WAAW,KAAK,YAAY,GAAG,UAAU,GAAG,YAAY,EAC1E,SAAS,EAAE,CAAA,EAAG,WAAW,KAAK,YAAY,GAAG,oDAAoD,GAAG,kDAAkD,CAAA,CAAA,EAAI,EAAE,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,kBAAA,EACpK,mBAAmB,EAAA,kBAAA,EAClB,WAAW,EAAA,CAC/B;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSlot.js","sources":["../../../Toolbar/ToolbarSlot.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarSlot.js","sources":["../../../Toolbar/ToolbarSlot.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { createContext, ReactNode, useCallback, useContext, useEffect, useId, useLayoutEffect, useState, useSyncExternalStore } from 'react';\n\ninterface SlotEntry {\n content: ReactNode;\n order: number;\n}\n\ntype Subscriber = () => void;\n\n/** Stable empty snapshot returned when a slot name has no registered content. */\nconst _emptySnapshot: ReactNode[] = [];\n\n/**\n * Registry for named toolbar slot entries.\n * Maintained outside React state so slot registrations never re-render the provider.\n */\nclass ToolbarSlotRegistry {\n private readonly _slots = new Map<string, Map<string, SlotEntry>>();\n private readonly _snapshots = new Map<string, ReactNode[]>();\n private readonly _subscribers = new Set<Subscriber>();\n\n /**\n * Register or update a slot entry.\n * Notifies subscribers only when the content reference or order actually changes.\n */\n register(slotName: string, id: string, content: ReactNode, order: number): void {\n if (!this._slots.has(slotName)) {\n this._slots.set(slotName, new Map());\n }\n const slotMap = this._slots.get(slotName)!;\n const previous = slotMap.get(id);\n if (previous?.content === content && previous?.order === order) return;\n slotMap.set(id, { content, order });\n this._recompute(slotName);\n this._notify();\n }\n\n /** Remove a slot entry and notify subscribers. */\n unregister(slotName: string, id: string): void {\n const slotMap = this._slots.get(slotName);\n if (!slotMap?.has(id)) return;\n slotMap.delete(id);\n this._recompute(slotName);\n this._notify();\n }\n\n /** Subscribe to any slot change. Returns an unsubscribe function. */\n subscribe(fn: Subscriber): () => void {\n this._subscribers.add(fn);\n return () => this._subscribers.delete(fn);\n }\n\n /**\n * Returns a stable snapshot of sorted slot contents for the given slot name.\n * The reference only changes when the slot set actually changes.\n */\n getSnapshot(slotName: string): ReactNode[] {\n return this._snapshots.get(slotName) ?? _emptySnapshot;\n }\n\n private _recompute(slotName: string): void {\n const slotMap = this._slots.get(slotName);\n if (!slotMap || slotMap.size === 0) {\n this._snapshots.delete(slotName);\n return;\n }\n this._snapshots.set(\n slotName,\n [...slotMap.values()]\n .sort((a, b) => a.order - b.order)\n .map(entry => entry.content)\n );\n }\n\n private _notify(): void {\n this._subscribers.forEach(fn => fn());\n }\n}\n\nconst ToolbarSlotContext = createContext<ToolbarSlotRegistry | null>(null);\n\n/** Props for the {@link ToolbarSlotProvider} component. */\nexport interface ToolbarSlotProviderProps {\n /**\n * The subtree that contains both toolbar slot consumers ({@link ToolbarGroup},\n * {@link ToolbarContext}) and slot producers ({@link ToolbarSlot}).\n */\n children: ReactNode;\n}\n\n/**\n * Provides the toolbar slot registry to the component tree.\n *\n * Mount once above both the toolbar and the components that fill slots.\n * Each provider creates an isolated registry — nesting providers creates isolated scopes.\n */\nexport const ToolbarSlotProvider = ({ children }: ToolbarSlotProviderProps) => {\n const [registry] = useState(() => new ToolbarSlotRegistry());\n return <ToolbarSlotContext.Provider value={registry}>{children}</ToolbarSlotContext.Provider>;\n};\n\n/**\n * Returns the sorted slot contents for a given `slotName` as a stable array.\n * Returns an empty array when no {@link ToolbarSlotProvider} is present or when the slot has no content.\n *\n * Suitable for direct use inside components that host a slot (e.g. {@link ToolbarGroup}).\n */\nexport const useToolbarSlot = (slotName: string): ReactNode[] => {\n const registry = useContext(ToolbarSlotContext);\n const subscribe = useCallback((fn: () => void) => {\n if (!registry) return () => { /* no-op unsubscribe when no registry is present */ };\n return registry.subscribe(fn);\n }, [registry]);\n const getSnapshot = useCallback(() => registry?.getSnapshot(slotName) ?? _emptySnapshot, [registry, slotName]);\n return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n};\n\n/** Props for the {@link ToolbarSlot} component. */\nexport interface ToolbarSlotProps {\n /**\n * The name of the destination slot.\n * Must match the `slotName` on a {@link ToolbarGroup} or {@link ToolbarContext}.\n */\n slotName: string;\n\n /**\n * Render order relative to other entries in the same slot.\n * Lower numbers appear first (default: `0`).\n */\n order?: number;\n\n /**\n * The toolbar content to teleport into the named slot.\n * Wrap in `useMemo` to keep the reference stable and avoid unnecessary re-renders.\n */\n children: ReactNode;\n}\n\n/**\n * Teleports its children into the named toolbar slot without prop drilling.\n * Renders nothing itself — place it anywhere inside a {@link ToolbarSlotProvider} tree.\n *\n * The nearest {@link ToolbarGroup} or {@link ToolbarContext} with a matching `slotName`\n * will render the content. Use {@link ToolbarSlotProps.order} to control position relative to\n * other {@link ToolbarSlot} entries in the same slot.\n *\n * @example\n * ```tsx\n * // In a feature component, inject a button into the 'canvas-tools' slot:\n * <ToolbarSlot slotName=\"canvas-tools\" order={10}>\n * <ToolbarButton icon={<span aria-hidden='true'>◆</span>} title=\"Favorite\" />\n * </ToolbarSlot>\n * ```\n */\nexport const ToolbarSlot = ({ slotName, order = 0, children }: ToolbarSlotProps) => {\n const id = useId();\n const registry = useContext(ToolbarSlotContext);\n\n // Re-register on every render so fresh closures are always captured.\n // The registry skips notification when the content reference hasn't changed.\n useLayoutEffect(() => {\n registry?.register(slotName, id, children, order);\n });\n\n useEffect(() => () => registry?.unregister(slotName, id), [id, registry, slotName]);\n\n return null;\n};\n"],"names":["_jsx"],"mappings":"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"}
@@ -20,3 +20,4 @@ export { ToolbarSlot, ToolbarSlotProvider, useToolbarSlot } from './ToolbarSlot.
20
20
  export type { ToolbarSlotProps, ToolbarSlotProviderProps } from './ToolbarSlot.js';
21
21
  export { ToolbarLayout } from './ToolbarLayout.js';
22
22
  export type { ToolbarLayoutParts, ToolbarLayoutProps } from './ToolbarLayout.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Toolbar/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA4B,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAW,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAiB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAkB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAgB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAkB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,uBAAoB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,wBAAqB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAiB,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAAwB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAe,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,kBAAe,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAiB,CAAC"}
@@ -2,3 +2,4 @@ import type { CratisComponentsConfig } from '../Common/CratisComponentsProvider.
2
2
  export declare const CratisComponentsContext: import("react").Context<CratisComponentsConfig>;
3
3
  /** Returns the resolved renderer-independent Components configuration. */
4
4
  export declare const useCratisComponentsConfig: () => CratisComponentsConfig;
5
+ //# sourceMappingURL=CratisComponentsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CratisComponentsContext.d.ts","sourceRoot":"","sources":["../../../configuration/CratisComponentsContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAoC,CAAC;AAGjF,eAAO,MAAM,uBAAuB,iDAAwD,CAAC;AAE7F,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,QAAO,sBACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CratisComponentsContext.js","sources":["../../../configuration/CratisComponentsContext.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAOa,uBAAuB,GAAG,aAAa,CAAyB,cAAc;AAGpF,MAAM,yBAAyB,GAAG,MACrC,UAAU,CAAC,uBAAuB;;"}
1
+ {"version":3,"file":"CratisComponentsContext.js","sources":["../../../configuration/CratisComponentsContext.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { createContext, useContext } from 'react';\nimport type { CratisComponentsConfig } from '../Common/CratisComponentsProvider';\nimport { cratisDefaults } from './CratisComponentsDefaults';\n\nexport const CratisComponentsContext = createContext<CratisComponentsConfig>(cratisDefaults);\n\n/** Returns the resolved renderer-independent Components configuration. */\nexport const useCratisComponentsConfig = (): CratisComponentsConfig =>\n useContext(CratisComponentsContext);\n"],"names":[],"mappings":";;;MAOa,uBAAuB,GAAG,aAAa,CAAyB,cAAc;AAGpF,MAAM,yBAAyB,GAAG,MACrC,UAAU,CAAC,uBAAuB;;"}
@@ -1,3 +1,4 @@
1
1
  import type { CratisComponentsConfig } from '../Common/CratisComponentsProvider.js';
2
2
  /** Default locale and English Components messages. */
3
3
  export declare const cratisDefaults: CratisComponentsConfig;
4
+ //# sourceMappingURL=CratisComponentsDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CratisComponentsDefaults.d.ts","sourceRoot":"","sources":["../../../configuration/CratisComponentsDefaults.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAoC,CAAC;AAEjF,sDAAsD;AACtD,eAAO,MAAM,cAAc,EAAE,sBA8D5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CratisComponentsDefaults.js","sources":["../../../configuration/CratisComponentsDefaults.ts"],"sourcesContent":[null],"names":[],"mappings":"AAMO,MAAM,cAAc,GAA2B;AAClD,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE;AACN,QAAA,SAAS,EAAE;AACP,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,WAAW;AACpB,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,cAAc,EAAE,iBAAiB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,QAAQ;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,eAAe;AAC1B,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,YAAY,EAAE,2CAA2C;AAC5D,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAEnB,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,kBAAkB,EAAE,YAAY;AAChC,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACJ,KAAA;;;"}
1
+ {"version":3,"file":"CratisComponentsDefaults.js","sources":["../../../configuration/CratisComponentsDefaults.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport type { CratisComponentsConfig } from '../Common/CratisComponentsProvider';\n\n/** Default locale and English Components messages. */\nexport const cratisDefaults: CratisComponentsConfig = {\n locale: 'en-US',\n messages: {\n paginator: {\n navigation: 'Pagination',\n first: 'First page',\n previous: 'Previous page',\n next: 'Next page',\n last: 'Last page',\n },\n datePicker: {\n today: 'Today',\n clear: 'Clear',\n openCalendar: 'Open calendar',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n label: 'Date',\n },\n dropdown: {\n showOptions: 'Show options',\n clearSelection: 'Clear selection',\n },\n dialog: {\n ok: 'Ok',\n cancel: 'Cancel',\n yes: 'Yes',\n no: 'No',\n close: 'Close',\n },\n stepper: {\n next: 'Next',\n previous: 'Previous',\n submit: 'Submit',\n },\n notifications: {\n dismiss: 'Dismiss',\n region: 'Notifications',\n },\n dataTable: {\n selectRow: 'Select row',\n selectAllRows: 'Select all rows',\n search: 'Search…',\n searchAriaLabel: 'Search table',\n loading: 'Loading…',\n failed: 'Could not load data.',\n unauthorized: 'You are not authorized to view this data.',\n },\n filter: {\n label: 'Filters',\n // Leave searchAriaLabel unset: existing placeholders remain search names by default.\n },\n columnFilter: {\n matchModeAriaLabel: 'Match mode',\n clear: 'Clear',\n apply: 'Apply',\n true: 'True',\n false: 'False',\n },\n toolbar: {\n label: 'Tools',\n },\n },\n};\n"],"names":[],"mappings":"AAMO,MAAM,cAAc,GAA2B;AAClD,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE;AACN,QAAA,SAAS,EAAE;AACP,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,WAAW;AACpB,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,cAAc,EAAE,iBAAiB;AACpC,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,EAAE,EAAE,IAAI;AACR,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,QAAQ;AACnB,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,eAAe;AAC1B,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,MAAM,EAAE,sBAAsB;AAC9B,YAAA,YAAY,EAAE,2CAA2C;AAC5D,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,KAAK,EAAE,SAAS;AAEnB,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,kBAAkB,EAAE,YAAY;AAChC,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,KAAK,EAAE,OAAO;AACjB,SAAA;AACJ,KAAA;;;"}
@@ -19,3 +19,4 @@ export type CratisIconResolver = (name: keyof CratisComponentsIcons, builtIn: Re
19
19
  * than falling back.
20
20
  */
21
21
  export declare const useCratisIcon: () => CratisIconResolver;
22
+ //# sourceMappingURL=useCratisIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCratisIcon.d.ts","sourceRoot":"","sources":["../../../configuration/useCratisIcon.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAoC,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC7B,IAAI,EAAE,MAAM,qBAAqB,EACjC,OAAO,EAAE,SAAS,EAClB,QAAQ,CAAC,EAAE,SAAS,KACnB,SAAS,CAAC;AAEf;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAO,kBAUhC,CAAC"}