@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,103 @@
|
|
|
1
|
+
import { jsxs as t, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as m, useState as p, useEffect as $, Fragment as I } from "react";
|
|
3
|
+
import { PILL_TRANSITION_MS as A, PILL_SHADOW as C, PILL_SURFACE as g, PILL_MUTED_TEXT as S, PILL_DIVIDER as k, PILL_BUTTON_BASE as O, PILL_BUTTON_CLASS as R, PILL_NOTICE_SHADOW as D, PILL_NOTICE_SLEEVE as H, PILL_NOTICE_TEXT as M, PILL_TRACK_CLASS as j, PILL_SHEET_ID as B, PILL_SHEET_CSS as F } from "./selectionBarChrome.js";
|
|
4
|
+
import { useAdoptedStyleSheet as U } from "./useAdoptedStyleSheet.js";
|
|
5
|
+
const T = (r) => String(r.value) === "" ? r.label : `${r.value} ${r.label}`, _ = (r) => r.map(T).join(", "), V = (r, n) => r === void 0 || r === "" ? _(n) : `${r} ${_(n)}`.trim(), z = ({
|
|
6
|
+
open: r,
|
|
7
|
+
counts: n,
|
|
8
|
+
actions: b,
|
|
9
|
+
placement: v = "sticky",
|
|
10
|
+
notice: d,
|
|
11
|
+
"aria-label": N = "Pending changes",
|
|
12
|
+
"aria-labelledby": L,
|
|
13
|
+
className: E = ""
|
|
14
|
+
}) => {
|
|
15
|
+
const o = m(null), [P, f] = p(r), [s, h] = p(r), a = m(null), i = m(null);
|
|
16
|
+
U(o, F, B), $(() => {
|
|
17
|
+
var e;
|
|
18
|
+
if (r)
|
|
19
|
+
f(!0), i.current && (clearTimeout(i.current), i.current = null), a.current = requestAnimationFrame(() => {
|
|
20
|
+
a.current = null, h(!0);
|
|
21
|
+
});
|
|
22
|
+
else {
|
|
23
|
+
const c = document.activeElement;
|
|
24
|
+
c instanceof HTMLElement && ((e = o.current) != null && e.contains(c)) && c.blur(), h(!1), i.current = setTimeout(() => {
|
|
25
|
+
i.current = null, f(!1);
|
|
26
|
+
}, A);
|
|
27
|
+
}
|
|
28
|
+
return () => {
|
|
29
|
+
a.current !== null && (cancelAnimationFrame(a.current), a.current = null), i.current && (clearTimeout(i.current), i.current = null);
|
|
30
|
+
};
|
|
31
|
+
}, [r]);
|
|
32
|
+
const x = v === "sticky", u = d !== void 0 && d !== "", y = /* @__PURE__ */ t("div", { className: g, style: { boxShadow: C }, children: [
|
|
33
|
+
n.length > 0 && /* @__PURE__ */ l(
|
|
34
|
+
"p",
|
|
35
|
+
{
|
|
36
|
+
"aria-hidden": "true",
|
|
37
|
+
className: "m-0 flex items-center gap-2 text-[13px] leading-[1.6] tracking-[0.13px]",
|
|
38
|
+
children: n.map((e, c) => /* @__PURE__ */ t(I, { children: [
|
|
39
|
+
c > 0 && /* @__PURE__ */ l("span", { className: S, children: "•" }),
|
|
40
|
+
/* @__PURE__ */ l("span", { children: T(e) })
|
|
41
|
+
] }, e.label))
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
b.map((e) => /* @__PURE__ */ t(I, { children: [
|
|
45
|
+
e.dividerBefore && /* @__PURE__ */ l("span", { "aria-hidden": "true", className: `${k} ${S}`, children: "|" }),
|
|
46
|
+
/* @__PURE__ */ t(
|
|
47
|
+
"button",
|
|
48
|
+
{
|
|
49
|
+
type: "button",
|
|
50
|
+
disabled: e.disabled,
|
|
51
|
+
tabIndex: s ? void 0 : -1,
|
|
52
|
+
onClick: e.onClick,
|
|
53
|
+
className: `${O} ${R}--${e.emphasis ?? "secondary"}`,
|
|
54
|
+
children: [
|
|
55
|
+
e.icon && e.iconPosition !== "end" && /* @__PURE__ */ l("span", { "aria-hidden": "true", className: "flex items-center", children: e.icon }),
|
|
56
|
+
e.label,
|
|
57
|
+
e.icon && e.iconPosition === "end" && /* @__PURE__ */ l("span", { "aria-hidden": "true", className: "flex items-center", children: e.icon })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
] }, e.label))
|
|
62
|
+
] });
|
|
63
|
+
return (
|
|
64
|
+
// The live region has to exist BEFORE its text changes or the first announcement is dropped.
|
|
65
|
+
/* @__PURE__ */ t(
|
|
66
|
+
"div",
|
|
67
|
+
{
|
|
68
|
+
ref: o,
|
|
69
|
+
className: `${j} pointer-events-none flex w-full justify-center ${x ? "sticky bottom-6 z-30" : "relative"} ${E}`.trim(),
|
|
70
|
+
style: { opacity: s ? 1 : 0 },
|
|
71
|
+
children: [
|
|
72
|
+
/* @__PURE__ */ l("p", { className: "sr-only", role: "status", children: s ? V(d, n) : "" }),
|
|
73
|
+
P && /* @__PURE__ */ l(
|
|
74
|
+
"div",
|
|
75
|
+
{
|
|
76
|
+
role: "group",
|
|
77
|
+
"aria-label": L ? void 0 : N,
|
|
78
|
+
"aria-labelledby": L,
|
|
79
|
+
"aria-hidden": s ? void 0 : !0,
|
|
80
|
+
className: s ? "pointer-events-auto" : void 0,
|
|
81
|
+
children: /* @__PURE__ */ t(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
className: u ? H : void 0,
|
|
85
|
+
style: u ? { boxShadow: D } : void 0,
|
|
86
|
+
children: [
|
|
87
|
+
u && /* @__PURE__ */ l("p", { "aria-hidden": "true", className: M, children: d }),
|
|
88
|
+
y
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
export {
|
|
100
|
+
z as SelectionBar,
|
|
101
|
+
z as default
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=SelectionBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionBar.js","sources":["../../src/components/SelectionBar.tsx"],"sourcesContent":["import React, { Fragment, useEffect, useRef, useState } from 'react';\nimport {\n PILL_BUTTON_BASE,\n PILL_BUTTON_CLASS,\n PILL_DIVIDER,\n PILL_MUTED_TEXT,\n PILL_NOTICE_SHADOW,\n PILL_NOTICE_SLEEVE,\n PILL_NOTICE_TEXT,\n PILL_SHADOW,\n PILL_SHEET_CSS,\n PILL_SHEET_ID,\n PILL_SURFACE,\n PILL_TRACK_CLASS,\n PILL_TRANSITION_MS,\n type SelectionBarCount,\n type SelectionBarEmphasis,\n} from './selectionBarChrome';\nimport { useAdoptedStyleSheet } from './useAdoptedStyleSheet';\n\nexport type { SelectionBarCount, SelectionBarEmphasis };\n\nexport interface SelectionBarAction {\n label: string;\n onClick: () => void;\n /** 'primary' commits the pending change; 'secondary' (the default) is a filled chip;\n * 'quiet' is unfilled and takes a wash on hover. */\n emphasis?: SelectionBarEmphasis;\n icon?: React.ReactNode;\n iconPosition?: 'start' | 'end';\n disabled?: boolean;\n /** Renders a separator glyph before this action. */\n dividerBefore?: boolean;\n}\n\nexport interface SelectionBarProps {\n /** Drives the mount: the bar animates in on true and animates out on false. */\n open: boolean;\n counts: SelectionBarCount[];\n actions: SelectionBarAction[];\n /** 'sticky' keeps the bar in view while its container scrolls; render it as the last child\n * of that content, with no `overflow: hidden` on any ancestor. */\n placement?: 'sticky' | 'inline';\n /**\n * Wraps the bar in a warning sleeve carrying this message, for state the bar is\n * reporting rather than an action it offers — e.g. that the selection is unsaved.\n * It leads the announcement. An empty string renders no sleeve.\n */\n notice?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n}\n\n/** A count reads as one phrase; an empty `value` carries a bare message instead. */\nconst countText = (count: SelectionBarCount): string =>\n String(count.value) === '' ? count.label : `${count.value} ${count.label}`;\n\nconst summarise = (counts: SelectionBarCount[]): string => counts.map(countText).join(', ');\n\n/** A notice is the reason the bar is up, so it leads the announcement. */\nconst announcement = (notice: string | undefined, counts: SelectionBarCount[]): string =>\n notice === undefined || notice === ''\n ? summarise(counts)\n : `${notice} ${summarise(counts)}`.trim();\n\n/**\n * A bar reporting a pending, not-yet-written selection and the actions that resolve it. Every\n * action destroys the button just pressed, so an `onClick` that ends the pending state must\n * also move focus.\n */\nexport const SelectionBar: React.FC<SelectionBarProps> = ({\n open,\n counts,\n actions,\n placement = 'sticky',\n notice,\n 'aria-label': ariaLabel = 'Pending changes',\n 'aria-labelledby': ariaLabelledBy,\n className = '',\n}) => {\n const trackRef = useRef<HTMLDivElement>(null);\n const [isMounted, setIsMounted] = useState(open);\n const [isVisible, setIsVisible] = useState(open);\n const frameRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useAdoptedStyleSheet(trackRef, PILL_SHEET_CSS, PILL_SHEET_ID);\n\n useEffect(() => {\n if (open) {\n setIsMounted(true);\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n frameRef.current = requestAnimationFrame(() => {\n frameRef.current = null;\n setIsVisible(true);\n });\n } else {\n // The browser refuses `aria-hidden` on a subtree still holding focus, so a caller\n // that forgets to move it would trap the keyboard here.\n const active = document.activeElement;\n if (active instanceof HTMLElement && trackRef.current?.contains(active)) {\n active.blur();\n }\n setIsVisible(false);\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n setIsMounted(false);\n }, PILL_TRANSITION_MS);\n }\n return () => {\n if (frameRef.current !== null) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n }\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [open]);\n\n const isSticky = placement === 'sticky';\n const hasNotice = notice !== undefined && notice !== '';\n\n const pill = (\n <div className={PILL_SURFACE} style={{ boxShadow: PILL_SHADOW }}>\n {counts.length > 0 && (\n <p\n aria-hidden=\"true\"\n className=\"m-0 flex items-center gap-2 text-[13px] leading-[1.6] tracking-[0.13px]\"\n >\n {counts.map((count, index) => (\n <Fragment key={count.label}>\n {index > 0 && <span className={PILL_MUTED_TEXT}>•</span>}\n <span>{countText(count)}</span>\n </Fragment>\n ))}\n </p>\n )}\n {actions.map((action) => (\n <Fragment key={action.label}>\n {action.dividerBefore && (\n <span aria-hidden=\"true\" className={`${PILL_DIVIDER} ${PILL_MUTED_TEXT}`}>\n |\n </span>\n )}\n <button\n type=\"button\"\n disabled={action.disabled}\n tabIndex={isVisible ? undefined : -1}\n onClick={action.onClick}\n className={`${PILL_BUTTON_BASE} ${PILL_BUTTON_CLASS}--${action.emphasis ?? 'secondary'}`}\n >\n {action.icon && action.iconPosition !== 'end' && (\n <span aria-hidden=\"true\" className=\"flex items-center\">\n {action.icon}\n </span>\n )}\n {action.label}\n {action.icon && action.iconPosition === 'end' && (\n <span aria-hidden=\"true\" className=\"flex items-center\">\n {action.icon}\n </span>\n )}\n </button>\n </Fragment>\n ))}\n </div>\n );\n\n return (\n // The live region has to exist BEFORE its text changes or the first announcement is dropped.\n <div\n ref={trackRef}\n className={`${PILL_TRACK_CLASS} pointer-events-none flex w-full justify-center ${isSticky ? 'sticky bottom-6 z-30' : 'relative'} ${className}`.trim()}\n style={{ opacity: isVisible ? 1 : 0 }}\n >\n <p className=\"sr-only\" role=\"status\">\n {isVisible ? announcement(notice, counts) : ''}\n </p>\n {isMounted && (\n <div\n role=\"group\"\n aria-label={ariaLabelledBy ? undefined : ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-hidden={isVisible ? undefined : true}\n className={isVisible ? 'pointer-events-auto' : undefined}\n >\n {/* Keep the wrapper stable: changing the pill's parent remounts it and drops focus\n from the action that raised the notice. */}\n <div\n className={hasNotice ? PILL_NOTICE_SLEEVE : undefined}\n style={hasNotice ? { boxShadow: PILL_NOTICE_SHADOW } : undefined}\n >\n {hasNotice && (\n <p aria-hidden=\"true\" className={PILL_NOTICE_TEXT}>\n {notice}\n </p>\n )}\n {pill}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default SelectionBar;\n"],"names":["countText","count","summarise","counts","announcement","notice","SelectionBar","open","actions","placement","ariaLabel","ariaLabelledBy","className","trackRef","useRef","isMounted","setIsMounted","useState","isVisible","setIsVisible","frameRef","timerRef","useAdoptedStyleSheet","PILL_SHEET_CSS","PILL_SHEET_ID","useEffect","active","_a","PILL_TRANSITION_MS","isSticky","hasNotice","pill","PILL_SURFACE","PILL_SHADOW","jsx","index","Fragment","PILL_MUTED_TEXT","action","PILL_DIVIDER","jsxs","PILL_BUTTON_BASE","PILL_BUTTON_CLASS","PILL_TRACK_CLASS","PILL_NOTICE_SLEEVE","PILL_NOTICE_SHADOW","PILL_NOTICE_TEXT"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useId as m } from "react";
|
|
3
|
+
const x = ({
|
|
4
|
+
label: c,
|
|
5
|
+
badge: d,
|
|
6
|
+
description: e,
|
|
7
|
+
control: a,
|
|
8
|
+
className: l = ""
|
|
9
|
+
}) => {
|
|
10
|
+
const s = m(), i = `${s}-label`, n = e ? `${s}-description` : void 0;
|
|
11
|
+
return /* @__PURE__ */ t("div", { className: l, children: [
|
|
12
|
+
/* @__PURE__ */ t("div", { className: "flex min-h-11 items-center gap-3 rounded-lg border border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] px-3 py-2", children: [
|
|
13
|
+
/* @__PURE__ */ t("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
14
|
+
/* @__PURE__ */ r(
|
|
15
|
+
"span",
|
|
16
|
+
{
|
|
17
|
+
id: i,
|
|
18
|
+
className: "truncate text-sm text-[var(--malachite-text-primary)]",
|
|
19
|
+
children: c
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
d
|
|
23
|
+
] }),
|
|
24
|
+
/* @__PURE__ */ r("span", { className: "flex shrink-0 items-center", children: typeof a == "function" ? a({ labelId: i, descriptionId: n }) : a })
|
|
25
|
+
] }),
|
|
26
|
+
e && /* @__PURE__ */ r(
|
|
27
|
+
"p",
|
|
28
|
+
{
|
|
29
|
+
id: n,
|
|
30
|
+
className: "m-0 pt-2 text-[13px] leading-[1.5] text-[var(--malachite-text-secondary)]",
|
|
31
|
+
children: e
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
] });
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
x as SettingRow,
|
|
38
|
+
x as default
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=SettingRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingRow.js","sources":["../../src/components/SettingRow.tsx"],"sourcesContent":["import React, { useId } from 'react';\n\n/** The ids a control needs to name and describe itself from the row's own text. */\nexport interface SettingRowControlIds {\n labelId: string;\n descriptionId?: string;\n}\n\nexport interface SettingRowProps {\n label: string;\n /** Small badge after the label, e.g. a `Tag`. */\n badge?: React.ReactNode;\n /** Explanation rendered under the row, outside its border. */\n description?: React.ReactNode;\n /** The control on the trailing edge. Passed the row's ids: a control `<label htmlFor>`\n * cannot reach must name itself with `aria-labelledby`. */\n control: React.ReactNode | ((ids: SettingRowControlIds) => React.ReactNode);\n className?: string;\n}\n\nexport const SettingRow: React.FC<SettingRowProps> = ({\n label,\n badge,\n description,\n control,\n className = '',\n}) => {\n const instanceId = useId();\n const labelId = `${instanceId}-label`;\n const descriptionId = description ? `${instanceId}-description` : undefined;\n\n return (\n <div className={className}>\n <div className=\"flex min-h-11 items-center gap-3 rounded-lg border border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] px-3 py-2\">\n <span className=\"flex min-w-0 flex-1 items-center gap-2\">\n <span\n id={labelId}\n className=\"truncate text-sm text-[var(--malachite-text-primary)]\"\n >\n {label}\n </span>\n {badge}\n </span>\n <span className=\"flex shrink-0 items-center\">\n {typeof control === 'function' ? control({ labelId, descriptionId }) : control}\n </span>\n </div>\n {description && (\n <p\n id={descriptionId}\n className=\"m-0 pt-2 text-[13px] leading-[1.5] text-[var(--malachite-text-secondary)]\"\n >\n {description}\n </p>\n )}\n </div>\n );\n};\n\nexport default SettingRow;\n"],"names":["SettingRow","label","badge","description","control","className","instanceId","useId","labelId","descriptionId","jsxs","jsx"],"mappings":";;AAoBO,MAAMA,IAAwC,CAAC;AAAA,EAClD,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAChB,MAAM;AACF,QAAMC,IAAaC,EAAA,GACbC,IAAU,GAAGF,CAAU,UACvBG,IAAgBN,IAAc,GAAGG,CAAU,iBAAiB;AAElE,SACI,gBAAAI,EAAC,SAAI,WAAAL,GACD,UAAA;AAAA,IAAA,gBAAAK,EAAC,OAAA,EAAI,WAAU,4IACX,UAAA;AAAA,MAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,0CACZ,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,IAAIH;AAAA,YACJ,WAAU;AAAA,YAET,UAAAP;AAAA,UAAA;AAAA,QAAA;AAAA,QAEJC;AAAA,MAAA,GACL;AAAA,MACA,gBAAAS,EAAC,QAAA,EAAK,WAAU,8BACX,UAAA,OAAOP,KAAY,aAAaA,EAAQ,EAAE,SAAAI,GAAS,eAAAC,EAAA,CAAe,IAAIL,EAAA,CAC3E;AAAA,IAAA,GACJ;AAAA,IACCD,KACG,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,IAAIF;AAAA,QACJ,WAAU;AAAA,QAET,UAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GAER;AAER;"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { jsx as f, jsxs as d, Fragment as u } from "react/jsx-runtime";
|
|
2
|
+
import { useState as h, useRef as b, useEffect as p } from "react";
|
|
3
|
+
import { createPortal as y } from "react-dom";
|
|
4
|
+
import { ensureInterFontFace as g } from "../inter-font.js";
|
|
5
|
+
const s = "malachite-form-styles", x = `
|
|
6
|
+
/* Malachite Form Styles - for components outside Shadow DOM */
|
|
7
|
+
|
|
8
|
+
.malachite-form-container {
|
|
9
|
+
font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
10
|
+
font-size: 14px;
|
|
11
|
+
line-height: 1.5;
|
|
12
|
+
color: #374151;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.malachite-form {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.malachite-form .space-y-4 > * + * {
|
|
21
|
+
margin-top: 1rem;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Basic input styling that matches Tailwind defaults */
|
|
25
|
+
.malachite-form input,
|
|
26
|
+
.malachite-form textarea,
|
|
27
|
+
.malachite-form select {
|
|
28
|
+
appearance: none;
|
|
29
|
+
background-color: #ffffff;
|
|
30
|
+
border: 1px solid #d1d5db;
|
|
31
|
+
border-radius: 0.375rem;
|
|
32
|
+
padding: 0.5rem 0.75rem;
|
|
33
|
+
font-size: 0.875rem;
|
|
34
|
+
line-height: 1.25rem;
|
|
35
|
+
color: #111827;
|
|
36
|
+
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
37
|
+
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
38
|
+
width: 100%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.malachite-form input:focus,
|
|
42
|
+
.malachite-form textarea:focus,
|
|
43
|
+
.malachite-form select:focus {
|
|
44
|
+
outline: none;
|
|
45
|
+
border-color: #3b82f6;
|
|
46
|
+
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.malachite-form input:disabled,
|
|
50
|
+
.malachite-form textarea:disabled,
|
|
51
|
+
.malachite-form select:disabled {
|
|
52
|
+
background-color: #f9fafb;
|
|
53
|
+
color: #6b7280;
|
|
54
|
+
cursor: not-allowed;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.malachite-form button {
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
padding: 0.5rem 1rem;
|
|
62
|
+
font-size: 0.875rem;
|
|
63
|
+
font-weight: 500;
|
|
64
|
+
line-height: 1.25rem;
|
|
65
|
+
border-radius: 0.375rem;
|
|
66
|
+
border: 1px solid transparent;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
transition: all 0.15s ease-in-out;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.malachite-form button[type="submit"] {
|
|
72
|
+
background-color: #3b82f6;
|
|
73
|
+
color: #ffffff;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.malachite-form button[type="submit"]:hover {
|
|
77
|
+
background-color: #2563eb;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.malachite-form button[type="button"] {
|
|
81
|
+
background-color: #ffffff;
|
|
82
|
+
color: #374151;
|
|
83
|
+
border-color: #d1d5db;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.malachite-form button[type="button"]:hover {
|
|
87
|
+
background-color: #f9fafb;
|
|
88
|
+
border-color: #9ca3af;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.malachite-form button:disabled {
|
|
92
|
+
opacity: 0.5;
|
|
93
|
+
cursor: not-allowed;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Dark mode support */
|
|
97
|
+
@media (prefers-color-scheme: dark) {
|
|
98
|
+
.malachite-form-container {
|
|
99
|
+
color: #f3f4f6;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.malachite-form input,
|
|
103
|
+
.malachite-form textarea,
|
|
104
|
+
.malachite-form select {
|
|
105
|
+
background-color: #1f2937;
|
|
106
|
+
border-color: #374151;
|
|
107
|
+
color: #f3f4f6;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.malachite-form input:focus,
|
|
111
|
+
.malachite-form textarea:focus,
|
|
112
|
+
.malachite-form select:focus {
|
|
113
|
+
border-color: #60a5fa;
|
|
114
|
+
box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.1);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.malachite-form button[type="button"] {
|
|
118
|
+
background-color: #374151;
|
|
119
|
+
color: #f3f4f6;
|
|
120
|
+
border-color: #4b5563;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.malachite-form button[type="button"]:hover {
|
|
124
|
+
background-color: #4b5563;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
`, w = () => {
|
|
128
|
+
if (typeof document > "u" || !document.head || document.getElementById(s))
|
|
129
|
+
return;
|
|
130
|
+
const o = document.createElement("style");
|
|
131
|
+
o.id = s, o.textContent = x, document.head.appendChild(o);
|
|
132
|
+
}, F = ({ children: o, className: n = "" }) => {
|
|
133
|
+
const [l, c] = h(null), t = b(null);
|
|
134
|
+
return p(() => {
|
|
135
|
+
if (g(), w(), t.current) {
|
|
136
|
+
let r = t.current, i = !1;
|
|
137
|
+
for (; r; ) {
|
|
138
|
+
const m = r.getRootNode();
|
|
139
|
+
if (m !== document)
|
|
140
|
+
i = !0, r = m.host;
|
|
141
|
+
else {
|
|
142
|
+
const a = r.parentElement || document.body;
|
|
143
|
+
if (i) {
|
|
144
|
+
const e = document.createElement("div");
|
|
145
|
+
return e.className = `malachite-escape-container ${n}`, e.style.cssText = `
|
|
146
|
+
position: relative;
|
|
147
|
+
z-index: 1000;
|
|
148
|
+
`, a.appendChild(e), c(e), () => {
|
|
149
|
+
e.parentElement && e.parentElement.removeChild(e);
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
c(a);
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}, [n]), l ? /* @__PURE__ */ d(u, { children: [
|
|
158
|
+
/* @__PURE__ */ f("div", { ref: t, style: { display: "none" } }),
|
|
159
|
+
y(o, l)
|
|
160
|
+
] }) : /* @__PURE__ */ f("div", { ref: t, style: { display: "none" } });
|
|
161
|
+
};
|
|
162
|
+
export {
|
|
163
|
+
F as ShadowEscape,
|
|
164
|
+
F as default
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=ShadowEscape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShadowEscape.js","sources":["../../src/components/ShadowEscape.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ensureInterFontFace } from '../inter-font';\n\ninterface ShadowEscapeProps {\n children: React.ReactNode;\n className?: string;\n}\n\nconst FORM_STYLES_ID = 'malachite-form-styles';\n\n// Form styles as a string - this ensures it works in all build environments\nconst formStyles = `\n/* Malachite Form Styles - for components outside Shadow DOM */\n\n.malachite-form-container {\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: #374151;\n}\n\n.malachite-form {\n display: flex;\n flex-direction: column;\n}\n\n.malachite-form .space-y-4 > * + * {\n margin-top: 1rem;\n}\n\n/* Basic input styling that matches Tailwind defaults */\n.malachite-form input,\n.malachite-form textarea,\n.malachite-form select {\n appearance: none;\n background-color: #ffffff;\n border: 1px solid #d1d5db;\n border-radius: 0.375rem;\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: #111827;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n width: 100%;\n}\n\n.malachite-form input:focus,\n.malachite-form textarea:focus,\n.malachite-form select:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.malachite-form input:disabled,\n.malachite-form textarea:disabled,\n.malachite-form select:disabled {\n background-color: #f9fafb;\n color: #6b7280;\n cursor: not-allowed;\n}\n\n.malachite-form button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1.25rem;\n border-radius: 0.375rem;\n border: 1px solid transparent;\n cursor: pointer;\n transition: all 0.15s ease-in-out;\n}\n\n.malachite-form button[type=\"submit\"] {\n background-color: #3b82f6;\n color: #ffffff;\n}\n\n.malachite-form button[type=\"submit\"]:hover {\n background-color: #2563eb;\n}\n\n.malachite-form button[type=\"button\"] {\n background-color: #ffffff;\n color: #374151;\n border-color: #d1d5db;\n}\n\n.malachite-form button[type=\"button\"]:hover {\n background-color: #f9fafb;\n border-color: #9ca3af;\n}\n\n.malachite-form button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Dark mode support */\n@media (prefers-color-scheme: dark) {\n .malachite-form-container {\n color: #f3f4f6;\n }\n \n .malachite-form input,\n .malachite-form textarea,\n .malachite-form select {\n background-color: #1f2937;\n border-color: #374151;\n color: #f3f4f6;\n }\n \n .malachite-form input:focus,\n .malachite-form textarea:focus,\n .malachite-form select:focus {\n border-color: #60a5fa;\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.1);\n }\n \n .malachite-form button[type=\"button\"] {\n background-color: #374151;\n color: #f3f4f6;\n border-color: #4b5563;\n }\n \n .malachite-form button[type=\"button\"]:hover {\n background-color: #4b5563;\n }\n}\n`;\n\n/**\n * Adds the escaped-form stylesheet to <head> unless it is already there. The check reads\n * the DOM, not a module-level latch: a latch goes stale the moment anything removes the\n * <style> (a host app clearing <head> between routes, a test resetting the document), and\n * the styles would then never be re-added.\n */\nconst ensureFormStyles = (): void => {\n if (typeof document === 'undefined' || !document.head) {\n return;\n }\n if (document.getElementById(FORM_STYLES_ID)) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.id = FORM_STYLES_ID;\n styleElement.textContent = formStyles;\n document.head.appendChild(styleElement);\n};\n\n/**\n * ShadowEscape renders its children OUTSIDE the Shadow DOM to avoid React hook issues.\n * This is used internally by form components to escape Shadow DOM boundaries.\n * \n * The component finds the nearest non-shadow DOM ancestor and renders there.\n */\nexport const ShadowEscape: React.FC<ShadowEscapeProps> = ({ children, className = '' }) => {\n const [portalContainer, setPortalContainer] = useState<HTMLElement | null>(null);\n const markerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n // Inter @font-face must live in the document so escaped (non-shadow) forms can use it.\n ensureInterFontFace();\n\n ensureFormStyles();\n\n if (markerRef.current) {\n // Find the closest non-shadow DOM ancestor\n let element: Node | null = markerRef.current;\n let isInShadowDOM = false;\n\n // Traverse up the DOM tree to find a non-shadow root container\n while (element) {\n const rootNode = element.getRootNode();\n\n // Check if we're in a shadow root\n if (rootNode !== document) {\n isInShadowDOM = true;\n // We're in a shadow root, find its host\n const shadowRoot = rootNode as ShadowRoot;\n element = shadowRoot.host;\n } else {\n // We found a regular DOM element, use its parent\n const parentElement = element.parentElement || document.body;\n\n if (isInShadowDOM) {\n // Create a container for the escaped content\n const container = document.createElement('div');\n container.className = `malachite-escape-container ${className}`;\n container.style.cssText = `\n position: relative;\n z-index: 1000;\n `;\n\n parentElement.appendChild(container);\n setPortalContainer(container);\n\n // Cleanup function\n return () => {\n if (container.parentElement) {\n container.parentElement.removeChild(container);\n }\n };\n }\n // We're not in Shadow DOM, just render normally\n setPortalContainer(parentElement);\n break;\n }\n }\n }\n }, [className]);\n\n if (!portalContainer) {\n // Render a marker in Shadow DOM while we find the escape container\n return <div ref={markerRef} style={{ display: 'none' }} />;\n }\n\n // Render children outside Shadow DOM\n return (\n <>\n <div ref={markerRef} style={{ display: 'none' }} />\n {createPortal(children, portalContainer)}\n </>\n );\n};\n\nexport default ShadowEscape; "],"names":["FORM_STYLES_ID","formStyles","ensureFormStyles","styleElement","ShadowEscape","children","className","portalContainer","setPortalContainer","useState","markerRef","useRef","useEffect","ensureInterFontFace","element","isInShadowDOM","rootNode","parentElement","container","jsxs","Fragment","jsx","createPortal"],"mappings":";;;;AASA,MAAMA,IAAiB,yBAGjBC,IAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAkIbC,IAAmB,MAAY;AAIjC,MAHI,OAAO,WAAa,OAAe,CAAC,SAAS,QAG7C,SAAS,eAAeF,CAAc;AACtC;AAEJ,QAAMG,IAAe,SAAS,cAAc,OAAO;AACnD,EAAAA,EAAa,KAAKH,GAClBG,EAAa,cAAcF,GAC3B,SAAS,KAAK,YAAYE,CAAY;AAC1C,GAQaC,IAA4C,CAAC,EAAE,UAAAC,GAAU,WAAAC,IAAY,SAAS;AACvF,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAA6B,IAAI,GACzEC,IAAYC,EAAuB,IAAI;AAsD7C,SApDAC,EAAU,MAAM;AAMZ,QAJAC,EAAA,GAEAX,EAAA,GAEIQ,EAAU,SAAS;AAEnB,UAAII,IAAuBJ,EAAU,SACjCK,IAAgB;AAGpB,aAAOD,KAAS;AACZ,cAAME,IAAWF,EAAQ,YAAA;AAGzB,YAAIE,MAAa;AACb,UAAAD,IAAgB,IAGhBD,IADmBE,EACE;AAAA,aAClB;AAEH,gBAAMC,IAAgBH,EAAQ,iBAAiB,SAAS;AAExD,cAAIC,GAAe;AAEf,kBAAMG,IAAY,SAAS,cAAc,KAAK;AAC9C,mBAAAA,EAAU,YAAY,8BAA8BZ,CAAS,IAC7DY,EAAU,MAAM,UAAU;AAAA;AAAA;AAAA,2BAK1BD,EAAc,YAAYC,CAAS,GACnCV,EAAmBU,CAAS,GAGrB,MAAM;AACT,cAAIA,EAAU,iBACVA,EAAU,cAAc,YAAYA,CAAS;AAAA,YAErD;AAAA,UACJ;AAEA,UAAAV,EAAmBS,CAAa;AAChC;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,GAAG,CAACX,CAAS,CAAC,GAETC,IAOD,gBAAAY,EAAAC,GAAA,EACI,UAAA;AAAA,IAAA,gBAAAC,EAAC,SAAI,KAAKX,GAAW,OAAO,EAAE,SAAS,UAAU;AAAA,IAChDY,EAAajB,GAAUE,CAAe;AAAA,EAAA,GAC3C,IARO,gBAAAc,EAAC,SAAI,KAAKX,GAAW,OAAO,EAAE,SAAS,UAAU;AAUhE;"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { useState as T, useRef as s, useEffect as V } from "react";
|
|
3
|
+
import { createPortal as L } from "react-dom";
|
|
4
|
+
import { ShadowRootWrapper as M } from "../ShadowRootWrapper.js";
|
|
5
|
+
import P from "./CustomIcons/ArrowLeftIcon.js";
|
|
6
|
+
import j from "./CustomIcons/DismissIcon.js";
|
|
7
|
+
import { useOverlayBehaviour as D, OVERLAY_ICON_BUTTON_CLASSES as I } from "./overlayBehaviour.js";
|
|
8
|
+
import { OVERLAY_ELEVATED_ATTR as F, overlayIdentity as R } from "./portalOverlay.js";
|
|
9
|
+
const S = 200, X = (a) => typeof a == "number" ? `${a}px` : a, K = ({
|
|
10
|
+
open: a,
|
|
11
|
+
onClose: n,
|
|
12
|
+
title: i,
|
|
13
|
+
subtitle: o,
|
|
14
|
+
titleExtra: c,
|
|
15
|
+
description: d,
|
|
16
|
+
headerDivider: w = !1,
|
|
17
|
+
icon: m,
|
|
18
|
+
headerExtra: u,
|
|
19
|
+
footer: p,
|
|
20
|
+
onBack: f,
|
|
21
|
+
maxWidth: A = 1080,
|
|
22
|
+
"aria-label": k,
|
|
23
|
+
"aria-labelledby": x,
|
|
24
|
+
bodyPadding: h = !0,
|
|
25
|
+
stacking: z = "default",
|
|
26
|
+
children: b
|
|
27
|
+
}) => {
|
|
28
|
+
const [v, y] = T(!1), [O, N] = T(!1), t = s(null), r = s(null), g = s(null), {
|
|
29
|
+
ref: _,
|
|
30
|
+
isTopmost: $,
|
|
31
|
+
zIndex: C,
|
|
32
|
+
elevated: E
|
|
33
|
+
} = D({
|
|
34
|
+
open: a,
|
|
35
|
+
onClose: n,
|
|
36
|
+
elevated: z === "above-app-overlays",
|
|
37
|
+
hostRef: g
|
|
38
|
+
});
|
|
39
|
+
return V(() => (a ? (N(!0), r.current && (clearTimeout(r.current), r.current = null), t.current = requestAnimationFrame(() => {
|
|
40
|
+
t.current = null, y(!0);
|
|
41
|
+
})) : (y(!1), r.current = setTimeout(() => {
|
|
42
|
+
r.current = null, N(!1);
|
|
43
|
+
}, S)), () => {
|
|
44
|
+
t.current !== null && (cancelAnimationFrame(t.current), t.current = null), r.current && (clearTimeout(r.current), r.current = null);
|
|
45
|
+
}), [a]), O ? L(
|
|
46
|
+
// Host carries the stacking context — ShadowRootWrapper's `isolation` would
|
|
47
|
+
// otherwise flatten our z-index and let sticky page elements paint over us.
|
|
48
|
+
/* @__PURE__ */ e(
|
|
49
|
+
M,
|
|
50
|
+
{
|
|
51
|
+
hostRef: g,
|
|
52
|
+
hostStyle: { position: "relative", zIndex: C },
|
|
53
|
+
hostProps: E ? { ...R("sidepanel"), [F]: "" } : R("sidepanel"),
|
|
54
|
+
children: /* @__PURE__ */ l("div", { className: "fixed inset-0 z-[1000]", children: [
|
|
55
|
+
/* @__PURE__ */ e(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
"aria-hidden": "true",
|
|
59
|
+
onClick: n,
|
|
60
|
+
className: `absolute inset-0 bg-[var(--malachite-overlay-scrim)] transition-opacity duration-200 ease-in-out ${v ? "opacity-100" : "opacity-0"}`
|
|
61
|
+
}
|
|
62
|
+
),
|
|
63
|
+
/* @__PURE__ */ l(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
ref: _,
|
|
67
|
+
role: "dialog",
|
|
68
|
+
"aria-modal": $ ? "true" : void 0,
|
|
69
|
+
tabIndex: -1,
|
|
70
|
+
"aria-label": x ? void 0 : k ?? (typeof i == "string" ? i : void 0),
|
|
71
|
+
"aria-labelledby": x,
|
|
72
|
+
className: "absolute top-[8px] right-[8px] bottom-[8px] flex flex-col overflow-hidden rounded-[20px] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] text-[var(--malachite-card-foreground)] outline-none [box-shadow:var(--malachite-shadow-lg)]",
|
|
73
|
+
style: {
|
|
74
|
+
width: `min(calc(100% - 16px), ${X(A)})`,
|
|
75
|
+
// Inline: Tailwind translate utilities silently break inside
|
|
76
|
+
// shadow roots (see CLAUDE.md Shadow DOM caveats).
|
|
77
|
+
transform: v ? "translateX(0)" : "translateX(calc(100% + 16px))",
|
|
78
|
+
transition: `transform ${S}ms ease-in-out`
|
|
79
|
+
},
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ l(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
className: `flex flex-col gap-[20px] px-[20px] py-[18px] ${w ? "border-0 border-b border-solid border-[var(--malachite-card-border)]" : ""}`,
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ l("div", { className: "flex items-center gap-[12px]", children: [
|
|
87
|
+
f ? /* @__PURE__ */ e(
|
|
88
|
+
"button",
|
|
89
|
+
{
|
|
90
|
+
type: "button",
|
|
91
|
+
"aria-label": "Back",
|
|
92
|
+
onClick: f,
|
|
93
|
+
className: I,
|
|
94
|
+
children: /* @__PURE__ */ e(P, { size: 16 })
|
|
95
|
+
}
|
|
96
|
+
) : null,
|
|
97
|
+
m ? /* @__PURE__ */ e("span", { className: "flex shrink-0 items-center", children: m }) : null,
|
|
98
|
+
/* @__PURE__ */ l("div", { className: "flex min-w-0 flex-1 items-center gap-[8px]", children: [
|
|
99
|
+
/* @__PURE__ */ e("span", { className: "shrink-0 text-[length:var(--malachite-font-size-15,15px)] font-semibold text-[var(--malachite-text-primary)]", children: i }),
|
|
100
|
+
o ? /* @__PURE__ */ e("span", { className: "min-w-0 truncate text-[13px] text-[var(--malachite-text-secondary)]", children: o }) : null,
|
|
101
|
+
c ? /* @__PURE__ */ e("span", { className: "flex shrink-0 items-center", children: c }) : null
|
|
102
|
+
] }),
|
|
103
|
+
u ? /* @__PURE__ */ e("span", { className: "flex shrink-0 items-center", children: u }) : null,
|
|
104
|
+
/* @__PURE__ */ e(
|
|
105
|
+
"button",
|
|
106
|
+
{
|
|
107
|
+
type: "button",
|
|
108
|
+
"aria-label": "Close",
|
|
109
|
+
onClick: n,
|
|
110
|
+
className: I,
|
|
111
|
+
children: /* @__PURE__ */ e(j, { size: 10 })
|
|
112
|
+
}
|
|
113
|
+
)
|
|
114
|
+
] }),
|
|
115
|
+
d ? /* @__PURE__ */ e("div", { className: "text-[13px] leading-[1.6] text-[var(--malachite-text-secondary)]", children: d }) : null
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
/* @__PURE__ */ e(
|
|
120
|
+
"div",
|
|
121
|
+
{
|
|
122
|
+
className: `min-h-0 flex-1 overflow-y-auto ${h ? "px-[28px]" : ""}`,
|
|
123
|
+
children: h ? /* @__PURE__ */ e("div", { className: "py-[28px]", children: b }) : b
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
p ? /* @__PURE__ */ e("div", { className: "border-0 border-t border-solid border-[var(--malachite-card-border)] px-[24px] py-[16px]", children: p }) : null
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] })
|
|
131
|
+
}
|
|
132
|
+
),
|
|
133
|
+
document.body
|
|
134
|
+
) : null;
|
|
135
|
+
};
|
|
136
|
+
export {
|
|
137
|
+
K as SidePanel,
|
|
138
|
+
K as default
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=SidePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidePanel.js","sources":["../../src/components/SidePanel.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ShadowRootWrapper } from '../ShadowRootWrapper';\nimport ArrowLeftIcon from './CustomIcons/ArrowLeftIcon';\nimport DismissIcon from './CustomIcons/DismissIcon';\nimport { OVERLAY_ICON_BUTTON_CLASSES, useOverlayBehaviour } from './overlayBehaviour';\nimport { OVERLAY_ELEVATED_ATTR, overlayIdentity } from './portalOverlay';\n\nexport interface SidePanelProps {\n open: boolean;\n /** Dismiss handler — close button, ESC, or overlay click. */\n onClose: () => void;\n title: React.ReactNode;\n /** Secondary text, inline after the title. */\n subtitle?: React.ReactNode;\n /** Content at the end of the title row, after the subtitle (e.g. a status tag). */\n titleExtra?: React.ReactNode;\n /** Block paragraph below the title row, spanning the header width. */\n description?: React.ReactNode;\n /** Divider under the header. Default: false. */\n headerDivider?: boolean;\n /** Leading header slot, typically a logo or icon. */\n icon?: React.ReactNode;\n /** Content pinned right in the header, before the close button. */\n headerExtra?: React.ReactNode;\n footer?: React.ReactNode;\n /** Renders a back button before the header icon. */\n onBack?: () => void;\n /** Maximum panel width. Default: 1080. */\n maxWidth?: number | string;\n /** Accessible dialog name; required when `title` isn't a plain string. */\n 'aria-label'?: string;\n /** ID of a visible element naming the dialog (alternative to `aria-label`). */\n 'aria-labelledby'?: string;\n /** Whether the body gets default padding. Default: true. */\n bodyPadding?: boolean;\n /** `above-app-overlays` lifts the overlay stack clear of chrome pinned near max-int. */\n stacking?: 'default' | 'above-app-overlays';\n children: React.ReactNode;\n}\n\nconst TRANSITION_MS = 200;\n\nconst toCssSize = (value: number | string): string =>\n typeof value === 'number' ? `${value}px` : value;\n\n/**\n * A right-hand slide-in overlay panel (drawer) for inspecting or editing an entity\n * without leaving the page. Portals to `document.body`, locks background scroll and\n * traps keyboard focus while open (restoring both on close), dismisses on ESC\n * (topmost open overlay only), overlay click or the close button, and exposes header\n * (back/icon/title/subtitle/extra), scrollable body and optional footer slots.\n */\nconst SidePanel: React.FC<SidePanelProps> = ({\n open,\n onClose,\n title,\n subtitle,\n titleExtra,\n description,\n headerDivider = false,\n icon,\n headerExtra,\n footer,\n onBack,\n maxWidth = 1080,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n bodyPadding = true,\n stacking = 'default',\n children,\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n const frameRef = useRef<number | null>(null);\n const unmountTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const hostRef = useRef<HTMLDivElement | null>(null);\n const {\n ref: handlePanelRef,\n isTopmost,\n zIndex,\n elevated,\n } = useOverlayBehaviour({\n open,\n onClose,\n elevated: stacking === 'above-app-overlays',\n hostRef,\n });\n\n useEffect(() => {\n if (open) {\n setIsMounted(true);\n if (unmountTimerRef.current) {\n clearTimeout(unmountTimerRef.current);\n unmountTimerRef.current = null;\n }\n frameRef.current = requestAnimationFrame(() => {\n frameRef.current = null;\n setIsVisible(true);\n });\n } else {\n setIsVisible(false);\n unmountTimerRef.current = setTimeout(() => {\n unmountTimerRef.current = null;\n setIsMounted(false);\n }, TRANSITION_MS);\n }\n return () => {\n if (frameRef.current !== null) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n }\n if (unmountTimerRef.current) {\n clearTimeout(unmountTimerRef.current);\n unmountTimerRef.current = null;\n }\n };\n }, [open]);\n\n if (!isMounted) {\n return null;\n }\n\n return createPortal(\n // Host carries the stacking context — ShadowRootWrapper's `isolation` would\n // otherwise flatten our z-index and let sticky page elements paint over us.\n <ShadowRootWrapper\n hostRef={hostRef}\n hostStyle={{ position: 'relative', zIndex }}\n hostProps={\n elevated\n ? { ...overlayIdentity('sidepanel'), [OVERLAY_ELEVATED_ATTR]: '' }\n : overlayIdentity('sidepanel')\n }\n >\n <div className=\"fixed inset-0 z-[1000]\">\n <div\n aria-hidden=\"true\"\n onClick={onClose}\n className={`absolute inset-0 bg-[var(--malachite-overlay-scrim)] transition-opacity duration-200 ease-in-out ${\n isVisible ? 'opacity-100' : 'opacity-0'\n }`}\n />\n <div\n ref={handlePanelRef}\n role=\"dialog\"\n // Only the topmost overlay may claim it, or a screen reader can still\n // browse the one underneath.\n aria-modal={isTopmost ? 'true' : undefined}\n tabIndex={-1}\n // Prefer aria-labelledby; only fall back to aria-label when it's absent.\n aria-label={\n ariaLabelledBy\n ? undefined\n : (ariaLabel ?? (typeof title === 'string' ? title : undefined))\n }\n aria-labelledby={ariaLabelledBy}\n className=\"absolute top-[8px] right-[8px] bottom-[8px] flex flex-col overflow-hidden rounded-[20px] border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] text-[var(--malachite-card-foreground)] outline-none [box-shadow:var(--malachite-shadow-lg)]\"\n style={{\n width: `min(calc(100% - 16px), ${toCssSize(maxWidth)})`,\n // Inline: Tailwind translate utilities silently break inside\n // shadow roots (see CLAUDE.md Shadow DOM caveats).\n transform: isVisible ? 'translateX(0)' : 'translateX(calc(100% + 16px))',\n transition: `transform ${TRANSITION_MS}ms ease-in-out`,\n }}\n >\n <div\n className={`flex flex-col gap-[20px] px-[20px] py-[18px] ${\n headerDivider\n ? 'border-0 border-b border-solid border-[var(--malachite-card-border)]'\n : ''\n }`}\n >\n <div className=\"flex items-center gap-[12px]\">\n {onBack ? (\n <button\n type=\"button\"\n aria-label=\"Back\"\n onClick={onBack}\n className={OVERLAY_ICON_BUTTON_CLASSES}\n >\n <ArrowLeftIcon size={16} />\n </button>\n ) : null}\n {icon ? (\n <span className=\"flex shrink-0 items-center\">{icon}</span>\n ) : null}\n <div className=\"flex min-w-0 flex-1 items-center gap-[8px]\">\n <span className=\"shrink-0 text-[length:var(--malachite-font-size-15,15px)] font-semibold text-[var(--malachite-text-primary)]\">\n {title}\n </span>\n {subtitle ? (\n <span className=\"min-w-0 truncate text-[13px] text-[var(--malachite-text-secondary)]\">\n {subtitle}\n </span>\n ) : null}\n {titleExtra ? (\n <span className=\"flex shrink-0 items-center\">{titleExtra}</span>\n ) : null}\n </div>\n {headerExtra ? (\n <span className=\"flex shrink-0 items-center\">{headerExtra}</span>\n ) : null}\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className={OVERLAY_ICON_BUTTON_CLASSES}\n >\n <DismissIcon size={10} />\n </button>\n </div>\n {description ? (\n <div className=\"text-[13px] leading-[1.6] text-[var(--malachite-text-secondary)]\">\n {description}\n </div>\n ) : null}\n </div>\n <div\n className={`min-h-0 flex-1 overflow-y-auto ${bodyPadding ? 'px-[28px]' : ''}`}\n >\n {bodyPadding ? <div className=\"py-[28px]\">{children}</div> : children}\n </div>\n {footer ? (\n <div className=\"border-0 border-t border-solid border-[var(--malachite-card-border)] px-[24px] py-[16px]\">\n {footer}\n </div>\n ) : null}\n </div>\n </div>\n </ShadowRootWrapper>,\n document.body,\n );\n};\n\nexport default SidePanel;\nexport { SidePanel };\n"],"names":["TRANSITION_MS","toCssSize","value","SidePanel","open","onClose","title","subtitle","titleExtra","description","headerDivider","icon","headerExtra","footer","onBack","maxWidth","ariaLabel","ariaLabelledBy","bodyPadding","stacking","children","isVisible","setIsVisible","useState","isMounted","setIsMounted","frameRef","useRef","unmountTimerRef","hostRef","handlePanelRef","isTopmost","zIndex","elevated","useOverlayBehaviour","useEffect","createPortal","jsx","ShadowRootWrapper","overlayIdentity","OVERLAY_ELEVATED_ATTR","jsxs","OVERLAY_ICON_BUTTON_CLASSES","ArrowLeftIcon","DismissIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import p from "./CustomIcons/CaretDownIcon.js";
|
|
3
|
+
import m from "./CustomIcons/CaretUpIcon.js";
|
|
4
|
+
import { FOCUS_RING as x } from "./focusRing.js";
|
|
5
|
+
const n = "flex h-[20px] min-w-[20px] items-center justify-center rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] px-[4px] [box-shadow:0_1px_0_0_rgba(0,0,0,0.15)]", s = "text-[13px] font-medium tracking-[0.14px] text-[var(--malachite-text-secondary)]", o = ({ onClick: t, disabled: a, ariaLabel: l, children: i }) => /* @__PURE__ */ e(
|
|
6
|
+
"button",
|
|
7
|
+
{
|
|
8
|
+
type: "button",
|
|
9
|
+
"aria-label": l,
|
|
10
|
+
onClick: t,
|
|
11
|
+
disabled: a,
|
|
12
|
+
className: `${n} transition-opacity ${x} ${a ? "cursor-not-allowed opacity-40" : "cursor-pointer hover:border-[var(--malachite-text-placeholder)]"}`,
|
|
13
|
+
children: i
|
|
14
|
+
}
|
|
15
|
+
), v = ({
|
|
16
|
+
onNavigateUp: t,
|
|
17
|
+
onNavigateDown: a,
|
|
18
|
+
canNavigateUp: l = !1,
|
|
19
|
+
canNavigateDown: i = !1,
|
|
20
|
+
actions: c,
|
|
21
|
+
className: d = ""
|
|
22
|
+
}) => /* @__PURE__ */ r("div", { className: `flex w-full items-center justify-between ${d}`, children: [
|
|
23
|
+
/* @__PURE__ */ r("div", { className: "flex items-center gap-[8px]", children: [
|
|
24
|
+
/* @__PURE__ */ r("div", { className: "flex items-center gap-[4px]", children: [
|
|
25
|
+
/* @__PURE__ */ e(o, { ariaLabel: "Previous", onClick: t, disabled: !l, children: /* @__PURE__ */ e(m, { size: 11 }) }),
|
|
26
|
+
/* @__PURE__ */ e(o, { ariaLabel: "Next", onClick: a, disabled: !i, children: /* @__PURE__ */ e(p, { size: 11 }) })
|
|
27
|
+
] }),
|
|
28
|
+
/* @__PURE__ */ e("span", { className: s, children: "Navigate" }),
|
|
29
|
+
/* @__PURE__ */ r("div", { className: "ml-[20px] flex items-center gap-[8px]", children: [
|
|
30
|
+
/* @__PURE__ */ e(
|
|
31
|
+
"span",
|
|
32
|
+
{
|
|
33
|
+
className: `${n} px-[6px] text-[10px] font-medium uppercase tracking-[0.5px] text-[var(--malachite-text-placeholder)]`,
|
|
34
|
+
children: "esc"
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ e("span", { className: s, children: "Close" })
|
|
38
|
+
] })
|
|
39
|
+
] }),
|
|
40
|
+
c ? /* @__PURE__ */ e("div", { className: "flex items-center", children: c }) : null
|
|
41
|
+
] });
|
|
42
|
+
export {
|
|
43
|
+
v as SidePanelNavFooter,
|
|
44
|
+
v as default
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=SidePanelNavFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidePanelNavFooter.js","sources":["../../src/components/SidePanelNavFooter.tsx"],"sourcesContent":["import React from 'react';\nimport CaretDownIcon from './CustomIcons/CaretDownIcon';\nimport CaretUpIcon from './CustomIcons/CaretUpIcon';\nimport { FOCUS_RING } from './focusRing';\n\nexport interface SidePanelNavFooterProps {\n onNavigateUp?: () => void;\n onNavigateDown?: () => void;\n canNavigateUp?: boolean;\n canNavigateDown?: boolean;\n actions?: React.ReactNode;\n className?: string;\n}\n\nconst KEYCAP =\n 'flex h-[20px] min-w-[20px] items-center justify-center rounded-lg border border-solid border-[var(--malachite-card-border)] bg-[var(--malachite-card-background)] px-[4px] [box-shadow:0_1px_0_0_rgba(0,0,0,0.15)]';\nconst LABEL = 'text-[13px] font-medium tracking-[0.14px] text-[var(--malachite-text-secondary)]';\n\nconst NavKey: React.FC<{\n onClick?: () => void;\n disabled?: boolean;\n ariaLabel: string;\n children: React.ReactNode;\n}> = ({ onClick, disabled, ariaLabel, children }) => (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n onClick={onClick}\n disabled={disabled}\n className={`${KEYCAP} transition-opacity ${FOCUS_RING} ${\n disabled\n ? 'cursor-not-allowed opacity-40'\n : 'cursor-pointer hover:border-[var(--malachite-text-placeholder)]'\n }`}\n >\n {children}\n </button>\n);\n\nconst SidePanelNavFooter: React.FC<SidePanelNavFooterProps> = ({\n onNavigateUp,\n onNavigateDown,\n canNavigateUp = false,\n canNavigateDown = false,\n actions,\n className = '',\n}) => (\n <div className={`flex w-full items-center justify-between ${className}`}>\n <div className=\"flex items-center gap-[8px]\">\n <div className=\"flex items-center gap-[4px]\">\n <NavKey ariaLabel=\"Previous\" onClick={onNavigateUp} disabled={!canNavigateUp}>\n <CaretUpIcon size={11} />\n </NavKey>\n <NavKey ariaLabel=\"Next\" onClick={onNavigateDown} disabled={!canNavigateDown}>\n <CaretDownIcon size={11} />\n </NavKey>\n </div>\n <span className={LABEL}>Navigate</span>\n <div className=\"ml-[20px] flex items-center gap-[8px]\">\n <span\n className={`${KEYCAP} px-[6px] text-[10px] font-medium uppercase tracking-[0.5px] text-[var(--malachite-text-placeholder)]`}\n >\n esc\n </span>\n <span className={LABEL}>Close</span>\n </div>\n </div>\n {actions ? <div className=\"flex items-center\">{actions}</div> : null}\n </div>\n);\n\nexport default SidePanelNavFooter;\nexport { SidePanelNavFooter };\n"],"names":["KEYCAP","LABEL","NavKey","onClick","disabled","ariaLabel","children","jsx","FOCUS_RING","SidePanelNavFooter","onNavigateUp","onNavigateDown","canNavigateUp","canNavigateDown","actions","className","jsxs","CaretUpIcon","CaretDownIcon"],"mappings":";;;;AAcA,MAAMA,IACF,sNACEC,IAAQ,oFAERC,IAKD,CAAC,EAAE,SAAAC,GAAS,UAAAC,GAAU,WAAAC,GAAW,UAAAC,QAClC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,MAAK;AAAA,IACL,cAAYF;AAAA,IACZ,SAAAF;AAAA,IACA,UAAAC;AAAA,IACA,WAAW,GAAGJ,CAAM,uBAAuBQ,CAAU,IACjDJ,IACM,kCACA,iEACV;AAAA,IAEC,UAAAE;AAAA,EAAA;AACL,GAGEG,IAAwD,CAAC;AAAA,EAC3D,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,iBAAAC,IAAkB;AAAA,EAClB,SAAAC;AAAA,EACA,WAAAC,IAAY;AAChB,MACI,gBAAAC,EAAC,OAAA,EAAI,WAAW,4CAA4CD,CAAS,IACjE,UAAA;AAAA,EAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,+BACX,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+BACX,UAAA;AAAA,MAAA,gBAAAT,EAACL,GAAA,EAAO,WAAU,YAAW,SAASQ,GAAc,UAAU,CAACE,GAC3D,UAAA,gBAAAL,EAACU,GAAA,EAAY,MAAM,GAAA,CAAI,GAC3B;AAAA,MACA,gBAAAV,EAACL,GAAA,EAAO,WAAU,QAAO,SAASS,GAAgB,UAAU,CAACE,GACzD,UAAA,gBAAAN,EAACW,GAAA,EAAc,MAAM,IAAI,EAAA,CAC7B;AAAA,IAAA,GACJ;AAAA,IACA,gBAAAX,EAAC,QAAA,EAAK,WAAWN,GAAO,UAAA,YAAQ;AAAA,IAChC,gBAAAe,EAAC,OAAA,EAAI,WAAU,yCACX,UAAA;AAAA,MAAA,gBAAAT;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAW,GAAGP,CAAM;AAAA,UACvB,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGD,gBAAAO,EAAC,QAAA,EAAK,WAAWN,GAAO,UAAA,QAAA,CAAK;AAAA,IAAA,EAAA,CACjC;AAAA,EAAA,GACJ;AAAA,EACCa,IAAU,gBAAAP,EAAC,OAAA,EAAI,WAAU,qBAAqB,aAAQ,IAAS;AAAA,EAAA,CACpE;"}
|