@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.
- package/compat-manifest.json +11 -11
- package/dist/esm/Canvas/Canvas.d.ts +1 -0
- package/dist/esm/Canvas/Canvas.d.ts.map +1 -0
- package/dist/esm/Canvas/Canvas.js.map +1 -1
- package/dist/esm/Canvas/CanvasControls.d.ts +1 -0
- package/dist/esm/Canvas/CanvasControls.d.ts.map +1 -0
- package/dist/esm/Canvas/CanvasControls.js.map +1 -1
- package/dist/esm/Canvas/CanvasItem.js.map +1 -1
- package/dist/esm/Canvas/CanvasMinimap.js.map +1 -1
- package/dist/esm/Canvas/CanvasOverlay.js.map +1 -1
- package/dist/esm/Canvas/canvasGesture.js.map +1 -1
- package/dist/esm/Canvas/canvasTransformActivity.js.map +1 -1
- package/dist/esm/Canvas/index.d.ts +1 -0
- package/dist/esm/Canvas/index.d.ts.map +1 -0
- package/dist/esm/Canvas/isBackgroundPointerTarget.js.map +1 -1
- package/dist/esm/Canvas/isWithinScrollableContent.js.map +1 -1
- package/dist/esm/Canvas/panMomentum.js.map +1 -1
- package/dist/esm/Canvas/pinchGesture.js.map +1 -1
- package/dist/esm/Canvas/selfSuspendingFrameLoop.js.map +1 -1
- package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts +1 -0
- package/dist/esm/Canvas/shapes/ChatBubble/index.d.ts.map +1 -0
- package/dist/esm/Canvas/shapes/ChatBubble/index.js +1 -0
- package/dist/esm/Canvas/shapes/ChatBubble/index.js.map +1 -0
- package/dist/esm/Canvas/shapes/Note/Note.js.map +1 -1
- package/dist/esm/Canvas/shapes/Note/NoteTextChanged.js.map +1 -1
- package/dist/esm/Canvas/shapes/Note/index.d.ts +1 -0
- package/dist/esm/Canvas/shapes/Note/index.d.ts.map +1 -0
- package/dist/esm/Canvas/shapes/Note/index.js +1 -0
- package/dist/esm/Canvas/shapes/Note/index.js.map +1 -0
- package/dist/esm/Canvas/shapes/Note/noteFont.js.map +1 -1
- package/dist/esm/Canvas/shapes/Region/ItemAddedToRegion.js.map +1 -1
- package/dist/esm/Canvas/shapes/Region/ItemRemovedFromRegion.js.map +1 -1
- package/dist/esm/Canvas/shapes/Region/Region.js.map +1 -1
- package/dist/esm/Canvas/shapes/Region/index.d.ts +1 -0
- package/dist/esm/Canvas/shapes/Region/index.d.ts.map +1 -0
- package/dist/esm/Canvas/shapes/Region/index.js +1 -0
- package/dist/esm/Canvas/shapes/Region/index.js.map +1 -0
- package/dist/esm/Canvas/shapes/Region/regionContainment.js.map +1 -1
- package/dist/esm/Canvas/useDragSelectionGuard.js.map +1 -1
- package/dist/esm/Canvas/zoomMechanism.js.map +1 -1
- package/dist/esm/Chat/ChatAuthor.d.ts +1 -0
- package/dist/esm/Chat/ChatAuthor.d.ts.map +1 -0
- package/dist/esm/Chat/ChatAuthor.js.map +1 -1
- package/dist/esm/Chat/ChatConversation.d.ts +1 -0
- package/dist/esm/Chat/ChatConversation.d.ts.map +1 -0
- package/dist/esm/Chat/ChatConversation.js.map +1 -1
- package/dist/esm/Chat/ChatIdentifier.js.map +1 -1
- package/dist/esm/Chat/ChatMention.d.ts +1 -0
- package/dist/esm/Chat/ChatMention.d.ts.map +1 -0
- package/dist/esm/Chat/ChatMention.js.map +1 -1
- package/dist/esm/Chat/ChatMessage.d.ts +1 -0
- package/dist/esm/Chat/ChatMessage.d.ts.map +1 -0
- package/dist/esm/Chat/ChatMessage.js.map +1 -1
- package/dist/esm/Chat/ChatMessageAction.d.ts +1 -0
- package/dist/esm/Chat/ChatMessageAction.d.ts.map +1 -0
- package/dist/esm/Chat/ChatMessageAction.js.map +1 -1
- package/dist/esm/Chat/ChatMessageBody.d.ts +1 -0
- package/dist/esm/Chat/ChatMessageBody.d.ts.map +1 -0
- package/dist/esm/Chat/ChatMessageBody.js.map +1 -1
- package/dist/esm/Chat/ChatSidebar.d.ts +1 -0
- package/dist/esm/Chat/ChatSidebar.d.ts.map +1 -0
- package/dist/esm/Chat/ChatSidebar.js.map +1 -1
- package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts +1 -0
- package/dist/esm/Chat/ChatSidebarForObservableQueries.d.ts.map +1 -0
- package/dist/esm/Chat/ChatSidebarForObservableQueries.js.map +1 -1
- package/dist/esm/Chat/ChatStatus.js.map +1 -1
- package/dist/esm/Chat/ChatTopic.d.ts +1 -0
- package/dist/esm/Chat/ChatTopic.d.ts.map +1 -0
- package/dist/esm/Chat/ChatTopic.js.map +1 -1
- package/dist/esm/Chat/ChatTopicList.d.ts +1 -0
- package/dist/esm/Chat/ChatTopicList.d.ts.map +1 -0
- package/dist/esm/Chat/ChatTopicList.js.map +1 -1
- package/dist/esm/Chat/Kit/AnchoredOverlay.js.map +1 -1
- package/dist/esm/Chat/Kit/Avatar/PersonAvatarCircle.js.map +1 -1
- package/dist/esm/Chat/Kit/Avatar/getAvatarColor.js.map +1 -1
- package/dist/esm/Chat/Kit/Avatar/getInitials.js.map +1 -1
- package/dist/esm/Chat/Kit/Avatar/index.d.ts +1 -0
- package/dist/esm/Chat/Kit/Avatar/index.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Avatar/index.js +1 -0
- package/dist/esm/Chat/Kit/Avatar/index.js.map +1 -0
- package/dist/esm/Chat/Kit/Chat.d.ts +1 -0
- package/dist/esm/Chat/Kit/Chat.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Chat.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatAuthorKind.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatBubble.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatBubble.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatBubble.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatComposer.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatComposer.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatComposer.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatMessage.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatMessage.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatMessage.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatMessageAdded.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatMessageBubble.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatMessageBubble.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatMessageReaction.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatMessageReaction.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatMessageReactionUser.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatOwnReaction.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts +1 -0
- package/dist/esm/Chat/Kit/ChatTypingAuthor.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ChatTypingAuthor.js.map +1 -1
- package/dist/esm/Chat/Kit/ChatVariant.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts +1 -0
- package/dist/esm/Chat/Kit/Emoji/EmojiCategory.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/EmojiCategory.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/EmojiCategoryKey.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/EmojiMemory.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts +1 -0
- package/dist/esm/Chat/Kit/Emoji/EmojiPicker.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/EmojiPicker.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts +1 -0
- package/dist/esm/Chat/Kit/Emoji/emojiCatalog.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/emojiCatalog.js.map +1 -1
- package/dist/esm/Chat/Kit/Emoji/index.d.ts +1 -0
- package/dist/esm/Chat/Kit/Emoji/index.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/index.js +1 -0
- package/dist/esm/Chat/Kit/Emoji/index.js.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts +1 -0
- package/dist/esm/Chat/Kit/Emoji/recentEmojis.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Emoji/recentEmojis.js.map +1 -1
- package/dist/esm/Chat/Kit/FailedReply.d.ts +1 -0
- package/dist/esm/Chat/Kit/FailedReply.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/FailedReply.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/MentionCandidate.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/MentionCandidate.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/MentionQuery.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/MentionSuggestions.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/activeMentionQuery.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/applyMention.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/applyMention.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/extractMentions.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/findMentionRanges.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/index.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/index.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/index.js +1 -0
- package/dist/esm/Chat/Kit/Mentions/index.js.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts +1 -0
- package/dist/esm/Chat/Kit/Mentions/matchCandidates.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/Mentions/matchCandidates.js.map +1 -1
- package/dist/esm/Chat/Kit/Mentions/mentionSegments.js.map +1 -1
- package/dist/esm/Chat/Kit/MessageReactions.d.ts +1 -0
- package/dist/esm/Chat/Kit/MessageReactions.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/MessageReactions.js.map +1 -1
- package/dist/esm/Chat/Kit/ReactionPicker.d.ts +1 -0
- package/dist/esm/Chat/Kit/ReactionPicker.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/ReactionPicker.js.map +1 -1
- package/dist/esm/Chat/Kit/TypingIndicator.d.ts +1 -0
- package/dist/esm/Chat/Kit/TypingIndicator.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/TypingIndicator.js.map +1 -1
- package/dist/esm/Chat/Kit/findOwnReaction.d.ts +1 -0
- package/dist/esm/Chat/Kit/findOwnReaction.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/findOwnReaction.js.map +1 -1
- package/dist/esm/Chat/Kit/index.d.ts +1 -0
- package/dist/esm/Chat/Kit/index.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/index.js +1 -0
- package/dist/esm/Chat/Kit/index.js.map +1 -0
- package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts +1 -0
- package/dist/esm/Chat/Kit/reactionsExcludingUser.d.ts.map +1 -0
- package/dist/esm/Chat/Kit/reactionsExcludingUser.js.map +1 -1
- package/dist/esm/Chat/index.d.ts +1 -0
- package/dist/esm/Chat/index.d.ts.map +1 -0
- package/dist/esm/Chat/isTopicUnnamed.d.ts +1 -0
- package/dist/esm/Chat/isTopicUnnamed.d.ts.map +1 -0
- package/dist/esm/Chat/isTopicUnnamed.js.map +1 -1
- package/dist/esm/Chat/relativeTimestamp.js.map +1 -1
- package/dist/esm/Chat/shouldRequestTopicName.js.map +1 -1
- package/dist/esm/Chat/topicsByActivity.d.ts +1 -0
- package/dist/esm/Chat/topicsByActivity.d.ts.map +1 -0
- package/dist/esm/Chat/topicsByActivity.js.map +1 -1
- package/dist/esm/CommandDialog/CommandDialog.d.ts +1 -0
- package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -0
- package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
- package/dist/esm/CommandDialog/CommandStepper.d.ts +1 -0
- package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -0
- package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
- package/dist/esm/CommandDialog/CommandStepperContent.d.ts +1 -0
- package/dist/esm/CommandDialog/CommandStepperContent.d.ts.map +1 -0
- package/dist/esm/CommandDialog/CommandStepperContent.js.map +1 -1
- package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +1 -0
- package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -0
- package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
- package/dist/esm/CommandDialog/StepperPanel.js.map +1 -1
- package/dist/esm/CommandDialog/applyBeforeExecute.js.map +1 -1
- package/dist/esm/CommandDialog/commandValuesUnchanged.js.map +1 -1
- package/dist/esm/CommandDialog/confirmBeforeExecute.js.map +1 -1
- package/dist/esm/CommandDialog/index.d.ts +1 -0
- package/dist/esm/CommandDialog/index.d.ts.map +1 -0
- package/dist/esm/CommandDialog/stepChildren.js.map +1 -1
- package/dist/esm/CommandDialog/transitionStep.d.ts +1 -0
- package/dist/esm/CommandDialog/transitionStep.d.ts.map +1 -0
- package/dist/esm/CommandDialog/transitionStep.js.map +1 -1
- package/dist/esm/CommandDialog/useCommandExecution.d.ts +1 -0
- package/dist/esm/CommandDialog/useCommandExecution.d.ts.map +1 -0
- package/dist/esm/CommandDialog/useCommandExecution.js.map +1 -1
- package/dist/esm/CommandDialog/useSubmissionFlight.js.map +1 -1
- package/dist/esm/CommandForm/AutoCommandForm.js.map +1 -1
- package/dist/esm/CommandForm/FieldTypeProvider.js.map +1 -1
- package/dist/esm/CommandForm/commandFormMarkers.js.map +1 -1
- package/dist/esm/CommandForm/defaultFieldTypeProviders.js.map +1 -1
- package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts +1 -0
- package/dist/esm/CommandForm/fieldTypeProviderRegistry.d.ts.map +1 -0
- package/dist/esm/CommandForm/fieldTypeProviderRegistry.js.map +1 -1
- package/dist/esm/CommandForm/fields/CalendarField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/CalendarField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/CalendarField.js.map +1 -1
- package/dist/esm/CommandForm/fields/CheckboxField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ChipsField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/ChipsField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/ChipsField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ColorPickerField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
- package/dist/esm/CommandForm/fields/DropdownField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
- package/dist/esm/CommandForm/fields/InputTextField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
- package/dist/esm/CommandForm/fields/MultiSelectField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/MultiSelectField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/MultiSelectField.js.map +1 -1
- package/dist/esm/CommandForm/fields/NumberField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
- package/dist/esm/CommandForm/fields/NumberInputField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/NumberInputField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/NumberInputField.js.map +1 -1
- package/dist/esm/CommandForm/fields/PasswordField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/PasswordField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/PasswordField.js.map +1 -1
- package/dist/esm/CommandForm/fields/RadioButtonField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/RadioButtonField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/RadioButtonField.js.map +1 -1
- package/dist/esm/CommandForm/fields/RadioGroupField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/RadioGroupField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/RadioGroupField.js.map +1 -1
- package/dist/esm/CommandForm/fields/RatingField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/RatingField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/RatingField.js.map +1 -1
- package/dist/esm/CommandForm/fields/SliderField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
- package/dist/esm/CommandForm/fields/TextAreaField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts +1 -0
- package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/ToggleSwitchField.js.map +1 -1
- package/dist/esm/CommandForm/fields/chipValues.js.map +1 -1
- package/dist/esm/CommandForm/fields/fieldAccessibility.js.map +1 -1
- package/dist/esm/CommandForm/fields/fieldValueFromEvent.js.map +1 -1
- package/dist/esm/CommandForm/fields/index.d.ts +1 -0
- package/dist/esm/CommandForm/fields/index.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/index.js +1 -0
- package/dist/esm/CommandForm/fields/index.js.map +1 -0
- package/dist/esm/CommandForm/index.d.ts +1 -0
- package/dist/esm/CommandForm/index.d.ts.map +1 -0
- package/dist/esm/Common/ActionMenubar.d.ts +1 -0
- package/dist/esm/Common/ActionMenubar.d.ts.map +1 -0
- package/dist/esm/Common/ActionMenubar.js.map +1 -1
- package/dist/esm/Common/Breadcrumbs.js.map +1 -1
- package/dist/esm/Common/Button.d.ts +1 -0
- package/dist/esm/Common/Button.d.ts.map +1 -0
- package/dist/esm/Common/Button.js.map +1 -1
- package/dist/esm/Common/ButtonImplementation.d.ts +1 -0
- package/dist/esm/Common/ButtonImplementation.d.ts.map +1 -0
- package/dist/esm/Common/ButtonImplementation.js.map +1 -1
- package/dist/esm/Common/Checkbox.d.ts +1 -0
- package/dist/esm/Common/Checkbox.d.ts.map +1 -0
- package/dist/esm/Common/Checkbox.js.map +1 -1
- package/dist/esm/Common/CheckboxImplementation.d.ts +1 -0
- package/dist/esm/Common/CheckboxImplementation.d.ts.map +1 -0
- package/dist/esm/Common/CheckboxImplementation.js.map +1 -1
- package/dist/esm/Common/ComboBox.js.map +1 -1
- package/dist/esm/Common/CratisComponentsProvider.d.ts +1 -0
- package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -0
- package/dist/esm/Common/CratisComponentsProvider.js.map +1 -1
- package/dist/esm/Common/DatePickerInput.d.ts +1 -0
- package/dist/esm/Common/DatePickerInput.d.ts.map +1 -0
- package/dist/esm/Common/DatePickerInput.js.map +1 -1
- package/dist/esm/Common/DatePickerInputImplementation.d.ts +1 -0
- package/dist/esm/Common/DatePickerInputImplementation.d.ts.map +1 -0
- package/dist/esm/Common/DatePickerInputImplementation.js.map +1 -1
- package/dist/esm/Common/ErrorBoundary.js.map +1 -1
- package/dist/esm/Common/FormElement.js.map +1 -1
- package/dist/esm/Common/Icon.js.map +1 -1
- package/dist/esm/Common/IconButton.d.ts +1 -0
- package/dist/esm/Common/IconButton.d.ts.map +1 -0
- package/dist/esm/Common/IconButton.js.map +1 -1
- package/dist/esm/Common/IconButtonImplementation.d.ts +1 -0
- package/dist/esm/Common/IconButtonImplementation.d.ts.map +1 -0
- package/dist/esm/Common/IconButtonImplementation.js.map +1 -1
- package/dist/esm/Common/NumberInput.d.ts +1 -0
- package/dist/esm/Common/NumberInput.d.ts.map +1 -0
- package/dist/esm/Common/NumberInput.js.map +1 -1
- package/dist/esm/Common/NumberInputCommitReason.js.map +1 -1
- package/dist/esm/Common/NumberInputPartAttributes.js.map +1 -1
- package/dist/esm/Common/Page.js.map +1 -1
- package/dist/esm/Common/Radio.d.ts +1 -0
- package/dist/esm/Common/Radio.d.ts.map +1 -0
- package/dist/esm/Common/Radio.js.map +1 -1
- package/dist/esm/Common/RadioImplementation.d.ts +1 -0
- package/dist/esm/Common/RadioImplementation.d.ts.map +1 -0
- package/dist/esm/Common/RadioImplementation.js.map +1 -1
- package/dist/esm/Common/Surface.js.map +1 -1
- package/dist/esm/Common/SurfaceImplementation.d.ts +1 -0
- package/dist/esm/Common/SurfaceImplementation.d.ts.map +1 -0
- package/dist/esm/Common/SurfaceImplementation.js.map +1 -1
- package/dist/esm/Common/Switch.d.ts +1 -0
- package/dist/esm/Common/Switch.d.ts.map +1 -0
- package/dist/esm/Common/Switch.js.map +1 -1
- package/dist/esm/Common/SwitchImplementation.d.ts +1 -0
- package/dist/esm/Common/SwitchImplementation.d.ts.map +1 -0
- package/dist/esm/Common/SwitchImplementation.js.map +1 -1
- package/dist/esm/Common/Tabs.js.map +1 -1
- package/dist/esm/Common/TagGroup.js.map +1 -1
- package/dist/esm/Common/TextArea.d.ts +1 -0
- package/dist/esm/Common/TextArea.d.ts.map +1 -0
- package/dist/esm/Common/TextArea.js.map +1 -1
- package/dist/esm/Common/TextAreaImplementation.d.ts +1 -0
- package/dist/esm/Common/TextAreaImplementation.d.ts.map +1 -0
- package/dist/esm/Common/TextAreaImplementation.js.map +1 -1
- package/dist/esm/Common/TextInput.d.ts +1 -0
- package/dist/esm/Common/TextInput.d.ts.map +1 -0
- package/dist/esm/Common/TextInput.js.map +1 -1
- package/dist/esm/Common/TextInputImplementation.d.ts +1 -0
- package/dist/esm/Common/TextInputImplementation.d.ts.map +1 -0
- package/dist/esm/Common/TextInputImplementation.js.map +1 -1
- package/dist/esm/Common/ToggleGroup.js.map +1 -1
- package/dist/esm/Common/ToolbarFocusMode.js.map +1 -1
- package/dist/esm/Common/Tooltip.js.map +1 -1
- package/dist/esm/Common/TooltipImplementation.d.ts +1 -0
- package/dist/esm/Common/TooltipImplementation.d.ts.map +1 -0
- package/dist/esm/Common/TooltipImplementation.js.map +1 -1
- package/dist/esm/Common/index.d.ts +1 -0
- package/dist/esm/Common/index.d.ts.map +1 -0
- package/dist/esm/Common/messaging/useOptionalMessenger.js.map +1 -1
- package/dist/esm/Common/normalizeIconClass.js.map +1 -1
- package/dist/esm/Common/reactAriaProps.js.map +1 -1
- package/dist/esm/Common/useNativeCheckedState.js.map +1 -1
- package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts +1 -0
- package/dist/esm/Common/useToolbarKeyboardNavigation.d.ts.map +1 -0
- package/dist/esm/Common/useToolbarKeyboardNavigation.js.map +1 -1
- package/dist/esm/DataPage/DataPage.d.ts +1 -0
- package/dist/esm/DataPage/DataPage.d.ts.map +1 -0
- package/dist/esm/DataPage/DataPage.js.map +1 -1
- package/dist/esm/DataPage/DataPageLayout.js.map +1 -1
- package/dist/esm/DataPage/index.d.ts +1 -0
- package/dist/esm/DataPage/index.d.ts.map +1 -0
- package/dist/esm/DataTables/Column.d.ts +1 -0
- package/dist/esm/DataTables/Column.d.ts.map +1 -0
- package/dist/esm/DataTables/Column.js.map +1 -1
- package/dist/esm/DataTables/ColumnFilterMenu.d.ts +1 -0
- package/dist/esm/DataTables/ColumnFilterMenu.d.ts.map +1 -0
- package/dist/esm/DataTables/ColumnFilterMenu.js.map +1 -1
- package/dist/esm/DataTables/DataTableCore.d.ts +1 -0
- package/dist/esm/DataTables/DataTableCore.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableCore.js.map +1 -1
- package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts +1 -0
- package/dist/esm/DataTables/DataTableFilterMatcherRegistry.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableFilterMatcherRegistry.js.map +1 -1
- package/dist/esm/DataTables/DataTableFilterMeta.js.map +1 -1
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
- package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
- package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
- package/dist/esm/DataTables/DataTableSelectionChangeEvent.js.map +1 -1
- package/dist/esm/DataTables/DataTableStatus.js.map +1 -1
- package/dist/esm/DataTables/TablePaginator.d.ts +1 -0
- package/dist/esm/DataTables/TablePaginator.d.ts.map +1 -0
- package/dist/esm/DataTables/TablePaginator.js.map +1 -1
- package/dist/esm/DataTables/TablePaginatorImplementation.d.ts +1 -0
- package/dist/esm/DataTables/TablePaginatorImplementation.d.ts.map +1 -0
- package/dist/esm/DataTables/TablePaginatorImplementation.js.map +1 -1
- package/dist/esm/DataTables/index.d.ts +1 -0
- package/dist/esm/DataTables/index.d.ts.map +1 -0
- package/dist/esm/DataTables/paginatorRange.js.map +1 -1
- package/dist/esm/DataTables/resolveDataTableStatus.d.ts +1 -0
- package/dist/esm/DataTables/resolveDataTableStatus.d.ts.map +1 -0
- package/dist/esm/DataTables/resolveDataTableStatus.js.map +1 -1
- package/dist/esm/DataTables/selectionKeys.js.map +1 -1
- package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
- package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
- package/dist/esm/Dialogs/Dialog.d.ts +1 -0
- package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
- package/dist/esm/Dialogs/Dialog.js.map +1 -1
- package/dist/esm/Dialogs/DialogImplementation.d.ts +1 -0
- package/dist/esm/Dialogs/DialogImplementation.d.ts.map +1 -0
- package/dist/esm/Dialogs/DialogImplementation.js.map +1 -1
- package/dist/esm/Dialogs/DialogInitialFocus.js.map +1 -1
- package/dist/esm/Dialogs/index.d.ts +1 -0
- package/dist/esm/Dialogs/index.d.ts.map +1 -0
- package/dist/esm/Display/Avatar.js.map +1 -1
- package/dist/esm/Display/Badge.js.map +1 -1
- package/dist/esm/Display/Chip.js.map +1 -1
- package/dist/esm/Display/Message.js.map +1 -1
- package/dist/esm/Display/ProgressBar.js.map +1 -1
- package/dist/esm/Display/ProgressBarImplementation.d.ts +1 -0
- package/dist/esm/Display/ProgressBarImplementation.d.ts.map +1 -0
- package/dist/esm/Display/ProgressBarImplementation.js.map +1 -1
- package/dist/esm/Display/ProgressSpinner.js.map +1 -1
- package/dist/esm/Display/Skeleton.js.map +1 -1
- package/dist/esm/Display/Tag.js.map +1 -1
- package/dist/esm/Display/index.d.ts +1 -0
- package/dist/esm/Display/index.d.ts.map +1 -0
- package/dist/esm/Dropdown/Dropdown.d.ts +1 -0
- package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/esm/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/Dropdown/DropdownImplementation.d.ts +1 -0
- package/dist/esm/Dropdown/DropdownImplementation.d.ts.map +1 -0
- package/dist/esm/Dropdown/DropdownImplementation.js.map +1 -1
- package/dist/esm/Dropdown/index.d.ts +1 -0
- package/dist/esm/Dropdown/index.d.ts.map +1 -0
- package/dist/esm/Dropdown/observeLabelAssociations.js.map +1 -1
- package/dist/esm/Dropdown/useExternalLabel.js.map +1 -1
- package/dist/esm/Filter/CheckboxListFilter.d.ts +1 -0
- package/dist/esm/Filter/CheckboxListFilter.d.ts.map +1 -0
- package/dist/esm/Filter/CheckboxListFilter.js.map +1 -1
- package/dist/esm/Filter/FilterEditor.d.ts +1 -0
- package/dist/esm/Filter/FilterEditor.d.ts.map +1 -0
- package/dist/esm/Filter/FilterEditor.js.map +1 -1
- package/dist/esm/Filter/FilterEditorProps.d.ts +1 -0
- package/dist/esm/Filter/FilterEditorProps.d.ts.map +1 -0
- package/dist/esm/Filter/FilterEditorProps.js.map +1 -1
- package/dist/esm/Filter/FilterPanel.d.ts +1 -0
- package/dist/esm/Filter/FilterPanel.d.ts.map +1 -0
- package/dist/esm/Filter/FilterPanel.js.map +1 -1
- package/dist/esm/Filter/RangeHistogramFilter.d.ts +1 -0
- package/dist/esm/Filter/RangeHistogramFilter.d.ts.map +1 -0
- package/dist/esm/Filter/RangeHistogramFilter.js.map +1 -1
- package/dist/esm/Filter/index.d.ts +1 -0
- package/dist/esm/Filter/index.d.ts.map +1 -0
- package/dist/esm/Filter/types.js.map +1 -1
- package/dist/esm/Filter/useFilterState.d.ts +1 -0
- package/dist/esm/Filter/useFilterState.d.ts.map +1 -0
- package/dist/esm/Filter/useFilterState.js.map +1 -1
- package/dist/esm/Filter/useOptionListOverflow.js.map +1 -1
- package/dist/esm/Filter/utils.d.ts +1 -0
- package/dist/esm/Filter/utils.d.ts.map +1 -0
- package/dist/esm/Filter/utils.js.map +1 -1
- package/dist/esm/Notifications/Toaster.js.map +1 -1
- package/dist/esm/Notifications/index.d.ts +1 -0
- package/dist/esm/Notifications/index.d.ts.map +1 -0
- package/dist/esm/Notifications/toast.js.map +1 -1
- package/dist/esm/Notifications/toastCommandResult.js.map +1 -1
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +1 -0
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
- package/dist/esm/ObjectContentEditor/index.d.ts +1 -0
- package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
- package/dist/esm/ObjectContentEditor/objectHelpers.d.ts +1 -0
- package/dist/esm/ObjectContentEditor/objectHelpers.d.ts.map +1 -0
- package/dist/esm/ObjectContentEditor/objectHelpers.js.map +1 -1
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
- package/dist/esm/ObjectNavigationalBar/breadcrumbHelpers.js.map +1 -1
- package/dist/esm/ObjectNavigationalBar/index.d.ts +1 -0
- package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.d.ts +1 -0
- package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
- package/dist/esm/PivotViewer/PivotViewerLabels.js.map +1 -1
- package/dist/esm/PivotViewer/components/AxisLabels.d.ts +1 -0
- package/dist/esm/PivotViewer/components/AxisLabels.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/AxisLabels.js.map +1 -1
- package/dist/esm/PivotViewer/components/DetailPanel.js.map +1 -1
- package/dist/esm/PivotViewer/components/FilterPanel.d.ts +1 -0
- package/dist/esm/PivotViewer/components/FilterPanel.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanel.js.map +1 -1
- package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts +1 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/FilterPanelContainer.js.map +1 -1
- package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +1 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -1
- package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +1 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -1
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts +1 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/RangeHistogramFilter.js.map +1 -1
- package/dist/esm/PivotViewer/components/Spinner.js.map +1 -1
- package/dist/esm/PivotViewer/components/Toolbar.d.ts +1 -0
- package/dist/esm/PivotViewer/components/Toolbar.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/Toolbar.js.map +1 -1
- package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts +1 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/ToolbarContainer.js.map +1 -1
- package/dist/esm/PivotViewer/components/index.d.ts +1 -0
- package/dist/esm/PivotViewer/components/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/index.js +1 -0
- package/dist/esm/PivotViewer/components/index.js.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/animation.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/animation.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/animation.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/colorResolver.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/constants.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/ellipsize.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/groups.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/groups.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/groups.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/syncScrollSprites.js.map +1 -1
- package/dist/esm/PivotViewer/components/pivot/visibility.d.ts +1 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.d.ts.map +1 -0
- package/dist/esm/PivotViewer/components/pivot/visibility.js.map +1 -1
- package/dist/esm/PivotViewer/constants.js.map +1 -1
- package/dist/esm/PivotViewer/engine/layout.d.ts +1 -0
- package/dist/esm/PivotViewer/engine/layout.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/layout.js.map +1 -1
- package/dist/esm/PivotViewer/engine/pivot.worker.js +1 -0
- package/dist/esm/PivotViewer/engine/pivot.worker.js.map +1 -0
- package/dist/esm/PivotViewer/engine/requestCorrelator.js.map +1 -1
- package/dist/esm/PivotViewer/engine/store.d.ts +1 -0
- package/dist/esm/PivotViewer/engine/store.d.ts.map +1 -0
- package/dist/esm/PivotViewer/engine/store.js.map +1 -1
- package/dist/esm/PivotViewer/engine/types.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/index.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/index.js +1 -0
- package/dist/esm/PivotViewer/hooks/index.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useAnimationModeTracking.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useCardSelection.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useCardSelection.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useContainerDimensions.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useCurrentFilters.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useCurrentFilters.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useDetailPanelClose.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useDetailPanelClose.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useDimensionState.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useFieldExtractors.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFieldExtractors.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterOptions.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useFilterPanelDrag.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useFilterState.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilterState.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.js +1 -0
- package/dist/esm/PivotViewer/hooks/useFilteredData.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePanning.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/usePivotEngine.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useScrollSync.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useScrollSync.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useSelectedItem.js +1 -0
- package/dist/esm/PivotViewer/hooks/useSelectedItem.js.map +1 -0
- package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts +1 -0
- package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.d.ts.map +1 -0
- package/dist/esm/PivotViewer/hooks/useViewModeScrollHandling.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useWheelZoom.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useZoomScrollAnchor.js.map +1 -1
- package/dist/esm/PivotViewer/hooks/useZoomState.js.map +1 -1
- package/dist/esm/PivotViewer/index.d.ts +1 -0
- package/dist/esm/PivotViewer/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/types.d.ts +1 -0
- package/dist/esm/PivotViewer/types.d.ts.map +1 -0
- package/dist/esm/PivotViewer/types.js.map +1 -1
- package/dist/esm/PivotViewer/utils/animations.js.map +1 -1
- package/dist/esm/PivotViewer/utils/cardPosition.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/cardPosition.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/cardPosition.js.map +1 -1
- package/dist/esm/PivotViewer/utils/constants.js.map +1 -1
- package/dist/esm/PivotViewer/utils/idResolution.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/idResolution.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/idResolution.js.map +1 -1
- package/dist/esm/PivotViewer/utils/index.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/index.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/index.js +1 -0
- package/dist/esm/PivotViewer/utils/index.js.map +1 -0
- package/dist/esm/PivotViewer/utils/presentGrouping.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/presentGrouping.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/presentGrouping.js.map +1 -1
- package/dist/esm/PivotViewer/utils/search.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/search.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/search.js.map +1 -1
- package/dist/esm/PivotViewer/utils/selection.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/selection.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/selection.js.map +1 -1
- package/dist/esm/PivotViewer/utils/utils.d.ts +1 -0
- package/dist/esm/PivotViewer/utils/utils.d.ts.map +1 -0
- package/dist/esm/PivotViewer/utils/utils.js.map +1 -1
- package/dist/esm/QueryStatus/QueryStatus.js.map +1 -1
- package/dist/esm/QueryStatus/resolveQueryStatus.d.ts +1 -0
- package/dist/esm/QueryStatus/resolveQueryStatus.d.ts.map +1 -0
- package/dist/esm/QueryStatus/resolveQueryStatus.js.map +1 -1
- package/dist/esm/SchemaEditor/NameCell.d.ts +1 -0
- package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
- package/dist/esm/SchemaEditor/NameCell.js.map +1 -1
- package/dist/esm/SchemaEditor/SchemaEditor.d.ts +1 -0
- package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
- package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
- package/dist/esm/SchemaEditor/TypeCell.d.ts +1 -0
- package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
- package/dist/esm/SchemaEditor/TypeCell.js.map +1 -1
- package/dist/esm/SchemaEditor/index.d.ts +1 -0
- package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
- package/dist/esm/SchemaEditor/schemaHelpers.d.ts +1 -0
- package/dist/esm/SchemaEditor/schemaHelpers.d.ts.map +1 -0
- package/dist/esm/SchemaEditor/schemaHelpers.js.map +1 -1
- package/dist/esm/TimeMachine/EventsView.d.ts +1 -0
- package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -0
- package/dist/esm/TimeMachine/EventsView.js.map +1 -1
- package/dist/esm/TimeMachine/Properties.js.map +1 -1
- package/dist/esm/TimeMachine/ReadModelView.d.ts +1 -0
- package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -0
- package/dist/esm/TimeMachine/ReadModelView.js.map +1 -1
- package/dist/esm/TimeMachine/TimeMachine.d.ts +1 -0
- package/dist/esm/TimeMachine/TimeMachine.d.ts.map +1 -0
- package/dist/esm/TimeMachine/TimeMachine.js.map +1 -1
- package/dist/esm/TimeMachine/TimeMachineLabels.js.map +1 -1
- package/dist/esm/TimeMachine/index.d.ts +1 -0
- package/dist/esm/TimeMachine/index.d.ts.map +1 -0
- package/dist/esm/TimeMachine/propertiesHelpers.js.map +1 -1
- package/dist/esm/TimeMachine/types.js.map +1 -1
- package/dist/esm/Toolbar/Toolbar.d.ts +1 -0
- package/dist/esm/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/esm/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarButton.d.ts +1 -0
- package/dist/esm/Toolbar/ToolbarButton.d.ts.map +1 -0
- package/dist/esm/Toolbar/ToolbarButton.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarContext.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarDragContext.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts +1 -0
- package/dist/esm/Toolbar/ToolbarFanOutItem.d.ts.map +1 -0
- package/dist/esm/Toolbar/ToolbarFanOutItem.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarFolder.d.ts +1 -0
- package/dist/esm/Toolbar/ToolbarFolder.d.ts.map +1 -0
- package/dist/esm/Toolbar/ToolbarFolder.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarFolderContext.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarGroup.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarItemVisibilityContext.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarLayout.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarSection.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarSeparator.js.map +1 -1
- package/dist/esm/Toolbar/ToolbarSlot.js.map +1 -1
- package/dist/esm/Toolbar/index.d.ts +1 -0
- package/dist/esm/Toolbar/index.d.ts.map +1 -0
- package/dist/esm/configuration/CratisComponentsContext.d.ts +1 -0
- package/dist/esm/configuration/CratisComponentsContext.d.ts.map +1 -0
- package/dist/esm/configuration/CratisComponentsContext.js.map +1 -1
- package/dist/esm/configuration/CratisComponentsDefaults.d.ts +1 -0
- package/dist/esm/configuration/CratisComponentsDefaults.d.ts.map +1 -0
- package/dist/esm/configuration/CratisComponentsDefaults.js.map +1 -1
- package/dist/esm/configuration/useCratisIcon.d.ts +1 -0
- package/dist/esm/configuration/useCratisIcon.d.ts.map +1 -0
- package/dist/esm/configuration/useCratisIcon.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/renderer/DialogStackContext.js.map +1 -1
- package/dist/esm/renderer/RendererContext.d.ts +1 -0
- package/dist/esm/renderer/RendererContext.d.ts.map +1 -0
- package/dist/esm/renderer/RendererContext.js.map +1 -1
- package/dist/esm/renderer/RendererScope.d.ts +1 -0
- package/dist/esm/renderer/RendererScope.d.ts.map +1 -0
- package/dist/esm/renderer/RendererScope.js.map +1 -1
- package/dist/esm/renderer/builtin/index.js.map +1 -1
- package/dist/esm/renderer/capabilities.js.map +1 -1
- package/dist/esm/renderer/coreSlots.d.ts +1 -0
- package/dist/esm/renderer/coreSlots.d.ts.map +1 -0
- package/dist/esm/renderer/coreSlots.js.map +1 -1
- package/dist/esm/renderer/dialogStack.js.map +1 -1
- package/dist/esm/renderer/errors.d.ts +1 -0
- package/dist/esm/renderer/errors.d.ts.map +1 -0
- package/dist/esm/renderer/errors.js.map +1 -1
- package/dist/esm/renderer/index.d.ts +1 -0
- package/dist/esm/renderer/index.d.ts.map +1 -0
- package/dist/esm/renderer/manifest.d.ts +1 -0
- package/dist/esm/renderer/manifest.d.ts.map +1 -0
- package/dist/esm/renderer/manifest.js.map +1 -1
- package/dist/esm/renderer/overlayEnvironment.js.map +1 -1
- package/dist/esm/renderer/presentation.d.ts +1 -0
- package/dist/esm/renderer/presentation.d.ts.map +1 -0
- package/dist/esm/renderer/presentation.js.map +1 -1
- package/dist/esm/renderer/renderSlot.js.map +1 -1
- package/dist/esm/renderer/resolve.d.ts +1 -0
- package/dist/esm/renderer/resolve.d.ts.map +1 -0
- package/dist/esm/renderer/resolve.js.map +1 -1
- package/dist/esm/renderer/slots.js.map +1 -1
- package/dist/esm/types/ChangeHandler.d.ts +1 -0
- package/dist/esm/types/ChangeHandler.d.ts.map +1 -0
- package/dist/esm/types/ChangeHandler.js.map +1 -1
- package/dist/esm/types/ChangeMeta.js.map +1 -1
- package/dist/esm/types/ExactPartKeys.js.map +1 -1
- package/dist/esm/types/JsonSchema.js.map +1 -1
- package/dist/esm/types/TypeFormat.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/parts.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyMention.d.ts","sourceRoot":"","sources":["../../../../../Chat/Kit/Mentions/applyMention.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAE3B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,SAAS,MAAM,SAAS,YAAY,QAAQ,MAAM,KAAG,cAU7F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyMention.js","sources":["../../../../../Chat/Kit/Mentions/applyMention.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"applyMention.js","sources":["../../../../../Chat/Kit/Mentions/applyMention.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 { MentionQuery } from './MentionQuery';\n\n/**\n * The text after a mention has been inserted, and where the caret ends up.\n */\nexport interface MentionApplied {\n\n /** The new text of the input. */\n text: string;\n\n /** Where the caret should sit afterwards. */\n caret: number;\n}\n\n/**\n * Replaces the mention being typed with the chosen name.\n * @param text The full text of the input.\n * @param caret The caret position within it.\n * @param query The mention being typed, as found by activeMentionQuery.\n * @param name The name that was chosen.\n * @returns The text to show and where to put the caret.\n */\nexport const applyMention = (text: string, caret: number, query: MentionQuery, name: string): MentionApplied => {\n // A trailing space both separates the mention from what is typed next and closes the mention, so\n // the candidate list does not immediately reopen on the name that was just chosen.\n const mention = `@${name} `;\n const after = text.slice(caret);\n\n return {\n text: `${text.slice(0, query.start)}${mention}${after}`,\n caret: query.start + mention.length,\n };\n};\n"],"names":[],"mappings":"AAyBO,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,KAAmB,EAAE,IAAY,KAAoB;AAG3G,IAAA,MAAM,OAAO,GAAG,CAAA,CAAA,EAAI,IAAI,GAAG;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAE/B,OAAO;AACH,QAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA,EAAG,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE;AACvD,QAAA,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM;KACtC;AACL;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractMentions.js","sources":["../../../../../Chat/Kit/Mentions/extractMentions.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"extractMentions.js","sources":["../../../../../Chat/Kit/Mentions/extractMentions.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 { findMentionRanges } from './findMentionRanges';\n\n/**\n * The candidates a text actually mentions, each once, in the order they first appear. Used when a\n * message is sent: the composer knows who *could* be mentioned, and this reduces that to who the\n * final text really addresses — a mention that was picked but edited away again does not count.\n * @param text The text to search.\n * @param candidates Everyone who could be mentioned.\n * @returns The mentioned candidates, deduplicated, in order of first appearance.\n */\nexport const extractMentions = <TCandidate extends { name: string }>(\n text: string,\n candidates: TCandidate[],\n): TCandidate[] => {\n const mentioned: TCandidate[] = [];\n for (const range of findMentionRanges(text, candidates)) {\n if (!mentioned.includes(range.candidate)) {\n mentioned.push(range.candidate);\n }\n }\n return mentioned;\n};\n"],"names":[],"mappings":";;MAaa,eAAe,GAAG,CAC3B,IAAY,EACZ,UAAwB,KACV;IACd,MAAM,SAAS,GAAiB,EAAE;IAClC,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;QACrD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AACtC,YAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACnC;IACJ;AACA,IAAA,OAAO,SAAS;AACpB;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findMentionRanges.js","sources":["../../../../../Chat/Kit/Mentions/findMentionRanges.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"findMentionRanges.js","sources":["../../../../../Chat/Kit/Mentions/findMentionRanges.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 * Where in a text a mention of a known candidate sits.\n * @typeParam TCandidate Whatever describes who can be mentioned — anything with a name.\n */\nexport interface MentionRange<TCandidate extends { name: string }> {\n /** The index of the `@` that opens the mention. */\n start: number;\n\n /** The index just past the last character of the mentioned name. */\n end: number;\n\n /** Who is mentioned. */\n candidate: TCandidate;\n}\n\n/** Whether the character closes a mention — anything that is not a letter or digit does. */\nconst closesMention = (character: string | undefined): boolean =>\n character === undefined || !/[a-z0-9]/i.test(character);\n\n/** Whether the character before the `@` lets it open a mention — a mention starts a word. */\nconst opensMention = (character: string | undefined): boolean =>\n character === undefined || /\\s/.test(character);\n\n/**\n * Finds where a text mentions any of the given candidates, written as plain `@Name`. Matching is\n * case-insensitive; a longer name wins where names overlap (`@Alice Johnson` is one mention of\n * Alice Johnson, not a mention of Alice followed by text); and a name that merely continues into\n * a longer word (`@Alison` when the candidate is Ali) is not a mention.\n * @param text The text to search.\n * @param candidates Everyone who could be mentioned.\n * @returns The ranges found, in the order they appear in the text.\n */\nexport const findMentionRanges = <TCandidate extends { name: string }>(\n text: string,\n candidates: TCandidate[],\n): MentionRange<TCandidate>[] => {\n const ranges: MentionRange<TCandidate>[] = [];\n const lowered = text.toLowerCase();\n const byLongestName = [...candidates]\n .filter((candidate) => candidate.name.trim().length > 0)\n .sort((left, right) => right.name.length - left.name.length);\n\n const overlapsExisting = (start: number, end: number) =>\n ranges.some((range) => start < range.end && end > range.start);\n\n for (const candidate of byLongestName) {\n const token = `@${candidate.name.toLowerCase()}`;\n let index = lowered.indexOf(token);\n while (index >= 0) {\n const end = index + token.length;\n if (\n opensMention(index === 0 ? undefined : text[index - 1]) &&\n closesMention(text[end]) &&\n !overlapsExisting(index, end)\n ) {\n ranges.push({ start: index, end, candidate });\n }\n index = lowered.indexOf(token, index + 1);\n }\n }\n\n return ranges.sort((left, right) => left.start - right.start);\n};\n"],"names":[],"mappings":"AAmBA,MAAM,aAAa,GAAG,CAAC,SAA6B,KAChD,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;AAG3D,MAAM,YAAY,GAAG,CAAC,SAA6B,KAC/C,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;MAWtC,iBAAiB,GAAG,CAC7B,IAAY,EACZ,UAAwB,KACI;IAC5B,MAAM,MAAM,GAA+B,EAAE;AAC7C,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAClC,IAAA,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU;AAC/B,SAAA,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;SACtD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAEhE,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,GAAW,KAChD,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;AAElE,IAAA,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;QACnC,MAAM,KAAK,GAAG,CAAA,CAAA,EAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE;QAChD,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAClC,QAAA,OAAO,KAAK,IAAI,CAAC,EAAE;AACf,YAAA,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM;AAChC,YAAA,IACI,YAAY,CAAC,KAAK,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACvD,gBAAA,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,gBAAA,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAC/B;AACE,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACjD;YACA,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;QAC7C;IACJ;AAEA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACjE;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Chat/Kit/Mentions/index.ts"],"names":[],"mappings":"AAGA,cAAc,uBAAoB,CAAC;AACnC,cAAc,mBAAgB,CAAC;AAC/B,cAAc,yBAAsB,CAAC;AACrC,cAAc,sBAAmB,CAAC;AAClC,cAAc,wBAAqB,CAAC;AACpC,cAAc,sBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Chat/Kit/Mentions/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,cAAc,uBAAoB,CAAC;AACnC,cAAc,mBAAgB,CAAC;AAC/B,cAAc,yBAAsB,CAAC;AACrC,cAAc,sBAAmB,CAAC;AAClC,cAAc,wBAAqB,CAAC;AACpC,cAAc,sBAAmB,CAAC;AAClC,mFAAmF;AACnF,gFAAgF;AAChF,cAAc","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\nexport * from './MentionCandidate';\nexport * from './MentionQuery';\nexport * from './MentionSuggestions';\nexport * from './extractMentions';\nexport * from './findMentionRanges';\nexport * from './mentionSegments';\n// `activeMentionQuery`, `applyMention`/`MentionApplied`, and `matchCandidates` are\n// internal helpers used by `ChatComposer` and are intentionally not part of the\n// public API.\n"]}
|
|
@@ -6,3 +6,4 @@ import type { MentionCandidate } from './MentionCandidate.js';
|
|
|
6
6
|
* @returns The matching candidates, those whose name starts with the query first.
|
|
7
7
|
*/
|
|
8
8
|
export declare const matchCandidates: (candidates: MentionCandidate[], query: string) => MentionCandidate[];
|
|
9
|
+
//# sourceMappingURL=matchCandidates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchCandidates.d.ts","sourceRoot":"","sources":["../../../../../Chat/Kit/Mentions/matchCandidates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,eAAgB,gBAAgB,EAAE,SAAS,MAAM,KAAG,gBAAgB,EAY/F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchCandidates.js","sources":["../../../../../Chat/Kit/Mentions/matchCandidates.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"matchCandidates.js","sources":["../../../../../Chat/Kit/Mentions/matchCandidates.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 { MentionCandidate } from './MentionCandidate';\n\n/** How many candidates the list shows at once, so it never covers the conversation. */\nconst MAX_SUGGESTIONS = 6;\n\n/**\n * Narrows the people and agents that can be mentioned down to those matching what has been typed.\n * @param candidates Everyone who could be mentioned.\n * @param query What has been typed after the `@`.\n * @returns The matching candidates, those whose name starts with the query first.\n */\nexport const matchCandidates = (candidates: MentionCandidate[], query: string): MentionCandidate[] => {\n const needle = query.trim().toLowerCase();\n const matching = needle.length === 0\n ? candidates\n : candidates.filter(candidate => candidate.name.toLowerCase().includes(needle));\n\n // A name that starts with what was typed is almost always the one being reached for, so it comes\n // first; everything else keeps the order it was given in.\n const startsWith = matching.filter(candidate => candidate.name.toLowerCase().startsWith(needle));\n const contains = matching.filter(candidate => !candidate.name.toLowerCase().startsWith(needle));\n\n return [...startsWith, ...contains].slice(0, MAX_SUGGESTIONS);\n};\n"],"names":[],"mappings":"AAMA,MAAM,eAAe,GAAG,CAAC;MAQZ,eAAe,GAAG,CAAC,UAA8B,EAAE,KAAa,KAAwB;IACjG,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACzC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK;AAC/B,UAAE;UACA,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAInF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE/F,IAAA,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;AACjE;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentionSegments.js","sources":["../../../../../Chat/Kit/Mentions/mentionSegments.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"mentionSegments.js","sources":["../../../../../Chat/Kit/Mentions/mentionSegments.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 { findMentionRanges } from './findMentionRanges';\n\n/**\n * One run of a message body — plain text, or a mention of somebody.\n * @typeParam TCandidate Whatever describes who can be mentioned — anything with a name.\n */\nexport interface MentionSegment<TCandidate extends { name: string }> {\n /** The text of the run, including the `@` when it is a mention. */\n text: string;\n\n /** Who the run mentions — unset for plain text. */\n mention?: TCandidate;\n}\n\n/**\n * Splits a message body into runs of plain text and mentions, so mentions can render distinctly\n * while the body itself stays plain readable text.\n * @param text The body to split.\n * @param candidates Who the body is known to mention.\n * @returns The runs, in order. A body without mentions comes back as one plain run.\n */\nexport const mentionSegments = <TCandidate extends { name: string }>(\n text: string,\n candidates: TCandidate[],\n): MentionSegment<TCandidate>[] => {\n const segments: MentionSegment<TCandidate>[] = [];\n let position = 0;\n\n for (const range of findMentionRanges(text, candidates)) {\n if (range.start > position) {\n segments.push({ text: text.slice(position, range.start) });\n }\n segments.push({\n text: text.slice(range.start, range.end),\n mention: range.candidate,\n });\n position = range.end;\n }\n\n if (position < text.length || segments.length === 0) {\n segments.push({ text: text.slice(position) });\n }\n\n return segments;\n};\n"],"names":[],"mappings":";;MAwBa,eAAe,GAAG,CAC3B,IAAY,EACZ,UAAwB,KACM;IAC9B,MAAM,QAAQ,GAAiC,EAAE;IACjD,IAAI,QAAQ,GAAG,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;AACrD,QAAA,IAAI,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE;AACxB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D;QACA,QAAQ,CAAC,IAAI,CAAC;AACV,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;YACxC,OAAO,EAAE,KAAK,CAAC,SAAS;AAC3B,SAAA,CAAC;AACF,QAAA,QAAQ,GAAG,KAAK,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,QAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD;AAEA,IAAA,OAAO,QAAQ;AACnB;;"}
|
|
@@ -16,3 +16,4 @@ export interface MessageReactionsProps {
|
|
|
16
16
|
* says who is behind it on hover, emoji on the left and name on the right, one line per person.
|
|
17
17
|
*/
|
|
18
18
|
export declare const MessageReactions: ({ reactions }: MessageReactionsProps) => import("react").JSX.Element | null;
|
|
19
|
+
//# sourceMappingURL=MessageReactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageReactions.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/MessageReactions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAIjE;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,SAAS,EAAE,mBAAmB,EAAE,CAAC;CACpC;AA6ED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,kBAAmB,qBAAqB,uCAUpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageReactions.js","sources":["../../../../Chat/Kit/MessageReactions.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageReactions.js","sources":["../../../../Chat/Kit/MessageReactions.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 { useRef, useState } from 'react';\nimport { AnchoredOverlay } from './AnchoredOverlay';\nimport type { ChatMessageReaction } from './ChatMessageReaction';\n\nconst MAX_STACKED_GLYPHS = 3;\n\n/**\n * Props for the row of emoji badges a message's reactions render as, sitting below the message text.\n * Each badge says who is behind it on hover, emoji on the left and name on the right, one line per person.\n */\nexport interface MessageReactionsProps {\n /**\n * The reactions to render, one badge per distinct emoji. Several people behind the same emoji\n * render as a stack rather than repeating the glyph; a different emoji gets its own badge on the\n * line.\n */\n reactions: ChatMessageReaction[];\n}\n\ninterface ReactionBadgeProps {\n /** The reaction this badge stands for. */\n reaction: ChatMessageReaction;\n}\n\n/**\n * One emoji's badge. Who gave it is shown on hover — that is the whole mechanism, so there is nothing\n * to discover and nothing extra to click. Clicking pins the same list open, which is what makes it\n * reachable on a touch screen, where there is no hover to rely on.\n */\nconst ReactionBadge = ({ reaction }: ReactionBadgeProps) => {\n const anchorRef = useRef<HTMLDivElement>(null);\n const [isHovered, setIsHovered] = useState(false);\n const [isPinned, setIsPinned] = useState(false);\n\n return (\n <div\n ref={anchorRef}\n className='message-reactions__badge-wrapper'\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <button\n type='button'\n className='message-reactions__badge'\n onFocus={() => setIsHovered(true)}\n onBlur={() => setIsHovered(false)}\n onClick={() => setIsPinned((pinned) => !pinned)}\n >\n <span className='message-reactions__stack'>\n {reaction.users.slice(0, MAX_STACKED_GLYPHS).map((user, index) => (\n <span\n key={user.id.toString()}\n className='message-reactions__glyph'\n style={{ zIndex: MAX_STACKED_GLYPHS - index }}\n >\n {reaction.emoji}\n </span>\n ))}\n </span>\n {reaction.users.length > 1 && (\n <span className='message-reactions__count'>\n {reaction.users.length}\n </span>\n )}\n </button>\n {/* Portaled rather than positioned inside the bubble: the chat panel scrolls, and anything\n positioned within it is clipped the moment it reaches the panel's edge. */}\n <AnchoredOverlay\n anchorRef={anchorRef}\n open={isHovered || isPinned}\n side='above'\n align='left'\n gap={6}\n >\n <div className='message-reactions__tooltip' role='tooltip'>\n {reaction.users.map((user) => (\n <div\n key={user.id.toString()}\n className='message-reactions__tooltip-row'\n >\n <span className='message-reactions__tooltip-emoji'>\n {reaction.emoji}\n </span>\n <span className='message-reactions__tooltip-name'>\n {user.name}\n </span>\n </div>\n ))}\n </div>\n </AnchoredOverlay>\n </div>\n );\n};\n\n/**\n * The row of emoji badges a message's reactions render as, sitting below the message text. Each badge\n * says who is behind it on hover, emoji on the left and name on the right, one line per person.\n */\nexport const MessageReactions = ({ reactions }: MessageReactionsProps) => {\n if (reactions.length === 0) return null;\n\n return (\n <div className='message-reactions'>\n {reactions.map((reaction) => (\n <ReactionBadge key={reaction.emoji} reaction={reaction} />\n ))}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -53,3 +53,4 @@ export interface ReactionPickerProps {
|
|
|
53
53
|
* give/change/revoke from what was clicked.
|
|
54
54
|
*/
|
|
55
55
|
export declare const ReactionPicker: ({ ownEmoji, reactions, memory, anchorRef, onPick, onDismiss, labels, }: ReactionPickerProps) => import("react").JSX.Element;
|
|
56
|
+
//# sourceMappingURL=ReactionPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactionPicker.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/ReactionPicker.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAEjE;eACe;AACf,MAAM,WAAW,oBAAoB;IACjC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;0BACsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAE3C;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE1C,8CAA8C;IAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,yFAAyF;IACzF,SAAS,EAAE,MAAM,IAAI,CAAC;IAEtB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,2EAQxB,mBAAmB,gCAmGrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionPicker.js","sources":["../../../../Chat/Kit/ReactionPicker.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReactionPicker.js","sources":["../../../../Chat/Kit/ReactionPicker.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 { RefObject, useEffect, useRef, useState } from 'react';\nimport { EmojiPicker, type EmojiPickerLabels } from './Emoji/EmojiPicker';\nimport { recentEmojis, rememberEmoji } from './Emoji/recentEmojis';\nimport type { EmojiMemory } from './Emoji/EmojiMemory';\nimport type { ChatMessageReaction } from './ChatMessageReaction';\n\n/** Overrides for the picker's own labels. Any field left unset falls back to a literal English\n * default. */\nexport interface ReactionPickerLabels {\n /** Accessible label for the quick row. Defaults to `'Pick an emoji'`. */\n pickEmoji?: string;\n /** Tooltip/accessible label for the \"more\" button that opens the full picker. Defaults to\n * `'All emojis'`. */\n allEmojis?: string;\n /** Labels forwarded to the full {@link EmojiPicker} when it is opened. */\n emojiPicker?: EmojiPickerLabels;\n}\n\n/**\n * Props for the popover a reaction button opens: the emojis this person reached for most recently,\n * and a muted button at the end that opens the full picker — the shape Apple's tapback bar established,\n * where the quick row answers almost every reaction and the rest is one click further away.\n */\nexport interface ReactionPickerProps {\n /** The emoji the viewer already gave, highlighted so picking it again reads as \"remove\". */\n ownEmoji?: string;\n\n /**\n * The reactions already on the message. Shown as a list of who gave what underneath the quick row,\n * so somebody opening the picker can see where the message stands without a second gesture.\n */\n reactions?: readonly ChatMessageReaction[];\n\n /**\n * Where the recently used emojis are remembered. Defaults to the browser's local storage; a spec\n * (or a host without storage) can pass its own.\n */\n memory?: EmojiMemory;\n\n /**\n * The button that opened the picker. A click on it is that button's business — without this the\n * picker would dismiss on the way down and the button would reopen it on the way up, leaving a\n * toggle that never closes.\n */\n anchorRef?: RefObject<HTMLElement | null>;\n\n /** Invoked with the emoji that was picked. */\n onPick: (emoji: string) => void;\n\n /** Invoked when the picker should close without a pick (an outside click, or Escape). */\n onDismiss: () => void;\n\n /** Overrides for the picker's labels. Unset fields fall back to literal English defaults. */\n labels?: ReactionPickerLabels;\n}\n\n/**\n * The popover a reaction button opens: the emojis this person reached for most recently, and a muted\n * button at the end that opens the full picker — the shape Apple's tapback bar established, where the\n * quick row answers almost every reaction and the rest is one click further away.\n *\n * Picking the emoji already given is how a reaction is taken back; the caller decides\n * give/change/revoke from what was clicked.\n */\nexport const ReactionPicker = ({\n ownEmoji,\n reactions = [],\n memory,\n anchorRef,\n onPick,\n onDismiss,\n labels,\n}: ReactionPickerProps) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const store =\n memory ?? (typeof window === 'undefined' ? undefined : window.localStorage);\n const [quickEmojis, setQuickEmojis] = useState(() =>\n store ? recentEmojis(store) : [],\n );\n const [showingAll, setShowingAll] = useState(false);\n\n useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node;\n if (rootRef.current?.contains(target) || anchorRef?.current?.contains(target))\n return;\n onDismiss();\n };\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onDismiss();\n };\n\n // Capture phase, so board items that stop pointerdown propagation for their own\n // gestures still dismiss the picker.\n document.addEventListener('pointerdown', handlePointerDown, true);\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown, true);\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onDismiss, anchorRef]);\n\n const pick = (emoji: string) => {\n // Remembered before it is handed on: the caller closes the picker, and the row has to already\n // be in its new order the next time it opens.\n if (store) setQuickEmojis(rememberEmoji(store, emoji));\n onPick(emoji);\n };\n\n return (\n <div ref={rootRef} className='reaction-picker'>\n <div className='reaction-picker__quick'>\n <div\n role='listbox'\n aria-label={labels?.pickEmoji ?? 'Pick an emoji'}\n className='reaction-picker__options'\n >\n {quickEmojis.map((emoji) => (\n <button\n key={emoji}\n type='button'\n role='option'\n aria-selected={emoji === ownEmoji}\n className={`reaction-picker__item${emoji === ownEmoji ? ' reaction-picker__item--selected' : ''}`}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => pick(emoji)}\n >\n {emoji}\n </button>\n ))}\n </div>\n <button\n type='button'\n className={`reaction-picker__more${showingAll ? ' reaction-picker__more--open' : ''}`}\n title={labels?.allEmojis ?? 'All emojis'}\n aria-label={labels?.allEmojis ?? 'All emojis'}\n aria-expanded={showingAll}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => setShowingAll((open) => !open)}\n >\n ☺\n </button>\n </div>\n {showingAll && (\n <EmojiPicker\n ownEmoji={ownEmoji}\n onPick={pick}\n labels={labels?.emojiPicker}\n />\n )}\n {!showingAll && reactions.length > 0 && (\n <div className='reaction-picker__given'>\n {reactions.flatMap((reaction) =>\n reaction.users.map((user) => (\n <div\n key={`${reaction.emoji}-${user.id.toString()}`}\n className='reaction-picker__given-row'\n >\n <span className='reaction-picker__given-emoji'>\n {reaction.emoji}\n </span>\n <span className='reaction-picker__given-name'>\n {user.name}\n </span>\n </div>\n )),\n )}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypingIndicator.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/TypingIndicator.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,mBAAU,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,+EAA+E;IAC/E,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE5B,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IAEd,uGAAuG;IACvG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,MAAM,CAAC;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,wCAIzB,oBAAoB,uCA8BtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypingIndicator.js","sources":["../../../../Chat/Kit/TypingIndicator.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;AA4BO,MAAM,eAAe,GAAG,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,cAAc,GACK,KAAI;AACvB,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,IAAI;IACf;IAEA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,aAAa,eAAW,QAAQ,EAAA,QAAA,EAAA,CAC3CC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sBAAsB,YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAChBA,GAAA,CAAC,kBAAkB,EAAA,EAEf,MAAM,EAAE,MAAM,CAAC,EAAE,EACjB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,IAAI,EAAE,EAAE,EACR,SAAS,EACL,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,GAAG,QAAQ,GAAG,OAAO,EAE7D,cAAc,EAAE,cAAc,EAAA,EARzB,MAAM,CAAC,EAAE,CAShB,CACL,CAAC,EAAA,CACA,EACNA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EACnDD,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAClDC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CAClC,CAAA,EAAA,CACL;AAEd;;"}
|
|
1
|
+
{"version":3,"file":"TypingIndicator.js","sources":["../../../../Chat/Kit/TypingIndicator.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 { PersonAvatarCircle, type BuildAvatarUrlParams } from './Avatar';\nimport { ChatAuthorKind } from './ChatAuthorKind';\nimport type { ChatTypingAuthor } from './ChatTypingAuthor';\n\n/**\n * Props for the classic jumping dots, shown while somebody is composing a message — a person typing\n * or an agent working on its answer. Both read the same way on purpose: an agent at work is a teammate\n * mid-sentence, not a spinner.\n */\nexport interface TypingIndicatorProps {\n /** Who is currently typing or working. Rendering is skipped when nobody is. */\n authors: ChatTypingAuthor[];\n\n /** The label shown next to the dots, already composed from the authors' names. */\n label: string;\n\n /** Builds the avatar image URL. Omit to always show initials — see {@link PersonAvatarCircleProps}. */\n buildAvatarUrl?: (params: BuildAvatarUrlParams) => string;\n}\n\n/**\n * The classic jumping dots, shown while somebody is composing a message — a person typing or an\n * agent working on its answer. Both read the same way on purpose: an agent at work is a teammate\n * mid-sentence, not a spinner.\n */\nexport const TypingIndicator = ({\n authors,\n label,\n buildAvatarUrl,\n}: TypingIndicatorProps) => {\n if (authors.length === 0) {\n return null;\n }\n\n return (\n <div className='chat-typing' aria-live='polite'>\n <div className='chat-typing__authors'>\n {authors.map((author) => (\n <PersonAvatarCircle\n key={author.id}\n userId={author.id}\n name={author.name}\n hasAvatar={author.hasAvatar}\n size={18}\n ownerType={\n author.kind === ChatAuthorKind.Agent ? 'Agents' : 'Users'\n }\n buildAvatarUrl={buildAvatarUrl}\n />\n ))}\n </div>\n <span className='chat-typing__label'>{label}</span>\n <span className='chat-typing__dots' aria-hidden='true'>\n <span className='chat-typing__dot' />\n <span className='chat-typing__dot' />\n <span className='chat-typing__dot' />\n </span>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;AA4BO,MAAM,eAAe,GAAG,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,cAAc,GACK,KAAI;AACvB,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,OAAO,IAAI;IACf;IAEA,QACIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,aAAa,eAAW,QAAQ,EAAA,QAAA,EAAA,CAC3CC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sBAAsB,YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAChBA,GAAA,CAAC,kBAAkB,EAAA,EAEf,MAAM,EAAE,MAAM,CAAC,EAAE,EACjB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,IAAI,EAAE,EAAE,EACR,SAAS,EACL,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,GAAG,QAAQ,GAAG,OAAO,EAE7D,cAAc,EAAE,cAAc,EAAA,EARzB,MAAM,CAAC,EAAE,CAShB,CACL,CAAC,EAAA,CACA,EACNA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EACnDD,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mBAAmB,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAClDC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CAClC,CAAA,EAAA,CACL;AAEd;;"}
|
|
@@ -10,3 +10,4 @@ import type { ChatOwnReaction } from './ChatOwnReaction.js';
|
|
|
10
10
|
* @returns Their reaction, or undefined when they have not reacted.
|
|
11
11
|
*/
|
|
12
12
|
export declare const findOwnReaction: (reactions: ChatMessageReaction[] | undefined, userId: Guid) => ChatOwnReaction | undefined;
|
|
13
|
+
//# sourceMappingURL=findOwnReaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findOwnReaction.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/findOwnReaction.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,cACb,mBAAmB,EAAE,GAAG,SAAS,UACpC,IAAI,KACb,eAAe,GAAG,SAQpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOwnReaction.js","sources":["../../../../Chat/Kit/findOwnReaction.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"findOwnReaction.js","sources":["../../../../Chat/Kit/findOwnReaction.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 { Guid } from '@cratis/fundamentals';\nimport type { ChatMessageReaction } from './ChatMessageReaction';\nimport type { ChatOwnReaction } from './ChatOwnReaction';\n\n/**\n * Finds the reaction a specific person gave to a message, if any. A person has at most one reaction\n * per message, so the reaction button on their own bubble can show that single emoji instead of the\n * generic reaction affordance, and a later pick can reuse the same reaction identifier to change it.\n * @param reactions The message's reactions, grouped by emoji.\n * @param userId The person to look for.\n * @returns Their reaction, or undefined when they have not reacted.\n */\nexport const findOwnReaction = (\n reactions: ChatMessageReaction[] | undefined,\n userId: Guid,\n): ChatOwnReaction | undefined => {\n const own = (reactions ?? [])\n .flatMap((reaction) =>\n reaction.users.map((user) => ({ user, emoji: reaction.emoji })),\n )\n .find((entry) => entry.user.id.equals(userId));\n\n return own ? { reactionId: own.user.reactionId, emoji: own.emoji } : undefined;\n};\n"],"names":[],"mappings":"MAea,eAAe,GAAG,CAC3B,SAA4C,EAC5C,MAAY,KACiB;AAC7B,IAAA,MAAM,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE;AACvB,SAAA,OAAO,CAAC,CAAC,QAAQ,KACd,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AAElE,SAAA,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,GAAG,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS;AAClF;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAQ,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAC9C,YAAY,EACR,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,mBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AACxD,YAAY,EACR,sBAAsB,EACtB,uBAAuB,GAC1B,MAAM,wBAAqB,CAAC;AAC7B,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA2B,CAAC;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,YAAY,EACR,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,GAC3B,MAAM,kBAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAoB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAkB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACpD,YAAY,EACR,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACvB,MAAM,sBAAmB,CAAC;AAE3B,cAAc,mBAAU,CAAC;AACzB,cAAc,kBAAS,CAAC;AACxB,cAAc,qBAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Chat/Kit/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAQ,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAO9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AASxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAM5C,qFAAqF;AACrF,qFAAqF;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACpD,iEAAiE;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AAOpD,cAAc,mBAAU,CAAC;AACzB,cAAc,kBAAS,CAAC;AACxB,cAAc,qBAAY,CAAC","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\nexport { Chat } from './Chat';\nexport type { ChatProps, ChatLabels } from './Chat';\nexport { ChatMessageAdded } from './ChatMessageAdded';\nexport { ChatAuthorKind } from './ChatAuthorKind';\nexport { ChatBubble } from './ChatBubble';\nexport type { ChatBubbleProps } from './ChatBubble';\nexport { ChatComposer } from './ChatComposer';\nexport type {\n ChatComposerProps,\n ChatComposerHandle,\n ChatComposerLabels,\n} from './ChatComposer';\nexport type { ChatMessage } from './ChatMessage';\nexport { ChatMessageBubble } from './ChatMessageBubble';\nexport type {\n ChatMessageBubbleProps,\n ChatMessageBubbleLabels,\n} from './ChatMessageBubble';\nexport type { ChatMessageReaction } from './ChatMessageReaction';\nexport type { ChatMessageReactionUser } from './ChatMessageReactionUser';\nexport type { ChatOwnReaction } from './ChatOwnReaction';\nexport type { ChatTypingAuthor } from './ChatTypingAuthor';\nexport { ChatVariant } from './ChatVariant';\nexport { FailedReply } from './FailedReply';\nexport type {\n FailedReplyProps,\n FailedReplyLabels,\n FailedReplyReportDetails,\n} from './FailedReply';\n// A consumer that owns reaction commands can use the same current-user lookup as the\n// Components chat composition without duplicating its one-reaction-per-person rules.\nexport { findOwnReaction } from './findOwnReaction';\n// `reactionsExcludingUser` remains an internal rendering helper.\nexport { MessageReactions } from './MessageReactions';\nexport type { MessageReactionsProps } from './MessageReactions';\nexport { ReactionPicker } from './ReactionPicker';\nexport type { ReactionPickerProps, ReactionPickerLabels } from './ReactionPicker';\nexport { TypingIndicator } from './TypingIndicator';\nexport type { TypingIndicatorProps } from './TypingIndicator';\nexport { AnchoredOverlay } from './AnchoredOverlay';\nexport type {\n AnchoredOverlayProps,\n AnchoredOverlaySide,\n AnchoredOverlayAlign,\n} from './AnchoredOverlay';\n\nexport * from './Avatar';\nexport * from './Emoji';\nexport * from './Mentions';\n"]}
|
|
@@ -9,3 +9,4 @@ import type { ChatMessageReaction } from './ChatMessageReaction.js';
|
|
|
9
9
|
* @returns The reactions to render, in the same emoji order as given.
|
|
10
10
|
*/
|
|
11
11
|
export declare const reactionsExcludingUser: (reactions: ChatMessageReaction[] | undefined, userId: Guid) => ChatMessageReaction[];
|
|
12
|
+
//# sourceMappingURL=reactionsExcludingUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactionsExcludingUser.d.ts","sourceRoot":"","sources":["../../../../Chat/Kit/reactionsExcludingUser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAAuB,CAAC;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,cAAe,mBAAmB,EAAE,GAAG,SAAS,UAAU,IAAI,KAAG,mBAAmB,EAGjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactionsExcludingUser.js","sources":["../../../../Chat/Kit/reactionsExcludingUser.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"reactionsExcludingUser.js","sources":["../../../../Chat/Kit/reactionsExcludingUser.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 { Guid } from '@cratis/fundamentals';\nimport type { ChatMessageReaction } from './ChatMessageReaction';\n\n/**\n * The reactions to render as badges beside the reaction button — everyone's reaction except the given\n * person's own, since their own reaction is shown by the button itself rather than repeated in the\n * list. An emoji nobody but that person gave drops out entirely rather than rendering an empty badge.\n * @param reactions The message's reactions, grouped by emoji.\n * @param userId The person whose own reaction should not appear in the list.\n * @returns The reactions to render, in the same emoji order as given.\n */\nexport const reactionsExcludingUser = (reactions: ChatMessageReaction[] | undefined, userId: Guid): ChatMessageReaction[] =>\n (reactions ?? [])\n .map(reaction => ({ ...reaction, users: reaction.users.filter(user => !user.id.equals(userId)) }))\n .filter(reaction => reaction.users.length > 0);\n"],"names":[],"mappings":"AAcO,MAAM,sBAAsB,GAAG,CAAC,SAA4C,EAAE,MAAY,KAC7F,CAAC,SAAS,IAAI,EAAE;AACX,KAAA,GAAG,CAAC,QAAQ,KAAK,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAChG,KAAA,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;;"}
|
package/dist/esm/Chat/index.d.ts
CHANGED
|
@@ -27,3 +27,4 @@ export type { BuildAvatarUrlParams } from './Kit/Avatar/index.js';
|
|
|
27
27
|
export type { ChatComposerLabels } from './Kit/ChatComposer.js';
|
|
28
28
|
export { extractMentions, findMentionRanges, mentionSegments } from './Kit/Mentions/index.js';
|
|
29
29
|
export type { MentionCandidate, MentionRange, MentionSegment } from './Kit/Mentions/index.js';
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Chat/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAoB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAkB,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAmB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,YAAY,EACR,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,kBAAe,CAAC;AACvB,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAmC,CAAC;AACpF,YAAY,EAAE,oCAAoC,EAAE,MAAM,sCAAmC,CAAC;AAC9F,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAiB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAqB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAoB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAsB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAAwB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAc,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAoB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAgB,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isTopicUnnamed.d.ts","sourceRoot":"","sources":["../../../Chat/isTopicUnnamed.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,UAAW,SAAS,KAAG,OACY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isTopicUnnamed.js","sources":["../../../Chat/isTopicUnnamed.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"isTopicUnnamed.js","sources":["../../../Chat/isTopicUnnamed.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 { ChatTopic } from './ChatTopic';\n\n/**\n * Whether a topic has not been named yet — no name, or only whitespace. Unnamed topics render a\n * placeholder until the host supplies the real name. Hosts whose backend stores a literal\n * placeholder for \"unnamed\" (rather than leaving the name blank) override this through the\n * `isTopicUnnamed` prop on the components.\n * @param topic The topic to check.\n * @returns True when the topic has no usable name.\n */\nexport const isTopicUnnamed = (topic: ChatTopic): boolean =>\n topic.name === undefined || topic.name.trim().length === 0;\n"],"names":[],"mappings":"AAaO,MAAM,cAAc,GAAG,CAAC,KAAgB,KAC3C,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relativeTimestamp.js","sources":["../../../Chat/relativeTimestamp.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"relativeTimestamp.js","sources":["../../../Chat/relativeTimestamp.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/** Overrides for the strings {@link relativeTimestamp} composes. `{minutes}`/`{hours}` are substituted. */\nexport interface RelativeTimestampLabels {\n /** Under a minute ago. Defaults to `'just now'`. */\n justNow?: string;\n\n /** Under an hour ago. Defaults to `'{minutes}m ago'`. */\n minutesAgo?: string;\n\n /** Under a day ago. Defaults to `'{hours}h ago'`. */\n hoursAgo?: string;\n}\n\n/**\n * A short relative rendering of a moment — `just now`, `5m ago`, `3h ago`, and a locale date\n * once it is older than a day.\n * @param moment The moment to render. Data that traveled through JSON may carry it as a string, so it is coerced rather than trusted to be a `Date`.\n * @param now What time it is, injectable so specs are not tied to the wall clock.\n * @param labels Overrides for the composed strings. Unset fields fall back to literal English defaults.\n * @returns The relative rendering.\n */\nexport const relativeTimestamp = (\n moment: Date,\n now: Date = new Date(),\n labels?: RelativeTimestampLabels,\n): string => {\n const date = moment instanceof Date ? moment : new Date(moment);\n const differenceInMinutes = Math.floor((now.getTime() - date.getTime()) / 60_000);\n if (differenceInMinutes < 1) return labels?.justNow ?? 'just now';\n if (differenceInMinutes < 60)\n return (labels?.minutesAgo ?? '{minutes}m ago').replace(\n '{minutes}',\n differenceInMinutes.toString(),\n );\n const differenceInHours = Math.floor(differenceInMinutes / 60);\n if (differenceInHours < 24)\n return (labels?.hoursAgo ?? '{hours}h ago').replace(\n '{hours}',\n differenceInHours.toString(),\n );\n return date.toLocaleDateString(undefined, { month: 'short', day: 'numeric' });\n};\n"],"names":[],"mappings":"AAuBO,MAAM,iBAAiB,GAAG,CAC7B,MAAY,EACZ,GAAA,GAAY,IAAI,IAAI,EAAE,EACtB,MAAgC,KACxB;AACR,IAAA,MAAM,IAAI,GAAG,MAAM,YAAY,IAAI,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;IAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC;IACjF,IAAI,mBAAmB,GAAG,CAAC;AAAE,QAAA,OAAO,MAAM,EAAE,OAAO,IAAI,UAAU;IACjE,IAAI,mBAAmB,GAAG,EAAE;AACxB,QAAA,OAAO,CAAC,MAAM,EAAE,UAAU,IAAI,gBAAgB,EAAE,OAAO,CACnD,WAAW,EACX,mBAAmB,CAAC,QAAQ,EAAE,CACjC;IACL,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAC9D,IAAI,iBAAiB,GAAG,EAAE;AACtB,QAAA,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,cAAc,EAAE,OAAO,CAC/C,SAAS,EACT,iBAAiB,CAAC,QAAQ,EAAE,CAC/B;AACL,IAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AACjF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldRequestTopicName.js","sources":["../../../Chat/shouldRequestTopicName.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"shouldRequestTopicName.js","sources":["../../../Chat/shouldRequestTopicName.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 * Whether sending a message should ask the host to name the topic. A topic is named exactly\n * once, from the very first message sent in it — a topic that already carries a name keeps it\n * (somebody's choice wins over automation), and a topic that already has messages had its\n * chance when the first one was sent.\n * @param topicIsUnnamed Whether the topic is still unnamed.\n * @param existingMessageCount How many messages the topic already holds, before this send.\n * @returns True when the host should be asked for a name.\n */\nexport const shouldRequestTopicName = (\n topicIsUnnamed: boolean,\n existingMessageCount: number,\n): boolean => topicIsUnnamed && existingMessageCount === 0;\n"],"names":[],"mappings":"AAYO,MAAM,sBAAsB,GAAG,CAClC,cAAuB,EACvB,oBAA4B,KAClB,cAAc,IAAI,oBAAoB,KAAK;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topicsByActivity.d.ts","sourceRoot":"","sources":["../../../Chat/topicsByActivity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAa,CAAC;AAe7C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,SAAS,UAAU,MAAM,EAAE,KAAG,MAAM,EACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topicsByActivity.js","sources":["../../../Chat/topicsByActivity.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"topicsByActivity.js","sources":["../../../Chat/topicsByActivity.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 { ChatTopic } from './ChatTopic';\n\n/**\n * When a topic last saw something happen. Data that traveled through JSON may carry dates as\n * strings, so the value is coerced rather than trusted to be a `Date`.\n * @param topic The topic to read.\n * @returns The time of last activity, the start time when nothing happened since, or the epoch when neither is known.\n */\nconst lastActivityOf = (topic: ChatTopic): number => {\n const moment = topic.lastActivity ?? topic.started;\n if (moment === undefined) return 0;\n const time = moment instanceof Date ? moment.getTime() : new Date(moment).getTime();\n return Number.isNaN(time) ? 0 : time;\n};\n\n/**\n * The topics ordered by most recent activity first, so the conversation somebody is most likely\n * looking for sits on top. Non-mutating.\n * @param topics The topics in any order.\n * @returns A new array, most recently active first.\n */\nexport const topicsByActivity = <TTopic extends ChatTopic>(topics: TTopic[]): TTopic[] =>\n [...topics].sort((left, right) => lastActivityOf(right) - lastActivityOf(left));\n"],"names":[],"mappings":"AAWA,MAAM,cAAc,GAAG,CAAC,KAAgB,KAAY;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO;IAClD,IAAI,MAAM,KAAK,SAAS;AAAE,QAAA,OAAO,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,YAAY,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;AACnF,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACxC,CAAC;AAQM,MAAM,gBAAgB,GAAG,CAA2B,MAAgB,KACvE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandDialog.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,sBAAmB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKH,KAAK,gBAAgB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAAwB,CAAC;AAOnE;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,CAC3E,SACI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAC,EAC3E,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5C;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAkHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmHG;AACH,QAAA,MAAM,sBAAsB;KAAI,QAAQ,SAAS,MAAM,WAAW,SAAS,kBAChE,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;;CA8EjD,CAAC;AAEF,QAAA,MAAM,0BAA0B,iBAAkB;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,sBAE9E,CAAC;AAKF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,+BAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.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 { DialogButtons, DialogResult } from '@cratis/arc.react/dialogs';\nimport { Dialog, type DialogProps } from '../Dialogs/Dialog';\nimport React from 'react';\nimport {\n CommandForm,\n CommandFormFieldWrapper,\n useCommandFormContext,\n useCommandInstance,\n type CommandFormProps,\n} from '@cratis/arc.react/commands';\nimport type { BeforeExecuteCallback } from './applyBeforeExecute';\nimport type { ConfirmBeforeExecute } from './confirmBeforeExecute';\nimport { useCommandExecution } from './useCommandExecution';\nimport {\n isCommandFormField,\n markAsCommandFormColumn,\n} from '../CommandForm/commandFormMarkers';\n\n/**\n * Props for {@link CommandDialog}. Combines the props of a `CommandForm`\n * (`command`, `initialValues`, `onSuccess`, `onValidationFailure`, `onFailed`,\n * `onBeforeExecute`, etc.) with the props of a {@link Dialog} (`title`,\n * `buttons`, `width`, `pt`, `unstyled`, …). Dialog presentation props\n * such as `subtitle`, `placement`, and `closeIcon` are forwarded to the dialog.\n *\n * @typeParam TCommand - The command record type (must extend `object`).\n * @typeParam TResponse - The response payload type returned by a successful command. Defaults to `object`.\n */\nexport interface CommandDialogProps<TCommand extends object, TResponse = object>\n extends\n Omit<CommandFormProps<TCommand, TResponse>, 'children' | 'onBeforeExecute'>,\n Omit<DialogProps, 'children' | 'isBusy'> {\n /**\n * A transformer invoked with the current command values immediately before\n * the command executes on confirm. It **must return** the values to run with\n * (mutated or not) — a callback that returns nothing does not execute the\n * command with `undefined`; the current values are kept and a warning is\n * logged. May be async.\n *\n * ⚠️ It runs **only on submit**, after the form has already been validated,\n * so a value produced here can never satisfy required-field validation — the\n * submit button stays disabled if a required value is only seeded here. Seed\n * required values through `initialValues`; reserve `onBeforeExecute` for\n * transforms that do not affect validity (for example a generated id).\n */\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n\n /**\n * Ask whether to run the command after validation and `onBeforeExecute`.\n * Receives the transformed values. Only `true` executes; all other outcomes\n * keep the dialog open. May return a promise (for example from a confirmation dialog).\n * If command values change while confirmation is pending, execution is skipped\n * and the dialog stays open; confirm the new values again.\n * Unlike `onConfirm`, this runs before execution, not after success.\n */\n confirmBeforeExecute?: ConfirmBeforeExecute<TCommand>;\n\n /**\n * Form fields and arbitrary content for the dialog body. Children that are\n * `CommandFormField` instances are automatically wrapped so they bind to\n * the command instance.\n */\n children?: React.ReactNode;\n}\n\n// Requiring each key here makes a newly added Dialog prop fail compilation until it is routed.\ntype ForwardedDialogProps = Omit<DialogProps, 'children' | 'isBusy'> &\n Record<keyof Omit<DialogProps, 'children' | 'isBusy'>, unknown>;\n\nconst CommandDialogWrapper = <TCommand extends object, TResponse = object>({\n isValid,\n onClose,\n onConfirm,\n onSuccess,\n onValidationFailure,\n onFailed,\n onException,\n onUnauthorized,\n onBeforeExecute,\n confirmBeforeExecute,\n children,\n ...dialogProps\n}: Omit<DialogProps, 'isBusy'> & {\n onSuccess?: CommandFormProps<TCommand, TResponse>['onSuccess'];\n onValidationFailure?: CommandFormProps<TCommand, TResponse>['onValidationFailure'];\n onFailed?: CommandFormProps<TCommand, TResponse>['onFailed'];\n onException?: CommandFormProps<TCommand, TResponse>['onException'];\n onUnauthorized?: CommandFormProps<TCommand, TResponse>['onUnauthorized'];\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n confirmBeforeExecute?: ConfirmBeforeExecute<TCommand>;\n}) => {\n const {\n setCommandValues,\n setCommandResult,\n isValid: isCommandFormValid,\n } = useCommandFormContext<TCommand>();\n const commandInstance = useCommandInstance<TCommand>();\n const submission = useCommandExecution<TCommand, TResponse>(\n commandInstance, setCommandValues, onBeforeExecute, confirmBeforeExecute, onException,\n );\n\n const handleConfirm = async () => {\n const result = await submission.run();\n if (!result) return false;\n\n if (!result.isSuccess) {\n await onFailed?.(result);\n if (result.hasExceptions) {\n await onException?.(result.exceptionMessages, result.exceptionStackTrace);\n }\n if (!result.isAuthorized) await onUnauthorized?.();\n if (!result.isValid) {\n await onValidationFailure?.(result.validationResults);\n }\n if (submission.isMounted()) setCommandResult(result);\n return false;\n }\n\n await onSuccess?.(result.response as TResponse);\n if (onConfirm) {\n const closeResult = await onConfirm();\n return closeResult === true;\n }\n if (onClose) {\n const closeResult = await onClose(DialogResult.Ok);\n return closeResult !== false;\n }\n return true;\n };\n\n const processChildren = (nodes: React.ReactNode): React.ReactNode => {\n return React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child;\n\n const component = child.type as React.ComponentType<unknown>;\n if (isCommandFormField(component)) {\n type FieldElement = Parameters<\n typeof CommandFormFieldWrapper\n >[0]['field'];\n // SAFETY: isCommandFormField guards that child.type is a command form field component.\n return (\n <CommandFormFieldWrapper field={child as unknown as FieldElement} />\n );\n }\n\n const childProps = child.props as Record<string, unknown>;\n if (childProps.children != null) {\n return React.cloneElement(\n child as React.ReactElement<Record<string, unknown>>,\n {\n children: processChildren(childProps.children as React.ReactNode),\n },\n );\n }\n\n return child;\n });\n };\n\n const processedChildren = processChildren(children);\n const isDialogValid = isValid !== false && isCommandFormValid;\n\n return (\n <Dialog\n {...dialogProps}\n onClose={onClose}\n onConfirm={handleConfirm}\n isValid={isDialogValid}\n isBusy={submission.isSubmitting}\n >\n <div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>\n {processedChildren}\n </div>\n </Dialog>\n );\n};\n\n/**\n * A {@link Dialog} that hosts a Cratis Arc `CommandForm`, runs the bound\n * command on confirm, and only closes when the command succeeds. This is\n * the standard pattern for \"user fills in a form, clicks OK, command runs\n * server-side, dialog dismisses\" — `CommandDialog` collapses about thirty\n * lines of orchestration into the props on a single component.\n *\n * ## Where `TCommand` comes from\n *\n * `TCommand` is an auto-generated TypeScript class produced by the Arc proxy\n * generator from a C# `[Command]` record. `dotnet build` writes a `.ts` file\n * per command with the right property types and a typed `execute()` method;\n * importing the class is all the connection-to-the-backend you need. The\n * class also exposes a `.use()` hook for direct (non-dialog) usage and a\n * `useWithChangeTracking()` variant.\n *\n * ## What happens on confirm\n *\n * 1. If `onBeforeExecute` is supplied, it transforms the command values.\n * Used for generated IDs (`Guid.create()`) that the user did not type in.\n * 2. The command's `execute()` runs through Arc's command pipeline. The\n * backend handler returns either a typed response (mapped to `TResponse`)\n * or a `ValidationResult[]`.\n * 3. On `IsSuccess: true`, `onSuccess(response)` fires and the dialog closes\n * through the dialog host context.\n * 4. On a validation failure, `onValidationFailure(errors)` fires and the\n * form's per-field error display is updated. The dialog stays open.\n * 5. On a domain or transport failure, `onFailed(result)` fires. The dialog\n * stays open and the `CommandResult` is set on the form context so the\n * UI can surface the error to the user.\n *\n * Throughout, the dialog is in the `isBusy` state — every action button is\n * disabled and the confirm button shows a spinner.\n *\n * ## Destructive commands and initial focus\n *\n * The confirm button is focused when the dialog opens, and a focused native\n * button fires `click` from the `keydown` of `Enter`. A command whose form\n * has required fields is protected from a held or double-tapped `Enter` for\n * free, because `isCommandFormValid` keeps confirm disabled until something\n * is filled in. A command that takes **no** input — the typical \"delete\n * this, permanently\" command — has no such gate, so its confirm button is\n * armed the instant the dialog appears.\n *\n * Pass `initialFocus` (forwarded straight to {@link Dialog}) for those:\n *\n * ```tsx\n * <CommandDialog<DeletePerson>\n * command={DeletePerson}\n * title=\"Delete personal data?\"\n * okLabel=\"Delete\"\n * initialFocus={DialogInitialFocus.Cancel}\n * onSuccess={() => closeDialog(DialogResult.Ok)}>\n * This cannot be undone.\n * </CommandDialog>\n * ```\n *\n * Everything else — the footer, the close (X), `Escape`, and the confirm\n * wiring that runs the command — is untouched.\n *\n * ## Field binding\n *\n * Children that are `CommandFormField` instances (`InputTextField`,\n * `NumberField`, `DropdownField`, every `@cratis/components/CommandForm/fields`\n * widget) bind to a property on the command via the `value` accessor:\n *\n * ```tsx\n * <InputTextField value={c => c.name} title=\"Name\" />\n * ```\n *\n * The accessor's argument is the command instance — TypeScript infers\n * `c.name` is a string and the field type-checks against that. Arbitrary\n * non-field children (custom layout, additional text, decorative elements)\n * are rendered as plain content.\n *\n * ## Typed dialog host usage\n *\n * Combine with `useDialog<CommandResult<TResponse>>()` from\n * `@cratis/arc.react/dialogs` to get a fully-typed result at the call site:\n *\n * ```tsx\n * import { useDialog, DialogResult } from '@cratis/arc.react/dialogs';\n * import { CommandDialog } from '@cratis/components/CommandDialog';\n * import { RegisterAuthor } from './RegisterAuthor'; // proxy from C#\n *\n * type RegisterAuthorResponse = { authorId: string };\n *\n * const RegisterAuthorDialog = () => {\n * const { closeDialog } = useDialogContext<CommandResult<RegisterAuthorResponse>>();\n * return (\n * <CommandDialog<RegisterAuthor, RegisterAuthorResponse>\n * command={RegisterAuthor}\n * title=\"Register author\"\n * okLabel=\"Register\"\n * onSuccess={(response) => closeDialog(DialogResult.Ok)}\n * onCancel={() => closeDialog(DialogResult.Cancelled)}>\n * <InputTextField value={c => c.name} title=\"Name\" />\n * <InputTextField value={c => c.email} title=\"Email\" />\n * </CommandDialog>\n * );\n * };\n * ```\n *\n * ## What's special vs. raw Dialog + CommandForm\n *\n * - Confirm wiring (`onConfirm` → `commandInstance.execute()`) is handled\n * internally; you only supply `onSuccess` / `onValidationFailure` / `onFailed`.\n * - The dialog's `isBusy` state tracks the in-flight command without manual\n * `useState`.\n * - Field error propagation from `CommandResult.validationResults` to the\n * form context is automatic.\n *\n * @typeParam TCommand - The command class (proxy generated from C# `[Command]`).\n * @typeParam TResponse - The success payload type returned by the command's `Handle()` method on the backend.\n * @param props - {@link CommandDialogProps}.\n */\nconst CommandDialogComponent = <TCommand extends object = object, TResponse = object>(\n props: CommandDialogProps<TCommand, TResponse>,\n) => {\n const {\n title,\n subtitle,\n placement,\n closeIcon,\n visible,\n width,\n style,\n contentStyle,\n resizable,\n buttons = DialogButtons.OkCancel,\n initialFocus,\n okLabel,\n cancelLabel,\n yesLabel,\n noLabel,\n dismissable,\n closeAriaLabel,\n isValid,\n onClose,\n onConfirm,\n onCancel,\n onBeforeExecute,\n confirmBeforeExecute,\n className,\n pt,\n ptOptions,\n unstyled,\n children,\n ...commandFormProps\n } = props;\n\n const dialogProps = {\n title,\n subtitle,\n placement,\n closeIcon,\n visible,\n width,\n style,\n contentStyle,\n resizable,\n buttons,\n initialFocus,\n okLabel,\n cancelLabel,\n yesLabel,\n noLabel,\n dismissable,\n closeAriaLabel,\n isValid,\n onClose,\n onConfirm,\n onCancel,\n className,\n pt,\n ptOptions,\n unstyled,\n } satisfies ForwardedDialogProps;\n\n return (\n <CommandForm<TCommand, TResponse> {...commandFormProps}>\n <CommandDialogWrapper<TCommand, TResponse>\n {...dialogProps}\n onSuccess={props.onSuccess}\n onValidationFailure={props.onValidationFailure}\n onFailed={props.onFailed}\n onException={props.onException}\n onUnauthorized={props.onUnauthorized}\n onBeforeExecute={onBeforeExecute}\n confirmBeforeExecute={confirmBeforeExecute}\n >\n {children}\n </CommandDialogWrapper>\n </CommandForm>\n );\n};\n\nconst CommandDialogColumnWrapper = ({ children }: { children: React.ReactNode }) => (\n <CommandForm.Column>{children}</CommandForm.Column>\n);\nmarkAsCommandFormColumn(CommandDialogColumnWrapper);\n\nCommandDialogComponent.Column = CommandDialogColumnWrapper;\n\n/**\n * A {@link Dialog} that hosts a Cratis Arc `CommandForm`, runs the bound\n * command on confirm, and only closes when the command succeeds. This is\n * the standard pattern for \"user fills in a form, clicks OK, command runs\n * server-side, dialog dismisses\" — `CommandDialog` collapses about thirty\n * lines of orchestration into the props on a single component.\n *\n * See {@link CommandDialogComponent} for full documentation.\n *\n * @typeParam TCommand - The command class (proxy generated from C# `[Command]`).\n * @typeParam TResponse - The success payload type returned by the command's `Handle()` method on the backend.\n */\nexport const CommandDialog = CommandDialogComponent;\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -157,3 +157,4 @@ export interface CommandStepperProps<TCommand extends object, TResponse = object
|
|
|
157
157
|
* @param props - {@link CommandStepperProps}.
|
|
158
158
|
*/
|
|
159
159
|
export declare const CommandStepper: <TCommand extends object = object, TResponse = object>(props: CommandStepperProps<TCommand, TResponse>) => React.JSX.Element;
|
|
160
|
+
//# sourceMappingURL=CommandStepper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandStepper.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandStepper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandStepper.js","sources":["../../../CommandDialog/CommandStepper.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandStepper.js","sources":["../../../CommandDialog/CommandStepper.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, { useState, type ButtonHTMLAttributes, type HTMLAttributes } from 'react';\nimport {\n CommandForm,\n useCommandFormContext,\n useCommandInstance,\n type CommandFormProps,\n} from '@cratis/arc.react/commands';\nimport type { BeforeExecuteCallback } from './applyBeforeExecute';\nimport type { ConfirmBeforeExecute } from './confirmBeforeExecute';\nimport { useCommandExecution } from './useCommandExecution';\nimport {\n CommandStepperContent,\n type CommandStepperContentProps,\n} from './CommandStepperContent';\nimport type { ExactPartKeys } from '../types/ExactPartKeys';\nimport type { PartsOf } from '../types/parts';\n\n/**\n * Event passed to {@link StepperCustomizationProps.onChangeStep} when the user\n * navigates to a different step.\n */\nexport interface StepperChangeEvent {\n /** Zero-based index of the step being navigated to. */\n index: number;\n}\n\n/** Orientation of a {@link CommandStepper} / {@link StepperCommandDialog}. */\nexport type StepperOrientation = 'horizontal' | 'vertical';\n\n/** Where the step headers sit relative to the panels. */\nexport type StepperHeaderPosition = 'top' | 'bottom';\n\n/**\n * Stepper-specific customization surface exposed by {@link CommandStepper} and\n * {@link StepperCommandDialog}. This is a Cratis-owned type — it no longer\n * leaks renderer-specific stepper props — so the Cratis-owned Stepper\n * can evolve underneath without changing the public API. Orientation, start/end\n * content, and header position are implemented over stable Cratis parts.\n */\nexport interface StepperParts {\n /** Stepper composition root. */\n root?: HTMLAttributes<HTMLDivElement>;\n /** Ordered step-header list. */\n list?: HTMLAttributes<HTMLOListElement>;\n /** One step list item and its state attributes. */\n step?: HTMLAttributes<HTMLLIElement>;\n /** Interactive step-header button. */\n header?: ButtonHTMLAttributes<HTMLButtonElement>;\n /** Step number/status indicator. */\n number?: HTMLAttributes<HTMLSpanElement>;\n /** Step title. */\n title?: HTMLAttributes<HTMLSpanElement>;\n /** Visual separator between steps. */\n separator?: HTMLAttributes<HTMLSpanElement>;\n /** Panels wrapper. */\n panels?: HTMLAttributes<HTMLDivElement>;\n /** Active step panel. */\n panel?: HTMLAttributes<HTMLElement>;\n}\n\nconst stepperPartsMatchManifest: ExactPartKeys<StepperParts, PartsOf<'CommandStepper'>> = true;\nvoid stepperPartsMatchManifest;\n\n/** Public layout, navigation, and stable-part customization shared by both steppers. */\nexport interface StepperCustomizationProps {\n /**\n * Whether the wizard is linear. In linear mode the step headers are not\n * directly clickable — the user advances through the Previous / Next\n * buttons. Set to `false` to let the user jump between steps by clicking\n * their headers. Defaults to `true`.\n */\n linear?: boolean;\n /** Lays the steps out horizontally (default) or stacked vertically. */\n orientation?: StepperOrientation;\n /** Places the step-header row above (default) or below the panels. */\n headerPosition?: StepperHeaderPosition;\n /** Content rendered before the stepper (e.g. a logo or title). */\n start?: React.ReactNode;\n /** Content rendered after the stepper. */\n end?: React.ReactNode;\n /** Invoked when the active step changes (via navigation or a header click). */\n onChangeStep?: (event: StepperChangeEvent) => void;\n /** Cratis-owned per-part attributes for the stepper. */\n pt?: StepperParts;\n /**\n * @deprecated Cratis parts always merge. Remove this renderer-era option.\n */\n ptOptions?: object;\n /**\n * @deprecated Components always uses consumer-owned CSS. Customize through `pt` and CSS instead.\n */\n unstyled?: boolean;\n}\n\n/** Props for a standalone stepper bound to one Arc command form. */\nexport interface CommandStepperProps<TCommand extends object, TResponse = object>\n extends\n Omit<CommandFormProps<TCommand, TResponse>, 'children' | 'onBeforeExecute'>,\n Omit<\n CommandStepperContentProps,\n | 'activeStep'\n | 'visitedSteps'\n | 'onActiveStepChange'\n | 'onVisitedStepsChange'\n | 'getFieldError'\n | 'isSubmitting'\n | 'isSubmitDisabled'\n | 'onSubmit'\n > {\n /**\n * A transformer invoked with the current command values immediately before\n * the command executes on submit. It **must return** the values to run with\n * (mutated or not) — a callback that returns nothing does not execute the\n * command with `undefined`; the current values are kept and a warning is\n * logged. May be async.\n *\n * ⚠️ It runs **only on submit**, after every step has already been validated,\n * so a value produced here can never satisfy required-field validation. Seed\n * required values through `initialValues`; reserve `onBeforeExecute` for\n * transforms that do not affect validity (for example a generated id).\n */\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n /**\n * Ask before executing the transformed command values; only `true` executes.\n * Fields are disabled from submit until the guarded submission settles. If command values change\n * during that time, execution is skipped; confirm the new values again.\n */\n confirmBeforeExecute?: ConfirmBeforeExecute<TCommand>;\n /** StepperPanel children defining each wizard step. */\n children?: React.ReactNode;\n}\n\ntype CommandStepperWrapperProps<TCommand extends object, TResponse = object> = Omit<\n CommandStepperContentProps,\n | 'activeStep'\n | 'visitedSteps'\n | 'onActiveStepChange'\n | 'onVisitedStepsChange'\n | 'getFieldError'\n | 'isSubmitting'\n | 'isSubmitDisabled'\n | 'onSubmit'\n> & {\n children?: React.ReactNode;\n onSuccess?: CommandFormProps<TCommand, TResponse>['onSuccess'];\n onValidationFailure?: CommandFormProps<TCommand, TResponse>['onValidationFailure'];\n onFailed?: CommandFormProps<TCommand, TResponse>['onFailed'];\n onException?: CommandFormProps<TCommand, TResponse>['onException'];\n onUnauthorized?: CommandFormProps<TCommand, TResponse>['onUnauthorized'];\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n confirmBeforeExecute?: ConfirmBeforeExecute<TCommand>;\n};\n\nconst CommandStepperWrapper = <TCommand extends object, TResponse = object>({\n children,\n onStepErrorsChange,\n showNavigation,\n showSubmit,\n nextLabel,\n previousLabel,\n okLabel,\n isBusy,\n linear,\n orientation,\n headerPosition,\n start,\n end,\n onChangeStep,\n pt,\n ptOptions,\n unstyled,\n onSuccess,\n onValidationFailure,\n onFailed,\n onException,\n onUnauthorized,\n onBeforeExecute,\n confirmBeforeExecute,\n}: CommandStepperWrapperProps<TCommand, TResponse>) => {\n const {\n getFieldError,\n isValid: isCommandFormValid,\n setCommandValues,\n setCommandResult,\n } = useCommandFormContext<TCommand>();\n const commandInstance = useCommandInstance<TCommand>();\n const [activeStep, setActiveStep] = useState(0);\n const [visitedSteps, setVisitedSteps] = useState<Set<number>>(new Set([0]));\n const submission = useCommandExecution<TCommand, TResponse>(\n commandInstance, setCommandValues, onBeforeExecute, confirmBeforeExecute, onException,\n );\n\n const handleSubmit = async () => {\n const result = await submission.run();\n if (!result) return;\n\n if (!result.isSuccess) {\n await onFailed?.(result);\n if (result.hasExceptions) {\n await onException?.(result.exceptionMessages, result.exceptionStackTrace);\n }\n if (!result.isAuthorized) await onUnauthorized?.();\n if (!result.isValid) {\n await onValidationFailure?.(result.validationResults);\n }\n if (submission.isMounted()) setCommandResult(result);\n return;\n }\n\n await onSuccess?.(result.response as TResponse);\n };\n\n return (\n <CommandStepperContent\n activeStep={activeStep}\n visitedSteps={visitedSteps}\n onActiveStepChange={setActiveStep}\n onVisitedStepsChange={setVisitedSteps}\n onStepErrorsChange={onStepErrorsChange}\n getFieldError={getFieldError}\n showNavigation={showNavigation}\n showSubmit={showSubmit}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n okLabel={okLabel}\n isBusy={isBusy}\n isSubmitting={submission.isSubmitting}\n disableFieldsWhileSubmitting={confirmBeforeExecute !== undefined}\n isSubmitDisabled={!isCommandFormValid}\n onSubmit={handleSubmit}\n linear={linear}\n orientation={orientation}\n headerPosition={headerPosition}\n start={start}\n end={end}\n onChangeStep={onChangeStep}\n pt={pt}\n ptOptions={ptOptions}\n unstyled={unstyled}\n >\n {children}\n </CommandStepperContent>\n );\n};\n\n/**\n * A multi-step wizard backed by a single Cratis Arc command — the embedded,\n * non-modal counterpart of {@link StepperCommandDialog}. Renders directly\n * inside a page region (a panel, a route, a wizard view) rather than inside\n * a modal dialog. Use this when the wizard *is* the page; use\n * {@link StepperCommandDialog} when the same wizard should appear over the\n * current page in a modal.\n *\n * ## Mechanics\n *\n * - Wraps the Cratis-owned Stepper inside an Arc `CommandForm` so each\n * `<StepperPanel>` becomes a logical grouping of fields that all bind to\n * the same single command.\n * - Provides a built-in Previous / Next / Submit footer. The Submit button\n * only appears on the last step and only when the form passes its\n * validity gate.\n * - Steps with field errors are visually marked (red step indicator) so\n * the user can see at a glance which step needs attention — useful in\n * wizards long enough that a missed-required-field on page 1 would\n * otherwise be hidden behind page 4.\n * - On final Submit, the bound command runs through Arc's command pipeline.\n * Failure paths (`onFailed`, `onException`, `onUnauthorized`, and\n * `onValidationFailure`) keep the wizard\n * open and re-surface field errors automatically.\n *\n * ## What `TCommand` is\n *\n * `TCommand` is the auto-generated TypeScript class produced by the Arc\n * proxy generator from a C# `[Command]` record. The wizard's UI is a\n * presentation grouping of one command's fields — every panel binds to\n * properties on the same single command instance.\n *\n * ## What's unique vs. {@link StepperCommandDialog}\n *\n * Mechanically identical, but lives inline on a page instead of inside a\n * modal Dialog. There is no `dialogPt` / `dialogUnstyled` prop because\n * there is no outer dialog — `pt` / `ptOptions` / `unstyled` target the\n * Stepper directly.\n *\n * ```tsx\n * import { CommandStepper, StepperPanel } from '@cratis/components/CommandDialog';\n * import { RegisterAuthor } from './RegisterAuthor'; // proxy from C#\n *\n * export const RegisterAuthorPage = () => (\n * <CommandStepper<RegisterAuthor> command={RegisterAuthor}\n * onSuccess={() => navigate('/authors')}>\n * <StepperPanel header=\"Basics\">\n * <InputTextField value={c => c.name} title=\"Name\" />\n * </StepperPanel>\n * <StepperPanel header=\"Contact\">\n * <InputTextField value={c => c.email} title=\"Email\" />\n * </StepperPanel>\n * </CommandStepper>\n * );\n * ```\n *\n * @typeParam TCommand - The command class (proxy generated from C# `[Command]`).\n * @typeParam TResponse - The success payload type returned by the command's `Handle()` method on the backend.\n * @param props - {@link CommandStepperProps}.\n */\nexport const CommandStepper = <TCommand extends object = object, TResponse = object>(\n props: CommandStepperProps<TCommand, TResponse>,\n) => {\n const {\n children,\n onStepErrorsChange,\n showNavigation,\n showSubmit,\n nextLabel,\n previousLabel,\n okLabel,\n isBusy,\n linear,\n orientation,\n headerPosition,\n start,\n end,\n onChangeStep,\n pt,\n ptOptions,\n unstyled,\n onBeforeExecute,\n confirmBeforeExecute,\n ...commandFormProps\n } = props;\n\n return (\n <CommandForm<TCommand, TResponse> {...commandFormProps}>\n <CommandStepperWrapper<TCommand, TResponse>\n onStepErrorsChange={onStepErrorsChange}\n showNavigation={showNavigation}\n showSubmit={showSubmit}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n okLabel={okLabel}\n isBusy={isBusy}\n linear={linear}\n orientation={orientation}\n headerPosition={headerPosition}\n start={start}\n end={end}\n onChangeStep={onChangeStep}\n pt={pt}\n ptOptions={ptOptions}\n unstyled={unstyled}\n onSuccess={props.onSuccess}\n onValidationFailure={props.onValidationFailure}\n onFailed={props.onFailed}\n onException={props.onException}\n onUnauthorized={props.onUnauthorized}\n onBeforeExecute={onBeforeExecute}\n confirmBeforeExecute={confirmBeforeExecute}\n >\n {children}\n </CommandStepperWrapper>\n </CommandForm>\n );\n};\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandStepperContent.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandStepperContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAQzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAkB,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IACzE,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3D,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,8EAA8E;IAC9E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sHAAsH;IACtH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sFAAsF;IACtF,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}
|