@stackone/malachite 2.21.0 → 2.23.0
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/dist/ShadowRootWrapper.js +83 -0
- package/dist/ShadowRootWrapper.js.map +1 -0
- package/dist/assets/icons/account.svg.js +6 -0
- package/dist/assets/icons/account.svg.js.map +1 -0
- package/dist/assets/icons/accounts.svg.js +6 -0
- package/dist/assets/icons/accounts.svg.js.map +1 -0
- package/dist/assets/icons/add.svg.js +6 -0
- package/dist/assets/icons/add.svg.js.map +1 -0
- package/dist/assets/icons/advanced_logs.svg.js +6 -0
- package/dist/assets/icons/advanced_logs.svg.js.map +1 -0
- package/dist/assets/icons/api_keys.svg.js +6 -0
- package/dist/assets/icons/api_keys.svg.js.map +1 -0
- package/dist/assets/icons/archive.svg.js +6 -0
- package/dist/assets/icons/archive.svg.js.map +1 -0
- package/dist/assets/icons/arrow_left.svg.js +6 -0
- package/dist/assets/icons/arrow_left.svg.js.map +1 -0
- package/dist/assets/icons/arrow_up.svg.js +6 -0
- package/dist/assets/icons/arrow_up.svg.js.map +1 -0
- package/dist/assets/icons/arrow_up_right.svg.js +6 -0
- package/dist/assets/icons/arrow_up_right.svg.js.map +1 -0
- package/dist/assets/icons/authentication.svg.js +6 -0
- package/dist/assets/icons/authentication.svg.js.map +1 -0
- package/dist/assets/icons/bell.svg.js +6 -0
- package/dist/assets/icons/bell.svg.js.map +1 -0
- package/dist/assets/icons/bell_slash.svg.js +6 -0
- package/dist/assets/icons/bell_slash.svg.js.map +1 -0
- package/dist/assets/icons/bi_directional_arrows.svg.js +6 -0
- package/dist/assets/icons/bi_directional_arrows.svg.js.map +1 -0
- package/dist/assets/icons/card.svg.js +6 -0
- package/dist/assets/icons/card.svg.js.map +1 -0
- package/dist/assets/icons/caret_down.svg.js +6 -0
- package/dist/assets/icons/caret_down.svg.js.map +1 -0
- package/dist/assets/icons/caret_left.svg.js +6 -0
- package/dist/assets/icons/caret_left.svg.js.map +1 -0
- package/dist/assets/icons/caret_right.svg.js +6 -0
- package/dist/assets/icons/caret_right.svg.js.map +1 -0
- package/dist/assets/icons/caret_up.svg.js +6 -0
- package/dist/assets/icons/caret_up.svg.js.map +1 -0
- package/dist/assets/icons/change_password.svg.js +6 -0
- package/dist/assets/icons/change_password.svg.js.map +1 -0
- package/dist/assets/icons/check.svg.js +6 -0
- package/dist/assets/icons/check.svg.js.map +1 -0
- package/dist/assets/icons/check_circle_filled.svg.js +6 -0
- package/dist/assets/icons/check_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/checkmark.svg.js +6 -0
- package/dist/assets/icons/checkmark.svg.js.map +1 -0
- package/dist/assets/icons/clear.svg.js +6 -0
- package/dist/assets/icons/clear.svg.js.map +1 -0
- package/dist/assets/icons/close.svg.js +6 -0
- package/dist/assets/icons/close.svg.js.map +1 -0
- package/dist/assets/icons/code.svg.js +6 -0
- package/dist/assets/icons/code.svg.js.map +1 -0
- package/dist/assets/icons/command_key.svg.js +6 -0
- package/dist/assets/icons/command_key.svg.js.map +1 -0
- package/dist/assets/icons/copy.svg.js +6 -0
- package/dist/assets/icons/copy.svg.js.map +1 -0
- package/dist/assets/icons/csv.svg.js +6 -0
- package/dist/assets/icons/csv.svg.js.map +1 -0
- package/dist/assets/icons/custom_field.svg.js +6 -0
- package/dist/assets/icons/custom_field.svg.js.map +1 -0
- package/dist/assets/icons/dashboard.svg.js +6 -0
- package/dist/assets/icons/dashboard.svg.js.map +1 -0
- package/dist/assets/icons/date.svg.js +6 -0
- package/dist/assets/icons/date.svg.js.map +1 -0
- package/dist/assets/icons/disable.svg.js +6 -0
- package/dist/assets/icons/disable.svg.js.map +1 -0
- package/dist/assets/icons/disabled.svg.js +6 -0
- package/dist/assets/icons/disabled.svg.js.map +1 -0
- package/dist/assets/icons/dismiss.svg.js +6 -0
- package/dist/assets/icons/dismiss.svg.js.map +1 -0
- package/dist/assets/icons/doc.svg.js +6 -0
- package/dist/assets/icons/doc.svg.js.map +1 -0
- package/dist/assets/icons/double_check.svg.js +6 -0
- package/dist/assets/icons/double_check.svg.js.map +1 -0
- package/dist/assets/icons/download.svg.js +6 -0
- package/dist/assets/icons/download.svg.js.map +1 -0
- package/dist/assets/icons/edit.svg.js +6 -0
- package/dist/assets/icons/edit.svg.js.map +1 -0
- package/dist/assets/icons/enable.svg.js +6 -0
- package/dist/assets/icons/enable.svg.js.map +1 -0
- package/dist/assets/icons/enum.svg.js +6 -0
- package/dist/assets/icons/enum.svg.js.map +1 -0
- package/dist/assets/icons/error_circle_filled.svg.js +6 -0
- package/dist/assets/icons/error_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/expand.svg.js +6 -0
- package/dist/assets/icons/expand.svg.js.map +1 -0
- package/dist/assets/icons/eye-closed.svg.js +6 -0
- package/dist/assets/icons/eye-closed.svg.js.map +1 -0
- package/dist/assets/icons/eye.svg.js +6 -0
- package/dist/assets/icons/eye.svg.js.map +1 -0
- package/dist/assets/icons/field_mapping.svg.js +6 -0
- package/dist/assets/icons/field_mapping.svg.js.map +1 -0
- package/dist/assets/icons/filled_caret_down.svg.js +6 -0
- package/dist/assets/icons/filled_caret_down.svg.js.map +1 -0
- package/dist/assets/icons/filled_caret_right.svg.js +6 -0
- package/dist/assets/icons/filled_caret_right.svg.js.map +1 -0
- package/dist/assets/icons/filter.svg.js +6 -0
- package/dist/assets/icons/filter.svg.js.map +1 -0
- package/dist/assets/icons/forbidden.svg.js +6 -0
- package/dist/assets/icons/forbidden.svg.js.map +1 -0
- package/dist/assets/icons/forward_arrow.svg.js +6 -0
- package/dist/assets/icons/forward_arrow.svg.js.map +1 -0
- package/dist/assets/icons/globe.svg.js +6 -0
- package/dist/assets/icons/globe.svg.js.map +1 -0
- package/dist/assets/icons/inbox.svg.js +6 -0
- package/dist/assets/icons/inbox.svg.js.map +1 -0
- package/dist/assets/icons/info.svg.js +6 -0
- package/dist/assets/icons/info.svg.js.map +1 -0
- package/dist/assets/icons/info_circle_filled.svg.js +6 -0
- package/dist/assets/icons/info_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/info_filled.svg.js +6 -0
- package/dist/assets/icons/info_filled.svg.js.map +1 -0
- package/dist/assets/icons/integrations.svg.js +6 -0
- package/dist/assets/icons/integrations.svg.js.map +1 -0
- package/dist/assets/icons/key.svg.js +6 -0
- package/dist/assets/icons/key.svg.js.map +1 -0
- package/dist/assets/icons/library.svg.js +6 -0
- package/dist/assets/icons/library.svg.js.map +1 -0
- package/dist/assets/icons/logs.svg.js +6 -0
- package/dist/assets/icons/logs.svg.js.map +1 -0
- package/dist/assets/icons/magic_wand.svg.js +6 -0
- package/dist/assets/icons/magic_wand.svg.js.map +1 -0
- package/dist/assets/icons/manage_team.svg.js +6 -0
- package/dist/assets/icons/manage_team.svg.js.map +1 -0
- package/dist/assets/icons/manual_native_webhook.svg.js +6 -0
- package/dist/assets/icons/manual_native_webhook.svg.js.map +1 -0
- package/dist/assets/icons/mark_read.svg.js +6 -0
- package/dist/assets/icons/mark_read.svg.js.map +1 -0
- package/dist/assets/icons/mark_unread.svg.js +6 -0
- package/dist/assets/icons/mark_unread.svg.js.map +1 -0
- package/dist/assets/icons/members.svg.js +6 -0
- package/dist/assets/icons/members.svg.js.map +1 -0
- package/dist/assets/icons/modal.svg.js +6 -0
- package/dist/assets/icons/modal.svg.js.map +1 -0
- package/dist/assets/icons/more_horizontal.svg.js +6 -0
- package/dist/assets/icons/more_horizontal.svg.js.map +1 -0
- package/dist/assets/icons/more_vertical.svg.js +6 -0
- package/dist/assets/icons/more_vertical.svg.js.map +1 -0
- package/dist/assets/icons/navbar_collapse.svg.js +6 -0
- package/dist/assets/icons/navbar_collapse.svg.js.map +1 -0
- package/dist/assets/icons/navbar_expand.svg.js +6 -0
- package/dist/assets/icons/navbar_expand.svg.js.map +1 -0
- package/dist/assets/icons/not_found.svg.js +6 -0
- package/dist/assets/icons/not_found.svg.js.map +1 -0
- package/dist/assets/icons/organization.svg.js +6 -0
- package/dist/assets/icons/organization.svg.js.map +1 -0
- package/dist/assets/icons/pin.svg.js +6 -0
- package/dist/assets/icons/pin.svg.js.map +1 -0
- package/dist/assets/icons/plus.svg.js +6 -0
- package/dist/assets/icons/plus.svg.js.map +1 -0
- package/dist/assets/icons/preview.svg.js +6 -0
- package/dist/assets/icons/preview.svg.js.map +1 -0
- package/dist/assets/icons/programmatic_native_webhook.svg.js +6 -0
- package/dist/assets/icons/programmatic_native_webhook.svg.js.map +1 -0
- package/dist/assets/icons/pulse.svg.js +6 -0
- package/dist/assets/icons/pulse.svg.js.map +1 -0
- package/dist/assets/icons/refresh.svg.js +6 -0
- package/dist/assets/icons/refresh.svg.js.map +1 -0
- package/dist/assets/icons/reject.svg.js +6 -0
- package/dist/assets/icons/reject.svg.js.map +1 -0
- package/dist/assets/icons/reload.svg.js +6 -0
- package/dist/assets/icons/reload.svg.js.map +1 -0
- package/dist/assets/icons/reply.svg.js +6 -0
- package/dist/assets/icons/reply.svg.js.map +1 -0
- package/dist/assets/icons/required_field_indicator.svg.js +6 -0
- package/dist/assets/icons/required_field_indicator.svg.js.map +1 -0
- package/dist/assets/icons/search.svg.js +6 -0
- package/dist/assets/icons/search.svg.js.map +1 -0
- package/dist/assets/icons/security.svg.js +6 -0
- package/dist/assets/icons/security.svg.js.map +1 -0
- package/dist/assets/icons/send.svg.js +6 -0
- package/dist/assets/icons/send.svg.js.map +1 -0
- package/dist/assets/icons/settings.svg.js +6 -0
- package/dist/assets/icons/settings.svg.js.map +1 -0
- package/dist/assets/icons/sign_out.svg.js +6 -0
- package/dist/assets/icons/sign_out.svg.js.map +1 -0
- package/dist/assets/icons/slider.svg.js +6 -0
- package/dist/assets/icons/slider.svg.js.map +1 -0
- package/dist/assets/icons/sort.svg.js +6 -0
- package/dist/assets/icons/sort.svg.js.map +1 -0
- package/dist/assets/icons/source.svg.js +6 -0
- package/dist/assets/icons/source.svg.js.map +1 -0
- package/dist/assets/icons/sparkle.svg.js +6 -0
- package/dist/assets/icons/sparkle.svg.js.map +1 -0
- package/dist/assets/icons/star.svg.js +6 -0
- package/dist/assets/icons/star.svg.js.map +1 -0
- package/dist/assets/icons/step_current.svg.js +6 -0
- package/dist/assets/icons/step_current.svg.js.map +1 -0
- package/dist/assets/icons/step_upcoming.svg.js +6 -0
- package/dist/assets/icons/step_upcoming.svg.js.map +1 -0
- package/dist/assets/icons/synthetic_webhook.svg.js +6 -0
- package/dist/assets/icons/synthetic_webhook.svg.js.map +1 -0
- package/dist/assets/icons/thumbs_down.svg.js +6 -0
- package/dist/assets/icons/thumbs_down.svg.js.map +1 -0
- package/dist/assets/icons/thumbs_up.svg.js +6 -0
- package/dist/assets/icons/thumbs_up.svg.js.map +1 -0
- package/dist/assets/icons/trash.svg.js +6 -0
- package/dist/assets/icons/trash.svg.js.map +1 -0
- package/dist/assets/icons/triangle_down.svg.js +6 -0
- package/dist/assets/icons/triangle_down.svg.js.map +1 -0
- package/dist/assets/icons/triangle_right.svg.js +6 -0
- package/dist/assets/icons/triangle_right.svg.js.map +1 -0
- package/dist/assets/icons/unarchive.svg.js +6 -0
- package/dist/assets/icons/unarchive.svg.js.map +1 -0
- package/dist/assets/icons/upload.svg.js +6 -0
- package/dist/assets/icons/upload.svg.js.map +1 -0
- package/dist/assets/icons/warning_circle_filled.svg.js +6 -0
- package/dist/assets/icons/warning_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/warning_triangle.svg.js +6 -0
- package/dist/assets/icons/warning_triangle.svg.js.map +1 -0
- package/dist/assets/icons/webhook-events.svg.js +6 -0
- package/dist/assets/icons/webhook-events.svg.js.map +1 -0
- package/dist/assets/icons/webhook.svg.js +6 -0
- package/dist/assets/icons/webhook.svg.js.map +1 -0
- package/dist/assets/icons/webhook_signing_secret.svg.js +6 -0
- package/dist/assets/icons/webhook_signing_secret.svg.js.map +1 -0
- package/dist/assets/logo-stackone-desaturated.png.js +5 -0
- package/dist/assets/logo-stackone-desaturated.png.js.map +1 -0
- package/dist/components/Accordion.js +105 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/ActionBar.js +66 -0
- package/dist/components/ActionBar.js.map +1 -0
- package/dist/components/ActionMenu.js +174 -0
- package/dist/components/ActionMenu.js.map +1 -0
- package/dist/components/Alert.js +136 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/AppLogo.js +43 -0
- package/dist/components/AppLogo.js.map +1 -0
- package/dist/components/Avatar.js +61 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/BaseFormComponent.js +116 -0
- package/dist/components/BaseFormComponent.js.map +1 -0
- package/dist/components/Breadcrumbs.js +106 -0
- package/dist/components/Breadcrumbs.js.map +1 -0
- package/dist/components/Button.js +227 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/ButtonList.js +40 -0
- package/dist/components/ButtonList.js.map +1 -0
- package/dist/components/Card.js +109 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/CardStrip.js +454 -0
- package/dist/components/CardStrip.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewItem.js +129 -0
- package/dist/components/ChangeReview/ChangeReviewItem.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewJump.js +27 -0
- package/dist/components/ChangeReview/ChangeReviewJump.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewRemoved.js +37 -0
- package/dist/components/ChangeReview/ChangeReviewRemoved.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewSummary.js +56 -0
- package/dist/components/ChangeReview/ChangeReviewSummary.js.map +1 -0
- package/dist/components/ChangeReview/index.js +15 -0
- package/dist/components/ChangeReview/index.js.map +1 -0
- package/dist/components/Chat/ChatComposer.js +100 -0
- package/dist/components/Chat/ChatComposer.js.map +1 -0
- package/dist/components/Chat/ChatComposerChip.js +28 -0
- package/dist/components/Chat/ChatComposerChip.js.map +1 -0
- package/dist/components/Chat/ChatContext.js +55 -0
- package/dist/components/Chat/ChatContext.js.map +1 -0
- package/dist/components/Chat/ChatContextMeter.js +30 -0
- package/dist/components/Chat/ChatContextMeter.js.map +1 -0
- package/dist/components/Chat/ChatHeader.js +44 -0
- package/dist/components/Chat/ChatHeader.js.map +1 -0
- package/dist/components/Chat/ChatMessage.js +127 -0
- package/dist/components/Chat/ChatMessage.js.map +1 -0
- package/dist/components/Chat/ChatModelPicker.js +207 -0
- package/dist/components/Chat/ChatModelPicker.js.map +1 -0
- package/dist/components/Chat/ChatRoot.js +6 -0
- package/dist/components/Chat/ChatRoot.js.map +1 -0
- package/dist/components/Chat/ChatSuggestion.js +22 -0
- package/dist/components/Chat/ChatSuggestion.js.map +1 -0
- package/dist/components/Chat/ChatThinking.js +20 -0
- package/dist/components/Chat/ChatThinking.js.map +1 -0
- package/dist/components/Chat/ChatThread.js +68 -0
- package/dist/components/Chat/ChatThread.js.map +1 -0
- package/dist/components/Chat/ChatToolCall.js +59 -0
- package/dist/components/Chat/ChatToolCall.js.map +1 -0
- package/dist/components/Chat/index.js +29 -0
- package/dist/components/Chat/index.js.map +1 -0
- package/dist/components/Chat/stickToBottom.js +29 -0
- package/dist/components/Chat/stickToBottom.js.map +1 -0
- package/dist/components/Chat/tokenText.js +6 -0
- package/dist/components/Chat/tokenText.js.map +1 -0
- package/dist/components/Checkbox.js +79 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/ClampText.js +30 -0
- package/dist/components/ClampText.js.map +1 -0
- package/dist/components/CodeBlock.js +223 -0
- package/dist/components/CodeBlock.js.map +1 -0
- package/dist/components/CodeBlockHighlighter.js +103 -0
- package/dist/components/CodeBlockHighlighter.js.map +1 -0
- package/dist/components/CollapsibleSection.js +40 -0
- package/dist/components/CollapsibleSection.js.map +1 -0
- package/dist/components/Confetti.js +56 -0
- package/dist/components/Confetti.js.map +1 -0
- package/dist/components/ConfirmationDialog.js +234 -0
- package/dist/components/ConfirmationDialog.js.map +1 -0
- package/dist/components/ConnectionHeader.js +47 -0
- package/dist/components/ConnectionHeader.js.map +1 -0
- package/dist/components/CustomIcons/AccountIcon.js +28 -0
- package/dist/components/CustomIcons/AccountIcon.js.map +1 -0
- package/dist/components/CustomIcons/AccountsIcon.js +28 -0
- package/dist/components/CustomIcons/AccountsIcon.js.map +1 -0
- package/dist/components/CustomIcons/AddIcon.js +28 -0
- package/dist/components/CustomIcons/AddIcon.js.map +1 -0
- package/dist/components/CustomIcons/AdvancedLogsIcon.js +21 -0
- package/dist/components/CustomIcons/AdvancedLogsIcon.js.map +1 -0
- package/dist/components/CustomIcons/ApiKeysIcon.js +16 -0
- package/dist/components/CustomIcons/ApiKeysIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArchiveIcon.js +16 -0
- package/dist/components/CustomIcons/ArchiveIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowLeftIcon.js +16 -0
- package/dist/components/CustomIcons/ArrowLeftIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowUpIcon.js +28 -0
- package/dist/components/CustomIcons/ArrowUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowUpRightIcon.js +20 -0
- package/dist/components/CustomIcons/ArrowUpRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/AuthenticationIcon.js +28 -0
- package/dist/components/CustomIcons/AuthenticationIcon.js.map +1 -0
- package/dist/components/CustomIcons/BellIcon.js +16 -0
- package/dist/components/CustomIcons/BellIcon.js.map +1 -0
- package/dist/components/CustomIcons/BellSlashIcon.js +16 -0
- package/dist/components/CustomIcons/BellSlashIcon.js.map +1 -0
- package/dist/components/CustomIcons/BiDirectionalArrowsIcon.js +21 -0
- package/dist/components/CustomIcons/BiDirectionalArrowsIcon.js.map +1 -0
- package/dist/components/CustomIcons/CardIcon.js +16 -0
- package/dist/components/CustomIcons/CardIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretDownIcon.js +16 -0
- package/dist/components/CustomIcons/CaretDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretLeftIcon.js +16 -0
- package/dist/components/CustomIcons/CaretLeftIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretRightIcon.js +21 -0
- package/dist/components/CustomIcons/CaretRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretUpIcon.js +16 -0
- package/dist/components/CustomIcons/CaretUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/ChangePasswordIcon.js +21 -0
- package/dist/components/CustomIcons/ChangePasswordIcon.js.map +1 -0
- package/dist/components/CustomIcons/CheckCircleFilled.js +21 -0
- package/dist/components/CustomIcons/CheckCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/CheckIcon.js +28 -0
- package/dist/components/CustomIcons/CheckIcon.js.map +1 -0
- package/dist/components/CustomIcons/CheckmarkIcon.js +16 -0
- package/dist/components/CustomIcons/CheckmarkIcon.js.map +1 -0
- package/dist/components/CustomIcons/ClearIcon.js +28 -0
- package/dist/components/CustomIcons/ClearIcon.js.map +1 -0
- package/dist/components/CustomIcons/CloseIcon.js +28 -0
- package/dist/components/CustomIcons/CloseIcon.js.map +1 -0
- package/dist/components/CustomIcons/CodeIcon.js +16 -0
- package/dist/components/CustomIcons/CodeIcon.js.map +1 -0
- package/dist/components/CustomIcons/CommandKeyIcon.js +21 -0
- package/dist/components/CustomIcons/CommandKeyIcon.js.map +1 -0
- package/dist/components/CustomIcons/CopyIcon.js +28 -0
- package/dist/components/CustomIcons/CopyIcon.js.map +1 -0
- package/dist/components/CustomIcons/CsvIcon.js +28 -0
- package/dist/components/CustomIcons/CsvIcon.js.map +1 -0
- package/dist/components/CustomIcons/CustomFieldIcon.js +21 -0
- package/dist/components/CustomIcons/CustomFieldIcon.js.map +1 -0
- package/dist/components/CustomIcons/DashboardIcon.js +28 -0
- package/dist/components/CustomIcons/DashboardIcon.js.map +1 -0
- package/dist/components/CustomIcons/DateIcon.js +28 -0
- package/dist/components/CustomIcons/DateIcon.js.map +1 -0
- package/dist/components/CustomIcons/DisableIcon.js +28 -0
- package/dist/components/CustomIcons/DisableIcon.js.map +1 -0
- package/dist/components/CustomIcons/DisabledIcon.js +28 -0
- package/dist/components/CustomIcons/DisabledIcon.js.map +1 -0
- package/dist/components/CustomIcons/DismissIcon.js +15 -0
- package/dist/components/CustomIcons/DismissIcon.js.map +1 -0
- package/dist/components/CustomIcons/DocIcon.js +28 -0
- package/dist/components/CustomIcons/DocIcon.js.map +1 -0
- package/dist/components/CustomIcons/DoubleCheckIcon.js +21 -0
- package/dist/components/CustomIcons/DoubleCheckIcon.js.map +1 -0
- package/dist/components/CustomIcons/DownloadIcon.js +28 -0
- package/dist/components/CustomIcons/DownloadIcon.js.map +1 -0
- package/dist/components/CustomIcons/EditIcon.js +28 -0
- package/dist/components/CustomIcons/EditIcon.js.map +1 -0
- package/dist/components/CustomIcons/EnableIcon.js +28 -0
- package/dist/components/CustomIcons/EnableIcon.js.map +1 -0
- package/dist/components/CustomIcons/EnumIcon.js +28 -0
- package/dist/components/CustomIcons/EnumIcon.js.map +1 -0
- package/dist/components/CustomIcons/ErrorCircleFilled.js +21 -0
- package/dist/components/CustomIcons/ErrorCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/ExpandIcon.js +28 -0
- package/dist/components/CustomIcons/ExpandIcon.js.map +1 -0
- package/dist/components/CustomIcons/EyeClosedIcon.js +16 -0
- package/dist/components/CustomIcons/EyeClosedIcon.js.map +1 -0
- package/dist/components/CustomIcons/EyeIcon.js +16 -0
- package/dist/components/CustomIcons/EyeIcon.js.map +1 -0
- package/dist/components/CustomIcons/FieldMappingIcon.js +21 -0
- package/dist/components/CustomIcons/FieldMappingIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilledCaretDownIcon.js +21 -0
- package/dist/components/CustomIcons/FilledCaretDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilledCaretRightIcon.js +21 -0
- package/dist/components/CustomIcons/FilledCaretRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilterIcon.js +28 -0
- package/dist/components/CustomIcons/FilterIcon.js.map +1 -0
- package/dist/components/CustomIcons/ForbiddenIcon.js +28 -0
- package/dist/components/CustomIcons/ForbiddenIcon.js.map +1 -0
- package/dist/components/CustomIcons/ForwardArrowIcon.js +21 -0
- package/dist/components/CustomIcons/ForwardArrowIcon.js.map +1 -0
- package/dist/components/CustomIcons/GlobeIcon.js +16 -0
- package/dist/components/CustomIcons/GlobeIcon.js.map +1 -0
- package/dist/components/CustomIcons/InboxIcon.js +16 -0
- package/dist/components/CustomIcons/InboxIcon.js.map +1 -0
- package/dist/components/CustomIcons/InfoCircleFilled.js +21 -0
- package/dist/components/CustomIcons/InfoCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/InfoFilledIcon.js +21 -0
- package/dist/components/CustomIcons/InfoFilledIcon.js.map +1 -0
- package/dist/components/CustomIcons/InfoIcon.js +28 -0
- package/dist/components/CustomIcons/InfoIcon.js.map +1 -0
- package/dist/components/CustomIcons/IntegrationsIcon.js +28 -0
- package/dist/components/CustomIcons/IntegrationsIcon.js.map +1 -0
- package/dist/components/CustomIcons/KeyIcon.js +28 -0
- package/dist/components/CustomIcons/KeyIcon.js.map +1 -0
- package/dist/components/CustomIcons/LibraryIcon.js +16 -0
- package/dist/components/CustomIcons/LibraryIcon.js.map +1 -0
- package/dist/components/CustomIcons/LogsIcon.js +28 -0
- package/dist/components/CustomIcons/LogsIcon.js.map +1 -0
- package/dist/components/CustomIcons/MagicWandIcon.js +16 -0
- package/dist/components/CustomIcons/MagicWandIcon.js.map +1 -0
- package/dist/components/CustomIcons/ManageTeamIcon.js +21 -0
- package/dist/components/CustomIcons/ManageTeamIcon.js.map +1 -0
- package/dist/components/CustomIcons/ManualWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/ManualWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/MarkReadIcon.js +16 -0
- package/dist/components/CustomIcons/MarkReadIcon.js.map +1 -0
- package/dist/components/CustomIcons/MarkUnreadIcon.js +21 -0
- package/dist/components/CustomIcons/MarkUnreadIcon.js.map +1 -0
- package/dist/components/CustomIcons/MembersIcon.js +28 -0
- package/dist/components/CustomIcons/MembersIcon.js.map +1 -0
- package/dist/components/CustomIcons/ModalIcon.js +28 -0
- package/dist/components/CustomIcons/ModalIcon.js.map +1 -0
- package/dist/components/CustomIcons/MoreHorizontalIcon.js +21 -0
- package/dist/components/CustomIcons/MoreHorizontalIcon.js.map +1 -0
- package/dist/components/CustomIcons/MoreVerticalIcon.js +21 -0
- package/dist/components/CustomIcons/MoreVerticalIcon.js.map +1 -0
- package/dist/components/CustomIcons/NavbarCollapseIcon.js +21 -0
- package/dist/components/CustomIcons/NavbarCollapseIcon.js.map +1 -0
- package/dist/components/CustomIcons/NavbarExpandIcon.js +21 -0
- package/dist/components/CustomIcons/NavbarExpandIcon.js.map +1 -0
- package/dist/components/CustomIcons/NotFoundIcon.js +16 -0
- package/dist/components/CustomIcons/NotFoundIcon.js.map +1 -0
- package/dist/components/CustomIcons/OrganizationIcon.js +21 -0
- package/dist/components/CustomIcons/OrganizationIcon.js.map +1 -0
- package/dist/components/CustomIcons/PinIcon.js +16 -0
- package/dist/components/CustomIcons/PinIcon.js.map +1 -0
- package/dist/components/CustomIcons/PlusIcon.js +28 -0
- package/dist/components/CustomIcons/PlusIcon.js.map +1 -0
- package/dist/components/CustomIcons/PreviewIcon.js +28 -0
- package/dist/components/CustomIcons/PreviewIcon.js.map +1 -0
- package/dist/components/CustomIcons/ProgrammaticWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/ProgrammaticWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/PulseIcon.js +28 -0
- package/dist/components/CustomIcons/PulseIcon.js.map +1 -0
- package/dist/components/CustomIcons/RefreshIcon.js +28 -0
- package/dist/components/CustomIcons/RefreshIcon.js.map +1 -0
- package/dist/components/CustomIcons/RejectIcon.js +28 -0
- package/dist/components/CustomIcons/RejectIcon.js.map +1 -0
- package/dist/components/CustomIcons/ReloadIcon.js +28 -0
- package/dist/components/CustomIcons/ReloadIcon.js.map +1 -0
- package/dist/components/CustomIcons/ReplyIcon.js +16 -0
- package/dist/components/CustomIcons/ReplyIcon.js.map +1 -0
- package/dist/components/CustomIcons/RequiredFieldIndicatorIcon.js +21 -0
- package/dist/components/CustomIcons/RequiredFieldIndicatorIcon.js.map +1 -0
- package/dist/components/CustomIcons/SearchIcon.js +15 -0
- package/dist/components/CustomIcons/SearchIcon.js.map +1 -0
- package/dist/components/CustomIcons/SecurityIcon.js +28 -0
- package/dist/components/CustomIcons/SecurityIcon.js.map +1 -0
- package/dist/components/CustomIcons/SendIcon.js +16 -0
- package/dist/components/CustomIcons/SendIcon.js.map +1 -0
- package/dist/components/CustomIcons/SettingsIcon.js +28 -0
- package/dist/components/CustomIcons/SettingsIcon.js.map +1 -0
- package/dist/components/CustomIcons/SignOutIcon.js +16 -0
- package/dist/components/CustomIcons/SignOutIcon.js.map +1 -0
- package/dist/components/CustomIcons/SliderIcon.js +28 -0
- package/dist/components/CustomIcons/SliderIcon.js.map +1 -0
- package/dist/components/CustomIcons/SortIcon.js +28 -0
- package/dist/components/CustomIcons/SortIcon.js.map +1 -0
- package/dist/components/CustomIcons/SourceIcon.js +28 -0
- package/dist/components/CustomIcons/SourceIcon.js.map +1 -0
- package/dist/components/CustomIcons/SparkleIcon.js +16 -0
- package/dist/components/CustomIcons/SparkleIcon.js.map +1 -0
- package/dist/components/CustomIcons/StarIcon.js +16 -0
- package/dist/components/CustomIcons/StarIcon.js.map +1 -0
- package/dist/components/CustomIcons/StepCurrentIcon.js +21 -0
- package/dist/components/CustomIcons/StepCurrentIcon.js.map +1 -0
- package/dist/components/CustomIcons/StepUpcomingIcon.js +21 -0
- package/dist/components/CustomIcons/StepUpcomingIcon.js.map +1 -0
- package/dist/components/CustomIcons/SyntheticWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/SyntheticWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/ThumbsDownIcon.js +21 -0
- package/dist/components/CustomIcons/ThumbsDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/ThumbsUpIcon.js +16 -0
- package/dist/components/CustomIcons/ThumbsUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/TrashIcon.js +28 -0
- package/dist/components/CustomIcons/TrashIcon.js.map +1 -0
- package/dist/components/CustomIcons/TriangleDownIcon.js +21 -0
- package/dist/components/CustomIcons/TriangleDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/TriangleRightIcon.js +21 -0
- package/dist/components/CustomIcons/TriangleRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/UnarchiveIcon.js +16 -0
- package/dist/components/CustomIcons/UnarchiveIcon.js.map +1 -0
- package/dist/components/CustomIcons/UploadIcon.js +28 -0
- package/dist/components/CustomIcons/UploadIcon.js.map +1 -0
- package/dist/components/CustomIcons/WarningCircleFilled.js +21 -0
- package/dist/components/CustomIcons/WarningCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/WarningTriangleIcon.js +21 -0
- package/dist/components/CustomIcons/WarningTriangleIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookEventsIcon.js +28 -0
- package/dist/components/CustomIcons/WebhookEventsIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookIcon.js +28 -0
- package/dist/components/CustomIcons/WebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookSigningSecretIcon.js +21 -0
- package/dist/components/CustomIcons/WebhookSigningSecretIcon.js.map +1 -0
- package/dist/components/CustomIcons/index.js +328 -0
- package/dist/components/CustomIcons/index.js.map +1 -0
- package/dist/components/DefinitionRow.js +15 -0
- package/dist/components/DefinitionRow.js.map +1 -0
- package/dist/components/DisclosureArrow.js +20 -0
- package/dist/components/DisclosureArrow.js.map +1 -0
- package/dist/components/Divider.js +59 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/Dropdown.js +849 -0
- package/dist/components/Dropdown.js.map +1 -0
- package/dist/components/FieldBlock.js +25 -0
- package/dist/components/FieldBlock.js.map +1 -0
- package/dist/components/FieldGroup.js +23 -0
- package/dist/components/FieldGroup.js.map +1 -0
- package/dist/components/FieldMessage.js +15 -0
- package/dist/components/FieldMessage.js.map +1 -0
- package/dist/components/Flex.js +45 -0
- package/dist/components/Flex.js.map +1 -0
- package/dist/components/FooterLinks.js +88 -0
- package/dist/components/FooterLinks.js.map +1 -0
- package/dist/components/FooterNav.js +19 -0
- package/dist/components/FooterNav.js.map +1 -0
- package/dist/components/Form.js +26 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/FormItem.js +32 -0
- package/dist/components/FormItem.js.map +1 -0
- package/dist/components/FormSectionHeading.js +20 -0
- package/dist/components/FormSectionHeading.js.map +1 -0
- package/dist/components/InlineConfirm.js +129 -0
- package/dist/components/InlineConfirm.js.map +1 -0
- package/dist/components/Input/Input.js +302 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/KeyValueList.js +26 -0
- package/dist/components/KeyValueList.js.map +1 -0
- package/dist/components/Link.js +47 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/LoadingBar.js +85 -0
- package/dist/components/LoadingBar.js.map +1 -0
- package/dist/components/LoadingInput.js +29 -0
- package/dist/components/LoadingInput.js.map +1 -0
- package/dist/components/MalachiteContext.js +18 -0
- package/dist/components/MalachiteContext.js.map +1 -0
- package/dist/components/Modal.js +212 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/MultiSelect.js +645 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/components/NumberTag.js +22 -0
- package/dist/components/NumberTag.js.map +1 -0
- package/dist/components/OverflowRow.js +153 -0
- package/dist/components/OverflowRow.js.map +1 -0
- package/dist/components/Padded.js +39 -0
- package/dist/components/Padded.js.map +1 -0
- package/dist/components/PageLayout/constants.js +12 -0
- package/dist/components/PageLayout/constants.js.map +1 -0
- package/dist/components/PageLayout/emptyLayout.js +61 -0
- package/dist/components/PageLayout/emptyLayout.js.map +1 -0
- package/dist/components/PageLayout/index.js +10 -0
- package/dist/components/PageLayout/index.js.map +1 -0
- package/dist/components/PageLayout/regularLayout.js +177 -0
- package/dist/components/PageLayout/regularLayout.js.map +1 -0
- package/dist/components/PillButton.js +70 -0
- package/dist/components/PillButton.js.map +1 -0
- package/dist/components/PreviewTree.js +49 -0
- package/dist/components/PreviewTree.js.map +1 -0
- package/dist/components/Progress.js +69 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/QueryInput.js +370 -0
- package/dist/components/QueryInput.js.map +1 -0
- package/dist/components/Radio.js +63 -0
- package/dist/components/Radio.js.map +1 -0
- package/dist/components/Search.js +54 -0
- package/dist/components/Search.js.map +1 -0
- package/dist/components/SegmentedControl.js +107 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/SelectableCard.js +364 -0
- package/dist/components/SelectableCard.js.map +1 -0
- package/dist/components/SelectionBar.js +103 -0
- package/dist/components/SelectionBar.js.map +1 -0
- package/dist/components/SettingRow.js +40 -0
- package/dist/components/SettingRow.js.map +1 -0
- package/dist/components/ShadowEscape.js +166 -0
- package/dist/components/ShadowEscape.js.map +1 -0
- package/dist/components/SidePanel.js +140 -0
- package/dist/components/SidePanel.js.map +1 -0
- package/dist/components/SidePanelNavFooter.js +46 -0
- package/dist/components/SidePanelNavFooter.js.map +1 -0
- package/dist/components/Skeleton.js +106 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Spacer.js +63 -0
- package/dist/components/Spacer.js.map +1 -0
- package/dist/components/Spinner.js +86 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/SplitScreenLayout.js +51 -0
- package/dist/components/SplitScreenLayout.js.map +1 -0
- package/dist/components/StatBadge.js +10 -0
- package/dist/components/StatBadge.js.map +1 -0
- package/dist/components/Statistic.js +48 -0
- package/dist/components/Statistic.js.map +1 -0
- package/dist/components/StatusBadge.js +56 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/StepTabs.js +52 -0
- package/dist/components/StepTabs.js.map +1 -0
- package/dist/components/Stepper.js +40 -0
- package/dist/components/Stepper.js.map +1 -0
- package/dist/components/Surface.js +143 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Swatch.js +44 -0
- package/dist/components/Swatch.js.map +1 -0
- package/dist/components/Table/Table.js +1007 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/TablePagination.js +205 -0
- package/dist/components/Table/TablePagination.js.map +1 -0
- package/dist/components/Tabs.js +35 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Tag.js +154 -0
- package/dist/components/Tag.js.map +1 -0
- package/dist/components/TextArea/TextArea.js +289 -0
- package/dist/components/TextArea/TextArea.js.map +1 -0
- package/dist/components/ThemeScope.js +14 -0
- package/dist/components/ThemeScope.js.map +1 -0
- package/dist/components/Toggle.js +115 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/Toolbar.js +25 -0
- package/dist/components/Toolbar.js.map +1 -0
- package/dist/components/Tooltip.js +181 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/TruncatedTooltip.js +38 -0
- package/dist/components/TruncatedTooltip.js.map +1 -0
- package/dist/components/Typography/CodeText.js +49 -0
- package/dist/components/Typography/CodeText.js.map +1 -0
- package/dist/components/Typography/EllipsisText.js +27 -0
- package/dist/components/Typography/EllipsisText.js.map +1 -0
- package/dist/components/Typography/FormSectionTitle.js +21 -0
- package/dist/components/Typography/FormSectionTitle.js.map +1 -0
- package/dist/components/Typography/LinkText.js +32 -0
- package/dist/components/Typography/LinkText.js.map +1 -0
- package/dist/components/Typography/MarkdownBlock.js +304 -0
- package/dist/components/Typography/MarkdownBlock.js.map +1 -0
- package/dist/components/Typography/PageTitle.js +21 -0
- package/dist/components/Typography/PageTitle.js.map +1 -0
- package/dist/components/Typography/SecondaryText.js +51 -0
- package/dist/components/Typography/SecondaryText.js.map +1 -0
- package/dist/components/Typography/SectionTitle.js +16 -0
- package/dist/components/Typography/SectionTitle.js.map +1 -0
- package/dist/components/Typography/StatisticLabel.js +22 -0
- package/dist/components/Typography/StatisticLabel.js.map +1 -0
- package/dist/components/Typography/StatisticValue.js +21 -0
- package/dist/components/Typography/StatisticValue.js.map +1 -0
- package/dist/components/Typography/TerminalText.js +45 -0
- package/dist/components/Typography/TerminalText.js.map +1 -0
- package/dist/components/Typography/Text.js +31 -0
- package/dist/components/Typography/Text.js.map +1 -0
- package/dist/components/Typography/index.js +31 -0
- package/dist/components/Typography/index.js.map +1 -0
- package/dist/components/Typography/textStyles.js +66 -0
- package/dist/components/Typography/textStyles.js.map +1 -0
- package/dist/components/WizardLayout.js +113 -0
- package/dist/components/WizardLayout.js.map +1 -0
- package/dist/components/actionBarMenuItems.js +16 -0
- package/dist/components/actionBarMenuItems.js.map +1 -0
- package/dist/components/activeElement.js +11 -0
- package/dist/components/activeElement.js.map +1 -0
- package/dist/components/breadcrumbsNav.js +5 -0
- package/dist/components/breadcrumbsNav.js.map +1 -0
- package/dist/components/cardStripSlot.js +9 -0
- package/dist/components/cardStripSlot.js.map +1 -0
- package/dist/components/codeBlockDiff.js +78 -0
- package/dist/components/codeBlockDiff.js.map +1 -0
- package/dist/components/codeBlockLine.js +90 -0
- package/dist/components/codeBlockLine.js.map +1 -0
- package/dist/components/codeBlockStyles.js +20 -0
- package/dist/components/codeBlockStyles.js.map +1 -0
- package/dist/components/confirmationDialogVariants.js +30 -0
- package/dist/components/confirmationDialogVariants.js.map +1 -0
- package/dist/components/controlTextSize.js +14 -0
- package/dist/components/controlTextSize.js.map +1 -0
- package/dist/components/devWarning.js +22 -0
- package/dist/components/devWarning.js.map +1 -0
- package/dist/components/dividerTypes.js +7 -0
- package/dist/components/dividerTypes.js.map +1 -0
- package/dist/components/dropdownPanelPosition.js +38 -0
- package/dist/components/dropdownPanelPosition.js.map +1 -0
- package/dist/components/dropdownTriggerStyle.js +36 -0
- package/dist/components/dropdownTriggerStyle.js.map +1 -0
- package/dist/components/escapeLayers.js +13 -0
- package/dist/components/escapeLayers.js.map +1 -0
- package/dist/components/flexTypes.js +8 -0
- package/dist/components/flexTypes.js.map +1 -0
- package/dist/components/focusRing.js +9 -0
- package/dist/components/focusRing.js.map +1 -0
- package/dist/components/formItemState.js +12 -0
- package/dist/components/formItemState.js.map +1 -0
- package/dist/components/glassSurface.js +10 -0
- package/dist/components/glassSurface.js.map +1 -0
- package/dist/components/injectStyleSheet.js +33 -0
- package/dist/components/injectStyleSheet.js.map +1 -0
- package/dist/components/inlineConfirmPosition.js +27 -0
- package/dist/components/inlineConfirmPosition.js.map +1 -0
- package/dist/components/keyboardActivation.js +14 -0
- package/dist/components/keyboardActivation.js.map +1 -0
- package/dist/components/modalTray.js +16 -0
- package/dist/components/modalTray.js.map +1 -0
- package/dist/components/optionRowStyles.js +27 -0
- package/dist/components/optionRowStyles.js.map +1 -0
- package/dist/components/overlayBehaviour.js +118 -0
- package/dist/components/overlayBehaviour.js.map +1 -0
- package/dist/components/portalOverlay.js +35 -0
- package/dist/components/portalOverlay.js.map +1 -0
- package/dist/components/prismCedar.js +27 -0
- package/dist/components/prismCedar.js.map +1 -0
- package/dist/components/queryInputGeometry.js +24 -0
- package/dist/components/queryInputGeometry.js.map +1 -0
- package/dist/components/renderableNode.js +6 -0
- package/dist/components/renderableNode.js.map +1 -0
- package/dist/components/safeHref.js +11 -0
- package/dist/components/safeHref.js.map +1 -0
- package/dist/components/scrollLock.js +19 -0
- package/dist/components/scrollLock.js.map +1 -0
- package/dist/components/selectedRow.js +14 -0
- package/dist/components/selectedRow.js.map +1 -0
- package/dist/components/selectionBarChrome.js +63 -0
- package/dist/components/selectionBarChrome.js.map +1 -0
- package/dist/components/topLayer.js +29 -0
- package/dist/components/topLayer.js.map +1 -0
- package/dist/components/useAdoptedStyleSheet.js +41 -0
- package/dist/components/useAdoptedStyleSheet.js.map +1 -0
- package/dist/geist-font.js +23 -0
- package/dist/geist-font.js.map +1 -0
- package/dist/index.d.ts +1056 -86
- package/dist/index.js +403 -104
- package/dist/index.js.map +1 -1
- package/dist/inter-font.js +35 -0
- package/dist/inter-font.js.map +1 -0
- package/dist/stack-sans-font.js +17 -0
- package/dist/stack-sans-font.js.map +1 -0
- package/dist/tailwind.css.js +5 -0
- package/dist/tailwind.css.js.map +1 -0
- package/dist/theme.js +1959 -0
- package/dist/theme.js.map +1 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-600-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-600-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-700-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-700-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-600-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-600-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-700-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-700-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource-variable/stack-sans-text/files/stack-sans-text-latin-wght-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource-variable/stack-sans-text/files/stack-sans-text-latin-wght-normal.woff2.js.map +1 -0
- package/package.json +6 -1
- package/dist/CodeBlockHighlighter-BJeE32YS.js +0 -2791
- package/dist/CodeBlockHighlighter-BJeE32YS.js.map +0 -1
- package/dist/index-P2H4or4t.js +0 -19528
- package/dist/index-P2H4or4t.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.js","sources":["../../src/components/CodeBlock.tsx"],"sourcesContent":["import JsonView from '@uiw/react-json-view';\nimport React from 'react';\nimport CopyIcon from './CustomIcons/CopyIcon';\nimport { type DiffDisplayRow, type DiffRowType, diffHunks } from './codeBlockDiff';\nimport { CodeLine, type CodeLineDecoration } from './codeBlockLine';\nimport { FOCUS_RING } from './focusRing';\n\nconst CodeBlockHighlighter = React.lazy(() => import('./CodeBlockHighlighter'));\n\nexport interface CodeBlockProps {\n /** The code content to display */\n code?: string;\n /** JSON object to display as formatted JSON */\n json?: object;\n /** Show line numbers */\n showLineNumbers?: boolean;\n /** Custom class name */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Height of the code block */\n height?: string | number;\n /** Enable copy functionality */\n enableCopy?: boolean;\n /** Wrap long lines instead of scrolling horizontally */\n wrapLines?: boolean;\n /**\n * Highlight the code with this language's grammar. `cedar` is a grammar this library\n * ships itself (`prismCedar.ts`), since Prism and refractor carry none; widen the union\n * as further grammars are registered in CodeBlockHighlighter.\n */\n language?: 'yaml' | 'cedar';\n /** How much of a `json` tree starts collapsed: `true` all of it, a number below that depth. */\n collapsed?: boolean | number;\n /**\n * Renders the change between two texts rather than one text, and takes precedence over\n * `code` and `json`. Only the changed lines are shown, with `context` unchanged ones either\n * side, so a small edit to a long document reads as a few hunks instead of the whole thing.\n */\n diff?: {\n before: string;\n after: string;\n /** Unchanged lines kept either side of each change. Three by convention. */\n context?: number;\n /**\n * Swaps the `+`/`-` gutter and tinted rows for the palette a mock specified for\n * AI-authored changes: star, minus-sign and middle-dot markers, and a struck-through\n * removal. Omit to keep the neutral markers; there is no default consumer for the\n * assistant look yet.\n */\n origin?: 'assistant';\n };\n}\n\nconst DIFF_BACKGROUNDS: Record<DiffRowType, string | undefined> = {\n added: 'var(--malachite-codeblock-diff-added-background)',\n removed: 'var(--malachite-codeblock-diff-removed-background)',\n context: undefined,\n};\n\nconst DIFF_MARKERS: Record<DiffRowType, string | undefined> = {\n added: '+',\n removed: '-',\n context: undefined,\n};\n\n// The assistant palette also marks context rows, which the neutral one leaves bare.\nconst ASSISTANT_DIFF_BACKGROUNDS: Record<DiffRowType, string | undefined> = {\n added: 'var(--malachite-codeblock-diff-assistant-background)',\n removed: 'var(--malachite-codeblock-diff-assistant-removed-background)',\n context: undefined,\n};\n\nconst ASSISTANT_DIFF_MARKERS: Record<DiffRowType, string> = {\n added: '\\u2726',\n // U+2212 minus sign, not a hyphen: the mock is explicit about which glyph.\n removed: '\\u2212',\n context: '\\u00b7',\n};\n\nconst ASSISTANT_DIFF_MARKER_COLORS: Record<DiffRowType, string> = {\n added: 'var(--malachite-codeblock-diff-assistant-foreground)',\n removed: 'var(--malachite-codeblock-diff-removed-foreground)',\n context: 'var(--malachite-codeblock-diff-context-foreground)',\n};\n\nconst unchangedRun = (count: number): string =>\n `\\u22ef ${count} unchanged ${count === 1 ? 'line' : 'lines'}`;\n\nconst diffDecoration = (\n row: DiffDisplayRow,\n showLineNumbers: boolean,\n origin?: 'assistant',\n): CodeLineDecoration => {\n const assistant = origin === 'assistant';\n\n return {\n background: assistant ? ASSISTANT_DIFF_BACKGROUNDS[row.type] : DIFF_BACKGROUNDS[row.type],\n marker: assistant ? ASSISTANT_DIFF_MARKERS[row.type] : DIFF_MARKERS[row.type],\n markerColor: assistant ? ASSISTANT_DIFF_MARKER_COLORS[row.type] : undefined,\n // Reserved on unchanged rows too, so the code column does not step in and out.\n reserveMarker: true,\n // Context rows read as de-emphasised, not just unmarked, in the assistant palette.\n textColor:\n assistant && row.type === 'context'\n ? 'var(--malachite-codeblock-diff-context-text)'\n : undefined,\n strikethrough: assistant && row.type === 'removed',\n separatorAbove: row.skippedAbove === undefined ? undefined : unchangedRun(row.skippedAbove),\n // A removed line has no number in the after-text, so it keeps the one it had before.\n lineNumber: showLineNumbers ? (row.afterNumber ?? row.beforeNumber) : undefined,\n };\n};\n\nconst CodeBlock: React.FC<CodeBlockProps> = ({\n code,\n json,\n showLineNumbers = true,\n className = '',\n style = {},\n height,\n enableCopy = true,\n wrapLines = false,\n language,\n collapsed = false,\n diff,\n}) => {\n const diffRows = diff ? diffHunks(diff.before, diff.after, diff.context) : null;\n const diffText = diffRows?.map((row) => row.text).join('\\n') ?? '';\n\n /**\n * What the button puts on the clipboard, in the same form the block is showing. A JSON\n * block is pretty-printed rather than handed over minified: the reader is copying what\n * they can see. `undefined` means there is nothing to copy and no button to offer.\n */\n const copyText = (): string | undefined => {\n if (diffRows) {\n return diffText;\n }\n\n // An empty block has nothing to copy, so it offers no button — `!== undefined` would\n // hand back the empty string and put a dead control on it.\n if (code) {\n return code;\n }\n\n if (json !== undefined) {\n try {\n return JSON.stringify(json, null, 2);\n } catch {\n // A cycle or a BigInt: no honest text to copy, so offer no button.\n return undefined;\n }\n }\n\n return undefined;\n };\n\n const textToCopy = copyText();\n\n // `?.` no-ops when the clipboard API is absent (insecure context); `.catch` swallows a rejection.\n const handleCopy = () => {\n if (textToCopy === undefined) {\n return;\n }\n\n navigator.clipboard?.writeText(textToCopy)?.catch(() => undefined);\n };\n\n // Declared once and rendered by both the JSON branch and the code branch below, so the\n // two tabs of one document do not disagree about whether it can be copied.\n const copyButton = enableCopy && textToCopy !== undefined && (\n <button\n type=\"button\"\n aria-label=\"Copy\"\n onClick={handleCopy}\n className={`absolute top-2 right-2 z-10 flex items-center justify-center rounded-md border border-solid border-[var(--malachite-codeblock-border)] bg-[var(--malachite-codeblock-background)] p-1.5 transition-colors hover:bg-[var(--malachite-codeblock-border)] ${FOCUS_RING}`}\n style={{ color: 'var(--malachite-codeblock-line-number)' }}\n >\n <CopyIcon size={14} />\n </button>\n );\n\n // If JSON is provided, use JsonView component\n if (json && !diffRows) {\n return (\n <div\n className={`relative border rounded-lg overflow-hidden ${className}`}\n style={{\n backgroundColor: 'var(--malachite-codeblock-background)',\n borderColor: 'var(--malachite-codeblock-border)',\n height,\n ...style,\n }}\n >\n {copyButton}\n <JsonView\n value={json}\n style={\n {\n backgroundColor: 'var(--malachite-codeblock-background)',\n color: 'var(--malachite-codeblock-foreground)',\n fontSize: '14px',\n fontFamily: 'var(--malachite-font-mono, monospace)',\n padding: '16px',\n lineHeight: '1.5',\n textAlign: 'left',\n '--w-rjv-color': 'var(--malachite-codeblock-foreground)',\n '--w-rjv-key-string': 'var(--malachite-codeblock-keyword)',\n '--w-rjv-background-color': 'var(--malachite-codeblock-background)',\n '--w-rjv-line-color': 'var(--malachite-codeblock-border)',\n '--w-rjv-arrow-color': 'var(--malachite-codeblock-line-number)',\n '--w-rjv-edit-color': 'var(--malachite-codeblock-keyword)',\n '--w-rjv-info-color': 'var(--malachite-codeblock-line-number)',\n '--w-rjv-update-color': 'var(--malachite-codeblock-keyword)',\n '--w-rjv-copied-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-copied-success-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-curlybraces-color': 'var(--malachite-codeblock-foreground)',\n '--w-rjv-colon-color': 'var(--malachite-codeblock-foreground)',\n '--w-rjv-brackets-color': 'var(--malachite-codeblock-foreground)',\n '--w-rjv-quotes-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-quotes-string-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-type-string-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-type-int-color': 'var(--malachite-codeblock-number)',\n '--w-rjv-type-float-color': 'var(--malachite-codeblock-number)',\n '--w-rjv-type-bigint-color': 'var(--malachite-codeblock-number)',\n '--w-rjv-type-boolean-color': 'var(--malachite-codeblock-keyword)',\n '--w-rjv-type-date-color': 'var(--malachite-codeblock-string)',\n '--w-rjv-type-url-color': 'var(--malachite-codeblock-keyword)',\n '--w-rjv-type-null-color': 'var(--malachite-codeblock-comment)',\n '--w-rjv-type-nan-color': 'var(--malachite-codeblock-comment)',\n '--w-rjv-type-undefined-color': 'var(--malachite-codeblock-comment)',\n } as React.CSSProperties\n }\n displayDataTypes={false}\n enableClipboard={enableCopy}\n collapsed={collapsed}\n displayObjectSize={false}\n />\n </div>\n );\n }\n\n // Reserve clearance so a wide first line never sits under the floating copy button.\n const copyClearance = enableCopy && (!!code || !!diffRows);\n\n const renderPlainLines = (\n text: string,\n decorate?: (index: number) => CodeLineDecoration | undefined,\n ) => {\n const lines = text.split('\\n');\n\n return (\n <div\n className=\"p-4 overflow-auto text-left\"\n style={{ paddingRight: copyClearance ? 44 : undefined }}\n >\n {/* As wide as the widest line, floored at the view, so rows filling it end level. */}\n <div style={{ width: 'max-content', minWidth: '100%' }}>\n {lines.map((line, index) => {\n const decoration = decorate?.(index);\n\n return (\n <CodeLine\n key={index}\n line={line}\n lineNumber={\n decoration?.lineNumber ??\n (showLineNumbers ? index + 1 : undefined)\n }\n wrap={wrapLines}\n decoration={decoration}\n >\n {line}\n </CodeLine>\n );\n })}\n </div>\n </div>\n );\n };\n\n const renderPlainCode = () => (code ? renderPlainLines(code) : null);\n\n const renderDiff = (rows: DiffDisplayRow[]) => {\n if (rows.length === 0) {\n return (\n <div\n className=\"p-4 text-left\"\n style={{ color: 'var(--malachite-codeblock-comment)' }}\n >\n No changes\n </div>\n );\n }\n\n const decorate = (index: number) => {\n const row = rows[index];\n\n return row ? diffDecoration(row, showLineNumbers, diff?.origin) : undefined;\n };\n\n if (language) {\n return (\n <React.Suspense fallback={renderPlainLines(diffText, decorate)}>\n {/*\n * The whole merged text goes to the highlighter in one piece, so a hunk\n * is tokenised in the company of its neighbours rather than on its own.\n * Prism still cannot see the lines the hunks left out, so a construct\n * spanning an omitted run can highlight oddly — the reason `context`\n * defaults to a few lines rather than none.\n */}\n <CodeBlockHighlighter\n code={diffText}\n language={language}\n showLineNumbers={showLineNumbers}\n wrapLines={wrapLines}\n copyClearance={copyClearance}\n decorate={decorate}\n />\n </React.Suspense>\n );\n }\n\n return renderPlainLines(diffText, decorate);\n };\n\n // For code strings, create a simple syntax-highlighted view\n const renderCodeContent = () => {\n if (!code) {\n return null;\n }\n\n if (language) {\n return (\n <React.Suspense fallback={renderPlainCode()}>\n <CodeBlockHighlighter\n code={code}\n language={language}\n showLineNumbers={showLineNumbers}\n wrapLines={wrapLines}\n copyClearance={copyClearance}\n />\n </React.Suspense>\n );\n }\n\n return renderPlainCode();\n };\n\n return (\n <div\n className={`relative border rounded-lg overflow-hidden ${className}`}\n style={{\n backgroundColor: 'var(--malachite-codeblock-background)',\n borderColor: 'var(--malachite-codeblock-border)',\n height,\n ...style,\n }}\n >\n {copyButton}\n {diffRows ? renderDiff(diffRows) : renderCodeContent()}\n </div>\n );\n};\n\nexport default CodeBlock;\n"],"names":["CodeBlockHighlighter","React","DIFF_BACKGROUNDS","DIFF_MARKERS","ASSISTANT_DIFF_BACKGROUNDS","ASSISTANT_DIFF_MARKERS","ASSISTANT_DIFF_MARKER_COLORS","unchangedRun","count","diffDecoration","row","showLineNumbers","origin","assistant","CodeBlock","code","json","className","style","height","enableCopy","wrapLines","language","collapsed","diff","diffRows","diffHunks","diffText","textToCopy","copyButton","jsx","_b","_a","FOCUS_RING","CopyIcon","jsxs","JsonView","copyClearance","renderPlainLines","text","decorate","lines","line","index","decoration","CodeLine","renderPlainCode","renderDiff","rows","renderCodeContent"],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { PrismLight as m, createElement as y } from "react-syntax-highlighter";
|
|
3
|
+
import w from "react-syntax-highlighter/dist/esm/languages/prism/yaml";
|
|
4
|
+
import f from "./prismCedar.js";
|
|
5
|
+
import { CodeLine as L } from "./codeBlockLine.js";
|
|
6
|
+
import { CODE_FONT as t } from "./codeBlockStyles.js";
|
|
7
|
+
let s = !1;
|
|
8
|
+
const R = () => {
|
|
9
|
+
s || (s = !0, m.registerLanguage("yaml", w), m.registerLanguage("cedar", f));
|
|
10
|
+
}, E = {
|
|
11
|
+
'code[class*="language-"]': t,
|
|
12
|
+
'pre[class*="language-"]': t,
|
|
13
|
+
comment: { color: "var(--malachite-codeblock-comment)" },
|
|
14
|
+
prolog: { color: "var(--malachite-codeblock-comment)" },
|
|
15
|
+
cdata: { color: "var(--malachite-codeblock-comment)" },
|
|
16
|
+
punctuation: { color: "var(--malachite-codeblock-foreground)" },
|
|
17
|
+
key: { color: "var(--malachite-codeblock-keyword)" },
|
|
18
|
+
atrule: { color: "var(--malachite-codeblock-keyword)" },
|
|
19
|
+
"attr-name": { color: "var(--malachite-codeblock-keyword)" },
|
|
20
|
+
directive: { color: "var(--malachite-codeblock-keyword)" },
|
|
21
|
+
keyword: { color: "var(--malachite-codeblock-keyword)" },
|
|
22
|
+
property: { color: "var(--malachite-codeblock-keyword)" },
|
|
23
|
+
boolean: { color: "var(--malachite-codeblock-keyword)" },
|
|
24
|
+
important: { color: "var(--malachite-codeblock-keyword)" },
|
|
25
|
+
null: { color: "var(--malachite-codeblock-keyword)" },
|
|
26
|
+
tag: { color: "var(--malachite-codeblock-keyword)" },
|
|
27
|
+
anchor: { color: "var(--malachite-codeblock-keyword)" },
|
|
28
|
+
alias: { color: "var(--malachite-codeblock-keyword)" },
|
|
29
|
+
// Cedar's entity paths (`StackOne::Action`) are types, which is what this token is for.
|
|
30
|
+
"class-name": { color: "var(--malachite-codeblock-type)" },
|
|
31
|
+
// The scope variables. Given the one remaining distinct hue so they read as language
|
|
32
|
+
// rather than as another blue keyword.
|
|
33
|
+
builtin: { color: "var(--malachite-codeblock-number)" },
|
|
34
|
+
operator: { color: "var(--malachite-codeblock-line-number)" },
|
|
35
|
+
string: { color: "var(--malachite-codeblock-string)" },
|
|
36
|
+
scalar: { color: "var(--malachite-codeblock-string)" },
|
|
37
|
+
char: { color: "var(--malachite-codeblock-string)" },
|
|
38
|
+
url: { color: "var(--malachite-codeblock-string)" },
|
|
39
|
+
number: { color: "var(--malachite-codeblock-number)" },
|
|
40
|
+
datetime: { color: "var(--malachite-codeblock-number)" }
|
|
41
|
+
}, d = (o) => {
|
|
42
|
+
if (o.type === "text")
|
|
43
|
+
return typeof o.value == "string" && o.value.endsWith(`
|
|
44
|
+
`) ? { ...o, value: o.value.slice(0, -1) } : o;
|
|
45
|
+
const e = o.children;
|
|
46
|
+
if (!(e != null && e.length))
|
|
47
|
+
return o;
|
|
48
|
+
const c = e[e.length - 1], a = d(c);
|
|
49
|
+
return a === c ? o : { ...o, children: [...e.slice(0, -1), a] };
|
|
50
|
+
}, _ = ({
|
|
51
|
+
code: o,
|
|
52
|
+
language: e,
|
|
53
|
+
showLineNumbers: c = !0,
|
|
54
|
+
wrapLines: a = !1,
|
|
55
|
+
copyClearance: k = !1,
|
|
56
|
+
decorate: i
|
|
57
|
+
}) => {
|
|
58
|
+
R();
|
|
59
|
+
const h = o.split(`
|
|
60
|
+
`);
|
|
61
|
+
return /* @__PURE__ */ n(
|
|
62
|
+
m,
|
|
63
|
+
{
|
|
64
|
+
language: e,
|
|
65
|
+
style: E,
|
|
66
|
+
wrapLines: !0,
|
|
67
|
+
renderer: ({ rows: u, stylesheet: g, useInlineStyles: b }) => u.map((v, r) => {
|
|
68
|
+
const l = i == null ? void 0 : i(r), p = (l == null ? void 0 : l.lineNumber) ?? (c ? r + 1 : void 0);
|
|
69
|
+
return /* @__PURE__ */ n(
|
|
70
|
+
L,
|
|
71
|
+
{
|
|
72
|
+
line: h[r] ?? "",
|
|
73
|
+
lineNumber: p,
|
|
74
|
+
wrap: a,
|
|
75
|
+
decoration: l,
|
|
76
|
+
children: y({
|
|
77
|
+
node: d(v),
|
|
78
|
+
stylesheet: g,
|
|
79
|
+
useInlineStyles: b,
|
|
80
|
+
key: `code-line-${r}`
|
|
81
|
+
})
|
|
82
|
+
},
|
|
83
|
+
r
|
|
84
|
+
);
|
|
85
|
+
}),
|
|
86
|
+
customStyle: {
|
|
87
|
+
...t,
|
|
88
|
+
margin: 0,
|
|
89
|
+
padding: "16px",
|
|
90
|
+
paddingRight: k ? "44px" : "16px",
|
|
91
|
+
overflow: "auto"
|
|
92
|
+
},
|
|
93
|
+
codeTagProps: {
|
|
94
|
+
style: { ...t, display: "block", width: "max-content", minWidth: "100%" }
|
|
95
|
+
},
|
|
96
|
+
children: o
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
export {
|
|
101
|
+
_ as default
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=CodeBlockHighlighter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlockHighlighter.js","sources":["../../src/components/CodeBlockHighlighter.tsx"],"sourcesContent":["import type React from 'react';\nimport { PrismLight, createElement } from 'react-syntax-highlighter';\nimport yaml from 'react-syntax-highlighter/dist/esm/languages/prism/yaml';\nimport cedar from './prismCedar';\nimport { CodeLine, type CodeLineDecoration } from './codeBlockLine';\nimport { CODE_FONT } from './codeBlockStyles';\n\n// Registered on first render rather than at import. A bare top-level call is an import-time\n// side effect, which `sideEffects: false` in package.json tells a bundler it may drop; the\n// same reason the font faces go in through ensureInterFontFace and not a top-level call.\nlet languagesRegistered = false;\n\nconst ensureLanguagesRegistered = (): void => {\n if (languagesRegistered) {\n return;\n }\n languagesRegistered = true;\n PrismLight.registerLanguage('yaml', yaml);\n PrismLight.registerLanguage('cedar', cedar);\n};\n\n// Prism token colors bound to the codeblock theme tokens so highlighting follows the theme.\nconst PRISM_MALACHITE_THEME: { [key: string]: React.CSSProperties } = {\n 'code[class*=\"language-\"]': CODE_FONT,\n 'pre[class*=\"language-\"]': CODE_FONT,\n comment: { color: 'var(--malachite-codeblock-comment)' },\n prolog: { color: 'var(--malachite-codeblock-comment)' },\n cdata: { color: 'var(--malachite-codeblock-comment)' },\n punctuation: { color: 'var(--malachite-codeblock-foreground)' },\n key: { color: 'var(--malachite-codeblock-keyword)' },\n atrule: { color: 'var(--malachite-codeblock-keyword)' },\n 'attr-name': { color: 'var(--malachite-codeblock-keyword)' },\n directive: { color: 'var(--malachite-codeblock-keyword)' },\n keyword: { color: 'var(--malachite-codeblock-keyword)' },\n property: { color: 'var(--malachite-codeblock-keyword)' },\n boolean: { color: 'var(--malachite-codeblock-keyword)' },\n important: { color: 'var(--malachite-codeblock-keyword)' },\n null: { color: 'var(--malachite-codeblock-keyword)' },\n tag: { color: 'var(--malachite-codeblock-keyword)' },\n anchor: { color: 'var(--malachite-codeblock-keyword)' },\n alias: { color: 'var(--malachite-codeblock-keyword)' },\n // Cedar's entity paths (`StackOne::Action`) are types, which is what this token is for.\n 'class-name': { color: 'var(--malachite-codeblock-type)' },\n // The scope variables. Given the one remaining distinct hue so they read as language\n // rather than as another blue keyword.\n builtin: { color: 'var(--malachite-codeblock-number)' },\n operator: { color: 'var(--malachite-codeblock-line-number)' },\n string: { color: 'var(--malachite-codeblock-string)' },\n scalar: { color: 'var(--malachite-codeblock-string)' },\n char: { color: 'var(--malachite-codeblock-string)' },\n url: { color: 'var(--malachite-codeblock-string)' },\n number: { color: 'var(--malachite-codeblock-number)' },\n datetime: { color: 'var(--malachite-codeblock-number)' },\n};\n\ntype SyntaxNode = {\n type: 'text' | 'element';\n value?: string | number;\n children?: SyntaxNode[];\n};\n\n/** Local, not the ambient `rendererProps`: that global leaks out of DefinitelyTyped by accident. */\ntype RowRendererProps = {\n rows: SyntaxNode[];\n stylesheet: { [key: string]: React.CSSProperties };\n useInlineStyles: boolean;\n};\n\n/** Prism keeps the source newline on each row's last token; `CodeLine` supplies the break now. */\nconst withoutTrailingNewline = <T extends SyntaxNode>(node: T): T => {\n if (node.type === 'text') {\n return typeof node.value === 'string' && node.value.endsWith('\\n')\n ? { ...node, value: node.value.slice(0, -1) }\n : node;\n }\n const children = node.children;\n if (!children?.length) {\n return node;\n }\n const last = children[children.length - 1];\n const trimmed = withoutTrailingNewline(last);\n return trimmed === last ? node : { ...node, children: [...children.slice(0, -1), trimmed] };\n};\n\nexport interface CodeBlockHighlighterProps {\n code: string;\n language: 'yaml' | 'cedar';\n showLineNumbers?: boolean;\n wrapLines?: boolean;\n /** Right padding reserving space for the floating copy button. */\n copyClearance?: boolean;\n /**\n * Per-line markup, by index into `code`. How a diff tints its rows and numbers them from\n * the text each line actually came from.\n */\n decorate?: (index: number) => CodeLineDecoration | undefined;\n}\n\nconst CodeBlockHighlighter: React.FC<CodeBlockHighlighterProps> = ({\n code,\n language,\n showLineNumbers = true,\n wrapLines = false,\n copyClearance = false,\n decorate,\n}) => {\n ensureLanguagesRegistered();\n\n const lines = code.split('\\n');\n\n // We lay rows out ourselves rather than passing `showLineNumbers`/`wrapLongLines` down:\n // that mode makes every line a flex container, so the Prism token spans become flex items\n // and the line shreds into out-of-order fragments.\n const renderRows = ({ rows, stylesheet, useInlineStyles }: RowRendererProps) =>\n rows.map((row, index) => {\n const decoration = decorate?.(index);\n // A decoration's own number wins: in a diff the row's position in the merged\n // text is not its line number in either of the texts it came from.\n const lineNumber = decoration?.lineNumber ?? (showLineNumbers ? index + 1 : undefined);\n\n return (\n <CodeLine\n key={index}\n line={lines[index] ?? ''}\n lineNumber={lineNumber}\n wrap={wrapLines}\n decoration={decoration}\n >\n {createElement({\n node: withoutTrailingNewline(row),\n stylesheet,\n useInlineStyles,\n key: `code-line-${index}`,\n })}\n </CodeLine>\n );\n });\n\n return (\n <PrismLight\n language={language}\n style={PRISM_MALACHITE_THEME}\n wrapLines\n renderer={renderRows}\n customStyle={{\n ...CODE_FONT,\n margin: 0,\n padding: '16px',\n paddingRight: copyClearance ? '44px' : '16px',\n overflow: 'auto',\n }}\n // The `code` element is the rows' wrapper here, so it takes the sizing the plain\n // path puts on a div of its own.\n codeTagProps={{\n style: { ...CODE_FONT, display: 'block', width: 'max-content', minWidth: '100%' },\n }}\n >\n {code}\n </PrismLight>\n );\n};\n\nexport default CodeBlockHighlighter;\n"],"names":["languagesRegistered","ensureLanguagesRegistered","PrismLight","yaml","cedar","PRISM_MALACHITE_THEME","CODE_FONT","withoutTrailingNewline","node","children","last","trimmed","CodeBlockHighlighter","code","language","showLineNumbers","wrapLines","copyClearance","decorate","lines","jsx","rows","stylesheet","useInlineStyles","row","index","decoration","lineNumber","CodeLine","createElement"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t, Fragment as m } from "react/jsx-runtime";
|
|
2
|
+
import { Accordion as x } from "./Accordion.js";
|
|
3
|
+
const h = ({
|
|
4
|
+
title: n,
|
|
5
|
+
subtitle: a,
|
|
6
|
+
defaultExpanded: r = !1,
|
|
7
|
+
isExpanded: i,
|
|
8
|
+
onToggle: l,
|
|
9
|
+
className: s,
|
|
10
|
+
children: c
|
|
11
|
+
}) => /* @__PURE__ */ e(
|
|
12
|
+
x,
|
|
13
|
+
{
|
|
14
|
+
variant: "sunken",
|
|
15
|
+
defaultExpanded: r,
|
|
16
|
+
isExpanded: i,
|
|
17
|
+
onToggle: l,
|
|
18
|
+
className: s,
|
|
19
|
+
header: /* @__PURE__ */ t("span", { className: "flex min-w-0 flex-1 items-center gap-[6px] text-[13px] leading-none", children: [
|
|
20
|
+
/* @__PURE__ */ e("span", { className: "shrink-0 font-medium text-[var(--malachite-text-primary)]", children: n }),
|
|
21
|
+
a ? /* @__PURE__ */ t(m, { children: [
|
|
22
|
+
/* @__PURE__ */ e(
|
|
23
|
+
"span",
|
|
24
|
+
{
|
|
25
|
+
"aria-hidden": "true",
|
|
26
|
+
className: "shrink-0 text-[var(--malachite-text-placeholder)]",
|
|
27
|
+
children: "-"
|
|
28
|
+
}
|
|
29
|
+
),
|
|
30
|
+
/* @__PURE__ */ e("span", { className: "min-w-0 flex-1 truncate tracking-[0.13px] text-[var(--malachite-text-primary)]", children: a })
|
|
31
|
+
] }) : null
|
|
32
|
+
] }),
|
|
33
|
+
children: c
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
export {
|
|
37
|
+
h as CollapsibleSection,
|
|
38
|
+
h as default
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=CollapsibleSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollapsibleSection.js","sources":["../../src/components/CollapsibleSection.tsx"],"sourcesContent":["import React from 'react';\nimport Accordion from './Accordion';\n\nexport interface CollapsibleSectionProps {\n title: string;\n subtitle?: string;\n defaultExpanded?: boolean;\n isExpanded?: boolean;\n onToggle?: (expanded: boolean) => void;\n className?: string;\n children: React.ReactNode;\n}\n\nconst CollapsibleSection: React.FC<CollapsibleSectionProps> = ({\n title,\n subtitle,\n defaultExpanded = false,\n isExpanded,\n onToggle,\n className,\n children,\n}) => (\n <Accordion\n variant=\"sunken\"\n defaultExpanded={defaultExpanded}\n isExpanded={isExpanded}\n onToggle={onToggle}\n className={className}\n header={\n <span className=\"flex min-w-0 flex-1 items-center gap-[6px] text-[13px] leading-none\">\n <span className=\"shrink-0 font-medium text-[var(--malachite-text-primary)]\">\n {title}\n </span>\n {subtitle ? (\n <>\n <span\n aria-hidden=\"true\"\n className=\"shrink-0 text-[var(--malachite-text-placeholder)]\"\n >\n -\n </span>\n <span className=\"min-w-0 flex-1 truncate tracking-[0.13px] text-[var(--malachite-text-primary)]\">\n {subtitle}\n </span>\n </>\n ) : null}\n </span>\n }\n >\n {children}\n </Accordion>\n);\n\nexport default CollapsibleSection;\nexport { CollapsibleSection };\n"],"names":["CollapsibleSection","title","subtitle","defaultExpanded","isExpanded","onToggle","className","children","jsx","Accordion","jsxs","Fragment"],"mappings":";;AAaA,MAAMA,IAAwD,CAAC;AAAA,EAC3D,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AACJ,MACI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACG,SAAQ;AAAA,IACR,iBAAAN;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QACI,gBAAAI,EAAC,QAAA,EAAK,WAAU,uEACZ,UAAA;AAAA,MAAA,gBAAAF,EAAC,QAAA,EAAK,WAAU,6DACX,UAAAP,GACL;AAAA,MACCC,IACG,gBAAAQ,EAAAC,GAAA,EACI,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,eAAY;AAAA,YACZ,WAAU;AAAA,YACb,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGD,gBAAAA,EAAC,QAAA,EAAK,WAAU,kFACX,UAAAN,EAAA,CACL;AAAA,MAAA,EAAA,CACJ,IACA;AAAA,IAAA,GACR;AAAA,IAGH,UAAAK;AAAA,EAAA;AACL;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as h } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as g, useEffect as v } from "react";
|
|
3
|
+
const x = [
|
|
4
|
+
"var(--malachite-success-background)",
|
|
5
|
+
"var(--malachite-text-success)",
|
|
6
|
+
"var(--malachite-tag-primary-foreground)",
|
|
7
|
+
"var(--malachite-warning-background)",
|
|
8
|
+
"var(--malachite-error-background)"
|
|
9
|
+
], u = "\0", w = () => typeof window > "u" || typeof window.matchMedia != "function" ? !0 : window.matchMedia("(prefers-reduced-motion: reduce)").matches, b = ({
|
|
10
|
+
count: r = 150,
|
|
11
|
+
colors: l = x,
|
|
12
|
+
className: p = ""
|
|
13
|
+
}) => {
|
|
14
|
+
const o = g(null), n = l.join(u);
|
|
15
|
+
return v(() => {
|
|
16
|
+
const a = o.current;
|
|
17
|
+
if (!a || w()) return;
|
|
18
|
+
const s = n.split(u), m = Array.from({ length: r }, (c, e) => {
|
|
19
|
+
const t = document.createElement("div"), i = 10 + e * 7 % 10;
|
|
20
|
+
t.style.cssText = `position:absolute;top:-5%;left:${e * 37 % 100}%;width:${i}px;height:${Math.round(i * 0.5)}px;background:${s[e % s.length]};border-radius:2px;`, a.appendChild(t);
|
|
21
|
+
const d = (e * 53 % 100 - 50) * 4, f = 360 + e * 47 % 720;
|
|
22
|
+
return t.animate(
|
|
23
|
+
[
|
|
24
|
+
{ transform: "translate(0, 0) rotate(0deg)", opacity: 1 },
|
|
25
|
+
{
|
|
26
|
+
transform: `translate(${d}px, 105vh) rotate(${f}deg)`,
|
|
27
|
+
opacity: 1,
|
|
28
|
+
offset: 0.9
|
|
29
|
+
},
|
|
30
|
+
{ transform: `translate(${d}px, 110vh) rotate(${f}deg)`, opacity: 0 }
|
|
31
|
+
],
|
|
32
|
+
{
|
|
33
|
+
duration: 2600 + e * 17 % 1600,
|
|
34
|
+
delay: e * 11 % 500,
|
|
35
|
+
easing: "cubic-bezier(0.2, 0.6, 0.4, 1)",
|
|
36
|
+
fill: "forwards"
|
|
37
|
+
}
|
|
38
|
+
), t;
|
|
39
|
+
});
|
|
40
|
+
return () => {
|
|
41
|
+
for (const c of m) c.remove();
|
|
42
|
+
};
|
|
43
|
+
}, [r, n]), /* @__PURE__ */ h(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
ref: o,
|
|
47
|
+
"aria-hidden": !0,
|
|
48
|
+
className: `pointer-events-none fixed inset-0 overflow-hidden z-50 ${p}`
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
b as Confetti,
|
|
54
|
+
b as default
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=Confetti.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Confetti.js","sources":["../../src/components/Confetti.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\n// Theme tokens so the confetti adapts to light/dark. CSS vars work here because the\n// pieces are appended into the component's own (themed) DOM subtree.\nconst DEFAULT_COLORS = [\n 'var(--malachite-success-background)',\n 'var(--malachite-text-success)',\n 'var(--malachite-tag-primary-foreground)',\n 'var(--malachite-warning-background)',\n 'var(--malachite-error-background)',\n];\n\n/** Joins the palette into a content key; NUL cannot occur in a CSS colour value. */\nconst COLORS_KEY_SEPARATOR = '\\u0000';\n\n/**\n * `window.matchMedia` is absent under SSR and in older test environments. When it cannot\n * be consulted, assume reduced motion — skipping a decorative burst is the safe default.\n */\nconst prefersReducedMotion = (): boolean => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return true;\n }\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n};\n\nexport interface ConfettiProps {\n /** Number of confetti pieces. */\n count?: number;\n /** Colors cycled across the pieces. */\n colors?: string[];\n className?: string;\n}\n\n// Dependency-free confetti burst via the Web Animations API. Uses WAAPI (not Tailwind\n// transform utilities) so it works inside the shadow DOM, and respects\n// prefers-reduced-motion. Fires once on mount.\nconst Confetti: React.FC<ConfettiProps> = ({\n count = 150,\n colors = DEFAULT_COLORS,\n className = '',\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n\n // Keyed on the palette's contents, not the array's identity: an inline\n // `colors={['red', 'blue']}` is a new array every render and would re-fire the burst.\n const colorsKey = colors.join(COLORS_KEY_SEPARATOR);\n\n useEffect(() => {\n const container = ref.current;\n if (!container) return;\n if (prefersReducedMotion()) return;\n\n const palette = colorsKey.split(COLORS_KEY_SEPARATOR);\n\n const pieces = Array.from({ length: count }, (_, i) => {\n const piece = document.createElement('div');\n const size = 10 + ((i * 7) % 10);\n piece.style.cssText = `position:absolute;top:-5%;left:${(i * 37) % 100}%;width:${size}px;height:${Math.round(size * 0.5)}px;background:${palette[i % palette.length]};border-radius:2px;`;\n container.appendChild(piece);\n\n const xDrift = (((i * 53) % 100) - 50) * 4;\n const rotation = 360 + ((i * 47) % 720);\n piece.animate(\n [\n { transform: 'translate(0, 0) rotate(0deg)', opacity: 1 },\n {\n transform: `translate(${xDrift}px, 105vh) rotate(${rotation}deg)`,\n opacity: 1,\n offset: 0.9,\n },\n { transform: `translate(${xDrift}px, 110vh) rotate(${rotation}deg)`, opacity: 0 },\n ],\n {\n duration: 2600 + ((i * 17) % 1600),\n delay: (i * 11) % 500,\n easing: 'cubic-bezier(0.2, 0.6, 0.4, 1)',\n fill: 'forwards',\n },\n );\n return piece;\n });\n\n return () => {\n for (const piece of pieces) piece.remove();\n };\n }, [count, colorsKey]);\n\n return (\n <div\n ref={ref}\n aria-hidden\n className={`pointer-events-none fixed inset-0 overflow-hidden z-50 ${className}`}\n />\n );\n};\n\nexport default Confetti;\nexport { Confetti };\n"],"names":["DEFAULT_COLORS","COLORS_KEY_SEPARATOR","prefersReducedMotion","Confetti","count","colors","className","ref","useRef","colorsKey","useEffect","container","palette","pieces","_","i","piece","size","xDrift","rotation","jsx"],"mappings":";;AAIA,MAAMA,IAAiB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAGMC,IAAuB,MAMvBC,IAAuB,MACrB,OAAO,SAAW,OAAe,OAAO,OAAO,cAAe,aACvD,KAEJ,OAAO,WAAW,kCAAkC,EAAE,SAc3DC,IAAoC,CAAC;AAAA,EACvC,OAAAC,IAAQ;AAAA,EACR,QAAAC,IAASL;AAAA,EACT,WAAAM,IAAY;AAChB,MAAM;AACF,QAAMC,IAAMC,EAAuB,IAAI,GAIjCC,IAAYJ,EAAO,KAAKJ,CAAoB;AAElD,SAAAS,EAAU,MAAM;AACZ,UAAMC,IAAYJ,EAAI;AAEtB,QADI,CAACI,KACDT,IAAwB;AAE5B,UAAMU,IAAUH,EAAU,MAAMR,CAAoB,GAE9CY,IAAS,MAAM,KAAK,EAAE,QAAQT,EAAA,GAAS,CAACU,GAAGC,MAAM;AACnD,YAAMC,IAAQ,SAAS,cAAc,KAAK,GACpCC,IAAO,KAAOF,IAAI,IAAK;AAC7B,MAAAC,EAAM,MAAM,UAAU,kCAAmCD,IAAI,KAAM,GAAG,WAAWE,CAAI,aAAa,KAAK,MAAMA,IAAO,GAAG,CAAC,iBAAiBL,EAAQG,IAAIH,EAAQ,MAAM,CAAC,uBACpKD,EAAU,YAAYK,CAAK;AAE3B,YAAME,KAAYH,IAAI,KAAM,MAAO,MAAM,GACnCI,IAAW,MAAQJ,IAAI,KAAM;AACnC,aAAAC,EAAM;AAAA,QACF;AAAA,UACI,EAAE,WAAW,gCAAgC,SAAS,EAAA;AAAA,UACtD;AAAA,YACI,WAAW,aAAaE,CAAM,qBAAqBC,CAAQ;AAAA,YAC3D,SAAS;AAAA,YACT,QAAQ;AAAA,UAAA;AAAA,UAEZ,EAAE,WAAW,aAAaD,CAAM,qBAAqBC,CAAQ,QAAQ,SAAS,EAAA;AAAA,QAAE;AAAA,QAEpF;AAAA,UACI,UAAU,OAASJ,IAAI,KAAM;AAAA,UAC7B,OAAQA,IAAI,KAAM;AAAA,UAClB,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,MACV,GAEGC;AAAA,IACX,CAAC;AAED,WAAO,MAAM;AACT,iBAAWA,KAASH,EAAQ,CAAAG,EAAM,OAAA;AAAA,IACtC;AAAA,EACJ,GAAG,CAACZ,GAAOK,CAAS,CAAC,GAGjB,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAAb;AAAA,MACA,eAAW;AAAA,MACX,WAAW,0DAA0DD,CAAS;AAAA,IAAA;AAAA,EAAA;AAG1F;"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { jsxs as x, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useState as k, useId as I, useEffect as Y } from "react";
|
|
3
|
+
import { Alert as H } from "./Alert.js";
|
|
4
|
+
import { Button as z } from "./Button.js";
|
|
5
|
+
import Z from "./CustomIcons/CheckCircleFilled.js";
|
|
6
|
+
import J from "./CustomIcons/CheckIcon.js";
|
|
7
|
+
import P from "./CustomIcons/CopyIcon.js";
|
|
8
|
+
import Q from "./CustomIcons/ErrorCircleFilled.js";
|
|
9
|
+
import U from "./CustomIcons/InfoCircleFilled.js";
|
|
10
|
+
import X from "./CustomIcons/WarningCircleFilled.js";
|
|
11
|
+
import { FieldMessage as ee } from "./FieldMessage.js";
|
|
12
|
+
import { Modal as te } from "./Modal.js";
|
|
13
|
+
import { Typography as S } from "./Typography/index.js";
|
|
14
|
+
import { CONFIRMATION_DIALOG_VARIANTS as ie } from "./confirmationDialogVariants.js";
|
|
15
|
+
import oe from "./Input/Input.js";
|
|
16
|
+
const v = 12, re = 1200, C = (e) => e.replace(/\s+/g, " "), ae = (e, t) => {
|
|
17
|
+
const r = e.trim();
|
|
18
|
+
if (!(!t || r === "" || r === t) && C(r).toLowerCase() === C(t).toLowerCase())
|
|
19
|
+
return C(r) === C(t) ? "The spacing has to match exactly." : "This is case-sensitive.";
|
|
20
|
+
}, le = "Could not copy. Enter the phrase manually.", se = (e, t) => {
|
|
21
|
+
const r = typeof e == "object" && e !== null ? e : void 0;
|
|
22
|
+
return r ? { parts: r, text: [r.prefix, t, r.suffix].filter(Boolean).join(" ") } : { text: typeof e == "string" ? e : `Type ${t} to confirm` };
|
|
23
|
+
}, ne = (e, t) => e === "copied" ? `${t} copied to clipboard` : "", ce = (e, t, r, u) => {
|
|
24
|
+
var o;
|
|
25
|
+
const f = `${t}|${e}`, [a, l] = k({ key: f, generation: 0, outcome: "idle" });
|
|
26
|
+
a.key !== f && l((c) => ({
|
|
27
|
+
key: f,
|
|
28
|
+
generation: c.generation + 1,
|
|
29
|
+
outcome: "idle"
|
|
30
|
+
})), Y(() => {
|
|
31
|
+
if (a.outcome !== "copied")
|
|
32
|
+
return;
|
|
33
|
+
const c = setTimeout(
|
|
34
|
+
() => l((d) => ({ ...d, outcome: "idle" })),
|
|
35
|
+
re
|
|
36
|
+
);
|
|
37
|
+
return () => clearTimeout(c);
|
|
38
|
+
}, [a.outcome]);
|
|
39
|
+
const s = typeof navigator < "u" && !!((o = navigator.clipboard) != null && o.writeText), n = async () => {
|
|
40
|
+
if (!e || !s)
|
|
41
|
+
return;
|
|
42
|
+
const c = a.generation, d = (y) => l(
|
|
43
|
+
(m) => m.generation === c ? { ...m, outcome: y } : m
|
|
44
|
+
);
|
|
45
|
+
try {
|
|
46
|
+
await navigator.clipboard.writeText(e);
|
|
47
|
+
} catch {
|
|
48
|
+
d("failed");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
d("copied"), queueMicrotask(() => u == null ? void 0 : u(e));
|
|
52
|
+
};
|
|
53
|
+
return { outcome: a.outcome, canCopy: s && !r, copy: () => void n() };
|
|
54
|
+
}, L = ({ children: e }) => /* @__PURE__ */ i(S.Text, { size: "xsmall", color: "primary", fontWeight: "semi-bold", children: e }), de = ({
|
|
55
|
+
phrase: e,
|
|
56
|
+
parts: t,
|
|
57
|
+
plainLabel: r,
|
|
58
|
+
placeholder: u,
|
|
59
|
+
value: f,
|
|
60
|
+
onChange: a,
|
|
61
|
+
disabled: l,
|
|
62
|
+
copyLabel: s,
|
|
63
|
+
copyOutcome: n,
|
|
64
|
+
canCopy: o,
|
|
65
|
+
onCopy: c,
|
|
66
|
+
nearMissMessage: d
|
|
67
|
+
}) => {
|
|
68
|
+
const y = I(), m = I(), b = I(), g = [d, n === "failed" ? le : void 0].filter(Boolean).join(" ") || void 0, p = t ? [y, t.suffix ? m : void 0].filter(Boolean).join(" ") : void 0;
|
|
69
|
+
return /* @__PURE__ */ x("div", { className: "flex flex-col gap-[6px]", children: [
|
|
70
|
+
t ? /* @__PURE__ */ x("div", { className: "flex flex-wrap items-center gap-[6px] px-2", children: [
|
|
71
|
+
/* @__PURE__ */ x("span", { id: y, children: [
|
|
72
|
+
/* @__PURE__ */ i(L, { children: t.prefix }),
|
|
73
|
+
" ",
|
|
74
|
+
/* @__PURE__ */ i(S.CodeText, { variant: "inline", size: "small", children: e })
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ i(
|
|
77
|
+
z,
|
|
78
|
+
{
|
|
79
|
+
variant: "ghost",
|
|
80
|
+
size: "small",
|
|
81
|
+
iconOnly: !0,
|
|
82
|
+
"aria-label": `${s} ${e}`,
|
|
83
|
+
icon: n === "copied" ? /* @__PURE__ */ i(J, { size: 13 }) : /* @__PURE__ */ i(P, { size: 13 }),
|
|
84
|
+
onClick: c,
|
|
85
|
+
disabled: !o
|
|
86
|
+
}
|
|
87
|
+
),
|
|
88
|
+
t.suffix ? /* @__PURE__ */ i("span", { id: m, children: /* @__PURE__ */ i(L, { children: t.suffix }) }) : null
|
|
89
|
+
] }) : null,
|
|
90
|
+
/* @__PURE__ */ i(
|
|
91
|
+
oe,
|
|
92
|
+
{
|
|
93
|
+
name: "confirmation-phrase",
|
|
94
|
+
size: "large",
|
|
95
|
+
value: f,
|
|
96
|
+
onChange: a,
|
|
97
|
+
label: t ? void 0 : r,
|
|
98
|
+
"aria-labelledby": p,
|
|
99
|
+
placeholder: u,
|
|
100
|
+
requiredIndicator: "none",
|
|
101
|
+
error: !!d,
|
|
102
|
+
"aria-describedby": g ? b : void 0,
|
|
103
|
+
disabled: l
|
|
104
|
+
}
|
|
105
|
+
),
|
|
106
|
+
/* @__PURE__ */ i(ee, { id: b, message: g }),
|
|
107
|
+
t ? /* @__PURE__ */ i("span", { role: "status", className: "sr-only", children: ne(n, e) }) : null
|
|
108
|
+
] });
|
|
109
|
+
}, pe = {
|
|
110
|
+
default: /* @__PURE__ */ i(U, { size: v }),
|
|
111
|
+
warning: /* @__PURE__ */ i(X, { size: v }),
|
|
112
|
+
destructive: /* @__PURE__ */ i(Q, { size: v }),
|
|
113
|
+
success: /* @__PURE__ */ i(Z, { size: v })
|
|
114
|
+
}, Ne = ({
|
|
115
|
+
open: e,
|
|
116
|
+
onClose: t,
|
|
117
|
+
onConfirm: r,
|
|
118
|
+
title: u,
|
|
119
|
+
titleAdornment: f,
|
|
120
|
+
badgeIcon: a,
|
|
121
|
+
description: l,
|
|
122
|
+
variant: s = "default",
|
|
123
|
+
callout: n,
|
|
124
|
+
confirmPhrase: o,
|
|
125
|
+
confirmPhraseLabel: c,
|
|
126
|
+
confirmPhraseCopyLabel: d = "Copy",
|
|
127
|
+
onPhraseCopied: y,
|
|
128
|
+
confirmPhrasePlaceholder: m,
|
|
129
|
+
confirmLabel: b = "Confirm",
|
|
130
|
+
cancelLabel: g = "Cancel",
|
|
131
|
+
loading: p = !1,
|
|
132
|
+
tip: _,
|
|
133
|
+
size: j = "medium",
|
|
134
|
+
"aria-label": D,
|
|
135
|
+
"aria-labelledby": M,
|
|
136
|
+
children: O
|
|
137
|
+
}) => {
|
|
138
|
+
const [T, A] = k(""), N = I(), h = ie[s], [F, B] = k({ open: e, confirmPhrase: o });
|
|
139
|
+
(F.open !== e || F.confirmPhrase !== o) && (B({ open: e, confirmPhrase: o }), e && A(""));
|
|
140
|
+
const { parts: $, text: w } = se(
|
|
141
|
+
c,
|
|
142
|
+
o
|
|
143
|
+
), {
|
|
144
|
+
outcome: G,
|
|
145
|
+
canCopy: R,
|
|
146
|
+
copy: V
|
|
147
|
+
} = ce(o, e, p, y), E = !o || T.trim() === o, q = ae(T, o), K = p || !E, W = /* @__PURE__ */ x("div", { className: "flex w-full flex-wrap items-center justify-end gap-[8px]", children: [
|
|
148
|
+
/* @__PURE__ */ i(z, { variant: "outline", size: "small", onClick: t, disabled: p, children: g }),
|
|
149
|
+
/* @__PURE__ */ i(
|
|
150
|
+
z,
|
|
151
|
+
{
|
|
152
|
+
variant: h.confirmVariant,
|
|
153
|
+
size: "small",
|
|
154
|
+
onClick: r,
|
|
155
|
+
disabled: K,
|
|
156
|
+
loading: p,
|
|
157
|
+
tooltip: !p && !E ? w : void 0,
|
|
158
|
+
children: b
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
] });
|
|
162
|
+
return /* @__PURE__ */ x(
|
|
163
|
+
te,
|
|
164
|
+
{
|
|
165
|
+
open: e,
|
|
166
|
+
onClose: t,
|
|
167
|
+
title: u,
|
|
168
|
+
size: j,
|
|
169
|
+
footer: W,
|
|
170
|
+
busy: p,
|
|
171
|
+
role: s === "destructive" ? "alertdialog" : "dialog",
|
|
172
|
+
"aria-label": D,
|
|
173
|
+
"aria-labelledby": M,
|
|
174
|
+
"aria-describedby": l ? N : void 0,
|
|
175
|
+
closeOnOverlayClick: s !== "destructive" && !o,
|
|
176
|
+
headerDivider: !0,
|
|
177
|
+
titleAdornment: f,
|
|
178
|
+
bodyPadding: !1,
|
|
179
|
+
tray: { tone: h.tray, caption: _ },
|
|
180
|
+
icon: /* @__PURE__ */ i(
|
|
181
|
+
"span",
|
|
182
|
+
{
|
|
183
|
+
"aria-hidden": "true",
|
|
184
|
+
className: "confirmation-badge flex size-[18px] shrink-0 items-center justify-center rounded-[7px] text-[var(--malachite-card-background)]",
|
|
185
|
+
style: { backgroundColor: h.badge },
|
|
186
|
+
children: a ?? pe[s]
|
|
187
|
+
}
|
|
188
|
+
),
|
|
189
|
+
children: [
|
|
190
|
+
n ? /* @__PURE__ */ i("div", { className: "border-0 border-b border-solid border-[var(--malachite-card-subtle-divider,var(--malachite-card-border))] p-[10px]", children: /* @__PURE__ */ i(
|
|
191
|
+
H,
|
|
192
|
+
{
|
|
193
|
+
type: n.type ?? h.calloutType,
|
|
194
|
+
message: n.message,
|
|
195
|
+
hasMargin: !1
|
|
196
|
+
}
|
|
197
|
+
) }) : null,
|
|
198
|
+
/* @__PURE__ */ x("div", { className: "flex flex-col gap-[12px] p-[28px]", children: [
|
|
199
|
+
l ? /* @__PURE__ */ i(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
id: N,
|
|
203
|
+
className: "text-[13px] leading-[1.6] text-[var(--malachite-text-secondary)]",
|
|
204
|
+
children: l
|
|
205
|
+
}
|
|
206
|
+
) : null,
|
|
207
|
+
O,
|
|
208
|
+
o ? /* @__PURE__ */ i(
|
|
209
|
+
de,
|
|
210
|
+
{
|
|
211
|
+
phrase: o,
|
|
212
|
+
parts: $,
|
|
213
|
+
plainLabel: w,
|
|
214
|
+
placeholder: m,
|
|
215
|
+
value: T,
|
|
216
|
+
onChange: A,
|
|
217
|
+
disabled: p,
|
|
218
|
+
copyLabel: d,
|
|
219
|
+
copyOutcome: G,
|
|
220
|
+
canCopy: R,
|
|
221
|
+
onCopy: V,
|
|
222
|
+
nearMissMessage: q
|
|
223
|
+
}
|
|
224
|
+
) : null
|
|
225
|
+
] })
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
);
|
|
229
|
+
};
|
|
230
|
+
export {
|
|
231
|
+
Ne as ConfirmationDialog,
|
|
232
|
+
Ne as default
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=ConfirmationDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmationDialog.js","sources":["../../src/components/ConfirmationDialog.tsx"],"sourcesContent":["import type React from 'react';\nimport { useEffect, useId, useState } from 'react';\nimport Alert, { type AlertType } from './Alert';\nimport Button from './Button';\nimport CheckCircleFilled from './CustomIcons/CheckCircleFilled';\nimport CheckIcon from './CustomIcons/CheckIcon';\nimport CopyIcon from './CustomIcons/CopyIcon';\nimport ErrorCircleFilled from './CustomIcons/ErrorCircleFilled';\nimport InfoCircleFilled from './CustomIcons/InfoCircleFilled';\nimport WarningCircleFilled from './CustomIcons/WarningCircleFilled';\nimport FieldMessage from './FieldMessage';\nimport { Input } from './Input';\nimport Modal, { type ModalSize } from './Modal';\nimport Typography from './Typography';\nimport {\n CONFIRMATION_DIALOG_VARIANTS,\n type ConfirmationDialogVariant,\n} from './confirmationDialogVariants';\n\n/** Kept beside the component: an icon is a node, not a value the variant table can hold. */\nconst BADGE_GLYPH_SIZE = 12;\n\nconst COPIED_FEEDBACK_MS = 1200;\n\nconst collapseSpaces = (value: string) => value.replace(/\\s+/g, ' ');\n\nconst nearMissAgainst = (typedPhrase: string, confirmPhrase?: string): string | undefined => {\n const typed = typedPhrase.trim();\n if (!confirmPhrase || typed === '' || typed === confirmPhrase) {\n return undefined;\n }\n if (collapseSpaces(typed).toLowerCase() !== collapseSpaces(confirmPhrase).toLowerCase()) {\n return undefined;\n }\n return collapseSpaces(typed) === collapseSpaces(confirmPhrase)\n ? 'The spacing has to match exactly.'\n : 'This is case-sensitive.';\n};\n\ntype PhraseLabel = string | { prefix: string; suffix?: string };\n\ntype CopyOutcome = 'idle' | 'copied' | 'failed';\n\nconst COPY_FAILED_MESSAGE = 'Could not copy. Enter the phrase manually.';\n\nconst resolvePhraseLabel = (\n label: PhraseLabel | undefined,\n phrase?: string,\n): { parts?: { prefix: string; suffix?: string }; text: string } => {\n const parts = typeof label === 'object' && label !== null ? label : undefined;\n if (parts) {\n return { parts, text: [parts.prefix, phrase, parts.suffix].filter(Boolean).join(' ') };\n }\n return { text: typeof label === 'string' ? label : `Type ${phrase} to confirm` };\n};\n\nconst copyStatusFor = (outcome: CopyOutcome, phrase: string): string =>\n outcome === 'copied' ? `${phrase} copied to clipboard` : '';\n\nconst usePhraseCopy = (\n phrase: string | undefined,\n open: boolean,\n disabled: boolean,\n onCopied?: (phrase: string) => void,\n): { outcome: CopyOutcome; canCopy: boolean; copy: () => void } => {\n const decisionKey = `${open}|${phrase}`;\n const [state, setState] = useState<{\n key: string;\n generation: number;\n outcome: CopyOutcome;\n }>({ key: decisionKey, generation: 0, outcome: 'idle' });\n if (state.key !== decisionKey) {\n setState((previous) => ({\n key: decisionKey,\n generation: previous.generation + 1,\n outcome: 'idle',\n }));\n }\n\n useEffect(() => {\n if (state.outcome !== 'copied') {\n return;\n }\n const timer = setTimeout(\n () => setState((previous) => ({ ...previous, outcome: 'idle' })),\n COPIED_FEEDBACK_MS,\n );\n return () => clearTimeout(timer);\n }, [state.outcome]);\n\n const canCopy = typeof navigator !== 'undefined' && !!navigator.clipboard?.writeText;\n\n const run = async () => {\n if (!phrase || !canCopy) {\n return;\n }\n const generation = state.generation;\n const settle = (outcome: CopyOutcome) =>\n setState((previous) =>\n previous.generation === generation ? { ...previous, outcome } : previous,\n );\n try {\n await navigator.clipboard.writeText(phrase);\n } catch {\n settle('failed');\n return;\n }\n settle('copied');\n queueMicrotask(() => onCopied?.(phrase));\n };\n\n return { outcome: state.outcome, canCopy: canCopy && !disabled, copy: () => void run() };\n};\n\nconst LabelText: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <Typography.Text size=\"xsmall\" color=\"primary\" fontWeight=\"semi-bold\">\n {children}\n </Typography.Text>\n);\n\ninterface PhraseFieldProps {\n phrase: string;\n parts?: { prefix: string; suffix?: string };\n plainLabel: string;\n placeholder?: string;\n value: string;\n onChange: (value: string) => void;\n disabled: boolean;\n copyLabel: string;\n copyOutcome: CopyOutcome;\n canCopy: boolean;\n onCopy: () => void;\n nearMissMessage?: string;\n}\n\nconst PhraseField: React.FC<PhraseFieldProps> = ({\n phrase,\n parts,\n plainLabel,\n placeholder,\n value,\n onChange,\n disabled,\n copyLabel,\n copyOutcome,\n canCopy,\n onCopy,\n nearMissMessage,\n}) => {\n const beforeId = useId();\n const afterId = useId();\n const messageId = useId();\n const message =\n [nearMissMessage, copyOutcome === 'failed' ? COPY_FAILED_MESSAGE : undefined]\n .filter(Boolean)\n .join(' ') || undefined;\n const labelledBy = parts\n ? [beforeId, parts.suffix ? afterId : undefined].filter(Boolean).join(' ')\n : undefined;\n\n return (\n <div className=\"flex flex-col gap-[6px]\">\n {parts ? (\n <div className=\"flex flex-wrap items-center gap-[6px] px-2\">\n <span id={beforeId}>\n <LabelText>{parts.prefix}</LabelText>{' '}\n <Typography.CodeText variant=\"inline\" size=\"small\">\n {phrase}\n </Typography.CodeText>\n </span>\n <Button\n variant=\"ghost\"\n size=\"small\"\n iconOnly\n aria-label={`${copyLabel} ${phrase}`}\n icon={\n copyOutcome === 'copied' ? (\n <CheckIcon size={13} />\n ) : (\n <CopyIcon size={13} />\n )\n }\n onClick={onCopy}\n disabled={!canCopy}\n />\n {parts.suffix ? (\n <span id={afterId}>\n <LabelText>{parts.suffix}</LabelText>\n </span>\n ) : null}\n </div>\n ) : null}\n <Input\n name=\"confirmation-phrase\"\n size=\"large\"\n value={value}\n onChange={onChange}\n label={parts ? undefined : plainLabel}\n aria-labelledby={labelledBy}\n placeholder={placeholder}\n requiredIndicator=\"none\"\n error={!!nearMissMessage}\n aria-describedby={message ? messageId : undefined}\n disabled={disabled}\n />\n <FieldMessage id={messageId} message={message} />\n {parts ? (\n <span role=\"status\" className=\"sr-only\">\n {copyStatusFor(copyOutcome, phrase)}\n </span>\n ) : null}\n </div>\n );\n};\n\nconst VARIANT_ICON: Record<ConfirmationDialogVariant, React.ReactNode> = {\n default: <InfoCircleFilled size={BADGE_GLYPH_SIZE} />,\n warning: <WarningCircleFilled size={BADGE_GLYPH_SIZE} />,\n destructive: <ErrorCircleFilled size={BADGE_GLYPH_SIZE} />,\n success: <CheckCircleFilled size={BADGE_GLYPH_SIZE} />,\n};\n\nexport interface ConfirmationDialogProps {\n open: boolean;\n /** Dismiss handler — cancel, close button, ESC or scrim. `loading` suppresses every\n * route except ESC, which always reaches this so a keyboard user is never stranded. */\n onClose: () => void;\n /** Runs when the confirm action is taken. Closing is left to the consumer. */\n onConfirm: () => void;\n title: React.ReactNode;\n titleAdornment?: React.ReactNode;\n badgeIcon?: React.ReactNode;\n /** The sentence saying what is about to happen. */\n description?: React.ReactNode;\n variant?: ConfirmationDialogVariant;\n /** Coloured callout below the body. Defaults to the variant's own type. */\n callout?: { type?: AlertType; message: string };\n /**\n * Requires this exact phrase to be typed before the confirm action enables — for a\n * consequence severe enough that a single click should not be able to cause it.\n */\n confirmPhrase?: string;\n /** Label above the type-to-confirm field. `{ prefix, suffix }` makes the phrase copyable. */\n confirmPhraseLabel?: PhraseLabel;\n /** Names the copy control, e.g. `Copy profile name`. Default: `Copy`. */\n confirmPhraseCopyLabel?: string;\n /** Runs after the phrase reaches the clipboard, with what was copied. */\n onPhraseCopied?: (phrase: string) => void;\n confirmPhrasePlaceholder?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n /**\n * Disables the actions, spins the confirm button and suppresses the pointer dismissal\n * routes — but never ESC, which always reaches `onClose`.\n */\n loading?: boolean;\n tip?: { label?: string; message: string };\n size?: ModalSize;\n /** Accessible dialog name; required when `title` isn't a plain string. */\n 'aria-label'?: string;\n /** ID of a visible element naming the dialog (alternative to `aria-label`). */\n 'aria-labelledby'?: string;\n /** Extra body content between the description and the callout, e.g. an entity chip. */\n children?: React.ReactNode;\n}\n\nconst ConfirmationDialog: React.FC<ConfirmationDialogProps> = ({\n open,\n onClose,\n onConfirm,\n title,\n titleAdornment,\n badgeIcon,\n description,\n variant = 'default',\n callout,\n confirmPhrase,\n confirmPhraseLabel,\n confirmPhraseCopyLabel = 'Copy',\n onPhraseCopied,\n confirmPhrasePlaceholder,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n loading = false,\n tip,\n size = 'medium',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n children,\n}) => {\n const [typedPhrase, setTypedPhrase] = useState('');\n const descriptionId = useId();\n const base = CONFIRMATION_DIALOG_VARIANTS[variant];\n\n // On open, not close: the dialog outlives `open` by its exit transition, so resetting on\n // close empties the field in front of the user. Adjusted during render rather than from an\n // effect, or a reopen paints the previous answer once with confirm already enabled.\n const [answeredFor, setAnsweredFor] = useState({ open, confirmPhrase });\n if (answeredFor.open !== open || answeredFor.confirmPhrase !== confirmPhrase) {\n setAnsweredFor({ open, confirmPhrase });\n if (open) {\n setTypedPhrase('');\n }\n }\n\n const { parts: phraseParts, text: phraseLabel } = resolvePhraseLabel(\n confirmPhraseLabel,\n confirmPhrase,\n );\n const {\n outcome: copyOutcome,\n canCopy: canCopyPhrase,\n copy: handleCopyPhrase,\n } = usePhraseCopy(confirmPhrase, open, loading, onPhraseCopied);\n // Trimmed because copying an entity name commonly picks up a trailing space; the gate is\n // still exact, and deliberately case-sensitive.\n const phraseSatisfied = !confirmPhrase || typedPhrase.trim() === confirmPhrase;\n const nearMissMessage = nearMissAgainst(typedPhrase, confirmPhrase);\n const confirmDisabled = loading || !phraseSatisfied;\n\n const footer = (\n <div className=\"flex w-full flex-wrap items-center justify-end gap-[8px]\">\n <Button variant=\"outline\" size=\"small\" onClick={onClose} disabled={loading}>\n {cancelLabel}\n </Button>\n <Button\n variant={base.confirmVariant}\n size=\"small\"\n onClick={onConfirm}\n disabled={confirmDisabled}\n loading={loading}\n // A disabled control emits no hover, so the tooltip explains the gate from the\n // wrapper Button renders for exactly this case.\n tooltip={!loading && !phraseSatisfied ? phraseLabel : undefined}\n >\n {confirmLabel}\n </Button>\n </div>\n );\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={title}\n size={size}\n footer={footer}\n busy={loading}\n // A consequential choice is an alertdialog: it asks assistive tech to announce the\n // body, which is where the consequence is written.\n role={variant === 'destructive' ? 'alertdialog' : 'dialog'}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={description ? descriptionId : undefined}\n // A choice this deliberate should not be undone by a stray click, and a scrim\n // click must not discard a phrase the customer has already typed.\n closeOnOverlayClick={variant !== 'destructive' && !confirmPhrase}\n headerDivider\n titleAdornment={titleAdornment}\n bodyPadding={false}\n tray={{ tone: base.tray, caption: tip }}\n icon={\n <span\n aria-hidden=\"true\"\n className=\"confirmation-badge flex size-[18px] shrink-0 items-center justify-center rounded-[7px] text-[var(--malachite-card-background)]\"\n style={{ backgroundColor: base.badge }}\n >\n {badgeIcon ?? VARIANT_ICON[variant]}\n </span>\n }\n >\n {callout ? (\n <div className=\"border-0 border-b border-solid border-[var(--malachite-card-subtle-divider,var(--malachite-card-border))] p-[10px]\">\n <Alert\n type={callout.type ?? base.calloutType}\n message={callout.message}\n hasMargin={false}\n />\n </div>\n ) : null}\n <div className=\"flex flex-col gap-[12px] p-[28px]\">\n {description ? (\n <div\n id={descriptionId}\n className=\"text-[13px] leading-[1.6] text-[var(--malachite-text-secondary)]\"\n >\n {description}\n </div>\n ) : null}\n {children}\n {confirmPhrase ? (\n <PhraseField\n phrase={confirmPhrase}\n parts={phraseParts}\n plainLabel={phraseLabel}\n placeholder={confirmPhrasePlaceholder}\n value={typedPhrase}\n onChange={setTypedPhrase}\n disabled={loading}\n copyLabel={confirmPhraseCopyLabel}\n copyOutcome={copyOutcome}\n canCopy={canCopyPhrase}\n onCopy={handleCopyPhrase}\n nearMissMessage={nearMissMessage}\n />\n ) : null}\n </div>\n </Modal>\n );\n};\n\nexport default ConfirmationDialog;\nexport { ConfirmationDialog };\nexport type { ConfirmationDialogVariant };\n"],"names":["BADGE_GLYPH_SIZE","COPIED_FEEDBACK_MS","collapseSpaces","value","nearMissAgainst","typedPhrase","confirmPhrase","typed","COPY_FAILED_MESSAGE","resolvePhraseLabel","label","phrase","parts","copyStatusFor","outcome","usePhraseCopy","open","disabled","onCopied","decisionKey","state","setState","useState","previous","useEffect","timer","canCopy","_a","run","generation","settle","LabelText","children","jsx","Typography","PhraseField","plainLabel","placeholder","onChange","copyLabel","copyOutcome","onCopy","nearMissMessage","beforeId","useId","afterId","messageId","message","labelledBy","jsxs","Button","CheckIcon","CopyIcon","Input","FieldMessage","VARIANT_ICON","InfoCircleFilled","WarningCircleFilled","ErrorCircleFilled","CheckCircleFilled","ConfirmationDialog","onClose","onConfirm","title","titleAdornment","badgeIcon","description","variant","callout","confirmPhraseLabel","confirmPhraseCopyLabel","onPhraseCopied","confirmPhrasePlaceholder","confirmLabel","cancelLabel","loading","tip","size","ariaLabel","ariaLabelledBy","setTypedPhrase","descriptionId","base","CONFIRMATION_DIALOG_VARIANTS","answeredFor","setAnsweredFor","phraseParts","phraseLabel","canCopyPhrase","handleCopyPhrase","phraseSatisfied","confirmDisabled","footer","Modal","Alert"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsxs as r, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
const t = (e) => ({
|
|
3
|
+
backgroundColor: e.background ?? "var(--malachite-card-dimmed-background)",
|
|
4
|
+
color: e.background ? "#fff" : "var(--malachite-text-primary)"
|
|
5
|
+
}), i = ({ from: e, to: a, className: c = "" }) => {
|
|
6
|
+
const s = !!(e.label || a.label);
|
|
7
|
+
return /* @__PURE__ */ r("div", { className: `flex flex-col items-center gap-[12px] ${c}`, children: [
|
|
8
|
+
/* @__PURE__ */ r("div", { className: "flex items-center justify-center", children: [
|
|
9
|
+
/* @__PURE__ */ l(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: "flex items-center justify-center size-[40px] rounded-[13px] mr-[-8px] z-[2]",
|
|
13
|
+
style: {
|
|
14
|
+
...t(e),
|
|
15
|
+
transform: "rotate(-12deg)",
|
|
16
|
+
boxShadow: "0px 4px 4px 0px rgba(0,0,0,0.15)"
|
|
17
|
+
},
|
|
18
|
+
"aria-label": e.label,
|
|
19
|
+
children: e.icon
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
/* @__PURE__ */ l(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
className: "flex items-center justify-center size-[40px] rounded-[13px] border-[1.5px] border-solid border-[var(--malachite-card-background)] z-[1]",
|
|
26
|
+
style: {
|
|
27
|
+
...t(a),
|
|
28
|
+
transform: "rotate(12deg)",
|
|
29
|
+
boxShadow: "0px 4px 4px 0px rgba(0,0,0,0.15)"
|
|
30
|
+
},
|
|
31
|
+
"aria-label": a.label,
|
|
32
|
+
children: a.icon
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
] }),
|
|
36
|
+
s && /* @__PURE__ */ r("div", { className: "flex items-center gap-[8px] text-[13px] font-medium text-[var(--malachite-text-secondary)]", children: [
|
|
37
|
+
e.label && /* @__PURE__ */ l("span", { children: e.label }),
|
|
38
|
+
e.label && a.label && /* @__PURE__ */ l("span", { className: "text-[var(--malachite-text-placeholder)]", children: "→" }),
|
|
39
|
+
a.label && /* @__PURE__ */ l("span", { children: a.label })
|
|
40
|
+
] })
|
|
41
|
+
] });
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
i as ConnectionHeader,
|
|
45
|
+
i as default
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=ConnectionHeader.js.map
|