@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,105 @@
|
|
|
1
|
+
import { jsxs as i, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useId as E, useState as b } from "react";
|
|
3
|
+
import { DisclosureArrow as u } from "./DisclosureArrow.js";
|
|
4
|
+
import { FOCUS_RING as _, FOCUS_RING_INSET as A } from "./focusRing.js";
|
|
5
|
+
import { isRenderableNode as F } from "./renderableNode.js";
|
|
6
|
+
const K = ({
|
|
7
|
+
title: x,
|
|
8
|
+
header: f,
|
|
9
|
+
className: v,
|
|
10
|
+
children: o,
|
|
11
|
+
trailing: c,
|
|
12
|
+
variant: h = "default",
|
|
13
|
+
defaultExpanded: g = !1,
|
|
14
|
+
isExpanded: n,
|
|
15
|
+
onToggle: d,
|
|
16
|
+
disabled: s = !1,
|
|
17
|
+
stickyHeader: p = !1,
|
|
18
|
+
stickyTopOffset: w = 0,
|
|
19
|
+
animate: m = !0
|
|
20
|
+
}) => {
|
|
21
|
+
const r = h === "sunken", l = `${E()}-body`, [N, y] = b(g), e = n !== void 0 ? n : N, k = m || e && !!o, [I, C] = b(!1), R = () => {
|
|
22
|
+
const a = !e;
|
|
23
|
+
n === void 0 && y(a), d == null || d(a);
|
|
24
|
+
}, S = [
|
|
25
|
+
"flex flex-col w-full text-left",
|
|
26
|
+
r ? "rounded-xl bg-[var(--malachite-card-dimmed-background)] p-[4px]" : "",
|
|
27
|
+
v
|
|
28
|
+
].filter(Boolean).join(" "), B = [
|
|
29
|
+
// `group` only when enabled, so the arrow doesn't darken on hover while disabled.
|
|
30
|
+
s ? "" : "group",
|
|
31
|
+
"flex items-center w-full transition-colors",
|
|
32
|
+
r ? "" : "border-0 border-b border-solid border-[var(--malachite-card-border)]",
|
|
33
|
+
p ? "sticky z-10" : "",
|
|
34
|
+
r ? "bg-transparent" : e ? "bg-[var(--malachite-buttonlist-hover-background)]" : s ? "bg-transparent" : "bg-transparent hover:bg-[var(--malachite-buttonlist-hover-background)]"
|
|
35
|
+
].filter(Boolean).join(" "), j = [
|
|
36
|
+
"flex flex-1 items-center min-w-0 appearance-none border-0 bg-transparent text-left cursor-pointer select-none disabled:cursor-not-allowed",
|
|
37
|
+
r ? `gap-[16px] px-[16px] py-[12px] rounded-lg ${_}` : `gap-[12px] p-[16px] ${A}`
|
|
38
|
+
].join(" "), $ = p ? { top: `${w}px`, backgroundColor: "var(--malachite-card-background)" } : {};
|
|
39
|
+
return /* @__PURE__ */ i("div", { className: S, children: [
|
|
40
|
+
/* @__PURE__ */ i("div", { className: B, style: $, "data-accordion-header": "", children: [
|
|
41
|
+
/* @__PURE__ */ i(
|
|
42
|
+
"button",
|
|
43
|
+
{
|
|
44
|
+
type: "button",
|
|
45
|
+
className: j,
|
|
46
|
+
onClick: R,
|
|
47
|
+
"aria-expanded": e,
|
|
48
|
+
"aria-controls": k ? l : void 0,
|
|
49
|
+
disabled: s,
|
|
50
|
+
children: [
|
|
51
|
+
r ? null : /* @__PURE__ */ t(u, { expanded: e }),
|
|
52
|
+
f ?? /* @__PURE__ */ t("span", { className: "flex-1 min-w-0 truncate font-medium text-[13px] tracking-[0.13px] text-[var(--malachite-text-primary)]", children: x }),
|
|
53
|
+
r ? /* @__PURE__ */ t(u, { expanded: e }) : null
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
F(c) && /* @__PURE__ */ t("div", { className: "shrink-0 flex items-center pr-[16px] text-[var(--malachite-text-secondary)]", children: c })
|
|
58
|
+
] }),
|
|
59
|
+
m ? (
|
|
60
|
+
/* Height animates via grid-template-rows (0fr → 1fr); body clips during.
|
|
61
|
+
grid-cols-[minmax(0,1fr)] pins the single column to the track width so
|
|
62
|
+
wide, non-wrapping children (e.g. a table with long cell text) can't grow
|
|
63
|
+
the implicit `auto` column to their max-content and overflow the container. */
|
|
64
|
+
/* @__PURE__ */ t(
|
|
65
|
+
"div",
|
|
66
|
+
{
|
|
67
|
+
id: l,
|
|
68
|
+
className: "grid grid-cols-[minmax(0,1fr)] w-full transition-[grid-template-rows] duration-200 ease-in-out",
|
|
69
|
+
style: { gridTemplateRows: e ? "1fr" : "0fr" },
|
|
70
|
+
onTransitionEnd: (a) => {
|
|
71
|
+
a.propertyName === "grid-template-rows" && C(e);
|
|
72
|
+
},
|
|
73
|
+
children: /* @__PURE__ */ t(
|
|
74
|
+
"div",
|
|
75
|
+
{
|
|
76
|
+
className: I && e ? "overflow-visible" : "overflow-hidden",
|
|
77
|
+
children: o && /* @__PURE__ */ t(
|
|
78
|
+
"div",
|
|
79
|
+
{
|
|
80
|
+
className: r ? "pt-[4px]" : "border-b border-solid border-[var(--malachite-card-border)]",
|
|
81
|
+
children: o
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
) : (
|
|
89
|
+
/* Instant open — no clip, so a sticky child inside pins immediately. */
|
|
90
|
+
e && o && /* @__PURE__ */ t(
|
|
91
|
+
"div",
|
|
92
|
+
{
|
|
93
|
+
id: l,
|
|
94
|
+
className: r ? "pt-[4px]" : "border-b border-solid border-[var(--malachite-card-border)]",
|
|
95
|
+
children: o
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
)
|
|
99
|
+
] });
|
|
100
|
+
};
|
|
101
|
+
export {
|
|
102
|
+
K as Accordion,
|
|
103
|
+
K as default
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.js","sources":["../../src/components/Accordion.tsx"],"sourcesContent":["import React, { useId, useState } from 'react';\nimport DisclosureArrow from './DisclosureArrow';\nimport { FOCUS_RING, FOCUS_RING_INSET } from './focusRing';\nimport { isRenderableNode } from './renderableNode';\n\ninterface AccordionBaseProps {\n className?: string;\n children?: React.ReactNode;\n /**\n * Visual style. `default` is the flat list row (arrow leading, row dividers,\n * hover background). `sunken` draws the section as a sunken card (dimmed\n * rounded container, arrow pinned right, no dividers/hover) — used for stacked\n * detail sections in side panels and detail pages (see `CollapsibleSection`).\n */\n variant?: 'default' | 'sunken';\n /**\n * Content pinned to the right of the header, OUTSIDE the toggle button — so it may\n * be interactive (e.g. a Checkbox) without nesting a button inside a button.\n */\n trailing?: React.ReactNode;\n defaultExpanded?: boolean;\n isExpanded?: boolean;\n onToggle?: (expanded: boolean) => void;\n /** Disables the toggle (and its hover). Trailing controls manage their own state. */\n disabled?: boolean;\n /**\n * Pin the header row to the top of the nearest scroll container so it stays\n * reachable while the body scrolls. Needs a scroll ancestor that clips without\n * trapping sticky — e.g. a `<Surface overflow=\"clip\">` (`overflow: hidden` traps it).\n */\n stickyHeader?: boolean;\n /** Offset (px) from the top of the scroll container when `stickyHeader` is set. */\n stickyTopOffset?: number;\n /**\n * Animate the expand/collapse height (default `true`). Set `false` for an instant\n * open — the body isn't clipped, so a `position: sticky` child pins immediately with\n * no post-animation settle.\n */\n animate?: boolean;\n}\n\n/**\n * Requires at least one of `title` (simple text header) or `header` (rich ReactNode\n * content for the toggle area, e.g. avatar + badges) so the toggle is never empty.\n */\ntype AccordionProps = AccordionBaseProps &\n ({ title: string; header?: React.ReactNode } | { title?: string; header: React.ReactNode });\n\nconst Accordion: React.FC<AccordionProps> = ({\n title,\n header,\n className,\n children,\n trailing,\n variant = 'default',\n defaultExpanded = false,\n isExpanded,\n onToggle,\n disabled = false,\n stickyHeader = false,\n stickyTopOffset = 0,\n animate = true,\n}) => {\n const sunken = variant === 'sunken';\n const instanceId = useId();\n const bodyId = `${instanceId}-body`;\n const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);\n\n // Use controlled state if isExpanded is provided, otherwise use internal state\n const expanded = isExpanded !== undefined ? isExpanded : internalExpanded;\n\n // The instant path only renders the body while expanded; don't advertise\n // aria-controls when the referenced element isn't in the DOM.\n const bodyRendered = animate || (expanded && !!children);\n\n // The body clips overflow so the expand/collapse height animation works. Once fully\n // expanded we release the clip (after the transition) so a `position: sticky` child\n // inside can pin — `overflow: hidden` would otherwise trap it.\n //\n // Owned entirely by the transition: the same `onTransitionEnd` that sets it on expand\n // clears it on collapse, so no effect has to mirror `expanded` into it.\n const [bodySettled, setBodySettled] = useState(false);\n\n const handleToggle = () => {\n const newExpanded = !expanded;\n if (isExpanded === undefined) {\n setInternalExpanded(newExpanded);\n }\n onToggle?.(newExpanded);\n };\n\n const containerClasses = [\n 'flex flex-col w-full text-left',\n sunken ? 'rounded-xl bg-[var(--malachite-card-dimmed-background)] p-[4px]' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // The whole header row is a `group` so the disclosure arrow darkens on hover; the\n // hover background and arrow react to hovering anywhere on the row. The sunken\n // variant carries its own card chrome instead of row dividers/hover.\n const rowBackground = sunken\n ? 'bg-transparent'\n : expanded\n ? 'bg-[var(--malachite-buttonlist-hover-background)]'\n : disabled\n ? 'bg-transparent'\n : 'bg-transparent hover:bg-[var(--malachite-buttonlist-hover-background)]';\n const headerRowClasses = [\n // `group` only when enabled, so the arrow doesn't darken on hover while disabled.\n disabled ? '' : 'group',\n 'flex items-center w-full transition-colors',\n sunken ? '' : 'border-0 border-b border-solid border-[var(--malachite-card-border)]',\n stickyHeader ? 'sticky z-10' : '',\n rowBackground,\n ]\n .filter(Boolean)\n .join(' ');\n // Full-bleed default rows use an inset ring; the padded sunken toggle fits an outset one.\n const toggleButtonClasses = [\n 'flex flex-1 items-center min-w-0 appearance-none border-0 bg-transparent text-left cursor-pointer select-none disabled:cursor-not-allowed',\n sunken\n ? `gap-[16px] px-[16px] py-[12px] rounded-lg ${FOCUS_RING}`\n : `gap-[12px] p-[16px] ${FOCUS_RING_INSET}`,\n ].join(' ');\n\n // A pinned header needs an opaque background so the scrolling body doesn't bleed\n // through. Inline (not a Tailwind arbitrary class) so the offset always applies.\n const headerRowStyle: React.CSSProperties = stickyHeader\n ? { top: `${stickyTopOffset}px`, backgroundColor: 'var(--malachite-card-background)' }\n : {};\n\n return (\n <div className={containerClasses}>\n <div className={headerRowClasses} style={headerRowStyle} data-accordion-header=\"\">\n {/* Toggle area — arrow + header/title. Interactive trailing sits outside it. */}\n <button\n type=\"button\"\n className={toggleButtonClasses}\n onClick={handleToggle}\n aria-expanded={expanded}\n aria-controls={bodyRendered ? bodyId : undefined}\n disabled={disabled}\n >\n {sunken ? null : <DisclosureArrow expanded={expanded} />}\n {header ?? (\n <span className=\"flex-1 min-w-0 truncate font-medium text-[13px] tracking-[0.13px] text-[var(--malachite-text-primary)]\">\n {title}\n </span>\n )}\n {sunken ? <DisclosureArrow expanded={expanded} /> : null}\n </button>\n {isRenderableNode(trailing) && (\n <div className=\"shrink-0 flex items-center pr-[16px] text-[var(--malachite-text-secondary)]\">\n {trailing}\n </div>\n )}\n </div>\n\n {animate ? (\n /* Height animates via grid-template-rows (0fr → 1fr); body clips during.\n grid-cols-[minmax(0,1fr)] pins the single column to the track width so\n wide, non-wrapping children (e.g. a table with long cell text) can't grow\n the implicit `auto` column to their max-content and overflow the container. */\n <div\n id={bodyId}\n className=\"grid grid-cols-[minmax(0,1fr)] w-full transition-[grid-template-rows] duration-200 ease-in-out\"\n style={{ gridTemplateRows: expanded ? '1fr' : '0fr' }}\n onTransitionEnd={(event) => {\n if (event.propertyName === 'grid-template-rows') {\n setBodySettled(expanded);\n }\n }}\n >\n <div\n className={bodySettled && expanded ? 'overflow-visible' : 'overflow-hidden'}\n >\n {children && (\n <div\n className={\n sunken\n ? 'pt-[4px]'\n : 'border-b border-solid border-[var(--malachite-card-border)]'\n }\n >\n {children}\n </div>\n )}\n </div>\n </div>\n ) : (\n /* Instant open — no clip, so a sticky child inside pins immediately. */\n expanded &&\n children && (\n <div\n id={bodyId}\n className={\n sunken\n ? 'pt-[4px]'\n : 'border-b border-solid border-[var(--malachite-card-border)]'\n }\n >\n {children}\n </div>\n )\n )}\n </div>\n );\n};\n\nexport default Accordion;\nexport { Accordion };\nexport type { AccordionProps };\n"],"names":["Accordion","title","header","className","children","trailing","variant","defaultExpanded","isExpanded","onToggle","disabled","stickyHeader","stickyTopOffset","animate","sunken","bodyId","useId","internalExpanded","setInternalExpanded","useState","expanded","bodyRendered","bodySettled","setBodySettled","handleToggle","newExpanded","containerClasses","headerRowClasses","toggleButtonClasses","FOCUS_RING","FOCUS_RING_INSET","headerRowStyle","jsxs","jsx","DisclosureArrow","isRenderableNode","event"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as a, jsxs as C } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as W, useState as A, useLayoutEffect as E, Fragment as L } from "react";
|
|
3
|
+
import R from "./ActionMenu.js";
|
|
4
|
+
import { Button as b } from "./Button.js";
|
|
5
|
+
import { buildActionBarMenuItems as g } from "./actionBarMenuItems.js";
|
|
6
|
+
const x = 600, y = ({
|
|
7
|
+
buttons: l,
|
|
8
|
+
collapseBelow: c = x,
|
|
9
|
+
menuLabel: h = "Actions",
|
|
10
|
+
className: p = ""
|
|
11
|
+
}) => {
|
|
12
|
+
const o = W(null), [u, v] = A(!1);
|
|
13
|
+
return E(() => {
|
|
14
|
+
const r = ((t) => {
|
|
15
|
+
let i = t;
|
|
16
|
+
for (let n = 0; i && n < 5; n += 1) {
|
|
17
|
+
const s = i.parentElement;
|
|
18
|
+
if (!s)
|
|
19
|
+
return i;
|
|
20
|
+
if (s.clientWidth > i.clientWidth)
|
|
21
|
+
return s;
|
|
22
|
+
i = s;
|
|
23
|
+
}
|
|
24
|
+
return i;
|
|
25
|
+
})(o.current);
|
|
26
|
+
if (!r)
|
|
27
|
+
return;
|
|
28
|
+
const d = (t) => {
|
|
29
|
+
v(t > 0 && t < c);
|
|
30
|
+
};
|
|
31
|
+
if (d(r.clientWidth), typeof ResizeObserver > "u")
|
|
32
|
+
return;
|
|
33
|
+
let f = r.clientWidth;
|
|
34
|
+
const m = new ResizeObserver((t) => {
|
|
35
|
+
var n;
|
|
36
|
+
const i = (n = t[0]) == null ? void 0 : n.contentRect.width;
|
|
37
|
+
i === void 0 || Math.abs(i - f) < 1 || (f = i, d(i));
|
|
38
|
+
});
|
|
39
|
+
return m.observe(r), () => m.disconnect();
|
|
40
|
+
}, [c]), l.length === 0 ? null : /* @__PURE__ */ a("div", { ref: o, className: p, children: u ? /* @__PURE__ */ a(R, { items: g(l), label: h }) : /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: l.map((e, r) => /* @__PURE__ */ C(L, { children: [
|
|
41
|
+
e.dividerBefore && r > 0 && /* @__PURE__ */ a(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
"aria-hidden": "true",
|
|
45
|
+
className: "w-px h-4 shrink-0 bg-[var(--malachite-card-border)]"
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ a(
|
|
49
|
+
b,
|
|
50
|
+
{
|
|
51
|
+
variant: e.variant ?? "filled",
|
|
52
|
+
size: e.size,
|
|
53
|
+
radius: e.radius,
|
|
54
|
+
onClick: e.onClick,
|
|
55
|
+
disabled: e.disabled,
|
|
56
|
+
icon: e.icon,
|
|
57
|
+
tooltip: e.tooltip,
|
|
58
|
+
children: e.label
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
] }, `${e.label}-${r}`)) }) });
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
y as default
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=ActionBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionBar.js","sources":["../../src/components/ActionBar.tsx"],"sourcesContent":["import React, { Fragment, useLayoutEffect, useRef, useState } from 'react';\nimport ActionMenu from './ActionMenu';\nimport Button from './Button';\nimport { buildActionBarMenuItems } from './actionBarMenuItems';\n\ntype BaseButtonProps = React.ComponentProps<typeof Button>;\n\nexport interface ActionBarItem {\n label: string;\n onClick?: () => void;\n disabled?: boolean;\n icon?: React.ReactNode;\n tooltip?: string;\n variant?: BaseButtonProps['variant'];\n size?: BaseButtonProps['size'];\n radius?: BaseButtonProps['radius'];\n /** Renders a vertical rule before this button (and a menu divider when collapsed). */\n dividerBefore?: boolean;\n}\n\nexport interface ActionBarProps {\n buttons: ActionBarItem[];\n /** Container width, in px, below which the row collapses into a single menu. */\n collapseBelow?: number;\n /** Accessible name for the collapsed menu trigger. */\n menuLabel?: string;\n className?: string;\n}\n\nconst DEFAULT_COLLAPSE_BELOW_PX = 600;\n\n\nconst ActionBar: React.FC<ActionBarProps> = ({\n buttons,\n collapseBelow = DEFAULT_COLLAPSE_BELOW_PX,\n menuLabel = 'Actions',\n className = '',\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [isCompact, setIsCompact] = useState(false);\n\n useLayoutEffect(() => {\n const findStableContainer = (start: HTMLElement | null): HTMLElement | null => {\n let node: HTMLElement | null = start;\n\n for (let depth = 0; node && depth < 5; depth += 1) {\n const parent = node.parentElement;\n if (!parent) {\n return node;\n }\n if (parent.clientWidth > node.clientWidth) {\n return parent;\n }\n node = parent;\n }\n\n return node;\n };\n\n const element = findStableContainer(containerRef.current);\n if (!element) {\n return;\n }\n\n const applyWidth = (width: number) => {\n setIsCompact(width > 0 && width < collapseBelow);\n };\n\n applyWidth(element.clientWidth);\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n let lastWidth = element.clientWidth;\n\n const observer = new ResizeObserver((entries) => {\n const width = entries[0]?.contentRect.width;\n if (width === undefined || Math.abs(width - lastWidth) < 1) {\n return;\n }\n lastWidth = width;\n applyWidth(width);\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [collapseBelow]);\n\n if (buttons.length === 0) {\n return null;\n }\n\n return (\n <div ref={containerRef} className={className}>\n {isCompact ? (\n <ActionMenu items={buildActionBarMenuItems(buttons)} label={menuLabel} />\n ) : (\n <div className=\"flex items-center gap-2\">\n {buttons.map((button, index) => (\n <Fragment key={`${button.label}-${index}`}>\n {button.dividerBefore && index > 0 && (\n <div\n aria-hidden=\"true\"\n className=\"w-px h-4 shrink-0 bg-[var(--malachite-card-border)]\"\n />\n )}\n <Button\n variant={button.variant ?? 'filled'}\n size={button.size}\n radius={button.radius}\n onClick={button.onClick}\n disabled={button.disabled}\n icon={button.icon}\n tooltip={button.tooltip}\n >\n {button.label}\n </Button>\n </Fragment>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default ActionBar;\n"],"names":["DEFAULT_COLLAPSE_BELOW_PX","ActionBar","buttons","collapseBelow","menuLabel","className","containerRef","useRef","isCompact","setIsCompact","useState","useLayoutEffect","element","start","node","depth","parent","applyWidth","width","lastWidth","observer","entries","_a","jsx","ActionMenu","buildActionBarMenuItems","button","index","jsxs","Fragment","Button"],"mappings":";;;;;AA6BA,MAAMA,IAA4B,KAG5BC,IAAsC,CAAC;AAAA,EACzC,SAAAC;AAAA,EACA,eAAAC,IAAgBH;AAAA,EAChB,WAAAI,IAAY;AAAA,EACZ,WAAAC,IAAY;AAChB,MAAM;AACF,QAAMC,IAAeC,EAAuB,IAAI,GAC1C,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK;AAiDhD,SA/CAC,EAAgB,MAAM;AAkBlB,UAAMC,KAjBsB,CAACC,MAAkD;AAC3E,UAAIC,IAA2BD;AAE/B,eAASE,IAAQ,GAAGD,KAAQC,IAAQ,GAAGA,KAAS,GAAG;AAC/C,cAAMC,IAASF,EAAK;AACpB,YAAI,CAACE;AACD,iBAAOF;AAEX,YAAIE,EAAO,cAAcF,EAAK;AAC1B,iBAAOE;AAEX,QAAAF,IAAOE;AAAA,MACX;AAEA,aAAOF;AAAA,IACX,GAEoCR,EAAa,OAAO;AACxD,QAAI,CAACM;AACD;AAGJ,UAAMK,IAAa,CAACC,MAAkB;AAClC,MAAAT,EAAaS,IAAQ,KAAKA,IAAQf,CAAa;AAAA,IACnD;AAIA,QAFAc,EAAWL,EAAQ,WAAW,GAE1B,OAAO,iBAAmB;AAC1B;AAGJ,QAAIO,IAAYP,EAAQ;AAExB,UAAMQ,IAAW,IAAI,eAAe,CAACC,MAAY;;AAC7C,YAAMH,KAAQI,IAAAD,EAAQ,CAAC,MAAT,gBAAAC,EAAY,YAAY;AACtC,MAAIJ,MAAU,UAAa,KAAK,IAAIA,IAAQC,CAAS,IAAI,MAGzDA,IAAYD,GACZD,EAAWC,CAAK;AAAA,IACpB,CAAC;AACD,WAAAE,EAAS,QAAQR,CAAO,GACjB,MAAMQ,EAAS,WAAA;AAAA,EAC1B,GAAG,CAACjB,CAAa,CAAC,GAEdD,EAAQ,WAAW,IACZ,OAIP,gBAAAqB,EAAC,OAAA,EAAI,KAAKjB,GAAc,WAAAD,GACnB,cACG,gBAAAkB,EAACC,GAAA,EAAW,OAAOC,EAAwBvB,CAAO,GAAG,OAAOE,EAAA,CAAW,IAEvE,gBAAAmB,EAAC,OAAA,EAAI,WAAU,2BACV,UAAArB,EAAQ,IAAI,CAACwB,GAAQC,MAClB,gBAAAC,EAACC,GAAA,EACI,UAAA;AAAA,IAAAH,EAAO,iBAAiBC,IAAQ,KAC7B,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,eAAY;AAAA,QACZ,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAGlB,gBAAAA;AAAA,MAACO;AAAA,MAAA;AAAA,QACG,SAASJ,EAAO,WAAW;AAAA,QAC3B,MAAMA,EAAO;AAAA,QACb,QAAQA,EAAO;AAAA,QACf,SAASA,EAAO;AAAA,QAChB,UAAUA,EAAO;AAAA,QACjB,MAAMA,EAAO;AAAA,QACb,SAASA,EAAO;AAAA,QAEf,UAAAA,EAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,KAjBW,GAAGA,EAAO,KAAK,IAAIC,CAAK,EAkBvC,CACH,GACL,GAER;AAER;"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { jsxs as m, Fragment as O, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useState as E, useRef as S, useCallback as _, useEffect as H, useLayoutEffect as j, useInsertionEffect as D } from "react";
|
|
3
|
+
import { createPortal as N } from "react-dom";
|
|
4
|
+
import { Button as A } from "./Button.js";
|
|
5
|
+
import G from "./CustomIcons/MoreHorizontalIcon.js";
|
|
6
|
+
import { pushEscapeLayer as W } from "./escapeLayers.js";
|
|
7
|
+
import { ensureOverlayStyles as Y, overlayIdentity as $ } from "./portalOverlay.js";
|
|
8
|
+
import { useTopLayer as F } from "./topLayer.js";
|
|
9
|
+
const Z = {
|
|
10
|
+
padding: "6px 10px",
|
|
11
|
+
fontSize: "var(--malachite-font-size-small, 13px)",
|
|
12
|
+
color: "var(--malachite-text-dimmed, rgb(161, 161, 161))",
|
|
13
|
+
userSelect: "none"
|
|
14
|
+
}, q = {
|
|
15
|
+
small: { icon: 16, iconBox: "text-[16px] [&_svg]:size-[16px]!" },
|
|
16
|
+
xsmall: { icon: 11, iconBox: "text-[11px] [&_svg]:size-[11px]!" }
|
|
17
|
+
}, L = (n) => n.type === "divider" ? {
|
|
18
|
+
height: 1,
|
|
19
|
+
background: "var(--malachite-card-border, rgb(232, 232, 232))",
|
|
20
|
+
margin: "4px 0"
|
|
21
|
+
} : {
|
|
22
|
+
display: "flex",
|
|
23
|
+
alignItems: "center",
|
|
24
|
+
gap: 8,
|
|
25
|
+
padding: "6px 10px",
|
|
26
|
+
borderRadius: 8,
|
|
27
|
+
fontSize: "var(--malachite-font-size-small, 13px)",
|
|
28
|
+
fontWeight: 400,
|
|
29
|
+
color: n.danger ? "var(--malachite-text-destructive, rgb(237, 53, 54))" : "var(--malachite-text-primary, rgb(10, 10, 10))",
|
|
30
|
+
cursor: n.disabled ? "not-allowed" : "pointer",
|
|
31
|
+
opacity: n.disabled ? 0.5 : 1,
|
|
32
|
+
userSelect: "none",
|
|
33
|
+
background: "transparent",
|
|
34
|
+
border: "none",
|
|
35
|
+
textAlign: "left",
|
|
36
|
+
width: "100%"
|
|
37
|
+
}, oe = ({
|
|
38
|
+
items: n,
|
|
39
|
+
label: b = "More actions",
|
|
40
|
+
triggerIcon: M,
|
|
41
|
+
minWidth: v = 180,
|
|
42
|
+
size: h = "small",
|
|
43
|
+
showLabel: d = !1,
|
|
44
|
+
variant: z = "outline"
|
|
45
|
+
}) => {
|
|
46
|
+
const y = q[h], [o, p] = E(!1), [r, P] = E(null), x = S(null), a = S(null);
|
|
47
|
+
F(a, o);
|
|
48
|
+
const l = _(() => {
|
|
49
|
+
var w, k;
|
|
50
|
+
const e = x.current;
|
|
51
|
+
if (!e)
|
|
52
|
+
return;
|
|
53
|
+
const t = e.getBoundingClientRect(), u = ((w = a.current) == null ? void 0 : w.offsetWidth) || v, c = ((k = a.current) == null ? void 0 : k.offsetHeight) || 0, i = 8, f = t.right - u, g = window.innerWidth - u - i, I = Math.max(i, Math.min(f, g)), T = window.innerHeight - t.bottom, B = c > 0 && T < c + i ? t.top - c - 4 : t.bottom + 4;
|
|
54
|
+
P({ top: B, left: I });
|
|
55
|
+
}, [v]);
|
|
56
|
+
H(() => {
|
|
57
|
+
if (!o)
|
|
58
|
+
return;
|
|
59
|
+
l();
|
|
60
|
+
const e = () => l(), t = (c) => {
|
|
61
|
+
var f, g;
|
|
62
|
+
const i = c.target;
|
|
63
|
+
!((f = x.current) != null && f.contains(i)) && !((g = a.current) != null && g.contains(i)) && p(!1);
|
|
64
|
+
}, u = W(() => p(!1));
|
|
65
|
+
return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), document.addEventListener("mousedown", t, !0), () => {
|
|
66
|
+
window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e), document.removeEventListener("mousedown", t, !0), u();
|
|
67
|
+
};
|
|
68
|
+
}, [o, l]), j(() => {
|
|
69
|
+
o && a.current && l();
|
|
70
|
+
}, [o, l]);
|
|
71
|
+
const R = (e) => {
|
|
72
|
+
var t;
|
|
73
|
+
e.type === "divider" || e.disabled || ((t = e.onClick) == null || t.call(e), p(!1));
|
|
74
|
+
};
|
|
75
|
+
D(() => {
|
|
76
|
+
o && Y();
|
|
77
|
+
}, [o]);
|
|
78
|
+
const C = {
|
|
79
|
+
position: "fixed",
|
|
80
|
+
top: (r == null ? void 0 : r.top) ?? 0,
|
|
81
|
+
left: (r == null ? void 0 : r.left) ?? 0,
|
|
82
|
+
minWidth: v,
|
|
83
|
+
background: "var(--malachite-card-background, rgb(255, 255, 255))",
|
|
84
|
+
border: "1px solid var(--malachite-card-border, rgb(232, 232, 232))",
|
|
85
|
+
borderRadius: 12,
|
|
86
|
+
boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.08)",
|
|
87
|
+
padding: 4,
|
|
88
|
+
display: "flex",
|
|
89
|
+
flexDirection: "column",
|
|
90
|
+
gap: 2,
|
|
91
|
+
visibility: r ? "visible" : "hidden",
|
|
92
|
+
opacity: r ? 1 : 0
|
|
93
|
+
};
|
|
94
|
+
return /* @__PURE__ */ m(O, { children: [
|
|
95
|
+
/* @__PURE__ */ m(
|
|
96
|
+
A,
|
|
97
|
+
{
|
|
98
|
+
ref: x,
|
|
99
|
+
type: "button",
|
|
100
|
+
variant: z,
|
|
101
|
+
size: h,
|
|
102
|
+
iconOnly: !d,
|
|
103
|
+
"aria-label": d ? void 0 : b,
|
|
104
|
+
"aria-haspopup": "menu",
|
|
105
|
+
"aria-expanded": o,
|
|
106
|
+
className: `shrink-0${d ? " gap-2" : ""}`,
|
|
107
|
+
onClick: (e) => {
|
|
108
|
+
e.stopPropagation(), p((t) => !t);
|
|
109
|
+
},
|
|
110
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ s("span", { className: `inline-flex items-center justify-center ${y.iconBox}`, children: M ?? /* @__PURE__ */ s(G, { size: y.icon }) }),
|
|
113
|
+
d && /* @__PURE__ */ s("span", { children: b })
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
o && N(
|
|
118
|
+
/* @__PURE__ */ m(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
ref: a,
|
|
122
|
+
role: "menu",
|
|
123
|
+
...$("actionmenu"),
|
|
124
|
+
style: C,
|
|
125
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
126
|
+
onClick: (e) => e.stopPropagation(),
|
|
127
|
+
children: [
|
|
128
|
+
n.length === 0 && // role="menu" takes menuitem children only, so the notice is one.
|
|
129
|
+
/* @__PURE__ */ s("div", { role: "menuitem", "aria-disabled": "true", style: Z, children: "No actions available" }),
|
|
130
|
+
n.map(
|
|
131
|
+
(e) => e.type === "divider" ? /* @__PURE__ */ s("div", { style: L(e) }, e.key) : /* @__PURE__ */ m(
|
|
132
|
+
"button",
|
|
133
|
+
{
|
|
134
|
+
type: "button",
|
|
135
|
+
role: "menuitem",
|
|
136
|
+
disabled: e.disabled,
|
|
137
|
+
title: e.tooltip,
|
|
138
|
+
onClick: () => R(e),
|
|
139
|
+
onMouseEnter: (t) => {
|
|
140
|
+
e.disabled || (t.currentTarget.style.background = "rgba(0, 0, 0, 0.04)");
|
|
141
|
+
},
|
|
142
|
+
onMouseLeave: (t) => {
|
|
143
|
+
t.currentTarget.style.background = "transparent";
|
|
144
|
+
},
|
|
145
|
+
style: L(e),
|
|
146
|
+
children: [
|
|
147
|
+
e.icon && /* @__PURE__ */ s(
|
|
148
|
+
"span",
|
|
149
|
+
{
|
|
150
|
+
style: {
|
|
151
|
+
display: "inline-flex",
|
|
152
|
+
flexShrink: 0,
|
|
153
|
+
color: "var(--malachite-icon-secondary, rgb(148, 148, 148))"
|
|
154
|
+
},
|
|
155
|
+
children: e.icon
|
|
156
|
+
}
|
|
157
|
+
),
|
|
158
|
+
e.label
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
e.key
|
|
162
|
+
)
|
|
163
|
+
)
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
),
|
|
167
|
+
document.body
|
|
168
|
+
)
|
|
169
|
+
] });
|
|
170
|
+
};
|
|
171
|
+
export {
|
|
172
|
+
oe as default
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=ActionMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenu.js","sources":["../../src/components/ActionMenu.tsx"],"sourcesContent":["import React, {\n useState,\n useRef,\n useEffect,\n useInsertionEffect,\n useLayoutEffect,\n useCallback,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport Button from './Button';\nimport type { ButtonVariant } from './Button';\nimport MoreHorizontalIcon from './CustomIcons/MoreHorizontalIcon';\nimport { pushEscapeLayer } from './escapeLayers';\nimport { ensureOverlayStyles, overlayIdentity } from './portalOverlay';\nimport { useTopLayer } from './topLayer';\n\nconst EMPTY_ITEM_STYLE: React.CSSProperties = {\n padding: '6px 10px',\n fontSize: 'var(--malachite-font-size-small, 13px)',\n color: 'var(--malachite-text-dimmed, rgb(161, 161, 161))',\n userSelect: 'none',\n};\n\nexport type ActionMenuItem =\n | {\n type?: 'item';\n key: string;\n label: React.ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n danger?: boolean;\n tooltip?: string;\n icon?: React.ReactNode;\n }\n | {\n type: 'divider';\n key: string;\n };\n\nexport interface ActionMenuProps {\n items: ActionMenuItem[];\n label?: string;\n triggerIcon?: React.ReactNode;\n minWidth?: number;\n size?: 'small' | 'xsmall';\n /**\n * Shows `label` beside the icon instead of leaving it to the accessible name. For a menu\n * that is the point of its corner rather than an overflow for a row that already reads —\n * a kebab nobody can name is only safe when the row it belongs to says what it acts on.\n */\n showLabel?: boolean;\n /** Trigger's Button variant. Defaults to `outline`, the overflow-kebab look. */\n variant?: ButtonVariant;\n}\n\n// No box here: pinning `--malachite-control-height-small` beat Button's own `size-[28px]`, so a\n// theme that moved that token moved the kebab and left the Button behind. Only the glyph is\n// left to size, Button sizing one only for its `icon` prop.\nconst TRIGGER_SIZES: Record<'small' | 'xsmall', { icon: number; iconBox: string }> = {\n small: { icon: 16, iconBox: 'text-[16px] [&_svg]:size-[16px]!' },\n xsmall: { icon: 11, iconBox: 'text-[11px] [&_svg]:size-[11px]!' },\n};\n\nconst itemStyle = (item: ActionMenuItem): React.CSSProperties => {\n if (item.type === 'divider') {\n return {\n height: 1,\n background: 'var(--malachite-card-border, rgb(232, 232, 232))',\n margin: '4px 0',\n };\n }\n return {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n padding: '6px 10px',\n borderRadius: 8,\n fontSize: 'var(--malachite-font-size-small, 13px)',\n fontWeight: 400,\n color: item.danger\n ? 'var(--malachite-text-destructive, rgb(237, 53, 54))'\n : 'var(--malachite-text-primary, rgb(10, 10, 10))',\n cursor: item.disabled ? 'not-allowed' : 'pointer',\n opacity: item.disabled ? 0.5 : 1,\n userSelect: 'none',\n background: 'transparent',\n border: 'none',\n textAlign: 'left',\n width: '100%',\n };\n};\n\n/**\n * ActionMenu is a kebab-style overflow action menu. The trigger is a square\n * icon-only outline Button (three-dot icon by default); on click, a popover\n * appears with the given items. The popover is rendered to document.body via\n * createPortal so it escapes any Shadow DOM or overflow:hidden ancestors —\n * which is also why the popover is styled inline rather than with Tailwind:\n * the scoped stylesheet does not reach document.body.\n */\nconst ActionMenu: React.FC<ActionMenuProps> = ({\n items,\n label = 'More actions',\n triggerIcon,\n minWidth = 180,\n size = 'small',\n showLabel = false,\n variant = 'outline',\n}) => {\n const trigger = TRIGGER_SIZES[size];\n const [open, setOpen] = useState(false);\n const [position, setPosition] = useState<{ top: number; left: number } | null>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n useTopLayer(popoverRef, open);\n\n const updatePosition = useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) {\n return;\n }\n const rect = trigger.getBoundingClientRect();\n const popoverWidth = popoverRef.current?.offsetWidth || minWidth;\n const popoverHeight = popoverRef.current?.offsetHeight || 0;\n const viewportPadding = 8;\n\n const desiredLeft = rect.right - popoverWidth;\n const maxLeft = window.innerWidth - popoverWidth - viewportPadding;\n const left = Math.max(viewportPadding, Math.min(desiredLeft, maxLeft));\n\n const spaceBelow = window.innerHeight - rect.bottom;\n const top =\n popoverHeight > 0 && spaceBelow < popoverHeight + viewportPadding\n ? rect.top - popoverHeight - 4\n : rect.bottom + 4;\n\n setPosition({ top, left });\n }, [minWidth]);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n updatePosition();\n const handleScrollOrResize = () => updatePosition();\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node;\n if (!triggerRef.current?.contains(target) && !popoverRef.current?.contains(target)) {\n setOpen(false);\n }\n };\n // ESC via the shared layer stack: closes only the topmost overlay.\n const popEscapeLayer = pushEscapeLayer(() => setOpen(false));\n window.addEventListener('scroll', handleScrollOrResize, true);\n window.addEventListener('resize', handleScrollOrResize);\n document.addEventListener('mousedown', handleClickOutside, true);\n return () => {\n window.removeEventListener('scroll', handleScrollOrResize, true);\n window.removeEventListener('resize', handleScrollOrResize);\n document.removeEventListener('mousedown', handleClickOutside, true);\n popEscapeLayer();\n };\n }, [open, updatePosition]);\n\n // Re-measure once the popover is in the DOM so the right-edge alignment\n // and viewport clamping use the real width — not the minWidth fallback.\n useLayoutEffect(() => {\n if (open && popoverRef.current) {\n updatePosition();\n }\n }, [open, updatePosition]);\n\n const handleItemClick = (item: ActionMenuItem) => {\n if (item.type === 'divider' || item.disabled) {\n return;\n }\n item.onClick?.();\n setOpen(false);\n };\n\n useInsertionEffect(() => {\n if (open) {\n ensureOverlayStyles();\n }\n }, [open]);\n\n const popoverStyle: React.CSSProperties = {\n position: 'fixed',\n top: position?.top ?? 0,\n left: position?.left ?? 0,\n minWidth,\n background: 'var(--malachite-card-background, rgb(255, 255, 255))',\n border: '1px solid var(--malachite-card-border, rgb(232, 232, 232))',\n borderRadius: 12,\n boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.08)',\n padding: 4,\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n visibility: position ? 'visible' : 'hidden',\n opacity: position ? 1 : 0,\n };\n\n return (\n <>\n <Button\n ref={triggerRef}\n type=\"button\"\n variant={variant}\n size={size}\n iconOnly={!showLabel}\n // With the label drawn, it is already the accessible name; repeating it here\n // would have a screen reader announce it twice.\n aria-label={showLabel ? undefined : label}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n // The engaged border while open is each variant's own, keyed off aria-expanded\n // in the stylesheet — pinning the outline token here stripped it from every\n // other variant.\n //\n // Button only spaces the icon it owns via its `icon` prop; this one is a child,\n // so the gap is set here rather than left to collapse against the label. `gap-2`\n // because the stylesheet is precompiled: a utility no source file already uses\n // is never emitted, and the class then does nothing with nothing to show for it.\n className={`shrink-0${showLabel ? ' gap-2' : ''}`}\n onClick={(e) => {\n e.stopPropagation();\n setOpen((v) => !v);\n }}\n onMouseDown={(e) => e.stopPropagation()}\n >\n {/* `!important` because every CustomIcon writes its size inline; `text-[…]` for a\n glyph that is not an svg at all, which the svg rule never matches. */}\n <span className={`inline-flex items-center justify-center ${trigger.iconBox}`}>\n {triggerIcon ?? <MoreHorizontalIcon size={trigger.icon} />}\n </span>\n {showLabel && <span>{label}</span>}\n </Button>\n {open &&\n createPortal(\n <div\n ref={popoverRef}\n role=\"menu\"\n {...overlayIdentity('actionmenu')}\n style={popoverStyle}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n >\n {items.length === 0 && (\n // role=\"menu\" takes menuitem children only, so the notice is one.\n <div role=\"menuitem\" aria-disabled=\"true\" style={EMPTY_ITEM_STYLE}>\n No actions available\n </div>\n )}\n {items.map((item) =>\n item.type === 'divider' ? (\n <div key={item.key} style={itemStyle(item)} />\n ) : (\n <button\n key={item.key}\n type=\"button\"\n role=\"menuitem\"\n disabled={item.disabled}\n title={item.tooltip}\n onClick={() => handleItemClick(item)}\n onMouseEnter={(e) => {\n if (!item.disabled) {\n (\n e.currentTarget as HTMLButtonElement\n ).style.background = 'rgba(0, 0, 0, 0.04)';\n }\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLButtonElement).style.background =\n 'transparent';\n }}\n style={itemStyle(item)}\n >\n {/* Leading: every caller's icon names the action itself —\n copy, open, delete — and an icon that is part of an\n item's identity belongs where the eye starts, not\n right-aligned where it reads as a status column. */}\n {item.icon && (\n <span\n style={{\n display: 'inline-flex',\n flexShrink: 0,\n color: 'var(--malachite-icon-secondary, rgb(148, 148, 148))',\n }}\n >\n {item.icon}\n </span>\n )}\n {item.label}\n </button>\n ),\n )}\n </div>,\n document.body,\n )}\n </>\n );\n};\n\nexport default ActionMenu;\n"],"names":["EMPTY_ITEM_STYLE","TRIGGER_SIZES","itemStyle","item","ActionMenu","items","label","triggerIcon","minWidth","size","showLabel","variant","trigger","open","setOpen","useState","position","setPosition","triggerRef","useRef","popoverRef","useTopLayer","updatePosition","useCallback","rect","popoverWidth","_a","popoverHeight","_b","viewportPadding","desiredLeft","maxLeft","left","spaceBelow","top","useEffect","handleScrollOrResize","handleClickOutside","e","target","popEscapeLayer","pushEscapeLayer","useLayoutEffect","handleItemClick","useInsertionEffect","ensureOverlayStyles","popoverStyle","jsxs","Fragment","Button","v","jsx","MoreHorizontalIcon","createPortal","overlayIdentity"],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { jsxs as o, jsx as e, Fragment as N } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y } from "react";
|
|
3
|
+
import { Button as I } from "./Button.js";
|
|
4
|
+
import j from "./CustomIcons/CaretDownIcon.js";
|
|
5
|
+
import k from "./CustomIcons/CaretUpIcon.js";
|
|
6
|
+
import B from "./CustomIcons/CheckCircleFilled.js";
|
|
7
|
+
import E from "./CustomIcons/ErrorCircleFilled.js";
|
|
8
|
+
import F from "./CustomIcons/InfoCircleFilled.js";
|
|
9
|
+
import S from "./CustomIcons/SparkleIcon.js";
|
|
10
|
+
import _ from "./CustomIcons/WarningCircleFilled.js";
|
|
11
|
+
import A from "./Typography/MarkdownBlock.js";
|
|
12
|
+
import { getTextColor as W } from "./Typography/textStyles.js";
|
|
13
|
+
const p = (r) => {
|
|
14
|
+
switch (r) {
|
|
15
|
+
case "info":
|
|
16
|
+
return "primary";
|
|
17
|
+
case "success":
|
|
18
|
+
return "success";
|
|
19
|
+
case "error":
|
|
20
|
+
return "error";
|
|
21
|
+
case "warning":
|
|
22
|
+
return "warning";
|
|
23
|
+
// The violet is on `.alert-assistant` itself; inheriting it keeps one definition
|
|
24
|
+
// rather than a TextColor token that only this alert would ever name.
|
|
25
|
+
case "assistant":
|
|
26
|
+
return "inherit";
|
|
27
|
+
default:
|
|
28
|
+
return "primary";
|
|
29
|
+
}
|
|
30
|
+
}, a = {
|
|
31
|
+
width: "13px",
|
|
32
|
+
height: "13px",
|
|
33
|
+
flexShrink: 0
|
|
34
|
+
}, f = {
|
|
35
|
+
info: /* @__PURE__ */ e(
|
|
36
|
+
F,
|
|
37
|
+
{
|
|
38
|
+
style: { ...a, color: "var(--malachite-alert-info-foreground)" }
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
success: /* @__PURE__ */ e(
|
|
42
|
+
B,
|
|
43
|
+
{
|
|
44
|
+
style: { ...a, color: "var(--malachite-alert-success-foreground)" }
|
|
45
|
+
}
|
|
46
|
+
),
|
|
47
|
+
error: /* @__PURE__ */ e(
|
|
48
|
+
E,
|
|
49
|
+
{
|
|
50
|
+
style: { ...a, color: "var(--malachite-alert-error-foreground)" }
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
warning: /* @__PURE__ */ e(
|
|
54
|
+
_,
|
|
55
|
+
{
|
|
56
|
+
style: { ...a, color: "var(--malachite-alert-warning-foreground)" }
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
// The same sparkle the control that produced the message carries, so the two read as
|
|
60
|
+
// one thread rather than two unrelated affordances.
|
|
61
|
+
assistant: /* @__PURE__ */ e(
|
|
62
|
+
S,
|
|
63
|
+
{
|
|
64
|
+
style: { ...a, color: "var(--malachite-alert-assistant-foreground)" }
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
}, x = ({ text: r, type: i }) => /* @__PURE__ */ e(A, { text: r, color: p(i), size: "small", omitMargin: !0 }), G = ({
|
|
68
|
+
type: r = "info",
|
|
69
|
+
message: i,
|
|
70
|
+
hasMargin: h = !0,
|
|
71
|
+
className: u,
|
|
72
|
+
children: c,
|
|
73
|
+
isExpanded: n,
|
|
74
|
+
onToggle: s
|
|
75
|
+
}) => {
|
|
76
|
+
const l = !!c, [v, g] = y(!1), t = n !== void 0 ? n : v, w = () => {
|
|
77
|
+
const m = !t;
|
|
78
|
+
n === void 0 && g(m), s == null || s(m);
|
|
79
|
+
}, d = [
|
|
80
|
+
"alert-base",
|
|
81
|
+
`alert-${r}`,
|
|
82
|
+
"flex",
|
|
83
|
+
"w-full",
|
|
84
|
+
// Ensure full width
|
|
85
|
+
l && t ? "flex-col" : "gap-2 items-center min-h-[2rem]",
|
|
86
|
+
h ? "" : "alert-no-margin",
|
|
87
|
+
"text-left",
|
|
88
|
+
l ? "rounded-xl !p-0" : "!px-2.5 !py-1.5",
|
|
89
|
+
// Slightly more vertical padding for centering
|
|
90
|
+
u
|
|
91
|
+
].filter(Boolean).join(" "), C = [
|
|
92
|
+
"flex items-center justify-between w-full",
|
|
93
|
+
l ? "gap-2 px-2.5 py-1" : "gap-2",
|
|
94
|
+
l && t ? "rounded-t-xl" : l ? "rounded-xl" : ""
|
|
95
|
+
].filter(Boolean).join(" "), b = ["w-full", "overflow-hidden"].filter(Boolean).join(" ");
|
|
96
|
+
return l ? /* @__PURE__ */ o("div", { className: `${d} alert-expandable`, children: [
|
|
97
|
+
/* @__PURE__ */ o("div", { className: C, children: [
|
|
98
|
+
/* @__PURE__ */ o("div", { className: "flex-1 flex gap-2 items-center", children: [
|
|
99
|
+
f[r],
|
|
100
|
+
/* @__PURE__ */ e("div", { className: "flex-1 flex items-center", children: /* @__PURE__ */ e("div", { className: "[&>div]:mb-0", children: /* @__PURE__ */ e(x, { text: i, type: r }) }) })
|
|
101
|
+
] }),
|
|
102
|
+
/* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ e(
|
|
103
|
+
I,
|
|
104
|
+
{
|
|
105
|
+
variant: "no-style",
|
|
106
|
+
size: "xsmall",
|
|
107
|
+
onClick: w,
|
|
108
|
+
"aria-label": t ? "Collapse" : "Expand",
|
|
109
|
+
style: {
|
|
110
|
+
color: W(p(r))
|
|
111
|
+
},
|
|
112
|
+
children: t ? /* @__PURE__ */ e(
|
|
113
|
+
k,
|
|
114
|
+
{
|
|
115
|
+
style: { minWidth: "13px", minHeight: "13px" }
|
|
116
|
+
}
|
|
117
|
+
) : /* @__PURE__ */ e(
|
|
118
|
+
j,
|
|
119
|
+
{
|
|
120
|
+
style: { minWidth: "13px", minHeight: "13px" }
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
) })
|
|
125
|
+
] }),
|
|
126
|
+
t && /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e("div", { className: b, children: /* @__PURE__ */ e("div", { className: "bg-white rounded-[var(--malachite-radius-10,10px)] shadow-[0px_1px_0px_0px_rgba(0,0,0,0.15)] border border-[#e8e8e8] border-solid mx-2 mb-2 max-h-[553px] overflow-y-auto", children: c }) }) })
|
|
127
|
+
] }) : /* @__PURE__ */ o("div", { className: d, children: [
|
|
128
|
+
f[r],
|
|
129
|
+
/* @__PURE__ */ e("div", { className: "flex-1 flex items-center", children: /* @__PURE__ */ e("div", { className: "[&>div]:mb-0", children: /* @__PURE__ */ e(x, { text: i, type: r }) }) })
|
|
130
|
+
] });
|
|
131
|
+
};
|
|
132
|
+
export {
|
|
133
|
+
G as Alert,
|
|
134
|
+
G as default
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","sources":["../../src/components/Alert.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Button, ButtonVariant } from './Button';\nimport CaretDownIcon from './CustomIcons/CaretDownIcon';\nimport CaretUpIcon from './CustomIcons/CaretUpIcon';\nimport CheckCircleFilled from './CustomIcons/CheckCircleFilled';\nimport ErrorCircleFilled from './CustomIcons/ErrorCircleFilled';\nimport InfoCircleFilled from './CustomIcons/InfoCircleFilled';\nimport SparkleIcon from './CustomIcons/SparkleIcon';\nimport WarningCircleFilled from './CustomIcons/WarningCircleFilled';\nimport MarkdownBlock from './Typography/MarkdownBlock';\nimport type { TextColor } from './Typography/Text';\nimport { getTextColor } from './Typography/textStyles';\n\nexport type AlertType = 'info' | 'success' | 'error' | 'warning' | 'assistant';\n\ninterface AlertButtonConfig {\n label: string;\n onClick: () => void;\n variant?: ButtonVariant;\n icon?: React.ReactNode;\n}\n\ninterface AlertProps {\n type?: AlertType;\n message: string;\n hasMargin?: boolean;\n className?: string;\n children?: React.ReactNode;\n isExpanded?: boolean;\n onToggle?: (expanded: boolean) => void;\n}\n\n// Distinct from the imported `getTextColor`, which maps a TextColor to a CSS variable.\n// This maps an AlertType to a TextColor token; both are used in this file.\nconst getAlertTextColor = (alertType: AlertType): TextColor => {\n switch (alertType) {\n case 'info':\n return 'primary';\n case 'success':\n return 'success';\n case 'error':\n return 'error';\n case 'warning':\n return 'warning';\n // The violet is on `.alert-assistant` itself; inheriting it keeps one definition\n // rather than a TextColor token that only this alert would ever name.\n case 'assistant':\n return 'inherit';\n default:\n return 'primary';\n }\n};\n\nconst ICON_STYLE = {\n width: '13px',\n height: '13px',\n flexShrink: 0,\n};\n\nconst AlertIcon = {\n info: (\n <InfoCircleFilled\n style={{ ...ICON_STYLE, color: 'var(--malachite-alert-info-foreground)' }}\n />\n ),\n success: (\n <CheckCircleFilled\n style={{ ...ICON_STYLE, color: 'var(--malachite-alert-success-foreground)' }}\n />\n ),\n error: (\n <ErrorCircleFilled\n style={{ ...ICON_STYLE, color: 'var(--malachite-alert-error-foreground)' }}\n />\n ),\n warning: (\n <WarningCircleFilled\n style={{ ...ICON_STYLE, color: 'var(--malachite-alert-warning-foreground)' }}\n />\n ),\n // The same sparkle the control that produced the message carries, so the two read as\n // one thread rather than two unrelated affordances.\n assistant: (\n <SparkleIcon\n style={{ ...ICON_STYLE, color: 'var(--malachite-alert-assistant-foreground)' }}\n />\n ),\n};\n\nconst SimpleTextRenderer: React.FC<{ text: string; type: AlertType }> = ({ text, type }) => {\n return <MarkdownBlock text={text} color={getAlertTextColor(type)} size=\"small\" omitMargin />;\n};\n\nconst Alert: React.FC<AlertProps> = ({\n type = 'info',\n message,\n hasMargin = true,\n className,\n children,\n isExpanded,\n onToggle,\n}) => {\n const isExpandable = !!children;\n const [internalExpanded, setInternalExpanded] = useState(false);\n\n // Use controlled state if isExpanded is provided, otherwise use internal state\n const expanded = isExpanded !== undefined ? isExpanded : internalExpanded;\n\n const handleToggle = () => {\n const newExpanded = !expanded;\n if (isExpanded === undefined) {\n // Uncontrolled mode\n setInternalExpanded(newExpanded);\n }\n // Call onToggle if provided (for both controlled and uncontrolled)\n onToggle?.(newExpanded);\n };\n\n const alertClasses = [\n 'alert-base',\n `alert-${type}`,\n 'flex',\n 'w-full', // Ensure full width\n isExpandable && expanded ? 'flex-col' : 'gap-2 items-center min-h-[2rem]',\n !hasMargin ? 'alert-no-margin' : '',\n 'text-left',\n isExpandable ? 'rounded-xl !p-0' : '!px-2.5 !py-1.5', // Slightly more vertical padding for centering\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const headerClasses = [\n 'flex items-center justify-between w-full',\n isExpandable ? 'gap-2 px-2.5 py-1' : 'gap-2',\n isExpandable && expanded ? 'rounded-t-xl' : isExpandable ? 'rounded-xl' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const expandableContentClasses = ['w-full', 'overflow-hidden'].filter(Boolean).join(' ');\n\n // Non-expandable alert (original behavior)\n if (!isExpandable) {\n return (\n <div className={alertClasses}>\n {AlertIcon[type]}\n <div className=\"flex-1 flex items-center\">\n <div className=\"[&>div]:mb-0\">\n <SimpleTextRenderer text={message} type={type} />\n </div>\n </div>\n </div>\n );\n }\n\n // Expandable alert\n return (\n <div className={`${alertClasses} alert-expandable`}>\n {/* Header section with title and expand/collapse button */}\n <div className={headerClasses}>\n <div className=\"flex-1 flex gap-2 items-center\">\n {AlertIcon[type]}\n <div className=\"flex-1 flex items-center\">\n <div className=\"[&>div]:mb-0\">\n <SimpleTextRenderer text={message} type={type} />\n </div>\n </div>\n </div>\n\n {/* Right side buttons container */}\n <div className=\"flex items-center gap-2\">\n {/* Expand/collapse button */}\n <Button\n variant=\"no-style\"\n size=\"xsmall\"\n onClick={handleToggle}\n aria-label={expanded ? 'Collapse' : 'Expand'}\n style={{\n color: getTextColor(getAlertTextColor(type)),\n }}\n >\n {expanded ? (\n <CaretUpIcon\n style={{ minWidth: '13px', minHeight: '13px' }}\n />\n ) : (\n <CaretDownIcon\n style={{ minWidth: '13px', minHeight: '13px' }}\n />\n )}\n </Button>\n </div>\n </div>\n\n {/* Expandable content */}\n {expanded && (\n <>\n <div className={expandableContentClasses}>\n <div className=\"bg-white rounded-[var(--malachite-radius-10,10px)] shadow-[0px_1px_0px_0px_rgba(0,0,0,0.15)] border border-[#e8e8e8] border-solid mx-2 mb-2 max-h-[553px] overflow-y-auto\">\n {children}\n </div>\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport default Alert;\nexport { Alert };\nexport type { AlertButtonConfig };\n"],"names":["getAlertTextColor","alertType","ICON_STYLE","AlertIcon","jsx","InfoCircleFilled","CheckCircleFilled","ErrorCircleFilled","WarningCircleFilled","SparkleIcon","SimpleTextRenderer","text","type","MarkdownBlock","Alert","message","hasMargin","className","children","isExpanded","onToggle","isExpandable","internalExpanded","setInternalExpanded","useState","expanded","handleToggle","newExpanded","alertClasses","headerClasses","expandableContentClasses","jsxs","Button","getTextColor","CaretUpIcon","CaretDownIcon","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as t, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar as p } from "./Avatar.js";
|
|
3
|
+
import { Tag as g } from "./Tag.js";
|
|
4
|
+
import { Typography as m } from "./Typography/index.js";
|
|
5
|
+
import { getFontWeight as d, getFontSize as u } from "./Typography/textStyles.js";
|
|
6
|
+
const j = ({
|
|
7
|
+
src: i,
|
|
8
|
+
name: e,
|
|
9
|
+
showName: f = !0,
|
|
10
|
+
size: r = 24,
|
|
11
|
+
nameSize: o = "medium",
|
|
12
|
+
nameWeight: a = "normal",
|
|
13
|
+
version: n,
|
|
14
|
+
truncate: c = !1,
|
|
15
|
+
className: s = ""
|
|
16
|
+
}) => {
|
|
17
|
+
const h = r <= 18 ? "gap-2" : "gap-3";
|
|
18
|
+
return f ? (
|
|
19
|
+
// `max-w-full` is what makes `truncate` work — without it the box is floored at the name's min-content width.
|
|
20
|
+
/* @__PURE__ */ l("span", { className: `inline-flex items-center ${h} max-w-full ${s}`.trim(), children: [
|
|
21
|
+
/* @__PURE__ */ t(p, { src: i, name: e, size: r, shape: "square", className: "shrink-0" }),
|
|
22
|
+
/* @__PURE__ */ l("span", { className: "inline-flex items-center gap-2 min-w-0", children: [
|
|
23
|
+
c ? /* @__PURE__ */ t(
|
|
24
|
+
m.EllipsisText,
|
|
25
|
+
{
|
|
26
|
+
maxWidth: "100%",
|
|
27
|
+
tooltip: e,
|
|
28
|
+
style: {
|
|
29
|
+
fontSize: u(o),
|
|
30
|
+
fontWeight: d(a)
|
|
31
|
+
},
|
|
32
|
+
children: e
|
|
33
|
+
}
|
|
34
|
+
) : /* @__PURE__ */ t(m.Text, { size: o, fontWeight: a, children: e }),
|
|
35
|
+
n ? /* @__PURE__ */ t("span", { className: "shrink-0", children: /* @__PURE__ */ t(g, { value: n, textTransform: "none", paddingSize: "compact" }) }) : null
|
|
36
|
+
] })
|
|
37
|
+
] })
|
|
38
|
+
) : /* @__PURE__ */ t(p, { src: i, name: e, size: r, shape: "square", className: s });
|
|
39
|
+
};
|
|
40
|
+
export {
|
|
41
|
+
j as default
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=AppLogo.js.map
|