@stackone/malachite 2.20.1 → 2.22.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/COMPONENTS.md +1 -0
- 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 +91 -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 +847 -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 +643 -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 +1089 -78
- package/dist/index.js +403 -103
- 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-LexFSPf6.js +0 -2791
- package/dist/CodeBlockHighlighter-LexFSPf6.js.map +0 -1
- package/dist/index-TymfOwWa.js +0 -19154
- package/dist/index-TymfOwWa.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sources":["../src/theme.ts"],"sourcesContent":["// Theme configuration for Malachite components\nexport type ThemeMode = 'light' | 'dark';\n\nexport interface MalachiteTheme {\n fontSizes: {\n xsmall: string;\n small: string;\n medium: string;\n /** Off-ladder: the control ladder's large tier is 15px, between `medium` and `large`. */\n '15'?: string;\n large: string;\n xlarge: string;\n xxlarge: string;\n };\n /**\n * Heights of the shared control ladder. Optional so adding the family never breaks a\n * consumer building a full theme literal — same reason `radius.xs` is optional.\n */\n controlHeights?: {\n small: string;\n medium: string;\n large: string;\n };\n iconSizes: {\n xsmall: string;\n small: string;\n medium: string;\n large: string;\n };\n radius: {\n /** Optional so adding a rung never breaks a consumer building a full theme literal. */\n xs?: string;\n sm: string;\n md: string;\n lg: string;\n /** Off-ladder: no rung exists between `lg` (8px) and `xl` (12px). */\n '10'?: string;\n xl: string;\n xxl: string;\n xxxl: string;\n };\n shadows: {\n sm: string;\n md: string;\n lg: string;\n xl: string;\n default: string;\n glow?: string;\n glowLg?: string;\n /** Optional so adding a shadow never breaks a consumer building a full theme literal. */\n accent?: string;\n success: string;\n warning: string;\n error: string;\n };\n colors: {\n shadowColor: string;\n shadowOpacity: number;\n card: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n dimmedBackground: string;\n sunkenBackground: string;\n warmBackground: string;\n headerBackground: string;\n footerBackground: string;\n /** @deprecated No longer read by any component — glass surfaces derive from `sunkenBackground` (see `glassSurface.ts`). */\n footerGlassBackground: string;\n trayNeutral?: string;\n trayWarning?: string;\n trayError?: string;\n traySuccess?: string;\n subtleDivider?: string;\n };\n overlay: {\n /** Dimming layer drawn behind modal overlays (e.g. SidePanel). */\n scrim: string;\n };\n alert: {\n info: {\n background: string;\n foreground: string;\n };\n success: {\n background: string;\n foreground: string;\n };\n error: {\n background: string;\n foreground: string;\n };\n warning: {\n background: string;\n foreground: string;\n };\n /** Says a machine wrote this, not that anything is wrong — the violet the\n * assistant is named in elsewhere, not a fifth severity. */\n assistant: {\n background: string;\n foreground: string;\n };\n };\n tooltip: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n primary: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n };\n /** Brand accent for interaction states — checked, selected, active. Green today,\n * but a rebrand repaints it; `success.*` stays status-only and does not follow.\n * Optional so adding a group never breaks a consumer building a full theme literal. */\n accent?: {\n background: string;\n foreground: string;\n border: string;\n backgroundGlass: string;\n };\n control: {\n borderHover: string;\n };\n outline: {\n foreground: string;\n };\n secondary: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n };\n destructive: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n shadow: string;\n shadowLight: string;\n shadowMedium: string;\n };\n success: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n backgroundGlass: string;\n shadowLight: string;\n shadowMedium: string;\n };\n warning: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n backgroundGlass: string;\n shadowLight: string;\n shadowMedium: string;\n };\n error: {\n background: string;\n foreground: string;\n border: string;\n borderHover: string;\n backgroundGlass: string;\n shadowLight: string;\n shadowMedium: string;\n };\n buttonList: {\n background: string;\n foreground: string;\n hoverBackground: string;\n hoverForeground: string;\n };\n pillButton: {\n background: string;\n foreground: string;\n hoverBackground: string;\n hoverForeground: string;\n pressedBackground: string;\n pressedForeground: string;\n pressedOpacity: string;\n activeBackground: string;\n activeForeground: string;\n staticBackground: string;\n staticForeground: string;\n invertedBackground: string;\n invertedForeground: string;\n invertedHoverBackground: string;\n invertedHoverForeground: string;\n invertedPressedBackground: string;\n invertedPressedForeground: string;\n };\n toggle: {\n track: string;\n trackChecked: string;\n /** The checked track while the change it represents has not been saved yet. */\n trackCheckedPending: string;\n knob: string;\n };\n segmentedControl: {\n trackBackground: string;\n itemForeground: string;\n itemHoverForeground: string;\n selectedBackground: string;\n selectedForeground: string;\n selectedShadow: string;\n };\n selectableCard: {\n background: string;\n border: string;\n selectedTint: string;\n selectedSurfaceEnd: string;\n selectedBorder: string;\n librarySelectedTint: string;\n librarySelectedBorder: string;\n editingTint: string;\n accent: string;\n mutedForeground: string;\n hoverBackground: string;\n hoverRule: string;\n pendingForeground: string;\n };\n cardStrip: {\n background: string;\n divider: string;\n fade: string;\n arrowBackground: string;\n arrowBorder: string;\n addPrimaryBackground: string;\n addPrimaryForeground: string;\n };\n selectionBar: {\n background: string;\n foreground: string;\n mutedForeground: string;\n divider: string;\n border: string;\n primaryBorder: string;\n shadow: string;\n noticeBackground: string;\n noticeForeground: string;\n noticeShadow: string;\n };\n inlineConfirm: {\n background: string;\n foreground: string;\n divider: string;\n shadow: string;\n };\n dropdown: {\n border: string;\n borderActive: string;\n borderFilter: string;\n borderError: string;\n borderPending: string;\n shadow: string;\n shadowHover: string;\n shadowActive: string;\n shadowFilter: string;\n shadowError: string;\n shadowPending: string;\n disabledBackground: string;\n };\n tag: {\n primary: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n secondary: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n default: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n error: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n warning: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n success: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n emphasis: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n info: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n assistant: {\n background: string;\n foreground: string;\n border: string;\n shadow: string;\n };\n };\n numberTag: {\n background: string;\n foreground: string;\n emphasisBackground: string;\n emphasisForeground: string;\n };\n table: {\n background: string;\n boxShadow: string;\n header: {\n background: string;\n foreground: string;\n border: string;\n };\n row: {\n background: string;\n foreground: string;\n hoverBackground: string;\n border: string;\n /** `Table`'s `selectedRowKey` tint. Must stay distinguishable from\n * `hoverBackground`: a selected row keeps this tint under the cursor. */\n selectedBackground: string;\n /** Leading accent bar on that same row. */\n selectedAccent: string;\n /** Cascades, so cells setting their own colour are deliberately unaffected. */\n selectedForeground: string;\n };\n border: string;\n borderedRow: {\n background: string;\n outline: string;\n };\n rowVariant: {\n success: {\n background: string;\n };\n warning: {\n background: string;\n };\n error: {\n background: string;\n };\n info: {\n background: string;\n };\n };\n error: {\n iconBackground: string;\n iconForeground: string;\n titleForeground: string;\n subtitleForeground: string;\n };\n };\n text: {\n primary: string;\n secondary: string;\n dimmed: string;\n emphasis: string;\n muted: string;\n placeholder: string; // Figma #bbbbbb for input placeholders\n destructive: string;\n success: string;\n highlight: string;\n warning: string;\n warningMuted: string;\n error: string;\n info: string;\n linkForeground: string;\n linkForegroundHover: string;\n rightSideText: {\n muted: string; // #7B7B7B for less prominent right side text\n primary: string; // #0A0A0A for more prominent right side text\n alignment: 'left' | 'right'; // Alignment of right side text\n fontSize: string; // Font size of right side text\n minWidth: string; // Width the column reserves, so short values stay aligned\n };\n };\n codeBlock: {\n background: string;\n foreground: string;\n border: string;\n lineNumber: string;\n keyword: string; // for keywords like 'unified', 'string', etc.\n comment: string; // for comments\n string: string; // for string literals\n number: string; // for numbers\n type: string; // for type annotations\n diffAddedBackground: string; // tint for a line a diff added\n diffRemovedBackground: string; // tint for a line a diff removed\n diffAssistantBackground: string; // tint for an added line in the assistant diff palette\n diffAssistantForeground: string; // marker colour for an added line in the assistant diff palette\n diffAssistantRemovedBackground: string; // tint for a removed line in the assistant diff palette\n diffRemovedForeground: string; // marker colour for a removed line in the assistant diff palette\n diffContextForeground: string; // marker colour for an unchanged line in the assistant diff palette\n diffContextText: string; // text colour for an unchanged line in the assistant diff palette\n };\n /** The conversation's own surfaces — message bubbles, not chrome around them. */\n chat: {\n userBubbleBackground: string;\n userBubbleBorder: string;\n assistantBubbleBackground: string;\n assistantBubbleBorder: string;\n assistantBubbleForeground: string;\n };\n /** Chrome marking machine-authored content outside the conversation itself\n * (badges, diff callouts) — distinct from `chat`, which is the conversation's\n * own bubbles. */\n assistant: {\n foreground: string;\n surfaceBackground: string;\n surfaceBorder: string;\n /** Body text sitting on `surfaceBackground` — darker/muted so a run of it reads,\n * unlike `foreground`, which is the vivid accent. */\n surfaceForeground: string;\n };\n };\n}\n\n// Define a type for partial theme updates\nexport interface PartialMalachiteTheme {\n fontSizes?: Partial<MalachiteTheme['fontSizes']>;\n iconSizes?: Partial<MalachiteTheme['iconSizes']>;\n radius?: Partial<MalachiteTheme['radius']>;\n controlHeights?: Partial<MalachiteTheme['controlHeights']>;\n shadows?: Partial<MalachiteTheme['shadows']>;\n colors?: {\n shadowColor?: string;\n shadowOpacity?: number;\n card?: Partial<MalachiteTheme['colors']['card']>;\n overlay?: Partial<MalachiteTheme['colors']['overlay']>;\n /** Nested-partial: a sub-object may be overridden leaf by leaf. A flat\n * `Partial<…>` would demand every leaf of any group you touch. */\n alert?: {\n [K in keyof MalachiteTheme['colors']['alert']]?: Partial<\n MalachiteTheme['colors']['alert'][K]\n >;\n };\n tooltip?: Partial<MalachiteTheme['colors']['tooltip']>;\n primary?: Partial<MalachiteTheme['colors']['primary']>;\n accent?: Partial<NonNullable<MalachiteTheme['colors']['accent']>>;\n control?: Partial<MalachiteTheme['colors']['control']>;\n outline?: Partial<MalachiteTheme['colors']['outline']>;\n secondary?: Partial<MalachiteTheme['colors']['secondary']>;\n destructive?: Partial<MalachiteTheme['colors']['destructive']>;\n success?: Partial<MalachiteTheme['colors']['success']>;\n warning?: Partial<MalachiteTheme['colors']['warning']>;\n error?: Partial<MalachiteTheme['colors']['error']>;\n buttonList?: Partial<MalachiteTheme['colors']['buttonList']>;\n pillButton?: Partial<MalachiteTheme['colors']['pillButton']>;\n toggle?: Partial<MalachiteTheme['colors']['toggle']>;\n segmentedControl?: Partial<MalachiteTheme['colors']['segmentedControl']>;\n selectableCard?: Partial<MalachiteTheme['colors']['selectableCard']>;\n cardStrip?: Partial<MalachiteTheme['colors']['cardStrip']>;\n selectionBar?: Partial<MalachiteTheme['colors']['selectionBar']>;\n inlineConfirm?: Partial<MalachiteTheme['colors']['inlineConfirm']>;\n dropdown?: Partial<MalachiteTheme['colors']['dropdown']>;\n tag?: {\n [K in keyof MalachiteTheme['colors']['tag']]?: Partial<\n MalachiteTheme['colors']['tag'][K]\n >;\n };\n numberTag?: Partial<MalachiteTheme['colors']['numberTag']>;\n // Every nested group is listed: a flat Partial<> reaches only the top level, and any\n // group omitted here is shallow-spread by mergeThemes, silently dropping siblings.\n table?: Partial<\n Omit<\n MalachiteTheme['colors']['table'],\n 'header' | 'row' | 'borderedRow' | 'rowVariant' | 'error'\n >\n > & {\n header?: Partial<MalachiteTheme['colors']['table']['header']>;\n row?: Partial<MalachiteTheme['colors']['table']['row']>;\n borderedRow?: Partial<MalachiteTheme['colors']['table']['borderedRow']>;\n // Two levels: each variant is its own object.\n rowVariant?: {\n [K in keyof MalachiteTheme['colors']['table']['rowVariant']]?: Partial<\n MalachiteTheme['colors']['table']['rowVariant'][K]\n >;\n };\n error?: Partial<MalachiteTheme['colors']['table']['error']>;\n };\n text?: Partial<Omit<MalachiteTheme['colors']['text'], 'rightSideText'>> & {\n rightSideText?: Partial<MalachiteTheme['colors']['text']['rightSideText']>;\n };\n codeBlock?: Partial<MalachiteTheme['colors']['codeBlock']>;\n chat?: Partial<MalachiteTheme['colors']['chat']>;\n assistant?: Partial<MalachiteTheme['colors']['assistant']>;\n };\n}\n\n// `accent` is optional on MalachiteTheme, so a hand-built theme may omit it. Every read\n// site falls back to these rather than emitting `undefined` or throwing.\nconst DEFAULT_ACCENT_COLORS: NonNullable<MalachiteTheme['colors']['accent']> = {\n background: 'rgba(0, 175, 102)',\n foreground: 'rgb(2, 122, 66)',\n border: 'rgba(0, 175, 102, 0.2)',\n backgroundGlass: 'rgba(0, 175, 102, 0.08)',\n};\nconst DEFAULT_ACCENT_SHADOW = '0px 1px 0px 0px rgba(0, 175, 102, 0.15)';\n\n/** The shared control ladder, from Figma. Exported so callers can read it without\n * reaching for a possibly-absent theme field. */\nexport const CONTROL_HEIGHT = {\n small: '28px',\n medium: '32px',\n large: '42px',\n} as const;\n\n// Default theme values\nexport const defaultTheme: MalachiteTheme = {\n fontSizes: {\n xsmall: '11px',\n small: '13px',\n medium: '14px',\n '15': '15px',\n large: '16px',\n xlarge: '18px',\n xxlarge: '22px',\n },\n controlHeights: { ...CONTROL_HEIGHT },\n iconSizes: {\n xsmall: '12px',\n small: '13px',\n medium: '13px',\n large: '15px',\n },\n radius: {\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n '10': '10px',\n xl: '12px',\n xxl: '14px',\n xxxl: '16px',\n },\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)',\n glow: '0px 0px 10px 0px rgba(0, 0, 0, 0.2)',\n glowLg: '0px 0px 20px 0px rgba(0, 0, 0, 0.2)',\n default: '0px 1px 0px 0px rgba(0, 0, 0, 0.15)',\n accent: DEFAULT_ACCENT_SHADOW,\n success: '0px 1px 0px 0px rgba(0, 175, 102, 0.15)',\n warning: '0px 1px 0px 0px rgba(241, 139, 10, 0.15)',\n error: '0px 1px 0px 0px rgba(197, 63, 63, 0.15)',\n },\n colors: {\n shadowColor: '0, 0, 0',\n shadowOpacity: 0.1,\n card: {\n background: 'rgb(255, 255, 255)',\n foreground: 'rgb(10, 10, 10)',\n border: 'rgb(232, 232, 232)',\n shadow: 'rgba(0, 0, 0, 0.1)',\n dimmedBackground: 'rgb(247, 247, 247)',\n sunkenBackground: 'rgb(250, 250, 250)',\n warmBackground: 'rgb(244, 242, 240)',\n headerBackground: 'rgb(255, 255, 255)',\n footerBackground: 'rgb(255, 255, 255)',\n footerGlassBackground: 'rgba(255, 255, 255, 0.7)',\n trayNeutral: 'rgb(247, 247, 247)', // Figma #F7F7F7\n trayWarning: 'rgb(253, 243, 230)', // Figma #FDF3E6\n trayError: 'rgb(254, 241, 241)', // Figma #FEF1F1\n traySuccess: 'rgb(236, 249, 244)', // Figma #ECF9F4\n subtleDivider: 'rgb(241, 241, 241)', // Figma #F1F1F1\n },\n overlay: {\n scrim: 'rgba(0, 0, 0, 0.1)',\n },\n alert: {\n info: {\n background: 'rgb(247, 247, 247)',\n foreground: 'rgb(10, 10, 10)',\n },\n success: {\n background: 'rgba(0, 175, 102, 0.08)',\n foreground: 'rgb(2, 122, 66)',\n },\n error: {\n background: 'rgba(197, 63, 63, 0.08)',\n foreground: 'rgb(237, 53, 54)',\n },\n warning: {\n background: 'rgba(241, 139, 10, 0.08)',\n foreground: 'rgb(150, 88, 10)',\n },\n assistant: {\n background: 'rgb(242, 238, 254)', // #F2EEFE, the assistant tag's ground\n foreground: 'rgb(110, 86, 207)', // #6E56CF\n },\n },\n tooltip: {\n background: 'rgb(59, 59, 59)',\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(60, 60, 60)',\n shadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.20)',\n },\n primary: {\n background: 'rgb(48, 48, 48)',\n foreground: 'rgb(10, 10, 10)',\n border: 'rgb(232, 232, 232)',\n borderHover: 'rgb(186, 186, 186)',\n },\n accent: DEFAULT_ACCENT_COLORS,\n control: {\n borderHover: 'rgba(0, 175, 102, 0.4)',\n },\n outline: {\n foreground: 'rgb(10, 10, 10)',\n },\n secondary: {\n background: 'rgb(9, 9, 9)',\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(232, 232, 232)',\n borderHover: 'rgb(186, 186, 186)',\n },\n destructive: {\n background: 'transparent',\n foreground: 'rgb(196, 62, 62)',\n border: 'rgb(239, 55, 55)',\n borderHover: 'rgb(239, 55, 55)',\n shadow: 'rgb(239, 55, 55)',\n shadowLight: 'rgba(239, 55, 55, 0.4)',\n shadowMedium: 'rgba(239, 55, 55, 0.6)',\n },\n success: {\n background: 'rgba(0, 175, 102)',\n foreground: 'rgb(2, 122, 66)',\n border: 'rgba(0, 175, 102, 0.2)',\n borderHover: 'rgba(0, 175, 102, 0.4)',\n backgroundGlass: 'rgba(0, 175, 102, 0.08)',\n shadowLight: 'rgba(0, 175, 102, 0.4)',\n shadowMedium: 'rgba(0, 175, 102, 0.6)',\n },\n warning: {\n background: 'rgb(241, 139, 10)',\n foreground: 'rgb(150, 88, 10)',\n border: 'rgba(241, 139, 10, 0.2)',\n borderHover: 'rgba(241, 139, 10, 0.4)',\n backgroundGlass: 'rgba(241, 139, 10, 0.08)',\n shadowLight: 'rgba(241, 139, 10, 0.4)',\n shadowMedium: 'rgba(241, 139, 10, 0.6)',\n },\n error: {\n background: 'rgb(197, 63, 63)',\n foreground: 'rgb(237, 53, 54)',\n border: 'rgba(197, 63, 63, 0.2)',\n borderHover: 'rgba(197, 63, 63, 0.4)',\n backgroundGlass: 'rgba(197, 63, 63, 0.08)',\n shadowLight: 'rgba(197, 63, 63, 0.4)',\n shadowMedium: 'rgba(197, 63, 63, 0.6)',\n },\n buttonList: {\n background: 'rgb(255, 255, 255)',\n foreground: 'rgb(10, 10, 10)',\n hoverBackground: 'rgb(245, 245, 245)',\n hoverForeground: 'rgb(10, 10, 10)',\n },\n pillButton: {\n background: 'rgb(241, 241, 241)', // Figma #f1f1f1\n foreground: 'rgb(123, 123, 123)', // Figma #7b7b7b\n hoverBackground: 'rgb(232, 232, 232)', // Figma #e8e8e8\n hoverForeground: 'rgb(10, 10, 10)', // Figma neutral-950 (almost black)\n pressedBackground: 'rgb(232, 232, 232)', // Figma #e8e8e8 (same as hover)\n pressedForeground: 'rgb(10, 10, 10)', // Figma neutral-950 (same as hover)\n pressedOpacity: '0.6', // Figma opacity-60\n activeBackground: 'rgb(48, 48, 48)',\n activeForeground: 'rgb(255, 255, 255)',\n staticBackground: 'rgb(224, 222, 220)', // #e0dedc — used by interactive=false pills\n staticForeground: 'rgb(76, 75, 75)', // #4c4b4b\n invertedBackground: 'rgb(255, 255, 255)',\n invertedForeground: 'rgb(76, 75, 75)', // #4c4b4b\n invertedHoverBackground: 'rgb(10, 10, 10)', // neutral-950\n invertedHoverForeground: 'rgb(255, 255, 255)',\n invertedPressedBackground: 'rgb(10, 10, 10)',\n invertedPressedForeground: 'rgb(255, 255, 255)',\n },\n toggle: {\n track: 'rgb(232, 232, 232)', // #e8e8e8 neutral off track\n trackChecked: 'rgb(0, 175, 102)', // #00AF66 brand green\n trackCheckedPending: 'rgb(241, 139, 10)', // #F18B0A, the pending amber\n knob: 'rgb(255, 255, 255)',\n },\n segmentedControl: {\n trackBackground: 'rgb(241, 241, 241)', // Figma #f1f1f1 sunken track\n // Deliberately text.muted, not text.secondary: #7b7b7b on the #f1f1f1 track is\n // only 3.7:1, below WCAG AA for body text. #4c4b4b is 7.7:1.\n itemForeground: 'rgb(76, 75, 75)', // #4c4b4b text.muted\n itemHoverForeground: 'rgb(10, 10, 10)', // neutral-950\n selectedBackground: 'rgb(255, 255, 255)',\n selectedForeground: 'rgb(10, 10, 10)', // neutral-950\n selectedShadow: '0px 1px 5px 0px rgba(0, 0, 0, 0.1)',\n },\n selectableCard: {\n background: 'rgb(241, 241, 241)',\n border: 'rgb(221, 221, 221)',\n selectedTint: 'rgb(231, 248, 241)',\n selectedSurfaceEnd: 'rgb(255, 255, 255)',\n selectedBorder: 'rgb(4, 123, 67)',\n librarySelectedTint: 'rgb(241, 241, 241)',\n librarySelectedBorder: 'rgb(187, 187, 187)',\n editingTint: 'rgb(249, 242, 233)', // Figma #F9F2E9\n accent: 'rgb(4, 123, 67)', // Figma #047B43 primary (dark)\n mutedForeground: 'rgb(123, 123, 123)', // Figma #7B7B7B, the same grey as text-secondary\n hoverBackground: 'rgb(232, 232, 232)',\n hoverRule: 'rgb(187, 187, 187)',\n pendingForeground: 'rgb(150, 88, 10)',\n },\n cardStrip: {\n background: 'rgb(241, 241, 241)', // Figma #F1F1F1\n divider: 'rgb(221, 221, 221)', // Figma #DDDDDD — hairline between adjacent cards\n fade: 'rgb(255, 255, 255)',\n arrowBackground: 'rgb(255, 255, 255)',\n arrowBorder: 'rgb(232, 232, 232)', // Figma #E8E8E8, same hairline as dropdown.border\n addPrimaryBackground: 'rgb(10, 10, 10)',\n addPrimaryForeground: 'rgb(255, 255, 255)',\n },\n selectionBar: {\n background: 'rgb(10, 10, 10)', // Figma #0a0a0a\n foreground: 'rgb(255, 255, 255)',\n mutedForeground: 'rgb(123, 123, 123)',\n divider: 'rgb(64, 64, 64)',\n border: 'transparent', // edgeless in light\n primaryBorder: 'rgb(232, 232, 232)',\n shadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.2)',\n noticeBackground: 'rgb(237, 217, 190)',\n noticeForeground: 'rgb(132, 77, 9)',\n noticeShadow:\n '0px 0px 4px 0px rgba(0, 0, 0, 0.08), 0px 4px 4px 0px rgba(0, 0, 0, 0.08), 0px 4px 10px 0px rgba(0, 0, 0, 0.05)',\n },\n inlineConfirm: {\n background: 'rgb(34, 33, 33)', // Figma #222121\n foreground: 'rgb(255, 255, 255)',\n divider: 'rgba(255, 255, 255, 0.1)',\n shadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.2)',\n },\n dropdown: {\n border: 'rgb(232, 232, 232)',\n borderActive: 'rgba(0, 175, 102, 0.6)',\n borderFilter: 'rgba(0, 175, 102, 0.4)',\n borderError: 'rgba(239, 55, 55, 0.6)',\n borderPending: 'rgba(241, 139, 10, 0.6)',\n shadow: '0px 1px 0px 0px rgba(0, 0, 0, 0.15)',\n shadowHover: '0px 1px 0px 0px rgba(0, 175, 102, 0.6)',\n shadowActive: '0px 1px 0px 0px rgba(0, 175, 102, 0.8)',\n shadowFilter: '0px 1px 0px 0px rgba(0, 175, 102, 0.6)',\n shadowError:\n '0px 1px 0px 0px rgba(239, 55, 55, 0.8), 0px 0px 0px 2px rgba(239, 55, 55, 0.1)',\n shadowPending:\n '0px 1px 0px 0px rgba(241, 139, 10, 0.8), 0px 0px 0px 2px rgba(241, 139, 10, 0.1)',\n disabledBackground: 'rgb(241, 241, 241)', // Figma #f1f1f1\n },\n tag: {\n primary: {\n background: 'rgba(37, 130, 234, 0.1)', // #2582EA1A\n foreground: 'rgb(37, 130, 234)', // #2582EA\n border: 'rgb(37, 130, 234)', // #2582EA\n shadow: 'rgba(37, 130, 234, 0.5)', // #2582EA with 50% opacity\n },\n secondary: {\n background: 'rgba(0, 175, 102, 0.1)', // #00AF661A\n foreground: 'rgb(0, 175, 102)', // #00AF66\n border: 'rgb(0, 175, 102)', // #00AF66\n shadow: 'rgba(0, 175, 102, 0.5)', // #00AF66 with 50% opacity\n },\n default: {\n background: 'rgba(123, 123, 123, 0.1)', // #7B7B7B1A\n foreground: 'rgb(123, 123, 123)', // #7B7B7B\n border: 'rgb(123, 123, 123)', // #7B7B7B\n shadow: 'rgba(123, 123, 123, 0.5)', // #7B7B7B with 50% opacity\n },\n error: {\n background: 'rgba(196, 62, 62, 0.1)', // #C43E3E1A\n foreground: 'rgb(196, 62, 62)', // #C43E3E\n border: 'rgb(196, 62, 62)', // #C43E3E\n shadow: 'rgba(196, 62, 62, 0.5)', // #C43E3E with 50% opacity\n },\n warning: {\n background: 'rgba(150, 88, 10, 0.1)', // #96580A1A\n foreground: 'rgb(150, 88, 10)', // #96580A\n border: 'rgb(150, 88, 10)', // #96580A\n shadow: 'rgba(150, 88, 10, 0.5)', // #96580A with 50% opacity\n },\n success: {\n background: 'rgba(0, 175, 102, 0.1)', // #00AF661A\n foreground: 'rgb(2, 122, 66)', // #027A42\n border: 'rgb(2, 122, 66)', // #027A42\n shadow: 'rgba(2, 122, 66, 0.5)', // #027A42 with 50% opacity\n },\n emphasis: {\n background: 'rgba(123, 123, 123, 0.1)',\n foreground: 'rgb(10, 10, 10)',\n border: 'rgb(10, 10, 10)',\n shadow: 'rgba(0, 0, 0, 0.2)',\n },\n info: {\n background: 'rgba(12, 88, 174, 0.1)', // #0C58AE1A\n foreground: 'rgb(12, 88, 174)', // Blue (Dark) from Figma #0C58AE\n border: 'rgb(12, 88, 174)', // #0C58AE\n shadow: 'rgba(12, 88, 174, 0.5)', // #0C58AE with 50% opacity\n },\n assistant: {\n background: 'rgb(242, 238, 254)', // #F2EEFE\n foreground: 'rgb(110, 86, 207)', // #6E56CF\n border: 'rgb(227, 221, 251)', // #E3DDFB\n shadow: 'rgba(110, 86, 207, 0.5)', // #6E56CF with 50% opacity\n },\n },\n numberTag: {\n background: 'rgba(0, 0, 0, 0.08)',\n foreground: 'rgb(123, 123, 123)', // text secondary\n emphasisBackground: 'rgba(0, 0, 0, 0.15)',\n emphasisForeground: 'rgb(34, 33, 33)', // text emphasis\n },\n table: {\n background: 'rgb(247, 247, 247)', // #F7F7F7\n boxShadow: 'none', // The designed container is a flat grey frame, not elevated\n header: {\n background: 'rgb(247, 247, 247)', // #F7F7F7\n foreground: 'rgb(55, 65, 81)', // #374151\n border: 'rgb(229, 231, 235)', // #e5e7eb\n },\n row: {\n background: 'rgb(255, 255, 255)', // #ffffff\n foreground: 'rgb(75, 85, 99)', // #4b5563\n hoverBackground: 'rgb(249, 250, 251)', // #f9fafb\n border: 'rgb(229, 231, 235)', // #e5e7eb\n // Translucent, so it layers over the row (or a rowVariant tint). 15% not 10%:\n // at 10% the step was 1.11:1 from a plain row, near-invisible without colour\n // vision. Capped there to keep the foreground's AA headroom (4.64:1).\n selectedBackground: 'rgba(0, 175, 102, 0.15)', // #00AF66 at 15%\n selectedAccent: 'rgb(2, 122, 66)', // #027A42, matches text.success\n selectedForeground: 'rgb(2, 122, 66)', // #027A42\n },\n border: 'rgb(229, 231, 235)', // #e5e7eb\n borderedRow: {\n background: 'rgb(255, 255, 255)', // #FFF\n outline: 'rgb(232, 232, 232)', // #e8e8e8\n },\n rowVariant: {\n success: {\n background: 'rgb(236, 249, 244)', // #ECF9F4\n },\n warning: {\n background: 'rgb(253, 243, 230)', // #FDF3E6\n },\n error: {\n background: 'rgb(253, 236, 236)', // #FDECEC\n },\n info: {\n background: 'rgb(230, 244, 253)', // #E6F4FD\n },\n },\n error: {\n iconBackground: 'rgb(254, 243, 199)', // #fef3c7\n iconForeground: 'rgb(217, 119, 6)', // #d97706\n titleForeground: 'rgb(17, 24, 39)', // #111827\n subtitleForeground: 'rgb(107, 114, 128)', // #6b7280\n },\n },\n text: {\n primary: 'rgb(10, 10, 10)',\n secondary: 'rgb(123, 123, 123)',\n dimmed: 'rgb(161, 161, 161)',\n emphasis: 'rgb(34, 33, 33)',\n muted: 'rgb(76, 75, 75)',\n placeholder: 'rgb(187, 187, 187)', // Figma #bbbbbb for input placeholders\n destructive: 'rgb(237, 53, 54)',\n success: 'rgb(2, 122, 66)',\n highlight: 'rgb(118, 214, 174)',\n warning: 'rgb(150, 88, 10)',\n warningMuted: 'rgb(206, 163, 108)', // Figma #CEA36C\n error: 'rgb(237, 53, 54)',\n info: 'rgb(12, 88, 174)', // Blue (Dark) from Figma #0C58AE\n linkForeground: 'rgba(0, 0, 0, 0.45)',\n linkForegroundHover: 'rgb(10, 10, 10)',\n rightSideText: {\n muted: 'rgb(123, 123, 123)', // #7B7B7B for less prominent right side text\n primary: 'rgb(10, 10, 10)', // #0A0A0A for more prominent right side text\n alignment: 'right' as const, // Default to right alignment\n fontSize: '12px',\n minWidth: '80px',\n },\n },\n codeBlock: {\n background: 'rgb(255, 255, 255)', // White background from Figma\n foreground: 'rgb(10, 10, 10)', // Header color from Figma #0A0A0A\n border: 'rgb(232, 232, 232)', // Light border\n lineNumber: 'rgb(123, 123, 123)', // Text color from Figma #7B7B7B\n keyword: 'rgb(12, 88, 174)', // Blue (Dark) from Figma #0C58AE\n comment: 'rgb(123, 123, 123)', // Text color for comments\n string: 'rgb(2, 122, 66)', // Green for strings\n number: 'rgb(150, 88, 10)', // Orange for numbers\n type: 'rgb(12, 88, 174)', // Blue for types\n // Low alpha, so highlighted code stays readable through the tint.\n diffAddedBackground: 'rgba(0, 175, 102, 0.12)',\n diffRemovedBackground: 'rgba(239, 55, 55, 0.1)',\n // The assistant diff palette, from the design mock for AI-authored changes.\n diffAssistantBackground: '#F5F1FE',\n diffAssistantForeground: '#6E56CF',\n diffAssistantRemovedBackground: '#F7F6FB',\n diffRemovedForeground: '#5E5876',\n diffContextForeground: '#D9D9D9',\n diffContextText: '#3B3B3B',\n },\n chat: {\n userBubbleBackground: 'rgb(246, 246, 246)', // #F6F6F6\n userBubbleBorder: 'rgb(237, 237, 237)', // #EDEDED\n // Deliberately neutral, not violet. The violet marks a pending change in the form\n // beside this column; spending the same hue on \"the assistant said it\" leaves the\n // reader two meanings for one colour. The bubble differs from the user's by being\n // a white card against their filled grey, and the assistant is named in violet\n // above the thread instead.\n assistantBubbleBackground: 'rgb(255, 255, 255)',\n assistantBubbleBorder: 'rgb(232, 232, 232)', // The neutral hairline, as codeBlock.border\n assistantBubbleForeground: 'rgb(10, 10, 10)', // text.primary — this is body copy, read at length\n },\n assistant: {\n foreground: 'rgb(110, 86, 207)', // #6E56CF, matches tag.assistant.foreground\n surfaceBackground: 'rgb(251, 250, 255)', // #FBFAFF, a faint tint for a card or callout\n surfaceBorder: 'rgb(220, 211, 250)', // #DCD3FA, drawn dashed by the consumer\n surfaceForeground: 'rgb(74, 63, 122)', // #4A3F7A, from the Chat.Suggestion mock\n },\n },\n};\n\n// Dark theme colors\nexport const darkTheme: MalachiteTheme = {\n fontSizes: {\n xsmall: '11px',\n small: '13px',\n medium: '14px',\n '15': '15px',\n large: '16px',\n xlarge: '18px',\n xxlarge: '22px',\n },\n controlHeights: { ...CONTROL_HEIGHT },\n iconSizes: {\n xsmall: '12px',\n small: '13px',\n medium: '13px',\n large: '15px',\n },\n radius: {\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n '10': '10px',\n xl: '12px',\n xxl: '14px',\n xxxl: '16px',\n },\n shadows: {\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.3)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3)',\n glow: '0px 0px 10px 0px rgba(0, 0, 0, 0.5)',\n glowLg: '0px 0px 20px 0px rgba(0, 0, 0, 0.5)',\n default: '0px 1px 0px 0px rgba(0, 0, 0, 0.4)',\n accent: '0px 1px 0px 0px rgba(0, 175, 102, 0.4)',\n success: '0px 1px 0px 0px rgba(0, 175, 102, 0.4)',\n warning: '0px 1px 0px 0px rgba(241, 139, 10, 0.4)',\n error: '0px 1px 0px 0px rgba(197, 63, 63, 0.4)',\n },\n colors: {\n shadowColor: '0, 0, 0',\n shadowOpacity: 0.3,\n card: {\n background: 'rgb(30, 30, 30)',\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(64, 64, 64)',\n shadow: 'rgba(0, 0, 0, 0.3)',\n dimmedBackground: 'rgb(70, 70, 70)',\n sunkenBackground: 'rgb(10, 10, 10)',\n warmBackground: 'rgb(45, 43, 41)',\n headerBackground: 'rgb(30, 30, 30)',\n footerBackground: 'rgb(30, 30, 30)',\n footerGlassBackground: 'rgba(30, 30, 30, 0.7)',\n trayNeutral: 'rgb(56, 56, 56)',\n trayWarning: 'rgb(74, 62, 29)',\n trayError: 'rgb(70, 44, 44)',\n traySuccess: 'rgb(31, 63, 40)',\n subtleDivider: 'rgb(48, 48, 48)',\n },\n overlay: {\n scrim: 'rgba(0, 0, 0, 0.4)',\n },\n alert: {\n info: {\n background: 'rgb(70, 70, 70)',\n foreground: 'rgb(255, 255, 255)',\n },\n success: {\n background: 'rgba(0, 175, 102, 0.08)',\n foreground: 'rgb(2, 122, 66)',\n },\n error: {\n background: 'rgba(197, 63, 63, 0.08)',\n foreground: 'rgb(237, 53, 54)',\n },\n warning: {\n background: 'rgba(241, 139, 10, 0.08)',\n foreground: 'rgb(150, 88, 10)',\n },\n assistant: {\n // The dark violet the assistant Tag and diff palette already use; the light\n // pair here would render an opaque near-white block on a dark surface.\n background: 'rgba(158, 130, 255, 0.18)',\n foreground: 'rgb(184, 158, 255)',\n },\n },\n tooltip: {\n background: 'rgb(42, 42, 42)',\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(80, 80, 80)',\n shadow: '0px 0px 12px 0px rgba(0, 0, 0, 0.30)',\n },\n primary: {\n background: 'rgb(60, 60, 60)',\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(100, 100, 100)',\n borderHover: 'rgb(140, 140, 140)',\n },\n accent: {\n background: 'rgba(50, 205, 132)',\n foreground: 'rgb(20, 170, 100)',\n border: 'rgba(50, 205, 132, 0.3)',\n backgroundGlass: 'rgba(50, 205, 132, 0.12)',\n },\n control: {\n borderHover: 'rgba(50, 205, 132, 0.5)',\n },\n outline: {\n foreground: 'rgb(255, 255, 255)',\n },\n // Filled buttons invert in dark mode: white surface, near-black text.\n secondary: {\n background: 'rgb(255, 255, 255)',\n foreground: 'rgb(10, 10, 10)',\n border: 'rgb(255, 255, 255)',\n borderHover: 'rgb(220, 220, 220)',\n },\n destructive: {\n background: 'transparent',\n foreground: 'rgb(255, 120, 120)',\n border: 'rgb(255, 100, 100)',\n borderHover: 'rgb(255, 100, 100)',\n shadow: 'rgb(255, 100, 100)',\n shadowLight: 'rgba(255, 100, 100, 0.4)',\n shadowMedium: 'rgba(255, 100, 100, 0.6)',\n },\n success: {\n background: 'rgba(50, 205, 132)',\n foreground: 'rgb(20, 170, 100)',\n border: 'rgba(50, 205, 132, 0.3)',\n borderHover: 'rgba(50, 205, 132, 0.5)',\n backgroundGlass: 'rgba(50, 205, 132, 0.12)',\n shadowLight: 'rgba(50, 205, 132, 0.4)',\n shadowMedium: 'rgba(50, 205, 132, 0.6)',\n },\n warning: {\n background: 'rgb(255, 180, 50)',\n foreground: 'rgb(200, 130, 20)',\n border: 'rgba(255, 180, 50, 0.3)',\n borderHover: 'rgba(255, 180, 50, 0.5)',\n backgroundGlass: 'rgba(255, 180, 50, 0.12)',\n shadowLight: 'rgba(255, 180, 50, 0.4)',\n shadowMedium: 'rgba(255, 180, 50, 0.6)',\n },\n error: {\n background: 'rgb(255, 120, 120)',\n foreground: 'rgb(255, 80, 80)',\n border: 'rgba(255, 120, 120, 0.3)',\n borderHover: 'rgba(255, 120, 120, 0.5)',\n backgroundGlass: 'rgba(255, 120, 120, 0.12)',\n shadowLight: 'rgba(255, 120, 120, 0.4)',\n shadowMedium: 'rgba(255, 120, 120, 0.6)',\n },\n buttonList: {\n background: 'rgb(30, 30, 30)',\n foreground: 'rgb(255, 255, 255)',\n hoverBackground: 'rgb(60, 60, 60)',\n hoverForeground: 'rgb(255, 255, 255)',\n },\n pillButton: {\n background: 'rgb(70, 70, 70)', // Dark theme equivalent\n foreground: 'rgb(161, 161, 161)', // Dark theme equivalent\n hoverBackground: 'rgb(90, 90, 90)', // Lighter for dark theme hover\n hoverForeground: 'rgb(255, 255, 255)', // White text on hover in dark mode\n pressedBackground: 'rgb(90, 90, 90)', // Same as hover for dark theme\n pressedForeground: 'rgb(255, 255, 255)', // Same as hover for dark theme\n pressedOpacity: '0.6', // Same opacity reduction for dark theme\n activeBackground: 'rgb(255, 255, 255)',\n activeForeground: 'rgb(10, 10, 10)',\n staticBackground: 'rgb(60, 60, 60)',\n staticForeground: 'rgb(220, 220, 220)',\n invertedBackground: 'rgb(38, 38, 38)',\n invertedForeground: 'rgb(220, 220, 220)',\n invertedHoverBackground: 'rgb(255, 255, 255)',\n invertedHoverForeground: 'rgb(10, 10, 10)',\n invertedPressedBackground: 'rgb(255, 255, 255)',\n invertedPressedForeground: 'rgb(10, 10, 10)',\n },\n toggle: {\n track: 'rgb(70, 70, 70)', // neutral off track for dark theme\n trackChecked: 'rgb(34, 197, 94)', // lighter green to match dark theme success\n trackCheckedPending: 'rgb(240, 138, 7)', // dark-theme pending amber\n knob: 'rgb(255, 255, 255)',\n },\n segmentedControl: {\n // Inverted from light mode: the track is the DARKER surface and the selected\n // thumb sits lighter on top, so \"raised\" still reads as raised.\n trackBackground: 'rgb(38, 38, 38)',\n itemForeground: 'rgb(161, 161, 161)', // text.secondary — 5.9:1 on the track\n itemHoverForeground: 'rgb(255, 255, 255)',\n selectedBackground: 'rgb(82, 82, 82)',\n selectedForeground: 'rgb(255, 255, 255)', // 7.8:1 on the thumb\n selectedShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.4)',\n },\n selectableCard: {\n background: 'rgb(45, 45, 45)',\n border: 'rgb(64, 64, 64)',\n selectedTint: 'rgb(30, 62, 48)',\n selectedSurfaceEnd: 'rgb(52, 52, 52)',\n selectedBorder: 'rgb(50, 205, 132)',\n librarySelectedTint: 'rgb(45, 45, 45)',\n librarySelectedBorder: 'rgb(115, 115, 115)',\n editingTint: 'rgb(58, 48, 36)', // the amber tint re-picked for a dark sheet\n accent: 'rgb(50, 205, 132)', // dark success — #047B43 is unreadable on dark\n mutedForeground: 'rgb(161, 161, 161)', // 4.82:1 on the selected card, 5.86:1 on the trough\n hoverBackground: 'rgb(64, 64, 64)',\n hoverRule: 'rgb(115, 115, 115)',\n pendingForeground: 'rgb(240, 138, 7)',\n },\n cardStrip: {\n background: 'rgb(38, 38, 38)', // one step under the selected card, as #F1F1F1 is under white\n divider: 'rgb(64, 64, 64)',\n fade: 'rgb(30, 30, 30)', // matches card.background so the mask disappears into it\n arrowBackground: 'rgb(45, 45, 45)',\n arrowBorder: 'rgb(100, 100, 100)', // dark dropdown.border, the light pair of #E8E8E8\n addPrimaryBackground: 'rgb(245, 245, 245)',\n addPrimaryForeground: 'rgb(23, 23, 23)',\n },\n selectionBar: {\n background: 'rgb(56, 56, 56)', // lifts off the dark sheet\n foreground: 'rgb(255, 255, 255)',\n mutedForeground: 'rgb(176, 176, 176)',\n divider: 'rgb(96, 96, 96)',\n border: 'rgb(96, 96, 96)', // hairline on the dark sheet\n primaryBorder: 'rgb(120, 120, 120)',\n shadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.45)',\n noticeBackground: 'rgb(96, 70, 28)',\n noticeForeground: 'rgb(240, 202, 148)',\n noticeShadow: '0px 4px 10px 0px rgba(0, 0, 0, 0.45)',\n },\n inlineConfirm: {\n background: 'rgb(64, 64, 64)', // lifts off the dark sheet\n foreground: 'rgb(255, 255, 255)',\n divider: 'rgba(255, 255, 255, 0.16)',\n shadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.45)',\n },\n dropdown: {\n border: 'rgb(100, 100, 100)',\n borderActive: 'rgba(50, 205, 132, 0.7)',\n borderFilter: 'rgba(50, 205, 132, 0.5)',\n borderError: 'rgba(255, 100, 100, 0.6)',\n borderPending: 'rgba(240, 138, 7, 0.7)',\n shadow: '0px 1px 0px 0px rgba(0, 0, 0, 0.4)',\n shadowHover: '0px 1px 0px 0px rgba(50, 205, 132, 0.6)',\n shadowActive: '0px 1px 0px 0px rgba(50, 205, 132, 0.8)',\n shadowFilter: '0px 1px 0px 0px rgba(50, 205, 132, 0.6)',\n shadowError:\n '0px 1px 0px 0px rgba(255, 100, 100, 0.8), 0px 0px 0px 2px rgba(255, 100, 100, 0.1)',\n shadowPending:\n '0px 1px 0px 0px rgba(240, 138, 7, 0.8), 0px 0px 0px 2px rgba(240, 138, 7, 0.15)',\n disabledBackground: 'rgb(70, 70, 70)',\n },\n tag: {\n primary: {\n background: 'rgba(37, 130, 234, 0.2)', // Darker background for dark theme\n foreground: 'rgb(96, 165, 250)', // Lighter blue for dark theme\n border: 'rgb(96, 165, 250)', // Lighter blue border\n shadow: 'rgba(96, 165, 250, 0.5)', // Lighter blue shadow\n },\n secondary: {\n background: 'rgba(0, 175, 102, 0.2)', // Darker background for dark theme\n foreground: 'rgb(34, 197, 94)', // Lighter green for dark theme\n border: 'rgb(34, 197, 94)', // Lighter green border\n shadow: 'rgba(34, 197, 94, 0.5)', // Lighter green shadow\n },\n default: {\n background: 'rgba(161, 161, 161, 0.2)', // Darker background for dark theme\n foreground: 'rgb(161, 161, 161)', // Light gray for dark theme\n border: 'rgb(161, 161, 161)', // Light gray border\n shadow: 'rgba(161, 161, 161, 0.5)', // Light gray shadow\n },\n error: {\n background: 'rgba(239, 68, 68, 0.2)', // Darker background for dark theme\n foreground: 'rgb(248, 113, 113)', // Lighter red for dark theme\n border: 'rgb(248, 113, 113)', // Lighter red border\n shadow: 'rgba(248, 113, 113, 0.5)', // Lighter red shadow\n },\n warning: {\n background: 'rgba(245, 158, 11, 0.2)', // Darker background for dark theme\n foreground: 'rgb(251, 191, 36)', // Lighter orange for dark theme\n border: 'rgb(251, 191, 36)', // Lighter orange border\n shadow: 'rgba(251, 191, 36, 0.5)', // Lighter orange shadow\n },\n success: {\n background: 'rgba(0, 175, 102, 0.2)', // Darker background for dark theme\n foreground: 'rgb(34, 197, 94)', // Lighter green for dark theme\n border: 'rgb(34, 197, 94)', // Lighter green border\n shadow: 'rgba(34, 197, 94, 0.5)', // Lighter green shadow\n },\n emphasis: {\n background: 'rgb(59, 59, 59)', // Figma #3b3b3b\n foreground: 'rgb(255, 255, 255)',\n border: 'rgb(255, 255, 255)',\n shadow: 'rgba(0, 0, 0, 0.2)',\n },\n info: {\n background: 'rgba(12, 88, 174, 0.25)',\n foreground: 'rgb(125, 171, 245)', // Blue (Dark) lifted for dark surfaces\n border: 'rgb(125, 171, 245)',\n shadow: 'rgba(125, 171, 245, 0.5)',\n },\n assistant: {\n // Same violet the assistant diff palette already picked for dark ground\n // (see codeBlock.diffAssistantBackground below) — one hue, reused everywhere\n // \"made by the assistant\" needs to read in dark mode.\n background: 'rgba(158, 130, 255, 0.18)',\n foreground: 'rgb(184, 158, 255)', // Matches diffAssistantForeground\n border: 'rgba(158, 130, 255, 0.32)', // Same hue as the background, more opaque so the edge reads\n shadow: 'rgba(184, 158, 255, 0.5)', // Lighter violet shadow\n },\n },\n numberTag: {\n background: 'rgba(255, 255, 255, 0.1)', // Light pill on dark surfaces\n foreground: 'rgb(161, 161, 161)', // Dark theme text secondary\n emphasisBackground: 'rgba(255, 255, 255, 0.2)', // Stronger pill for emphasis\n emphasisForeground: 'rgb(237, 237, 237)', // Dark theme text emphasis\n },\n table: {\n // Copied from the light theme and never darkened, so dark mode rendered a light\n // container, header and white rows with pale grey text.\n background: 'rgb(23, 23, 23)', // Darker than rows, as #F7F7F7 is in light\n boxShadow: 'none', // The designed container is a flat grey frame, not elevated\n header: {\n background: 'rgb(42, 42, 42)', // Dark theme header surface\n foreground: 'rgb(237, 237, 237)', // Dark theme text emphasis\n border: 'rgb(75, 85, 99)', // Dark theme header border\n },\n row: {\n background: 'rgb(30, 30, 30)', // Dark theme row background\n foreground: 'rgb(209, 213, 219)', // Dark theme row text\n hoverBackground: 'rgb(42, 42, 42)', // Dark theme row hover\n border: 'rgb(75, 85, 99)', // Dark theme row border\n // Not the light theme's brand green: over a near-black row it composites darker\n // than hoverBackground. 20%, because at 15% the step past hover was 1.12:1.\n selectedBackground: 'rgba(34, 197, 94, 0.2)',\n selectedAccent: 'rgb(20, 170, 100)', // non-text, 3:1 applies\n selectedForeground: 'rgb(34, 197, 94)', // 5.09:1 — text needs AA 4.5:1\n },\n border: 'rgb(75, 85, 99)', // Dark theme table border\n borderedRow: {\n background: 'rgb(30, 30, 30)', // Matches row.background and card.background\n outline: 'rgb(75, 85, 99)', // Dark theme bordered row outline\n },\n rowVariant: {\n success: {\n background: 'rgba(34, 197, 94, 0.15)', // Dark theme success background\n },\n warning: {\n background: 'rgba(251, 191, 36, 0.15)', // Dark theme warning background\n },\n error: {\n background: 'rgba(248, 113, 113, 0.15)', // Dark theme error background\n },\n info: {\n background: 'rgba(96, 165, 250, 0.15)', // Dark theme info background\n },\n },\n error: {\n iconBackground: 'rgba(245, 158, 11, 0.2)', // Dark theme warning background\n iconForeground: 'rgb(251, 191, 36)', // Dark theme warning foreground\n titleForeground: 'rgb(255, 255, 255)', // Dark theme title\n subtitleForeground: 'rgb(161, 161, 161)', // Dark theme subtitle\n },\n },\n text: {\n primary: 'rgb(255, 255, 255)',\n secondary: 'rgb(161, 161, 161)',\n dimmed: 'rgb(115, 115, 115)',\n emphasis: 'rgb(237, 237, 237)',\n muted: 'rgb(199, 199, 199)',\n placeholder: 'rgb(140, 140, 140)', // Dark theme placeholder color\n destructive: 'rgb(255, 120, 120)',\n success: 'rgb(20, 170, 100)',\n highlight: 'rgb(118, 214, 174)',\n warning: 'rgb(200, 130, 20)',\n warningMuted: 'rgb(206, 163, 108)', // Same tan reads as muted on dark too\n error: 'rgb(255, 80, 80)',\n info: 'rgb(125, 171, 245)',\n linkForeground: 'rgba(255, 255, 255, 0.45)',\n linkForegroundHover: 'rgb(255, 255, 255)',\n rightSideText: {\n // Mirrors text.secondary / text.primary, exactly as the light theme does.\n muted: 'rgb(161, 161, 161)',\n primary: 'rgb(255, 255, 255)',\n alignment: 'right' as const,\n fontSize: '12px',\n minWidth: '80px',\n },\n },\n codeBlock: {\n background: 'rgb(42, 42, 42)', // Dark background\n foreground: 'rgb(255, 255, 255)', // Light text\n border: 'rgb(80, 80, 80)', // Dark border\n lineNumber: 'rgb(161, 161, 161)', // Light gray for line numbers\n keyword: 'rgb(100, 150, 220)', // Light blue for keywords\n comment: 'rgb(161, 161, 161)', // Gray for comments\n string: 'rgb(120, 220, 150)', // Light green for strings\n number: 'rgb(255, 180, 100)', // Light orange for numbers\n type: 'rgb(100, 150, 220)', // Light blue for types\n diffAddedBackground: 'rgba(34, 197, 94, 0.16)', // Lighter green for dark theme\n diffRemovedBackground: 'rgba(255, 100, 100, 0.14)', // Lighter red for dark theme\n // Assistant diff palette, kept at the same relationships as the light theme values.\n diffAssistantBackground: 'rgba(158, 130, 255, 0.18)', // Violet tint that still reads on a dark ground\n diffAssistantForeground: 'rgb(184, 158, 255)', // Lighter violet so the marker holds contrast\n diffAssistantRemovedBackground: 'rgba(190, 185, 210, 0.08)', // Faint neutral-violet tint\n diffRemovedForeground: 'rgb(168, 162, 190)', // Muted violet-grey marker, lightened for dark contrast\n diffContextForeground: 'rgb(90, 90, 90)', // Low-contrast marker, dark counterpart to the near-white D9D9D9\n diffContextText: 'rgb(170, 170, 170)', // De-emphasised text, in line with the existing comment grey\n },\n chat: {\n userBubbleBackground: 'rgb(45, 45, 45)', // One step up from the page, matching selectableCard's dark surface\n userBubbleBorder: 'rgb(64, 64, 64)', // Matches card.border, the dark theme's neutral hairline\n // Neutral for the same reason as the light theme: the violet belongs to the\n // pending-change marks, not to authorship. Here the assistant sits one step BELOW\n // the user's surface rather than above it, since dark has no room above 45.\n assistantBubbleBackground: 'rgb(30, 30, 30)', // card.background\n assistantBubbleBorder: 'rgb(64, 64, 64)', // card.border, the same hairline the user bubble uses\n assistantBubbleForeground: 'rgb(255, 255, 255)', // card.foreground\n },\n assistant: {\n foreground: 'rgb(184, 158, 255)', // Matches diffAssistantForeground / tag.assistant.foreground\n surfaceBackground: 'rgba(158, 130, 255, 0.08)', // Faint tint, still distinguishable from the dark page\n surfaceBorder: 'rgba(158, 130, 255, 0.35)', // A dashed outline needs more presence than the surface tint\n // Light theme darkens the violet accent (#6E56CF) to #4A3F7A for body text; dark\n // theme instead lifts it, the same transform `text.info` applies to its accent, so\n // the muted violet still reads against a near-black ground rather than going darker.\n surfaceForeground: 'rgb(134, 120, 186)',\n },\n },\n};\n\n// localStorage keys\nconst THEME_MODE_KEY = 'malachite-theme-mode';\nconst CUSTOM_THEME_KEY = 'malachite-custom-theme';\n\n// hub forwards a caller-supplied theme from a JSON attribute into applyTheme, and the\n// shadow-root branch concatenates values into a CSS string — any of these closes :host.\n/** A custom property name is only safe to echo into a log once it matches this. */\nconst SAFE_CUSTOM_PROPERTY = /^--[A-Za-z0-9_-]+$/;\n\nconst UNSAFE_CSS_SYNTAX = /[{};]|\\/\\*|\\*\\//;\n// Keys become custom-property names, so they carry the same risk.\nconst SAFE_THEME_KEY = /^[A-Za-z0-9_-]+$/;\n\n/** Drops any key or value that could break out of a CSS declaration. Dropped entries fall\n * through to the base theme rather than leaving the token unset. */\nfunction sanitizeThemeInput(value: unknown, path: string): unknown {\n if (typeof value === 'string') {\n if (UNSAFE_CSS_SYNTAX.test(value)) {\n console.warn(\n `Malachite: ignoring theme value at ${path} — CSS syntax characters ({ } ; /* */) are not allowed.`,\n );\n return undefined;\n }\n return value;\n }\n\n if (value === null || typeof value !== 'object') return value;\n\n const sanitized: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n const childPath = path ? `${path}.${key}` : key;\n if (!SAFE_THEME_KEY.test(key)) {\n // Parent path, never childPath: the rejected key is untrusted input.\n console.warn(\n `Malachite: ignoring a theme key under ${path || '<root>'} — theme keys may contain only letters, digits, hyphens and underscores.`,\n );\n continue;\n }\n const sanitizedChild = sanitizeThemeInput(child, childPath);\n if (sanitizedChild !== undefined) sanitized[key] = sanitizedChild;\n }\n return sanitized;\n}\n\n// Keep track of all shadow roots so we can update them when theme changes\nconst registeredShadowRoots = new Set<ShadowRoot>();\n\n/**\n * Register a shadow root to receive theme updates\n */\nexport function registerShadowRoot(shadowRoot: ShadowRoot): void {\n try {\n // Prevent duplicate registrations\n if (registeredShadowRoots.has(shadowRoot)) {\n return;\n }\n\n registeredShadowRoots.add(shadowRoot);\n // Apply current theme to this new shadow root\n applyCurrentThemeToShadowRoot(shadowRoot);\n } catch (error) {\n console.error('Error registering shadow root:', error);\n }\n}\n\n/**\n * Unregister a shadow root when it's no longer needed\n */\nexport function unregisterShadowRoot(shadowRoot: ShadowRoot): void {\n try {\n registeredShadowRoots.delete(shadowRoot);\n } catch (error) {\n console.error('Error unregistering shadow root:', error);\n }\n}\n\n/** Table keys whose readers expect kebab-case. `boxShadow` was emitted camelCase while\n * tailwind.css and getCurrentTheme both read `--malachite-table-box-shadow`, so the\n * bordered container never received a shadow. Keyed on the real table shape, so a typo\n * fails typecheck rather than silently emitting the camelCase name. */\nconst TABLE_KEBAB_KEYS: Partial<Record<keyof MalachiteTheme['colors']['table'], string>> = {\n rowVariant: 'row-variant',\n boxShadow: 'box-shadow',\n};\n\n/**\n * Helper function to process table color properties and add them to CSS properties\n */\nfunction processTableColorProperties(\n tableColors: MalachiteTheme['colors']['table'],\n prefix: string,\n addProperty: (key: string, value: string) => void,\n): void {\n Object.entries(tableColors).forEach(([key, value]) => {\n // Top-level table keys are NOT kebab-cased in general: `borderedRow` ships as\n // `--malachite-table-borderedRow-*` and tailwind.css reads it that way, so\n // renaming it would break consumers. Only the keys whose readers expect kebab\n // are mapped, hence the explicit list rather than a blanket transform.\n const parentKeyVar = TABLE_KEBAB_KEYS[key as keyof typeof TABLE_KEBAB_KEYS] ?? key;\n if (typeof value === 'object' && value !== null) {\n Object.entries(value).forEach(([subKey, subValue]) => {\n const kebabKey = subKey.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (typeof subValue === 'object' && subValue !== null) {\n Object.entries(subValue).forEach(([deepKey, deepValue]) => {\n const deepKebabKey = deepKey.replace(/([A-Z])/g, '-$1').toLowerCase();\n addProperty(\n `${prefix}-${parentKeyVar}-${kebabKey}-${deepKebabKey}`,\n deepValue as string,\n );\n });\n } else {\n addProperty(`${prefix}-${parentKeyVar}-${kebabKey}`, subValue as string);\n }\n });\n } else {\n addProperty(`${prefix}-${parentKeyVar}`, value);\n }\n });\n}\n\n/**\n * Apply CSS custom properties to a target element (document.documentElement or shadow root)\n */\nfunction applyCSSCustomProperties(theme: MalachiteTheme, target: HTMLElement | ShadowRoot): void {\n // Both branches emit accent from these, so an omitted accent still paints the defaults.\n const accentColors = theme.colors.accent ?? DEFAULT_ACCENT_COLORS;\n const shadows = { ...theme.shadows, accent: theme.shadows.accent ?? DEFAULT_ACCENT_SHADOW };\n\n if (target instanceof ShadowRoot) {\n // For shadow roots, we need to set properties on a style element\n let styleElement = target.querySelector('#malachite-theme-vars') as HTMLStyleElement;\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = 'malachite-theme-vars';\n target.appendChild(styleElement);\n }\n\n // Build CSS custom properties\n const properties: string[] = [];\n\n // Add font size properties\n Object.entries(theme.fontSizes).forEach(([key, value]) => {\n properties.push(`--malachite-font-size-${key}: ${value}`);\n });\n\n // Add icon size properties\n Object.entries(theme.iconSizes).forEach(([key, value]) => {\n properties.push(`--malachite-icon-size-${key}: ${value}`);\n });\n\n // Add radius properties\n Object.entries(theme.radius).forEach(([key, value]) => {\n properties.push(`--malachite-radius-${key}: ${value}`);\n });\n\n // Add control height properties\n Object.entries(theme.controlHeights ?? CONTROL_HEIGHT).forEach(([key, value]) => {\n properties.push(`--malachite-control-height-${key}: ${value}`);\n });\n\n // Add shadow properties\n Object.entries(shadows).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-shadow-${kebabKey}: ${value}`);\n });\n\n // Add color properties\n properties.push(`--malachite-shadow-color: ${theme.colors.shadowColor}`);\n properties.push(`--malachite-shadow-opacity: ${theme.colors.shadowOpacity}`);\n\n // Add card color properties\n Object.entries(theme.colors.card).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-card-${kebabKey}: ${value}`);\n });\n\n // Add overlay color properties\n Object.entries(theme.colors.overlay).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-overlay-${kebabKey}: ${value}`);\n });\n\n // Add alert color properties\n Object.entries(theme.colors.alert).forEach(([alertType, alertColors]) => {\n Object.entries(alertColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-alert-${alertType}-${kebabKey}: ${value}`);\n });\n });\n\n // Add tooltip color properties\n Object.entries(theme.colors.tooltip).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-tooltip-${kebabKey}: ${value}`);\n });\n\n // Add buttonList color properties\n Object.entries(theme.colors.buttonList).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-buttonlist-${kebabKey}: ${value}`);\n });\n\n // Add pillButton color properties\n Object.entries(theme.colors.pillButton).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-pillbutton-${kebabKey}: ${value}`);\n });\n\n // Add toggle color properties\n Object.entries(theme.colors.toggle).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-toggle-${kebabKey}: ${value}`);\n });\n\n // Add segmentedControl color properties\n Object.entries(theme.colors.segmentedControl).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-segmented-control-${kebabKey}: ${value}`);\n });\n\n Object.entries(theme.colors.selectableCard).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-selectable-card-${kebabKey}: ${value}`);\n });\n\n Object.entries(theme.colors.cardStrip).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-card-strip-${kebabKey}: ${value}`);\n });\n\n Object.entries(theme.colors.selectionBar).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-selection-bar-${kebabKey}: ${value}`);\n });\n\n Object.entries(theme.colors.inlineConfirm).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-inline-confirm-${kebabKey}: ${value}`);\n });\n\n // Add dropdown color properties\n Object.entries(theme.colors.dropdown).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-dropdown-${kebabKey}: ${value}`);\n });\n\n Object.entries(theme.colors.control).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-control-${kebabKey}: ${value}`);\n });\n\n Object.entries(accentColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-accent-${kebabKey}: ${value}`);\n });\n\n // Add tag color properties\n Object.entries(theme.colors.tag).forEach(([tagType, tagColors]) => {\n Object.entries(tagColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-tag-${tagType}-${kebabKey}: ${value}`);\n });\n });\n\n // Add number tag color properties\n Object.entries(theme.colors.numberTag).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-number-tag-${kebabKey}: ${value}`);\n });\n\n // Add table color properties\n processTableColorProperties(theme.colors.table, '--malachite-table', (key, value) =>\n properties.push(`${key}: ${value}`),\n );\n\n // Add text color properties\n Object.entries(theme.colors.text).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (typeof value === 'object' && value !== null) {\n // Handle nested objects like rightSideText (supports one extra nesting level)\n Object.entries(value).forEach(([nestedKey, nestedValue]) => {\n const nestedKebabKey = nestedKey.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (typeof nestedValue === 'object' && nestedValue !== null) {\n Object.entries(nestedValue as Record<string, string>).forEach(\n ([deepKey, deepValue]) => {\n const deepKebabKey = deepKey\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase();\n properties.push(\n `--malachite-text-${kebabKey}-${nestedKebabKey}-${deepKebabKey}: ${deepValue}`,\n );\n },\n );\n } else {\n properties.push(\n `--malachite-text-${kebabKey}-${nestedKebabKey}: ${nestedValue}`,\n );\n }\n });\n } else {\n properties.push(`--malachite-text-${kebabKey}: ${value}`);\n }\n });\n\n // Add codeBlock color properties\n Object.entries(theme.colors.codeBlock).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-codeblock-${kebabKey}: ${value}`);\n });\n\n // Add chat color properties\n Object.entries(theme.colors.chat).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-chat-${kebabKey}: ${value}`);\n });\n\n // Add assistant color properties\n Object.entries(theme.colors.assistant).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-assistant-${kebabKey}: ${value}`);\n });\n\n // Add button color variants\n // Keep in sync with the documentElement branch's list: 'outline' was missing here,\n // so the token never reached a shadow root — where every component actually renders.\n const colorVariants = [\n 'primary',\n 'secondary',\n 'outline',\n 'destructive',\n 'success',\n 'warning',\n 'error',\n ] as const;\n colorVariants.forEach((variant) => {\n const variantColors = theme.colors[variant];\n Object.entries(variantColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n properties.push(`--malachite-${variant}-${kebabKey}: ${value}`);\n });\n });\n\n // :host only — custom properties inherit to the whole shadow tree, and a\n // universal `* { }` copy forces WebKit to apply/compare every token on every\n // element, which makes style recalc O(elements × tokens) and freezes Safari\n // on large pages. Component-level token overrides still win over inheritance.\n // Second line of defence behind mergeThemes' sanitizer.\n const safeProperties = properties.filter((declaration) => {\n if (!UNSAFE_CSS_SYNTAX.test(declaration)) return true;\n // A hostile key puts the breakout before the first colon, so check the name too.\n const candidate = declaration.split(':', 1)[0].trim();\n const name = SAFE_CUSTOM_PROPERTY.test(candidate) ? candidate : 'an unnamed token';\n console.warn(`Malachite: dropped an unsafe theme declaration for ${name}`);\n return false;\n });\n\n styleElement.textContent = `:host { ${safeProperties.join('; ')} }`;\n } else if (target instanceof HTMLElement) {\n // For document.documentElement, use setProperty directly\n Object.entries(theme.fontSizes).forEach(([key, value]) => {\n target.style.setProperty(`--malachite-font-size-${key}`, value);\n });\n\n Object.entries(theme.iconSizes).forEach(([key, value]) => {\n target.style.setProperty(`--malachite-icon-size-${key}`, value);\n });\n\n Object.entries(theme.radius).forEach(([key, value]) => {\n target.style.setProperty(`--malachite-radius-${key}`, value);\n });\n\n Object.entries(theme.controlHeights ?? CONTROL_HEIGHT).forEach(([key, value]) => {\n target.style.setProperty(`--malachite-control-height-${key}`, value);\n });\n\n Object.entries(shadows).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-shadow-${kebabKey}`, value);\n });\n\n target.style.setProperty('--malachite-shadow-color', theme.colors.shadowColor);\n target.style.setProperty(\n '--malachite-shadow-opacity',\n theme.colors.shadowOpacity.toString(),\n );\n\n // Add card color properties\n Object.entries(theme.colors.card).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-card-${kebabKey}`, value);\n });\n\n // Add overlay color properties\n Object.entries(theme.colors.overlay).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-overlay-${kebabKey}`, value);\n });\n\n // Add alert color properties\n Object.entries(theme.colors.alert).forEach(([alertType, alertColors]) => {\n Object.entries(alertColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-alert-${alertType}-${kebabKey}`, value);\n });\n });\n\n // Add tooltip color properties\n Object.entries(theme.colors.tooltip).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-tooltip-${kebabKey}`, value);\n });\n\n // Add buttonList color properties\n Object.entries(theme.colors.buttonList).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-buttonlist-${kebabKey}`, value);\n });\n\n // Add pillButton color properties\n Object.entries(theme.colors.pillButton).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-pillbutton-${kebabKey}`, value);\n });\n\n // Add toggle color properties\n Object.entries(theme.colors.toggle).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-toggle-${kebabKey}`, value);\n });\n\n // Add segmentedControl color properties\n Object.entries(theme.colors.segmentedControl).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-segmented-control-${kebabKey}`, value);\n });\n\n Object.entries(theme.colors.selectableCard).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-selectable-card-${kebabKey}`, value);\n });\n\n Object.entries(theme.colors.cardStrip).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-card-strip-${kebabKey}`, value);\n });\n\n Object.entries(theme.colors.selectionBar).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-selection-bar-${kebabKey}`, value);\n });\n\n Object.entries(theme.colors.inlineConfirm).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-inline-confirm-${kebabKey}`, value);\n });\n\n // Add dropdown color properties\n Object.entries(theme.colors.dropdown).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-dropdown-${kebabKey}`, value);\n });\n\n Object.entries(theme.colors.control).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-control-${kebabKey}`, value);\n });\n\n Object.entries(accentColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-accent-${kebabKey}`, value);\n });\n\n // Add tag color properties\n Object.entries(theme.colors.tag).forEach(([tagType, tagColors]) => {\n Object.entries(tagColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-tag-${tagType}-${kebabKey}`, value);\n });\n });\n\n // Add number tag color properties\n Object.entries(theme.colors.numberTag).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-number-tag-${kebabKey}`, value);\n });\n\n // Add table color properties\n processTableColorProperties(theme.colors.table, '--malachite-table', (key, value) =>\n target.style.setProperty(key, value),\n );\n\n // Add text color properties\n Object.entries(theme.colors.text).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (typeof value === 'object' && value !== null) {\n // Handle nested objects like rightSideText (supports one extra nesting level)\n Object.entries(value).forEach(([nestedKey, nestedValue]) => {\n const nestedKebabKey = nestedKey.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (typeof nestedValue === 'object' && nestedValue !== null) {\n Object.entries(nestedValue as Record<string, string>).forEach(\n ([deepKey, deepValue]) => {\n const deepKebabKey = deepKey\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase();\n target.style.setProperty(\n `--malachite-text-${kebabKey}-${nestedKebabKey}-${deepKebabKey}`,\n deepValue,\n );\n },\n );\n } else {\n target.style.setProperty(\n `--malachite-text-${kebabKey}-${nestedKebabKey}`,\n nestedValue as string,\n );\n }\n });\n } else {\n target.style.setProperty(`--malachite-text-${kebabKey}`, value);\n }\n });\n\n // Add codeBlock color properties\n Object.entries(theme.colors.codeBlock).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-codeblock-${kebabKey}`, value);\n });\n\n // Add chat color properties\n Object.entries(theme.colors.chat).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-chat-${kebabKey}`, value);\n });\n\n // Add assistant color properties\n Object.entries(theme.colors.assistant).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-assistant-${kebabKey}`, value);\n });\n\n const colorVariants = [\n 'primary',\n 'secondary',\n 'outline',\n 'destructive',\n 'success',\n 'warning',\n 'error',\n ] as const;\n colorVariants.forEach((variant) => {\n const variantColors = theme.colors[variant];\n Object.entries(variantColors).forEach(([key, value]) => {\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n target.style.setProperty(`--malachite-${variant}-${kebabKey}`, value);\n });\n });\n }\n}\n\n/**\n * Apply current theme to a specific shadow root\n */\nfunction applyCurrentThemeToShadowRoot(shadowRoot: ShadowRoot): void {\n try {\n const currentMode = getCurrentThemeMode();\n const customTheme = getCustomTheme();\n\n // Start with base theme (light or dark)\n const baseTheme = currentMode === 'dark' ? darkTheme : defaultTheme;\n\n // Merge with custom theme if any\n const finalTheme = customTheme ? mergeThemes(baseTheme, customTheme) : baseTheme;\n\n applyCSSCustomProperties(finalTheme, shadowRoot);\n } catch (error) {\n console.error('Error applying theme to shadow root:', error);\n }\n}\n\n/**\n * Get current theme mode from localStorage\n */\nexport function getCurrentThemeMode(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light';\n return (localStorage.getItem(THEME_MODE_KEY) as 'light' | 'dark') || 'light';\n}\n\n/**\n * Get custom theme from localStorage\n */\nfunction getCustomTheme(): PartialMalachiteTheme | null {\n if (typeof window === 'undefined') return null;\n const stored = localStorage.getItem(CUSTOM_THEME_KEY);\n if (!stored) return null;\n try {\n return JSON.parse(stored);\n } catch {\n // Corrupt entry: drop it rather than throwing out of every caller. applyLightTheme\n // used to removeItem before reading, so it self-healed; now that it merges like\n // applyDarkTheme, that recovery has to live here or a bad entry wedges both modes.\n localStorage.removeItem(CUSTOM_THEME_KEY);\n return null;\n }\n}\n\n/**\n * Save theme mode to localStorage\n */\nfunction saveThemeMode(mode: 'light' | 'dark'): void {\n if (typeof window !== 'undefined') {\n localStorage.setItem(THEME_MODE_KEY, mode);\n }\n}\n\n/**\n * Save custom theme to localStorage\n */\nfunction saveCustomTheme(theme: PartialMalachiteTheme): void {\n if (typeof window !== 'undefined') {\n localStorage.setItem(CUSTOM_THEME_KEY, JSON.stringify(theme));\n }\n}\n\n/**\n * Merge themes (deep merge for nested objects)\n */\nfunction mergeThemes(base: MalachiteTheme, customInput: PartialMalachiteTheme): MalachiteTheme {\n // The one choke point every custom-theme path funnels through.\n const custom = sanitizeThemeInput(customInput, '') as PartialMalachiteTheme;\n\n const result = { ...base };\n\n if (custom.fontSizes) {\n result.fontSizes = { ...result.fontSizes, ...custom.fontSizes };\n }\n\n if (custom.iconSizes) {\n result.iconSizes = { ...result.iconSizes, ...custom.iconSizes };\n }\n\n if (custom.radius) {\n result.radius = { ...result.radius, ...custom.radius };\n }\n\n if (custom.controlHeights) {\n result.controlHeights = {\n ...(result.controlHeights ?? CONTROL_HEIGHT),\n ...custom.controlHeights,\n };\n }\n\n if (custom.shadows) {\n result.shadows = { ...result.shadows, ...custom.shadows };\n }\n\n if (custom.colors) {\n result.colors = { ...result.colors };\n\n if (custom.colors.shadowColor !== undefined) {\n result.colors.shadowColor = custom.colors.shadowColor;\n }\n if (custom.colors.shadowOpacity !== undefined) {\n result.colors.shadowOpacity = custom.colors.shadowOpacity;\n }\n\n // Handle card colors\n if (custom.colors.card) {\n result.colors.card = { ...result.colors.card, ...custom.colors.card };\n }\n\n // Handle overlay colors\n if (custom.colors.overlay) {\n result.colors.overlay = { ...result.colors.overlay, ...custom.colors.overlay };\n }\n\n // Handle alert colors. Keyed loop rather than a fixed destructure, so an alert\n // variant added to the theme later is merged instead of silently dropped.\n if (custom.colors.alert) {\n // Copy first: the spread makes a fresh `alert`, but each variant still points\n // at defaultTheme's object, which must not be mutated.\n result.colors.alert = { ...result.colors.alert };\n for (const key of Object.keys(\n custom.colors.alert,\n ) as (keyof MalachiteTheme['colors']['alert'])[]) {\n const variant = custom.colors.alert[key];\n if (variant) {\n result.colors.alert[key] = { ...result.colors.alert[key], ...variant };\n }\n }\n }\n\n // Handle tooltip colors\n if (custom.colors.tooltip) {\n result.colors.tooltip = { ...result.colors.tooltip, ...custom.colors.tooltip };\n }\n\n // Handle each color variant explicitly to avoid TypeScript issues\n if (custom.colors.primary) {\n result.colors.primary = { ...result.colors.primary, ...custom.colors.primary };\n }\n if (custom.colors.accent) {\n result.colors.accent = {\n ...(result.colors.accent ?? DEFAULT_ACCENT_COLORS),\n ...custom.colors.accent,\n };\n }\n if (custom.colors.control) {\n result.colors.control = { ...result.colors.control, ...custom.colors.control };\n }\n if (custom.colors.outline) {\n result.colors.outline = { ...result.colors.outline, ...custom.colors.outline };\n }\n if (custom.colors.secondary) {\n result.colors.secondary = { ...result.colors.secondary, ...custom.colors.secondary };\n }\n if (custom.colors.destructive) {\n result.colors.destructive = {\n ...result.colors.destructive,\n ...custom.colors.destructive,\n };\n }\n if (custom.colors.success) {\n result.colors.success = { ...result.colors.success, ...custom.colors.success };\n }\n if (custom.colors.warning) {\n result.colors.warning = { ...result.colors.warning, ...custom.colors.warning };\n }\n if (custom.colors.error) {\n result.colors.error = { ...result.colors.error, ...custom.colors.error };\n }\n if (custom.colors.buttonList) {\n result.colors.buttonList = { ...result.colors.buttonList, ...custom.colors.buttonList };\n }\n if (custom.colors.pillButton) {\n result.colors.pillButton = { ...result.colors.pillButton, ...custom.colors.pillButton };\n }\n if (custom.colors.toggle) {\n result.colors.toggle = { ...result.colors.toggle, ...custom.colors.toggle };\n }\n if (custom.colors.segmentedControl) {\n result.colors.segmentedControl = {\n ...result.colors.segmentedControl,\n ...custom.colors.segmentedControl,\n };\n }\n if (custom.colors.selectableCard) {\n result.colors.selectableCard = {\n ...result.colors.selectableCard,\n ...custom.colors.selectableCard,\n };\n }\n if (custom.colors.cardStrip) {\n result.colors.cardStrip = { ...result.colors.cardStrip, ...custom.colors.cardStrip };\n }\n if (custom.colors.selectionBar) {\n result.colors.selectionBar = {\n ...result.colors.selectionBar,\n ...custom.colors.selectionBar,\n };\n }\n if (custom.colors.inlineConfirm) {\n result.colors.inlineConfirm = {\n ...result.colors.inlineConfirm,\n ...custom.colors.inlineConfirm,\n };\n }\n if (custom.colors.dropdown) {\n result.colors.dropdown = { ...result.colors.dropdown, ...custom.colors.dropdown };\n }\n if (custom.colors.tag) {\n // Copy first: the spread makes a fresh `tag`, but each variant still points at\n // defaultTheme's object, which must not be mutated.\n result.colors.tag = { ...result.colors.tag };\n for (const key of Object.keys(\n custom.colors.tag,\n ) as (keyof MalachiteTheme['colors']['tag'])[]) {\n const variant = custom.colors.tag[key];\n if (variant) {\n result.colors.tag[key] = { ...result.colors.tag[key], ...variant };\n }\n }\n }\n if (custom.colors.numberTag) {\n result.colors.numberTag = { ...result.colors.numberTag, ...custom.colors.numberTag };\n }\n if (custom.colors.text) {\n const { rightSideText, ...flat } = custom.colors.text;\n result.colors.text = { ...result.colors.text, ...flat };\n if (rightSideText) {\n result.colors.text.rightSideText = {\n ...result.colors.text.rightSideText,\n ...rightSideText,\n };\n }\n }\n if (custom.colors.codeBlock) {\n result.colors.codeBlock = { ...result.colors.codeBlock, ...custom.colors.codeBlock };\n }\n if (custom.colors.chat) {\n result.colors.chat = { ...result.colors.chat, ...custom.colors.chat };\n }\n if (custom.colors.assistant) {\n result.colors.assistant = { ...result.colors.assistant, ...custom.colors.assistant };\n }\n // Deeper than the flat groups above: table's sub-objects are nested, so a shallow\n // spread would drop whatever the caller didn't restate.\n if (custom.colors.table) {\n const { header, row, borderedRow, rowVariant, error, ...flat } = custom.colors.table;\n result.colors.table = { ...result.colors.table, ...flat };\n if (header) {\n result.colors.table.header = { ...result.colors.table.header, ...header };\n }\n if (row) {\n result.colors.table.row = { ...result.colors.table.row, ...row };\n }\n if (borderedRow) {\n result.colors.table.borderedRow = {\n ...result.colors.table.borderedRow,\n ...borderedRow,\n };\n }\n if (error) {\n result.colors.table.error = { ...result.colors.table.error, ...error };\n }\n if (rowVariant) {\n // Copy first: the spread made a fresh `table`, but `rowVariant` still points at\n // defaultTheme's, which must not be mutated.\n const merged = { ...result.colors.table.rowVariant };\n for (const key of Object.keys(rowVariant) as (keyof typeof rowVariant)[]) {\n const variant = rowVariant[key];\n if (variant) {\n merged[key] = { ...merged[key], ...variant };\n }\n }\n result.colors.table.rowVariant = merged;\n }\n }\n }\n\n return result;\n}\n\n/**\n * Apply a custom theme to Malachite components\n * This function sets CSS custom properties that will be used by all Malachite components\n * Works with Shadow DOM isolation by applying to all registered shadow roots\n */\nexport function applyTheme(theme: PartialMalachiteTheme): void {\n // Save custom theme to localStorage\n saveCustomTheme(theme);\n\n // Apply to main document\n const currentMode = getCurrentThemeMode();\n const baseTheme = currentMode === 'dark' ? darkTheme : defaultTheme;\n const finalTheme = mergeThemes(baseTheme, theme);\n\n applyCSSCustomProperties(finalTheme, document.documentElement);\n\n // Apply to all registered shadow roots\n registeredShadowRoots.forEach((shadowRoot) => {\n applyCSSCustomProperties(finalTheme, shadowRoot);\n });\n\n // Update data-theme attribute for main document CSS\n if (currentMode === 'dark') {\n document.documentElement.setAttribute('data-theme', 'dark');\n } else {\n document.documentElement.removeAttribute('data-theme');\n }\n}\n\n/** Scope the active theme (base mode + any persisted custom overrides) to one element/root, without changing global mode. Used by <ThemeScope>. */\nexport function applyThemeVars(target: HTMLElement | ShadowRoot, mode: ThemeMode): void {\n const baseTheme = mode === 'dark' ? darkTheme : defaultTheme;\n const customTheme = getCustomTheme();\n const finalTheme = customTheme ? mergeThemes(baseTheme, customTheme) : baseTheme;\n applyCSSCustomProperties(finalTheme, target);\n}\n\n/**\n * Apply the default (light) theme\n */\nexport function applyLightTheme(): void {\n saveThemeMode('light');\n document.documentElement.removeAttribute('data-theme');\n\n // Apply the light theme, preserving any custom theme. Deliberately symmetric with\n // applyDarkTheme: this used to removeItem(CUSTOM_THEME_KEY), so a toggle to light\n // destroyed a consumer's custom theme permanently. resetTheme is the way to clear one.\n const customTheme = getCustomTheme();\n const finalTheme = customTheme ? mergeThemes(defaultTheme, customTheme) : defaultTheme;\n\n applyCSSCustomProperties(finalTheme, document.documentElement);\n\n // Apply to all registered shadow roots\n registeredShadowRoots.forEach((shadowRoot) => {\n applyCSSCustomProperties(finalTheme, shadowRoot);\n });\n}\n\n/**\n * Apply the dark theme\n */\nexport function applyDarkTheme(): void {\n saveThemeMode('dark');\n document.documentElement.setAttribute('data-theme', 'dark');\n\n // Apply dark theme, preserving any custom theme\n const customTheme = getCustomTheme();\n const finalTheme = customTheme ? mergeThemes(darkTheme, customTheme) : darkTheme;\n\n applyCSSCustomProperties(finalTheme, document.documentElement);\n\n // Apply to all registered shadow roots\n registeredShadowRoots.forEach((shadowRoot) => {\n applyCSSCustomProperties(finalTheme, shadowRoot);\n });\n}\n\n/**\n * Toggle between light and dark themes\n */\nexport function toggleTheme(): 'light' | 'dark' {\n const currentMode = getCurrentThemeMode();\n if (currentMode === 'dark') {\n applyLightTheme();\n return 'light';\n } else {\n applyDarkTheme();\n return 'dark';\n }\n}\n\n/**\n * Apply a custom theme while preserving the current theme mode (light/dark)\n */\nexport function applyCustomTheme(customTheme: PartialMalachiteTheme): void {\n applyTheme(customTheme);\n}\n\n/**\n * Reset theme to default values\n */\nexport function resetTheme(): void {\n const currentMode = getCurrentThemeMode();\n localStorage.removeItem(CUSTOM_THEME_KEY);\n\n if (currentMode === 'dark') {\n applyDarkTheme();\n } else {\n applyLightTheme();\n }\n}\n\n/**\n * Initialize the theme system - should be called on app startup\n */\nexport function initializeTheme(): void {\n if (typeof window !== 'undefined') {\n const currentMode = getCurrentThemeMode();\n const customTheme = getCustomTheme();\n\n if (currentMode === 'dark') {\n if (customTheme) {\n const finalTheme = mergeThemes(darkTheme, customTheme);\n applyCSSCustomProperties(finalTheme, document.documentElement);\n } else {\n applyCSSCustomProperties(darkTheme, document.documentElement);\n }\n document.documentElement.setAttribute('data-theme', 'dark');\n } else {\n if (customTheme) {\n const finalTheme = mergeThemes(defaultTheme, customTheme);\n applyCSSCustomProperties(finalTheme, document.documentElement);\n } else {\n applyCSSCustomProperties(defaultTheme, document.documentElement);\n }\n document.documentElement.removeAttribute('data-theme');\n }\n }\n}\n\n/**\n * Get current theme values from CSS custom properties\n */\nexport function getCurrentTheme(): MalachiteTheme {\n const computedStyle = getComputedStyle(document.documentElement);\n\n return {\n fontSizes: {\n xsmall:\n computedStyle.getPropertyValue('--malachite-font-size-xsmall').trim() ||\n defaultTheme.fontSizes.xsmall,\n small:\n computedStyle.getPropertyValue('--malachite-font-size-small').trim() ||\n defaultTheme.fontSizes.small,\n medium:\n computedStyle.getPropertyValue('--malachite-font-size-medium').trim() ||\n defaultTheme.fontSizes.medium,\n '15':\n computedStyle.getPropertyValue('--malachite-font-size-15').trim() ||\n defaultTheme.fontSizes['15'],\n large:\n computedStyle.getPropertyValue('--malachite-font-size-large').trim() ||\n defaultTheme.fontSizes.large,\n xlarge:\n computedStyle.getPropertyValue('--malachite-font-size-xlarge').trim() ||\n defaultTheme.fontSizes.xlarge,\n xxlarge:\n computedStyle.getPropertyValue('--malachite-font-size-xxlarge').trim() ||\n defaultTheme.fontSizes.xxlarge,\n },\n iconSizes: {\n xsmall:\n computedStyle.getPropertyValue('--malachite-icon-size-xsmall').trim() ||\n defaultTheme.iconSizes.xsmall,\n small:\n computedStyle.getPropertyValue('--malachite-icon-size-small').trim() ||\n defaultTheme.iconSizes.small,\n medium:\n computedStyle.getPropertyValue('--malachite-icon-size-medium').trim() ||\n defaultTheme.iconSizes.medium,\n large:\n computedStyle.getPropertyValue('--malachite-icon-size-large').trim() ||\n defaultTheme.iconSizes.large,\n },\n controlHeights: {\n small:\n computedStyle.getPropertyValue('--malachite-control-height-small').trim() ||\n CONTROL_HEIGHT.small,\n medium:\n computedStyle.getPropertyValue('--malachite-control-height-medium').trim() ||\n CONTROL_HEIGHT.medium,\n large:\n computedStyle.getPropertyValue('--malachite-control-height-large').trim() ||\n CONTROL_HEIGHT.large,\n },\n radius: {\n xs:\n computedStyle.getPropertyValue('--malachite-radius-xs').trim() ||\n defaultTheme.radius.xs,\n sm:\n computedStyle.getPropertyValue('--malachite-radius-sm').trim() ||\n defaultTheme.radius.sm,\n md:\n computedStyle.getPropertyValue('--malachite-radius-md').trim() ||\n defaultTheme.radius.md,\n lg:\n computedStyle.getPropertyValue('--malachite-radius-lg').trim() ||\n defaultTheme.radius.lg,\n '10':\n computedStyle.getPropertyValue('--malachite-radius-10').trim() ||\n defaultTheme.radius['10'],\n xl:\n computedStyle.getPropertyValue('--malachite-radius-xl').trim() ||\n defaultTheme.radius.xl,\n xxl:\n computedStyle.getPropertyValue('--malachite-radius-xxl').trim() ||\n defaultTheme.radius.xxl,\n xxxl:\n computedStyle.getPropertyValue('--malachite-radius-xxxl').trim() ||\n defaultTheme.radius.xxxl,\n },\n shadows: {\n sm:\n computedStyle.getPropertyValue('--malachite-shadow-sm').trim() ||\n defaultTheme.shadows.sm,\n md:\n computedStyle.getPropertyValue('--malachite-shadow-md').trim() ||\n defaultTheme.shadows.md,\n lg:\n computedStyle.getPropertyValue('--malachite-shadow-lg').trim() ||\n defaultTheme.shadows.lg,\n xl:\n computedStyle.getPropertyValue('--malachite-shadow-xl').trim() ||\n defaultTheme.shadows.xl,\n glow:\n computedStyle.getPropertyValue('--malachite-shadow-glow').trim() ||\n defaultTheme.shadows.glow,\n glowLg:\n computedStyle.getPropertyValue('--malachite-shadow-glow-lg').trim() ||\n defaultTheme.shadows.glowLg,\n default:\n computedStyle.getPropertyValue('--malachite-shadow-default').trim() ||\n defaultTheme.shadows.default,\n accent:\n computedStyle.getPropertyValue('--malachite-shadow-accent').trim() ||\n DEFAULT_ACCENT_SHADOW,\n success:\n computedStyle.getPropertyValue('--malachite-shadow-success').trim() ||\n defaultTheme.shadows.success,\n warning:\n computedStyle.getPropertyValue('--malachite-shadow-warning').trim() ||\n defaultTheme.shadows.warning,\n error:\n computedStyle.getPropertyValue('--malachite-shadow-error').trim() ||\n defaultTheme.shadows.error,\n },\n colors: {\n shadowColor:\n computedStyle.getPropertyValue('--malachite-shadow-color').trim() ||\n defaultTheme.colors.shadowColor,\n shadowOpacity:\n parseFloat(computedStyle.getPropertyValue('--malachite-shadow-opacity').trim()) ||\n defaultTheme.colors.shadowOpacity,\n card: {\n background:\n computedStyle.getPropertyValue('--malachite-card-background').trim() ||\n defaultTheme.colors.card.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-card-foreground').trim() ||\n defaultTheme.colors.card.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-card-border').trim() ||\n defaultTheme.colors.card.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-card-shadow').trim() ||\n defaultTheme.colors.card.shadow,\n dimmedBackground:\n computedStyle.getPropertyValue('--malachite-card-dimmed-background').trim() ||\n defaultTheme.colors.card.dimmedBackground,\n sunkenBackground:\n computedStyle.getPropertyValue('--malachite-card-sunken-background').trim() ||\n defaultTheme.colors.card.sunkenBackground,\n warmBackground:\n computedStyle.getPropertyValue('--malachite-card-warm-background').trim() ||\n defaultTheme.colors.card.warmBackground,\n headerBackground:\n computedStyle.getPropertyValue('--malachite-card-header-background').trim() ||\n defaultTheme.colors.card.headerBackground,\n footerBackground:\n computedStyle.getPropertyValue('--malachite-card-footer-background').trim() ||\n defaultTheme.colors.card.footerBackground,\n footerGlassBackground:\n computedStyle\n .getPropertyValue('--malachite-card-footer-glass-background')\n .trim() || defaultTheme.colors.card.footerGlassBackground,\n trayNeutral:\n computedStyle.getPropertyValue('--malachite-card-tray-neutral').trim() ||\n defaultTheme.colors.card.trayNeutral,\n trayWarning:\n computedStyle.getPropertyValue('--malachite-card-tray-warning').trim() ||\n defaultTheme.colors.card.trayWarning,\n trayError:\n computedStyle.getPropertyValue('--malachite-card-tray-error').trim() ||\n defaultTheme.colors.card.trayError,\n traySuccess:\n computedStyle.getPropertyValue('--malachite-card-tray-success').trim() ||\n defaultTheme.colors.card.traySuccess,\n subtleDivider:\n computedStyle.getPropertyValue('--malachite-card-subtle-divider').trim() ||\n defaultTheme.colors.card.subtleDivider,\n },\n overlay: {\n scrim:\n computedStyle.getPropertyValue('--malachite-overlay-scrim').trim() ||\n defaultTheme.colors.overlay.scrim,\n },\n alert: {\n info: {\n background:\n computedStyle\n .getPropertyValue('--malachite-alert-info-background')\n .trim() || defaultTheme.colors.alert.info.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-alert-info-foreground')\n .trim() || defaultTheme.colors.alert.info.foreground,\n },\n success: {\n background:\n computedStyle\n .getPropertyValue('--malachite-alert-success-background')\n .trim() || defaultTheme.colors.alert.success.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-alert-success-foreground')\n .trim() || defaultTheme.colors.alert.success.foreground,\n },\n error: {\n background:\n computedStyle\n .getPropertyValue('--malachite-alert-error-background')\n .trim() || defaultTheme.colors.alert.error.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-alert-error-foreground')\n .trim() || defaultTheme.colors.alert.error.foreground,\n },\n warning: {\n background:\n computedStyle\n .getPropertyValue('--malachite-alert-warning-background')\n .trim() || defaultTheme.colors.alert.warning.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-alert-warning-foreground')\n .trim() || defaultTheme.colors.alert.warning.foreground,\n },\n assistant: {\n background:\n computedStyle\n .getPropertyValue('--malachite-alert-assistant-background')\n .trim() || defaultTheme.colors.alert.assistant.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-alert-assistant-foreground')\n .trim() || defaultTheme.colors.alert.assistant.foreground,\n },\n },\n tooltip: {\n background:\n computedStyle.getPropertyValue('--malachite-tooltip-background').trim() ||\n defaultTheme.colors.tooltip.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-tooltip-foreground').trim() ||\n defaultTheme.colors.tooltip.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tooltip-border').trim() ||\n defaultTheme.colors.tooltip.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tooltip-shadow').trim() ||\n defaultTheme.colors.tooltip.shadow,\n },\n primary: {\n background:\n computedStyle.getPropertyValue('--malachite-primary-background').trim() ||\n defaultTheme.colors.primary.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-primary-foreground').trim() ||\n defaultTheme.colors.primary.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-primary-border').trim() ||\n defaultTheme.colors.primary.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-primary-border-hover').trim() ||\n defaultTheme.colors.primary.borderHover,\n },\n accent: {\n background:\n computedStyle.getPropertyValue('--malachite-accent-background').trim() ||\n DEFAULT_ACCENT_COLORS.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-accent-foreground').trim() ||\n DEFAULT_ACCENT_COLORS.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-accent-border').trim() ||\n DEFAULT_ACCENT_COLORS.border,\n backgroundGlass:\n computedStyle.getPropertyValue('--malachite-accent-background-glass').trim() ||\n DEFAULT_ACCENT_COLORS.backgroundGlass,\n },\n control: {\n borderHover:\n computedStyle.getPropertyValue('--malachite-control-border-hover').trim() ||\n defaultTheme.colors.control.borderHover,\n },\n outline: {\n foreground:\n computedStyle.getPropertyValue('--malachite-outline-foreground').trim() ||\n defaultTheme.colors.outline.foreground,\n },\n secondary: {\n background:\n computedStyle.getPropertyValue('--malachite-secondary-background').trim() ||\n defaultTheme.colors.secondary.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-secondary-foreground').trim() ||\n defaultTheme.colors.secondary.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-secondary-border').trim() ||\n defaultTheme.colors.secondary.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-secondary-border-hover').trim() ||\n defaultTheme.colors.secondary.borderHover,\n },\n destructive: {\n background:\n computedStyle.getPropertyValue('--malachite-destructive-background').trim() ||\n defaultTheme.colors.destructive.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-destructive-foreground').trim() ||\n defaultTheme.colors.destructive.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-destructive-border').trim() ||\n defaultTheme.colors.destructive.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-destructive-border-hover').trim() ||\n defaultTheme.colors.destructive.borderHover,\n shadow:\n computedStyle.getPropertyValue('--malachite-destructive-shadow').trim() ||\n defaultTheme.colors.destructive.shadow,\n shadowLight:\n computedStyle.getPropertyValue('--malachite-destructive-shadow-light').trim() ||\n defaultTheme.colors.destructive.shadowLight,\n shadowMedium:\n computedStyle\n .getPropertyValue('--malachite-destructive-shadow-medium')\n .trim() || defaultTheme.colors.destructive.shadowMedium,\n },\n success: {\n background:\n computedStyle.getPropertyValue('--malachite-success-background').trim() ||\n defaultTheme.colors.success.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-success-foreground').trim() ||\n defaultTheme.colors.success.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-success-border').trim() ||\n defaultTheme.colors.success.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-success-border-hover').trim() ||\n defaultTheme.colors.success.borderHover,\n backgroundGlass:\n computedStyle.getPropertyValue('--malachite-success-background-glass').trim() ||\n defaultTheme.colors.success.backgroundGlass,\n shadowLight:\n computedStyle.getPropertyValue('--malachite-success-shadow-light').trim() ||\n defaultTheme.colors.success.shadowLight,\n shadowMedium:\n computedStyle.getPropertyValue('--malachite-success-shadow-medium').trim() ||\n defaultTheme.colors.success.shadowMedium,\n },\n warning: {\n background:\n computedStyle.getPropertyValue('--malachite-warning-background').trim() ||\n defaultTheme.colors.warning.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-warning-foreground').trim() ||\n defaultTheme.colors.warning.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-warning-border').trim() ||\n defaultTheme.colors.warning.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-warning-border-hover').trim() ||\n defaultTheme.colors.warning.borderHover,\n backgroundGlass:\n computedStyle.getPropertyValue('--malachite-warning-background-glass').trim() ||\n defaultTheme.colors.warning.backgroundGlass,\n shadowLight:\n computedStyle.getPropertyValue('--malachite-warning-shadow-light').trim() ||\n defaultTheme.colors.warning.shadowLight,\n shadowMedium:\n computedStyle.getPropertyValue('--malachite-warning-shadow-medium').trim() ||\n defaultTheme.colors.warning.shadowMedium,\n },\n error: {\n background:\n computedStyle.getPropertyValue('--malachite-error-background').trim() ||\n defaultTheme.colors.error.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-error-foreground').trim() ||\n defaultTheme.colors.error.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-error-border').trim() ||\n defaultTheme.colors.error.border,\n borderHover:\n computedStyle.getPropertyValue('--malachite-error-border-hover').trim() ||\n defaultTheme.colors.error.borderHover,\n backgroundGlass:\n computedStyle.getPropertyValue('--malachite-error-background-glass').trim() ||\n defaultTheme.colors.error.backgroundGlass,\n shadowLight:\n computedStyle.getPropertyValue('--malachite-error-shadow-light').trim() ||\n defaultTheme.colors.error.shadowLight,\n shadowMedium:\n computedStyle.getPropertyValue('--malachite-error-shadow-medium').trim() ||\n defaultTheme.colors.error.shadowMedium,\n },\n buttonList: {\n background:\n computedStyle.getPropertyValue('--malachite-buttonlist-background').trim() ||\n defaultTheme.colors.buttonList.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-buttonlist-foreground').trim() ||\n defaultTheme.colors.buttonList.foreground,\n hoverBackground:\n computedStyle\n .getPropertyValue('--malachite-buttonlist-hover-background')\n .trim() || defaultTheme.colors.buttonList.hoverBackground,\n hoverForeground:\n computedStyle\n .getPropertyValue('--malachite-buttonlist-hover-foreground')\n .trim() || defaultTheme.colors.buttonList.hoverForeground,\n },\n pillButton: {\n background:\n computedStyle.getPropertyValue('--malachite-pillbutton-background').trim() ||\n defaultTheme.colors.pillButton.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-pillbutton-foreground').trim() ||\n defaultTheme.colors.pillButton.foreground,\n hoverBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-hover-background')\n .trim() || defaultTheme.colors.pillButton.hoverBackground,\n hoverForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-hover-foreground')\n .trim() || defaultTheme.colors.pillButton.hoverForeground,\n pressedBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-pressed-background')\n .trim() || defaultTheme.colors.pillButton.pressedBackground,\n pressedForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-pressed-foreground')\n .trim() || defaultTheme.colors.pillButton.pressedForeground,\n pressedOpacity:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-pressed-opacity')\n .trim() || defaultTheme.colors.pillButton.pressedOpacity,\n activeBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-active-background')\n .trim() || defaultTheme.colors.pillButton.activeBackground,\n activeForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-active-foreground')\n .trim() || defaultTheme.colors.pillButton.activeForeground,\n staticBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-static-background')\n .trim() || defaultTheme.colors.pillButton.staticBackground,\n staticForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-static-foreground')\n .trim() || defaultTheme.colors.pillButton.staticForeground,\n invertedBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-background')\n .trim() || defaultTheme.colors.pillButton.invertedBackground,\n invertedForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-foreground')\n .trim() || defaultTheme.colors.pillButton.invertedForeground,\n invertedHoverBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-hover-background')\n .trim() || defaultTheme.colors.pillButton.invertedHoverBackground,\n invertedHoverForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-hover-foreground')\n .trim() || defaultTheme.colors.pillButton.invertedHoverForeground,\n invertedPressedBackground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-pressed-background')\n .trim() || defaultTheme.colors.pillButton.invertedPressedBackground,\n invertedPressedForeground:\n computedStyle\n .getPropertyValue('--malachite-pillbutton-inverted-pressed-foreground')\n .trim() || defaultTheme.colors.pillButton.invertedPressedForeground,\n },\n toggle: {\n track:\n computedStyle.getPropertyValue('--malachite-toggle-track').trim() ||\n defaultTheme.colors.toggle.track,\n trackChecked:\n computedStyle.getPropertyValue('--malachite-toggle-track-checked').trim() ||\n defaultTheme.colors.toggle.trackChecked,\n trackCheckedPending:\n computedStyle\n .getPropertyValue('--malachite-toggle-track-checked-pending')\n .trim() || defaultTheme.colors.toggle.trackCheckedPending,\n knob:\n computedStyle.getPropertyValue('--malachite-toggle-knob').trim() ||\n defaultTheme.colors.toggle.knob,\n },\n segmentedControl: {\n trackBackground:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-track-background')\n .trim() || defaultTheme.colors.segmentedControl.trackBackground,\n itemForeground:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-item-foreground')\n .trim() || defaultTheme.colors.segmentedControl.itemForeground,\n itemHoverForeground:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-item-hover-foreground')\n .trim() || defaultTheme.colors.segmentedControl.itemHoverForeground,\n selectedBackground:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-selected-background')\n .trim() || defaultTheme.colors.segmentedControl.selectedBackground,\n selectedForeground:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-selected-foreground')\n .trim() || defaultTheme.colors.segmentedControl.selectedForeground,\n selectedShadow:\n computedStyle\n .getPropertyValue('--malachite-segmented-control-selected-shadow')\n .trim() || defaultTheme.colors.segmentedControl.selectedShadow,\n },\n selectableCard: {\n background:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-background')\n .trim() || defaultTheme.colors.selectableCard.background,\n border:\n computedStyle.getPropertyValue('--malachite-selectable-card-border').trim() ||\n defaultTheme.colors.selectableCard.border,\n selectedTint:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-selected-tint')\n .trim() || defaultTheme.colors.selectableCard.selectedTint,\n selectedSurfaceEnd:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-selected-surface-end')\n .trim() || defaultTheme.colors.selectableCard.selectedSurfaceEnd,\n selectedBorder:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-selected-border')\n .trim() || defaultTheme.colors.selectableCard.selectedBorder,\n librarySelectedTint:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-library-selected-tint')\n .trim() || defaultTheme.colors.selectableCard.librarySelectedTint,\n librarySelectedBorder:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-library-selected-border')\n .trim() || defaultTheme.colors.selectableCard.librarySelectedBorder,\n editingTint:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-editing-tint')\n .trim() || defaultTheme.colors.selectableCard.editingTint,\n accent:\n computedStyle.getPropertyValue('--malachite-selectable-card-accent').trim() ||\n defaultTheme.colors.selectableCard.accent,\n mutedForeground:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-muted-foreground')\n .trim() || defaultTheme.colors.selectableCard.mutedForeground,\n hoverBackground:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-hover-background')\n .trim() || defaultTheme.colors.selectableCard.hoverBackground,\n hoverRule:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-hover-rule')\n .trim() || defaultTheme.colors.selectableCard.hoverRule,\n pendingForeground:\n computedStyle\n .getPropertyValue('--malachite-selectable-card-pending-foreground')\n .trim() || defaultTheme.colors.selectableCard.pendingForeground,\n },\n cardStrip: {\n background:\n computedStyle.getPropertyValue('--malachite-card-strip-background').trim() ||\n defaultTheme.colors.cardStrip.background,\n divider:\n computedStyle.getPropertyValue('--malachite-card-strip-divider').trim() ||\n defaultTheme.colors.cardStrip.divider,\n fade:\n computedStyle.getPropertyValue('--malachite-card-strip-fade').trim() ||\n defaultTheme.colors.cardStrip.fade,\n arrowBackground:\n computedStyle\n .getPropertyValue('--malachite-card-strip-arrow-background')\n .trim() || defaultTheme.colors.cardStrip.arrowBackground,\n arrowBorder:\n computedStyle.getPropertyValue('--malachite-card-strip-arrow-border').trim() ||\n defaultTheme.colors.cardStrip.arrowBorder,\n addPrimaryBackground:\n computedStyle\n .getPropertyValue('--malachite-card-strip-add-primary-background')\n .trim() || defaultTheme.colors.cardStrip.addPrimaryBackground,\n addPrimaryForeground:\n computedStyle\n .getPropertyValue('--malachite-card-strip-add-primary-foreground')\n .trim() || defaultTheme.colors.cardStrip.addPrimaryForeground,\n },\n selectionBar: {\n background:\n computedStyle.getPropertyValue('--malachite-selection-bar-background').trim() ||\n defaultTheme.colors.selectionBar.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-selection-bar-foreground').trim() ||\n defaultTheme.colors.selectionBar.foreground,\n mutedForeground:\n computedStyle\n .getPropertyValue('--malachite-selection-bar-muted-foreground')\n .trim() || defaultTheme.colors.selectionBar.mutedForeground,\n divider:\n computedStyle.getPropertyValue('--malachite-selection-bar-divider').trim() ||\n defaultTheme.colors.selectionBar.divider,\n border:\n computedStyle.getPropertyValue('--malachite-selection-bar-border').trim() ||\n defaultTheme.colors.selectionBar.border,\n primaryBorder:\n computedStyle\n .getPropertyValue('--malachite-selection-bar-primary-border')\n .trim() || defaultTheme.colors.selectionBar.primaryBorder,\n shadow:\n computedStyle.getPropertyValue('--malachite-selection-bar-shadow').trim() ||\n defaultTheme.colors.selectionBar.shadow,\n noticeBackground:\n computedStyle\n .getPropertyValue('--malachite-selection-bar-notice-background')\n .trim() || defaultTheme.colors.selectionBar.noticeBackground,\n noticeForeground:\n computedStyle\n .getPropertyValue('--malachite-selection-bar-notice-foreground')\n .trim() || defaultTheme.colors.selectionBar.noticeForeground,\n noticeShadow:\n computedStyle\n .getPropertyValue('--malachite-selection-bar-notice-shadow')\n .trim() || defaultTheme.colors.selectionBar.noticeShadow,\n },\n inlineConfirm: {\n background:\n computedStyle\n .getPropertyValue('--malachite-inline-confirm-background')\n .trim() || defaultTheme.colors.inlineConfirm.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-inline-confirm-foreground')\n .trim() || defaultTheme.colors.inlineConfirm.foreground,\n divider:\n computedStyle.getPropertyValue('--malachite-inline-confirm-divider').trim() ||\n defaultTheme.colors.inlineConfirm.divider,\n shadow:\n computedStyle.getPropertyValue('--malachite-inline-confirm-shadow').trim() ||\n defaultTheme.colors.inlineConfirm.shadow,\n },\n dropdown: {\n border:\n computedStyle.getPropertyValue('--malachite-dropdown-border').trim() ||\n defaultTheme.colors.dropdown.border,\n borderActive:\n computedStyle.getPropertyValue('--malachite-dropdown-border-active').trim() ||\n defaultTheme.colors.dropdown.borderActive,\n borderFilter:\n computedStyle.getPropertyValue('--malachite-dropdown-border-filter').trim() ||\n defaultTheme.colors.dropdown.borderFilter,\n borderError:\n computedStyle.getPropertyValue('--malachite-dropdown-border-error').trim() ||\n defaultTheme.colors.dropdown.borderError,\n borderPending:\n computedStyle.getPropertyValue('--malachite-dropdown-border-pending').trim() ||\n defaultTheme.colors.dropdown.borderPending,\n shadow:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow').trim() ||\n defaultTheme.colors.dropdown.shadow,\n shadowHover:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow-hover').trim() ||\n defaultTheme.colors.dropdown.shadowHover,\n shadowActive:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow-active').trim() ||\n defaultTheme.colors.dropdown.shadowActive,\n shadowFilter:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow-filter').trim() ||\n defaultTheme.colors.dropdown.shadowFilter,\n shadowError:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow-error').trim() ||\n defaultTheme.colors.dropdown.shadowError,\n shadowPending:\n computedStyle.getPropertyValue('--malachite-dropdown-shadow-pending').trim() ||\n defaultTheme.colors.dropdown.shadowPending,\n disabledBackground:\n computedStyle\n .getPropertyValue('--malachite-dropdown-disabled-background')\n .trim() || defaultTheme.colors.dropdown.disabledBackground,\n },\n tag: {\n primary: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-primary-background')\n .trim() || defaultTheme.colors.tag.primary.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-primary-foreground')\n .trim() || defaultTheme.colors.tag.primary.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-primary-border').trim() ||\n defaultTheme.colors.tag.primary.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-primary-shadow').trim() ||\n defaultTheme.colors.tag.primary.shadow,\n },\n secondary: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-secondary-background')\n .trim() || defaultTheme.colors.tag.secondary.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-secondary-foreground')\n .trim() || defaultTheme.colors.tag.secondary.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-secondary-border').trim() ||\n defaultTheme.colors.tag.secondary.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-secondary-shadow').trim() ||\n defaultTheme.colors.tag.secondary.shadow,\n },\n default: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-default-background')\n .trim() || defaultTheme.colors.tag.default.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-default-foreground')\n .trim() || defaultTheme.colors.tag.default.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-default-border').trim() ||\n defaultTheme.colors.tag.default.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-default-shadow').trim() ||\n defaultTheme.colors.tag.default.shadow,\n },\n error: {\n background:\n computedStyle.getPropertyValue('--malachite-tag-error-background').trim() ||\n defaultTheme.colors.tag.error.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-tag-error-foreground').trim() ||\n defaultTheme.colors.tag.error.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-error-border').trim() ||\n defaultTheme.colors.tag.error.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-error-shadow').trim() ||\n defaultTheme.colors.tag.error.shadow,\n },\n warning: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-warning-background')\n .trim() || defaultTheme.colors.tag.warning.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-warning-foreground')\n .trim() || defaultTheme.colors.tag.warning.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-warning-border').trim() ||\n defaultTheme.colors.tag.warning.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-warning-shadow').trim() ||\n defaultTheme.colors.tag.warning.shadow,\n },\n success: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-success-background')\n .trim() || defaultTheme.colors.tag.success.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-success-foreground')\n .trim() || defaultTheme.colors.tag.success.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-success-border').trim() ||\n defaultTheme.colors.tag.success.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-success-shadow').trim() ||\n defaultTheme.colors.tag.success.shadow,\n },\n emphasis: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-emphasis-background')\n .trim() || defaultTheme.colors.tag.emphasis.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-emphasis-foreground')\n .trim() || defaultTheme.colors.tag.emphasis.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-emphasis-border').trim() ||\n defaultTheme.colors.tag.emphasis.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-emphasis-shadow').trim() ||\n defaultTheme.colors.tag.emphasis.shadow,\n },\n info: {\n background:\n computedStyle.getPropertyValue('--malachite-tag-info-background').trim() ||\n defaultTheme.colors.tag.info.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-tag-info-foreground').trim() ||\n defaultTheme.colors.tag.info.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-info-border').trim() ||\n defaultTheme.colors.tag.info.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-info-shadow').trim() ||\n defaultTheme.colors.tag.info.shadow,\n },\n assistant: {\n background:\n computedStyle\n .getPropertyValue('--malachite-tag-assistant-background')\n .trim() || defaultTheme.colors.tag.assistant.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-tag-assistant-foreground')\n .trim() || defaultTheme.colors.tag.assistant.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-tag-assistant-border').trim() ||\n defaultTheme.colors.tag.assistant.border,\n shadow:\n computedStyle.getPropertyValue('--malachite-tag-assistant-shadow').trim() ||\n defaultTheme.colors.tag.assistant.shadow,\n },\n },\n numberTag: {\n background:\n computedStyle.getPropertyValue('--malachite-number-tag-background').trim() ||\n defaultTheme.colors.numberTag.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-number-tag-foreground').trim() ||\n defaultTheme.colors.numberTag.foreground,\n emphasisBackground:\n computedStyle\n .getPropertyValue('--malachite-number-tag-emphasis-background')\n .trim() || defaultTheme.colors.numberTag.emphasisBackground,\n emphasisForeground:\n computedStyle\n .getPropertyValue('--malachite-number-tag-emphasis-foreground')\n .trim() || defaultTheme.colors.numberTag.emphasisForeground,\n },\n text: {\n primary:\n computedStyle.getPropertyValue('--malachite-text-primary').trim() ||\n defaultTheme.colors.text.primary,\n secondary:\n computedStyle.getPropertyValue('--malachite-text-secondary').trim() ||\n defaultTheme.colors.text.secondary,\n dimmed:\n computedStyle.getPropertyValue('--malachite-text-dimmed').trim() ||\n defaultTheme.colors.text.dimmed,\n emphasis:\n computedStyle.getPropertyValue('--malachite-text-emphasis').trim() ||\n defaultTheme.colors.text.emphasis,\n muted:\n computedStyle.getPropertyValue('--malachite-text-muted').trim() ||\n defaultTheme.colors.text.muted,\n placeholder:\n computedStyle.getPropertyValue('--malachite-text-placeholder').trim() ||\n defaultTheme.colors.text.placeholder,\n destructive:\n computedStyle.getPropertyValue('--malachite-text-destructive').trim() ||\n defaultTheme.colors.text.destructive,\n success:\n computedStyle.getPropertyValue('--malachite-text-success').trim() ||\n defaultTheme.colors.text.success,\n highlight:\n computedStyle.getPropertyValue('--malachite-text-highlight').trim() ||\n defaultTheme.colors.text.highlight,\n warning:\n computedStyle.getPropertyValue('--malachite-text-warning').trim() ||\n defaultTheme.colors.text.warning,\n warningMuted:\n computedStyle.getPropertyValue('--malachite-text-warning-muted').trim() ||\n defaultTheme.colors.text.warningMuted,\n error:\n computedStyle.getPropertyValue('--malachite-text-error').trim() ||\n defaultTheme.colors.text.error,\n info:\n computedStyle.getPropertyValue('--malachite-text-info').trim() ||\n defaultTheme.colors.text.info,\n linkForeground:\n computedStyle.getPropertyValue('--malachite-text-link-foreground').trim() ||\n defaultTheme.colors.text.linkForeground,\n linkForegroundHover:\n computedStyle\n .getPropertyValue('--malachite-text-link-foreground-hover')\n .trim() || defaultTheme.colors.text.linkForegroundHover,\n rightSideText: {\n muted:\n computedStyle\n .getPropertyValue('--malachite-text-right-side-text-muted')\n .trim() || defaultTheme.colors.text.rightSideText.muted,\n primary:\n computedStyle\n .getPropertyValue('--malachite-text-right-side-text-primary')\n .trim() || defaultTheme.colors.text.rightSideText.primary,\n alignment:\n (computedStyle\n .getPropertyValue('--malachite-text-right-side-text-alignment')\n .trim() as 'left' | 'right') ||\n defaultTheme.colors.text.rightSideText.alignment,\n fontSize:\n computedStyle\n .getPropertyValue('--malachite-text-right-side-text-font-size')\n .trim() || defaultTheme.colors.text.rightSideText.fontSize,\n minWidth:\n computedStyle\n .getPropertyValue('--malachite-text-right-side-text-min-width')\n .trim() || defaultTheme.colors.text.rightSideText.minWidth,\n },\n },\n codeBlock: {\n background:\n computedStyle.getPropertyValue('--malachite-codeblock-background').trim() ||\n defaultTheme.colors.codeBlock.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-codeblock-foreground').trim() ||\n defaultTheme.colors.codeBlock.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-codeblock-border').trim() ||\n defaultTheme.colors.codeBlock.border,\n lineNumber:\n computedStyle.getPropertyValue('--malachite-codeblock-line-number').trim() ||\n defaultTheme.colors.codeBlock.lineNumber,\n keyword:\n computedStyle.getPropertyValue('--malachite-codeblock-keyword').trim() ||\n defaultTheme.colors.codeBlock.keyword,\n comment:\n computedStyle.getPropertyValue('--malachite-codeblock-comment').trim() ||\n defaultTheme.colors.codeBlock.comment,\n string:\n computedStyle.getPropertyValue('--malachite-codeblock-string').trim() ||\n defaultTheme.colors.codeBlock.string,\n number:\n computedStyle.getPropertyValue('--malachite-codeblock-number').trim() ||\n defaultTheme.colors.codeBlock.number,\n type:\n computedStyle.getPropertyValue('--malachite-codeblock-type').trim() ||\n defaultTheme.colors.codeBlock.type,\n diffAddedBackground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-added-background')\n .trim() || defaultTheme.colors.codeBlock.diffAddedBackground,\n diffRemovedBackground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-removed-background')\n .trim() || defaultTheme.colors.codeBlock.diffRemovedBackground,\n diffAssistantBackground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-assistant-background')\n .trim() || defaultTheme.colors.codeBlock.diffAssistantBackground,\n diffAssistantForeground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-assistant-foreground')\n .trim() || defaultTheme.colors.codeBlock.diffAssistantForeground,\n diffAssistantRemovedBackground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-assistant-removed-background')\n .trim() || defaultTheme.colors.codeBlock.diffAssistantRemovedBackground,\n diffRemovedForeground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-removed-foreground')\n .trim() || defaultTheme.colors.codeBlock.diffRemovedForeground,\n diffContextForeground:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-context-foreground')\n .trim() || defaultTheme.colors.codeBlock.diffContextForeground,\n diffContextText:\n computedStyle\n .getPropertyValue('--malachite-codeblock-diff-context-text')\n .trim() || defaultTheme.colors.codeBlock.diffContextText,\n },\n chat: {\n userBubbleBackground:\n computedStyle\n .getPropertyValue('--malachite-chat-user-bubble-background')\n .trim() || defaultTheme.colors.chat.userBubbleBackground,\n userBubbleBorder:\n computedStyle.getPropertyValue('--malachite-chat-user-bubble-border').trim() ||\n defaultTheme.colors.chat.userBubbleBorder,\n assistantBubbleBackground:\n computedStyle\n .getPropertyValue('--malachite-chat-assistant-bubble-background')\n .trim() || defaultTheme.colors.chat.assistantBubbleBackground,\n assistantBubbleBorder:\n computedStyle\n .getPropertyValue('--malachite-chat-assistant-bubble-border')\n .trim() || defaultTheme.colors.chat.assistantBubbleBorder,\n assistantBubbleForeground:\n computedStyle\n .getPropertyValue('--malachite-chat-assistant-bubble-foreground')\n .trim() || defaultTheme.colors.chat.assistantBubbleForeground,\n },\n assistant: {\n foreground:\n computedStyle.getPropertyValue('--malachite-assistant-foreground').trim() ||\n defaultTheme.colors.assistant.foreground,\n surfaceBackground:\n computedStyle\n .getPropertyValue('--malachite-assistant-surface-background')\n .trim() || defaultTheme.colors.assistant.surfaceBackground,\n surfaceBorder:\n computedStyle.getPropertyValue('--malachite-assistant-surface-border').trim() ||\n defaultTheme.colors.assistant.surfaceBorder,\n surfaceForeground:\n computedStyle\n .getPropertyValue('--malachite-assistant-surface-foreground')\n .trim() || defaultTheme.colors.assistant.surfaceForeground,\n },\n table: {\n background:\n computedStyle.getPropertyValue('--malachite-table-background').trim() ||\n defaultTheme.colors.table.background,\n boxShadow:\n computedStyle.getPropertyValue('--malachite-table-box-shadow').trim() ||\n defaultTheme.colors.table.boxShadow,\n header: {\n background:\n computedStyle\n .getPropertyValue('--malachite-table-header-background')\n .trim() || defaultTheme.colors.table.header.background,\n foreground:\n computedStyle\n .getPropertyValue('--malachite-table-header-foreground')\n .trim() || defaultTheme.colors.table.header.foreground,\n border:\n computedStyle.getPropertyValue('--malachite-table-header-border').trim() ||\n defaultTheme.colors.table.header.border,\n },\n row: {\n background:\n computedStyle.getPropertyValue('--malachite-table-row-background').trim() ||\n defaultTheme.colors.table.row.background,\n foreground:\n computedStyle.getPropertyValue('--malachite-table-row-foreground').trim() ||\n defaultTheme.colors.table.row.foreground,\n hoverBackground:\n computedStyle\n .getPropertyValue('--malachite-table-row-hover-background')\n .trim() || defaultTheme.colors.table.row.hoverBackground,\n border:\n computedStyle.getPropertyValue('--malachite-table-row-border').trim() ||\n defaultTheme.colors.table.row.border,\n selectedBackground:\n computedStyle\n .getPropertyValue('--malachite-table-row-selected-background')\n .trim() || defaultTheme.colors.table.row.selectedBackground,\n selectedAccent:\n computedStyle\n .getPropertyValue('--malachite-table-row-selected-accent')\n .trim() || defaultTheme.colors.table.row.selectedAccent,\n selectedForeground:\n computedStyle\n .getPropertyValue('--malachite-table-row-selected-foreground')\n .trim() || defaultTheme.colors.table.row.selectedForeground,\n },\n border:\n computedStyle.getPropertyValue('--malachite-table-border').trim() ||\n defaultTheme.colors.table.border,\n borderedRow: {\n background:\n computedStyle\n .getPropertyValue('--malachite-table-borderedRow-background')\n .trim() || defaultTheme.colors.table.borderedRow.background,\n outline:\n computedStyle\n .getPropertyValue('--malachite-table-borderedRow-outline')\n .trim() || defaultTheme.colors.table.borderedRow.outline,\n },\n rowVariant: {\n success: {\n background:\n computedStyle\n .getPropertyValue(\n '--malachite-table-row-variant-success-background',\n )\n .trim() || defaultTheme.colors.table.rowVariant.success.background,\n },\n warning: {\n background:\n computedStyle\n .getPropertyValue(\n '--malachite-table-row-variant-warning-background',\n )\n .trim() || defaultTheme.colors.table.rowVariant.warning.background,\n },\n error: {\n background:\n computedStyle\n .getPropertyValue('--malachite-table-row-variant-error-background')\n .trim() || defaultTheme.colors.table.rowVariant.error.background,\n },\n info: {\n background:\n computedStyle\n .getPropertyValue('--malachite-table-row-variant-info-background')\n .trim() || defaultTheme.colors.table.rowVariant.info.background,\n },\n },\n error: {\n iconBackground:\n computedStyle\n .getPropertyValue('--malachite-table-error-icon-background')\n .trim() || defaultTheme.colors.table.error.iconBackground,\n iconForeground:\n computedStyle\n .getPropertyValue('--malachite-table-error-icon-foreground')\n .trim() || defaultTheme.colors.table.error.iconForeground,\n titleForeground:\n computedStyle\n .getPropertyValue('--malachite-table-error-title-foreground')\n .trim() || defaultTheme.colors.table.error.titleForeground,\n subtitleForeground:\n computedStyle\n .getPropertyValue('--malachite-table-error-subtitle-foreground')\n .trim() || defaultTheme.colors.table.error.subtitleForeground,\n },\n },\n },\n };\n}\n\nlet themeInitialized = false;\n\n/**\n * Applies the document-level theme once per page. Called from ShadowRootWrapper rather than\n * run at import: a bare top-level call is an import-time side effect, and `sideEffects: false`\n * in package.json tells a consumer's bundler it may drop a module nothing imports from, which\n * would take the theme with it. A consumer wanting the document themed without mounting any\n * Malachite component calls `initializeTheme()` directly.\n */\nexport const ensureThemeInitialized = (): void => {\n if (themeInitialized) {\n return;\n }\n themeInitialized = true;\n initializeTheme();\n};\n"],"names":["DEFAULT_ACCENT_COLORS","DEFAULT_ACCENT_SHADOW","CONTROL_HEIGHT","defaultTheme","darkTheme","THEME_MODE_KEY","CUSTOM_THEME_KEY","SAFE_CUSTOM_PROPERTY","UNSAFE_CSS_SYNTAX","SAFE_THEME_KEY","sanitizeThemeInput","value","path","sanitized","key","child","childPath","sanitizedChild","registeredShadowRoots","registerShadowRoot","shadowRoot","applyCurrentThemeToShadowRoot","error","unregisterShadowRoot","TABLE_KEBAB_KEYS","processTableColorProperties","tableColors","prefix","addProperty","parentKeyVar","subKey","subValue","kebabKey","deepKey","deepValue","deepKebabKey","applyCSSCustomProperties","theme","target","accentColors","shadows","styleElement","properties","alertType","alertColors","tagType","tagColors","nestedKey","nestedValue","nestedKebabKey","variant","variantColors","safeProperties","declaration","candidate","name","currentMode","getCurrentThemeMode","customTheme","getCustomTheme","baseTheme","finalTheme","mergeThemes","stored","saveThemeMode","mode","saveCustomTheme","base","customInput","custom","result","rightSideText","flat","header","row","borderedRow","rowVariant","merged","applyTheme","applyThemeVars","applyLightTheme","applyDarkTheme","toggleTheme","applyCustomTheme","resetTheme","initializeTheme","getCurrentTheme","computedStyle","themeInitialized","ensureThemeInitialized"],"mappings":"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"}
|