@stackone/malachite 2.21.0 → 2.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ShadowRootWrapper.js +83 -0
- package/dist/ShadowRootWrapper.js.map +1 -0
- package/dist/assets/icons/account.svg.js +6 -0
- package/dist/assets/icons/account.svg.js.map +1 -0
- package/dist/assets/icons/accounts.svg.js +6 -0
- package/dist/assets/icons/accounts.svg.js.map +1 -0
- package/dist/assets/icons/add.svg.js +6 -0
- package/dist/assets/icons/add.svg.js.map +1 -0
- package/dist/assets/icons/advanced_logs.svg.js +6 -0
- package/dist/assets/icons/advanced_logs.svg.js.map +1 -0
- package/dist/assets/icons/api_keys.svg.js +6 -0
- package/dist/assets/icons/api_keys.svg.js.map +1 -0
- package/dist/assets/icons/archive.svg.js +6 -0
- package/dist/assets/icons/archive.svg.js.map +1 -0
- package/dist/assets/icons/arrow_left.svg.js +6 -0
- package/dist/assets/icons/arrow_left.svg.js.map +1 -0
- package/dist/assets/icons/arrow_up.svg.js +6 -0
- package/dist/assets/icons/arrow_up.svg.js.map +1 -0
- package/dist/assets/icons/arrow_up_right.svg.js +6 -0
- package/dist/assets/icons/arrow_up_right.svg.js.map +1 -0
- package/dist/assets/icons/authentication.svg.js +6 -0
- package/dist/assets/icons/authentication.svg.js.map +1 -0
- package/dist/assets/icons/bell.svg.js +6 -0
- package/dist/assets/icons/bell.svg.js.map +1 -0
- package/dist/assets/icons/bell_slash.svg.js +6 -0
- package/dist/assets/icons/bell_slash.svg.js.map +1 -0
- package/dist/assets/icons/bi_directional_arrows.svg.js +6 -0
- package/dist/assets/icons/bi_directional_arrows.svg.js.map +1 -0
- package/dist/assets/icons/card.svg.js +6 -0
- package/dist/assets/icons/card.svg.js.map +1 -0
- package/dist/assets/icons/caret_down.svg.js +6 -0
- package/dist/assets/icons/caret_down.svg.js.map +1 -0
- package/dist/assets/icons/caret_left.svg.js +6 -0
- package/dist/assets/icons/caret_left.svg.js.map +1 -0
- package/dist/assets/icons/caret_right.svg.js +6 -0
- package/dist/assets/icons/caret_right.svg.js.map +1 -0
- package/dist/assets/icons/caret_up.svg.js +6 -0
- package/dist/assets/icons/caret_up.svg.js.map +1 -0
- package/dist/assets/icons/change_password.svg.js +6 -0
- package/dist/assets/icons/change_password.svg.js.map +1 -0
- package/dist/assets/icons/check.svg.js +6 -0
- package/dist/assets/icons/check.svg.js.map +1 -0
- package/dist/assets/icons/check_circle_filled.svg.js +6 -0
- package/dist/assets/icons/check_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/checkmark.svg.js +6 -0
- package/dist/assets/icons/checkmark.svg.js.map +1 -0
- package/dist/assets/icons/clear.svg.js +6 -0
- package/dist/assets/icons/clear.svg.js.map +1 -0
- package/dist/assets/icons/close.svg.js +6 -0
- package/dist/assets/icons/close.svg.js.map +1 -0
- package/dist/assets/icons/code.svg.js +6 -0
- package/dist/assets/icons/code.svg.js.map +1 -0
- package/dist/assets/icons/command_key.svg.js +6 -0
- package/dist/assets/icons/command_key.svg.js.map +1 -0
- package/dist/assets/icons/copy.svg.js +6 -0
- package/dist/assets/icons/copy.svg.js.map +1 -0
- package/dist/assets/icons/csv.svg.js +6 -0
- package/dist/assets/icons/csv.svg.js.map +1 -0
- package/dist/assets/icons/custom_field.svg.js +6 -0
- package/dist/assets/icons/custom_field.svg.js.map +1 -0
- package/dist/assets/icons/dashboard.svg.js +6 -0
- package/dist/assets/icons/dashboard.svg.js.map +1 -0
- package/dist/assets/icons/date.svg.js +6 -0
- package/dist/assets/icons/date.svg.js.map +1 -0
- package/dist/assets/icons/disable.svg.js +6 -0
- package/dist/assets/icons/disable.svg.js.map +1 -0
- package/dist/assets/icons/disabled.svg.js +6 -0
- package/dist/assets/icons/disabled.svg.js.map +1 -0
- package/dist/assets/icons/dismiss.svg.js +6 -0
- package/dist/assets/icons/dismiss.svg.js.map +1 -0
- package/dist/assets/icons/doc.svg.js +6 -0
- package/dist/assets/icons/doc.svg.js.map +1 -0
- package/dist/assets/icons/double_check.svg.js +6 -0
- package/dist/assets/icons/double_check.svg.js.map +1 -0
- package/dist/assets/icons/download.svg.js +6 -0
- package/dist/assets/icons/download.svg.js.map +1 -0
- package/dist/assets/icons/edit.svg.js +6 -0
- package/dist/assets/icons/edit.svg.js.map +1 -0
- package/dist/assets/icons/enable.svg.js +6 -0
- package/dist/assets/icons/enable.svg.js.map +1 -0
- package/dist/assets/icons/enum.svg.js +6 -0
- package/dist/assets/icons/enum.svg.js.map +1 -0
- package/dist/assets/icons/error_circle_filled.svg.js +6 -0
- package/dist/assets/icons/error_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/expand.svg.js +6 -0
- package/dist/assets/icons/expand.svg.js.map +1 -0
- package/dist/assets/icons/eye-closed.svg.js +6 -0
- package/dist/assets/icons/eye-closed.svg.js.map +1 -0
- package/dist/assets/icons/eye.svg.js +6 -0
- package/dist/assets/icons/eye.svg.js.map +1 -0
- package/dist/assets/icons/field_mapping.svg.js +6 -0
- package/dist/assets/icons/field_mapping.svg.js.map +1 -0
- package/dist/assets/icons/filled_caret_down.svg.js +6 -0
- package/dist/assets/icons/filled_caret_down.svg.js.map +1 -0
- package/dist/assets/icons/filled_caret_right.svg.js +6 -0
- package/dist/assets/icons/filled_caret_right.svg.js.map +1 -0
- package/dist/assets/icons/filter.svg.js +6 -0
- package/dist/assets/icons/filter.svg.js.map +1 -0
- package/dist/assets/icons/forbidden.svg.js +6 -0
- package/dist/assets/icons/forbidden.svg.js.map +1 -0
- package/dist/assets/icons/forward_arrow.svg.js +6 -0
- package/dist/assets/icons/forward_arrow.svg.js.map +1 -0
- package/dist/assets/icons/globe.svg.js +6 -0
- package/dist/assets/icons/globe.svg.js.map +1 -0
- package/dist/assets/icons/inbox.svg.js +6 -0
- package/dist/assets/icons/inbox.svg.js.map +1 -0
- package/dist/assets/icons/info.svg.js +6 -0
- package/dist/assets/icons/info.svg.js.map +1 -0
- package/dist/assets/icons/info_circle_filled.svg.js +6 -0
- package/dist/assets/icons/info_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/info_filled.svg.js +6 -0
- package/dist/assets/icons/info_filled.svg.js.map +1 -0
- package/dist/assets/icons/integrations.svg.js +6 -0
- package/dist/assets/icons/integrations.svg.js.map +1 -0
- package/dist/assets/icons/key.svg.js +6 -0
- package/dist/assets/icons/key.svg.js.map +1 -0
- package/dist/assets/icons/library.svg.js +6 -0
- package/dist/assets/icons/library.svg.js.map +1 -0
- package/dist/assets/icons/logs.svg.js +6 -0
- package/dist/assets/icons/logs.svg.js.map +1 -0
- package/dist/assets/icons/magic_wand.svg.js +6 -0
- package/dist/assets/icons/magic_wand.svg.js.map +1 -0
- package/dist/assets/icons/manage_team.svg.js +6 -0
- package/dist/assets/icons/manage_team.svg.js.map +1 -0
- package/dist/assets/icons/manual_native_webhook.svg.js +6 -0
- package/dist/assets/icons/manual_native_webhook.svg.js.map +1 -0
- package/dist/assets/icons/mark_read.svg.js +6 -0
- package/dist/assets/icons/mark_read.svg.js.map +1 -0
- package/dist/assets/icons/mark_unread.svg.js +6 -0
- package/dist/assets/icons/mark_unread.svg.js.map +1 -0
- package/dist/assets/icons/members.svg.js +6 -0
- package/dist/assets/icons/members.svg.js.map +1 -0
- package/dist/assets/icons/modal.svg.js +6 -0
- package/dist/assets/icons/modal.svg.js.map +1 -0
- package/dist/assets/icons/more_horizontal.svg.js +6 -0
- package/dist/assets/icons/more_horizontal.svg.js.map +1 -0
- package/dist/assets/icons/more_vertical.svg.js +6 -0
- package/dist/assets/icons/more_vertical.svg.js.map +1 -0
- package/dist/assets/icons/navbar_collapse.svg.js +6 -0
- package/dist/assets/icons/navbar_collapse.svg.js.map +1 -0
- package/dist/assets/icons/navbar_expand.svg.js +6 -0
- package/dist/assets/icons/navbar_expand.svg.js.map +1 -0
- package/dist/assets/icons/not_found.svg.js +6 -0
- package/dist/assets/icons/not_found.svg.js.map +1 -0
- package/dist/assets/icons/organization.svg.js +6 -0
- package/dist/assets/icons/organization.svg.js.map +1 -0
- package/dist/assets/icons/pin.svg.js +6 -0
- package/dist/assets/icons/pin.svg.js.map +1 -0
- package/dist/assets/icons/plus.svg.js +6 -0
- package/dist/assets/icons/plus.svg.js.map +1 -0
- package/dist/assets/icons/preview.svg.js +6 -0
- package/dist/assets/icons/preview.svg.js.map +1 -0
- package/dist/assets/icons/programmatic_native_webhook.svg.js +6 -0
- package/dist/assets/icons/programmatic_native_webhook.svg.js.map +1 -0
- package/dist/assets/icons/pulse.svg.js +6 -0
- package/dist/assets/icons/pulse.svg.js.map +1 -0
- package/dist/assets/icons/refresh.svg.js +6 -0
- package/dist/assets/icons/refresh.svg.js.map +1 -0
- package/dist/assets/icons/reject.svg.js +6 -0
- package/dist/assets/icons/reject.svg.js.map +1 -0
- package/dist/assets/icons/reload.svg.js +6 -0
- package/dist/assets/icons/reload.svg.js.map +1 -0
- package/dist/assets/icons/reply.svg.js +6 -0
- package/dist/assets/icons/reply.svg.js.map +1 -0
- package/dist/assets/icons/required_field_indicator.svg.js +6 -0
- package/dist/assets/icons/required_field_indicator.svg.js.map +1 -0
- package/dist/assets/icons/search.svg.js +6 -0
- package/dist/assets/icons/search.svg.js.map +1 -0
- package/dist/assets/icons/security.svg.js +6 -0
- package/dist/assets/icons/security.svg.js.map +1 -0
- package/dist/assets/icons/send.svg.js +6 -0
- package/dist/assets/icons/send.svg.js.map +1 -0
- package/dist/assets/icons/settings.svg.js +6 -0
- package/dist/assets/icons/settings.svg.js.map +1 -0
- package/dist/assets/icons/sign_out.svg.js +6 -0
- package/dist/assets/icons/sign_out.svg.js.map +1 -0
- package/dist/assets/icons/slider.svg.js +6 -0
- package/dist/assets/icons/slider.svg.js.map +1 -0
- package/dist/assets/icons/sort.svg.js +6 -0
- package/dist/assets/icons/sort.svg.js.map +1 -0
- package/dist/assets/icons/source.svg.js +6 -0
- package/dist/assets/icons/source.svg.js.map +1 -0
- package/dist/assets/icons/sparkle.svg.js +6 -0
- package/dist/assets/icons/sparkle.svg.js.map +1 -0
- package/dist/assets/icons/star.svg.js +6 -0
- package/dist/assets/icons/star.svg.js.map +1 -0
- package/dist/assets/icons/step_current.svg.js +6 -0
- package/dist/assets/icons/step_current.svg.js.map +1 -0
- package/dist/assets/icons/step_upcoming.svg.js +6 -0
- package/dist/assets/icons/step_upcoming.svg.js.map +1 -0
- package/dist/assets/icons/synthetic_webhook.svg.js +6 -0
- package/dist/assets/icons/synthetic_webhook.svg.js.map +1 -0
- package/dist/assets/icons/thumbs_down.svg.js +6 -0
- package/dist/assets/icons/thumbs_down.svg.js.map +1 -0
- package/dist/assets/icons/thumbs_up.svg.js +6 -0
- package/dist/assets/icons/thumbs_up.svg.js.map +1 -0
- package/dist/assets/icons/trash.svg.js +6 -0
- package/dist/assets/icons/trash.svg.js.map +1 -0
- package/dist/assets/icons/triangle_down.svg.js +6 -0
- package/dist/assets/icons/triangle_down.svg.js.map +1 -0
- package/dist/assets/icons/triangle_right.svg.js +6 -0
- package/dist/assets/icons/triangle_right.svg.js.map +1 -0
- package/dist/assets/icons/unarchive.svg.js +6 -0
- package/dist/assets/icons/unarchive.svg.js.map +1 -0
- package/dist/assets/icons/upload.svg.js +6 -0
- package/dist/assets/icons/upload.svg.js.map +1 -0
- package/dist/assets/icons/warning_circle_filled.svg.js +6 -0
- package/dist/assets/icons/warning_circle_filled.svg.js.map +1 -0
- package/dist/assets/icons/warning_triangle.svg.js +6 -0
- package/dist/assets/icons/warning_triangle.svg.js.map +1 -0
- package/dist/assets/icons/webhook-events.svg.js +6 -0
- package/dist/assets/icons/webhook-events.svg.js.map +1 -0
- package/dist/assets/icons/webhook.svg.js +6 -0
- package/dist/assets/icons/webhook.svg.js.map +1 -0
- package/dist/assets/icons/webhook_signing_secret.svg.js +6 -0
- package/dist/assets/icons/webhook_signing_secret.svg.js.map +1 -0
- package/dist/assets/logo-stackone-desaturated.png.js +5 -0
- package/dist/assets/logo-stackone-desaturated.png.js.map +1 -0
- package/dist/components/Accordion.js +105 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/ActionBar.js +66 -0
- package/dist/components/ActionBar.js.map +1 -0
- package/dist/components/ActionMenu.js +174 -0
- package/dist/components/ActionMenu.js.map +1 -0
- package/dist/components/Alert.js +136 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/AppLogo.js +43 -0
- package/dist/components/AppLogo.js.map +1 -0
- package/dist/components/Avatar.js +61 -0
- package/dist/components/Avatar.js.map +1 -0
- package/dist/components/BaseFormComponent.js +116 -0
- package/dist/components/BaseFormComponent.js.map +1 -0
- package/dist/components/Breadcrumbs.js +106 -0
- package/dist/components/Breadcrumbs.js.map +1 -0
- package/dist/components/Button.js +227 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/ButtonList.js +40 -0
- package/dist/components/ButtonList.js.map +1 -0
- package/dist/components/Card.js +109 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/CardStrip.js +454 -0
- package/dist/components/CardStrip.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewItem.js +129 -0
- package/dist/components/ChangeReview/ChangeReviewItem.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewJump.js +27 -0
- package/dist/components/ChangeReview/ChangeReviewJump.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewRemoved.js +37 -0
- package/dist/components/ChangeReview/ChangeReviewRemoved.js.map +1 -0
- package/dist/components/ChangeReview/ChangeReviewSummary.js +56 -0
- package/dist/components/ChangeReview/ChangeReviewSummary.js.map +1 -0
- package/dist/components/ChangeReview/index.js +15 -0
- package/dist/components/ChangeReview/index.js.map +1 -0
- package/dist/components/Chat/ChatComposer.js +100 -0
- package/dist/components/Chat/ChatComposer.js.map +1 -0
- package/dist/components/Chat/ChatComposerChip.js +28 -0
- package/dist/components/Chat/ChatComposerChip.js.map +1 -0
- package/dist/components/Chat/ChatContext.js +55 -0
- package/dist/components/Chat/ChatContext.js.map +1 -0
- package/dist/components/Chat/ChatContextMeter.js +30 -0
- package/dist/components/Chat/ChatContextMeter.js.map +1 -0
- package/dist/components/Chat/ChatHeader.js +44 -0
- package/dist/components/Chat/ChatHeader.js.map +1 -0
- package/dist/components/Chat/ChatMessage.js +127 -0
- package/dist/components/Chat/ChatMessage.js.map +1 -0
- package/dist/components/Chat/ChatModelPicker.js +207 -0
- package/dist/components/Chat/ChatModelPicker.js.map +1 -0
- package/dist/components/Chat/ChatRoot.js +6 -0
- package/dist/components/Chat/ChatRoot.js.map +1 -0
- package/dist/components/Chat/ChatSuggestion.js +22 -0
- package/dist/components/Chat/ChatSuggestion.js.map +1 -0
- package/dist/components/Chat/ChatThinking.js +20 -0
- package/dist/components/Chat/ChatThinking.js.map +1 -0
- package/dist/components/Chat/ChatThread.js +68 -0
- package/dist/components/Chat/ChatThread.js.map +1 -0
- package/dist/components/Chat/ChatToolCall.js +59 -0
- package/dist/components/Chat/ChatToolCall.js.map +1 -0
- package/dist/components/Chat/index.js +29 -0
- package/dist/components/Chat/index.js.map +1 -0
- package/dist/components/Chat/stickToBottom.js +29 -0
- package/dist/components/Chat/stickToBottom.js.map +1 -0
- package/dist/components/Chat/tokenText.js +6 -0
- package/dist/components/Chat/tokenText.js.map +1 -0
- package/dist/components/Checkbox.js +79 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/ClampText.js +30 -0
- package/dist/components/ClampText.js.map +1 -0
- package/dist/components/CodeBlock.js +223 -0
- package/dist/components/CodeBlock.js.map +1 -0
- package/dist/components/CodeBlockHighlighter.js +103 -0
- package/dist/components/CodeBlockHighlighter.js.map +1 -0
- package/dist/components/CollapsibleSection.js +40 -0
- package/dist/components/CollapsibleSection.js.map +1 -0
- package/dist/components/Confetti.js +56 -0
- package/dist/components/Confetti.js.map +1 -0
- package/dist/components/ConfirmationDialog.js +234 -0
- package/dist/components/ConfirmationDialog.js.map +1 -0
- package/dist/components/ConnectionHeader.js +47 -0
- package/dist/components/ConnectionHeader.js.map +1 -0
- package/dist/components/CustomIcons/AccountIcon.js +28 -0
- package/dist/components/CustomIcons/AccountIcon.js.map +1 -0
- package/dist/components/CustomIcons/AccountsIcon.js +28 -0
- package/dist/components/CustomIcons/AccountsIcon.js.map +1 -0
- package/dist/components/CustomIcons/AddIcon.js +28 -0
- package/dist/components/CustomIcons/AddIcon.js.map +1 -0
- package/dist/components/CustomIcons/AdvancedLogsIcon.js +21 -0
- package/dist/components/CustomIcons/AdvancedLogsIcon.js.map +1 -0
- package/dist/components/CustomIcons/ApiKeysIcon.js +16 -0
- package/dist/components/CustomIcons/ApiKeysIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArchiveIcon.js +16 -0
- package/dist/components/CustomIcons/ArchiveIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowLeftIcon.js +16 -0
- package/dist/components/CustomIcons/ArrowLeftIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowUpIcon.js +28 -0
- package/dist/components/CustomIcons/ArrowUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/ArrowUpRightIcon.js +20 -0
- package/dist/components/CustomIcons/ArrowUpRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/AuthenticationIcon.js +28 -0
- package/dist/components/CustomIcons/AuthenticationIcon.js.map +1 -0
- package/dist/components/CustomIcons/BellIcon.js +16 -0
- package/dist/components/CustomIcons/BellIcon.js.map +1 -0
- package/dist/components/CustomIcons/BellSlashIcon.js +16 -0
- package/dist/components/CustomIcons/BellSlashIcon.js.map +1 -0
- package/dist/components/CustomIcons/BiDirectionalArrowsIcon.js +21 -0
- package/dist/components/CustomIcons/BiDirectionalArrowsIcon.js.map +1 -0
- package/dist/components/CustomIcons/CardIcon.js +16 -0
- package/dist/components/CustomIcons/CardIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretDownIcon.js +16 -0
- package/dist/components/CustomIcons/CaretDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretLeftIcon.js +16 -0
- package/dist/components/CustomIcons/CaretLeftIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretRightIcon.js +21 -0
- package/dist/components/CustomIcons/CaretRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/CaretUpIcon.js +16 -0
- package/dist/components/CustomIcons/CaretUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/ChangePasswordIcon.js +21 -0
- package/dist/components/CustomIcons/ChangePasswordIcon.js.map +1 -0
- package/dist/components/CustomIcons/CheckCircleFilled.js +21 -0
- package/dist/components/CustomIcons/CheckCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/CheckIcon.js +28 -0
- package/dist/components/CustomIcons/CheckIcon.js.map +1 -0
- package/dist/components/CustomIcons/CheckmarkIcon.js +16 -0
- package/dist/components/CustomIcons/CheckmarkIcon.js.map +1 -0
- package/dist/components/CustomIcons/ClearIcon.js +28 -0
- package/dist/components/CustomIcons/ClearIcon.js.map +1 -0
- package/dist/components/CustomIcons/CloseIcon.js +28 -0
- package/dist/components/CustomIcons/CloseIcon.js.map +1 -0
- package/dist/components/CustomIcons/CodeIcon.js +16 -0
- package/dist/components/CustomIcons/CodeIcon.js.map +1 -0
- package/dist/components/CustomIcons/CommandKeyIcon.js +21 -0
- package/dist/components/CustomIcons/CommandKeyIcon.js.map +1 -0
- package/dist/components/CustomIcons/CopyIcon.js +28 -0
- package/dist/components/CustomIcons/CopyIcon.js.map +1 -0
- package/dist/components/CustomIcons/CsvIcon.js +28 -0
- package/dist/components/CustomIcons/CsvIcon.js.map +1 -0
- package/dist/components/CustomIcons/CustomFieldIcon.js +21 -0
- package/dist/components/CustomIcons/CustomFieldIcon.js.map +1 -0
- package/dist/components/CustomIcons/DashboardIcon.js +28 -0
- package/dist/components/CustomIcons/DashboardIcon.js.map +1 -0
- package/dist/components/CustomIcons/DateIcon.js +28 -0
- package/dist/components/CustomIcons/DateIcon.js.map +1 -0
- package/dist/components/CustomIcons/DisableIcon.js +28 -0
- package/dist/components/CustomIcons/DisableIcon.js.map +1 -0
- package/dist/components/CustomIcons/DisabledIcon.js +28 -0
- package/dist/components/CustomIcons/DisabledIcon.js.map +1 -0
- package/dist/components/CustomIcons/DismissIcon.js +15 -0
- package/dist/components/CustomIcons/DismissIcon.js.map +1 -0
- package/dist/components/CustomIcons/DocIcon.js +28 -0
- package/dist/components/CustomIcons/DocIcon.js.map +1 -0
- package/dist/components/CustomIcons/DoubleCheckIcon.js +21 -0
- package/dist/components/CustomIcons/DoubleCheckIcon.js.map +1 -0
- package/dist/components/CustomIcons/DownloadIcon.js +28 -0
- package/dist/components/CustomIcons/DownloadIcon.js.map +1 -0
- package/dist/components/CustomIcons/EditIcon.js +28 -0
- package/dist/components/CustomIcons/EditIcon.js.map +1 -0
- package/dist/components/CustomIcons/EnableIcon.js +28 -0
- package/dist/components/CustomIcons/EnableIcon.js.map +1 -0
- package/dist/components/CustomIcons/EnumIcon.js +28 -0
- package/dist/components/CustomIcons/EnumIcon.js.map +1 -0
- package/dist/components/CustomIcons/ErrorCircleFilled.js +21 -0
- package/dist/components/CustomIcons/ErrorCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/ExpandIcon.js +28 -0
- package/dist/components/CustomIcons/ExpandIcon.js.map +1 -0
- package/dist/components/CustomIcons/EyeClosedIcon.js +16 -0
- package/dist/components/CustomIcons/EyeClosedIcon.js.map +1 -0
- package/dist/components/CustomIcons/EyeIcon.js +16 -0
- package/dist/components/CustomIcons/EyeIcon.js.map +1 -0
- package/dist/components/CustomIcons/FieldMappingIcon.js +21 -0
- package/dist/components/CustomIcons/FieldMappingIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilledCaretDownIcon.js +21 -0
- package/dist/components/CustomIcons/FilledCaretDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilledCaretRightIcon.js +21 -0
- package/dist/components/CustomIcons/FilledCaretRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/FilterIcon.js +28 -0
- package/dist/components/CustomIcons/FilterIcon.js.map +1 -0
- package/dist/components/CustomIcons/ForbiddenIcon.js +28 -0
- package/dist/components/CustomIcons/ForbiddenIcon.js.map +1 -0
- package/dist/components/CustomIcons/ForwardArrowIcon.js +21 -0
- package/dist/components/CustomIcons/ForwardArrowIcon.js.map +1 -0
- package/dist/components/CustomIcons/GlobeIcon.js +16 -0
- package/dist/components/CustomIcons/GlobeIcon.js.map +1 -0
- package/dist/components/CustomIcons/InboxIcon.js +16 -0
- package/dist/components/CustomIcons/InboxIcon.js.map +1 -0
- package/dist/components/CustomIcons/InfoCircleFilled.js +21 -0
- package/dist/components/CustomIcons/InfoCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/InfoFilledIcon.js +21 -0
- package/dist/components/CustomIcons/InfoFilledIcon.js.map +1 -0
- package/dist/components/CustomIcons/InfoIcon.js +28 -0
- package/dist/components/CustomIcons/InfoIcon.js.map +1 -0
- package/dist/components/CustomIcons/IntegrationsIcon.js +28 -0
- package/dist/components/CustomIcons/IntegrationsIcon.js.map +1 -0
- package/dist/components/CustomIcons/KeyIcon.js +28 -0
- package/dist/components/CustomIcons/KeyIcon.js.map +1 -0
- package/dist/components/CustomIcons/LibraryIcon.js +16 -0
- package/dist/components/CustomIcons/LibraryIcon.js.map +1 -0
- package/dist/components/CustomIcons/LogsIcon.js +28 -0
- package/dist/components/CustomIcons/LogsIcon.js.map +1 -0
- package/dist/components/CustomIcons/MagicWandIcon.js +16 -0
- package/dist/components/CustomIcons/MagicWandIcon.js.map +1 -0
- package/dist/components/CustomIcons/ManageTeamIcon.js +21 -0
- package/dist/components/CustomIcons/ManageTeamIcon.js.map +1 -0
- package/dist/components/CustomIcons/ManualWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/ManualWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/MarkReadIcon.js +16 -0
- package/dist/components/CustomIcons/MarkReadIcon.js.map +1 -0
- package/dist/components/CustomIcons/MarkUnreadIcon.js +21 -0
- package/dist/components/CustomIcons/MarkUnreadIcon.js.map +1 -0
- package/dist/components/CustomIcons/MembersIcon.js +28 -0
- package/dist/components/CustomIcons/MembersIcon.js.map +1 -0
- package/dist/components/CustomIcons/ModalIcon.js +28 -0
- package/dist/components/CustomIcons/ModalIcon.js.map +1 -0
- package/dist/components/CustomIcons/MoreHorizontalIcon.js +21 -0
- package/dist/components/CustomIcons/MoreHorizontalIcon.js.map +1 -0
- package/dist/components/CustomIcons/MoreVerticalIcon.js +21 -0
- package/dist/components/CustomIcons/MoreVerticalIcon.js.map +1 -0
- package/dist/components/CustomIcons/NavbarCollapseIcon.js +21 -0
- package/dist/components/CustomIcons/NavbarCollapseIcon.js.map +1 -0
- package/dist/components/CustomIcons/NavbarExpandIcon.js +21 -0
- package/dist/components/CustomIcons/NavbarExpandIcon.js.map +1 -0
- package/dist/components/CustomIcons/NotFoundIcon.js +16 -0
- package/dist/components/CustomIcons/NotFoundIcon.js.map +1 -0
- package/dist/components/CustomIcons/OrganizationIcon.js +21 -0
- package/dist/components/CustomIcons/OrganizationIcon.js.map +1 -0
- package/dist/components/CustomIcons/PinIcon.js +16 -0
- package/dist/components/CustomIcons/PinIcon.js.map +1 -0
- package/dist/components/CustomIcons/PlusIcon.js +28 -0
- package/dist/components/CustomIcons/PlusIcon.js.map +1 -0
- package/dist/components/CustomIcons/PreviewIcon.js +28 -0
- package/dist/components/CustomIcons/PreviewIcon.js.map +1 -0
- package/dist/components/CustomIcons/ProgrammaticWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/ProgrammaticWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/PulseIcon.js +28 -0
- package/dist/components/CustomIcons/PulseIcon.js.map +1 -0
- package/dist/components/CustomIcons/RefreshIcon.js +28 -0
- package/dist/components/CustomIcons/RefreshIcon.js.map +1 -0
- package/dist/components/CustomIcons/RejectIcon.js +28 -0
- package/dist/components/CustomIcons/RejectIcon.js.map +1 -0
- package/dist/components/CustomIcons/ReloadIcon.js +28 -0
- package/dist/components/CustomIcons/ReloadIcon.js.map +1 -0
- package/dist/components/CustomIcons/ReplyIcon.js +16 -0
- package/dist/components/CustomIcons/ReplyIcon.js.map +1 -0
- package/dist/components/CustomIcons/RequiredFieldIndicatorIcon.js +21 -0
- package/dist/components/CustomIcons/RequiredFieldIndicatorIcon.js.map +1 -0
- package/dist/components/CustomIcons/SearchIcon.js +15 -0
- package/dist/components/CustomIcons/SearchIcon.js.map +1 -0
- package/dist/components/CustomIcons/SecurityIcon.js +28 -0
- package/dist/components/CustomIcons/SecurityIcon.js.map +1 -0
- package/dist/components/CustomIcons/SendIcon.js +16 -0
- package/dist/components/CustomIcons/SendIcon.js.map +1 -0
- package/dist/components/CustomIcons/SettingsIcon.js +28 -0
- package/dist/components/CustomIcons/SettingsIcon.js.map +1 -0
- package/dist/components/CustomIcons/SignOutIcon.js +16 -0
- package/dist/components/CustomIcons/SignOutIcon.js.map +1 -0
- package/dist/components/CustomIcons/SliderIcon.js +28 -0
- package/dist/components/CustomIcons/SliderIcon.js.map +1 -0
- package/dist/components/CustomIcons/SortIcon.js +28 -0
- package/dist/components/CustomIcons/SortIcon.js.map +1 -0
- package/dist/components/CustomIcons/SourceIcon.js +28 -0
- package/dist/components/CustomIcons/SourceIcon.js.map +1 -0
- package/dist/components/CustomIcons/SparkleIcon.js +16 -0
- package/dist/components/CustomIcons/SparkleIcon.js.map +1 -0
- package/dist/components/CustomIcons/StarIcon.js +16 -0
- package/dist/components/CustomIcons/StarIcon.js.map +1 -0
- package/dist/components/CustomIcons/StepCurrentIcon.js +21 -0
- package/dist/components/CustomIcons/StepCurrentIcon.js.map +1 -0
- package/dist/components/CustomIcons/StepUpcomingIcon.js +21 -0
- package/dist/components/CustomIcons/StepUpcomingIcon.js.map +1 -0
- package/dist/components/CustomIcons/SyntheticWebhookIcon.js +21 -0
- package/dist/components/CustomIcons/SyntheticWebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/ThumbsDownIcon.js +21 -0
- package/dist/components/CustomIcons/ThumbsDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/ThumbsUpIcon.js +16 -0
- package/dist/components/CustomIcons/ThumbsUpIcon.js.map +1 -0
- package/dist/components/CustomIcons/TrashIcon.js +28 -0
- package/dist/components/CustomIcons/TrashIcon.js.map +1 -0
- package/dist/components/CustomIcons/TriangleDownIcon.js +21 -0
- package/dist/components/CustomIcons/TriangleDownIcon.js.map +1 -0
- package/dist/components/CustomIcons/TriangleRightIcon.js +21 -0
- package/dist/components/CustomIcons/TriangleRightIcon.js.map +1 -0
- package/dist/components/CustomIcons/UnarchiveIcon.js +16 -0
- package/dist/components/CustomIcons/UnarchiveIcon.js.map +1 -0
- package/dist/components/CustomIcons/UploadIcon.js +28 -0
- package/dist/components/CustomIcons/UploadIcon.js.map +1 -0
- package/dist/components/CustomIcons/WarningCircleFilled.js +21 -0
- package/dist/components/CustomIcons/WarningCircleFilled.js.map +1 -0
- package/dist/components/CustomIcons/WarningTriangleIcon.js +21 -0
- package/dist/components/CustomIcons/WarningTriangleIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookEventsIcon.js +28 -0
- package/dist/components/CustomIcons/WebhookEventsIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookIcon.js +28 -0
- package/dist/components/CustomIcons/WebhookIcon.js.map +1 -0
- package/dist/components/CustomIcons/WebhookSigningSecretIcon.js +21 -0
- package/dist/components/CustomIcons/WebhookSigningSecretIcon.js.map +1 -0
- package/dist/components/CustomIcons/index.js +328 -0
- package/dist/components/CustomIcons/index.js.map +1 -0
- package/dist/components/DefinitionRow.js +15 -0
- package/dist/components/DefinitionRow.js.map +1 -0
- package/dist/components/DisclosureArrow.js +20 -0
- package/dist/components/DisclosureArrow.js.map +1 -0
- package/dist/components/Divider.js +59 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/Dropdown.js +849 -0
- package/dist/components/Dropdown.js.map +1 -0
- package/dist/components/FieldBlock.js +25 -0
- package/dist/components/FieldBlock.js.map +1 -0
- package/dist/components/FieldGroup.js +23 -0
- package/dist/components/FieldGroup.js.map +1 -0
- package/dist/components/FieldMessage.js +15 -0
- package/dist/components/FieldMessage.js.map +1 -0
- package/dist/components/Flex.js +45 -0
- package/dist/components/Flex.js.map +1 -0
- package/dist/components/FooterLinks.js +88 -0
- package/dist/components/FooterLinks.js.map +1 -0
- package/dist/components/FooterNav.js +19 -0
- package/dist/components/FooterNav.js.map +1 -0
- package/dist/components/Form.js +26 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/FormItem.js +32 -0
- package/dist/components/FormItem.js.map +1 -0
- package/dist/components/FormSectionHeading.js +20 -0
- package/dist/components/FormSectionHeading.js.map +1 -0
- package/dist/components/InlineConfirm.js +129 -0
- package/dist/components/InlineConfirm.js.map +1 -0
- package/dist/components/Input/Input.js +302 -0
- package/dist/components/Input/Input.js.map +1 -0
- package/dist/components/KeyValueList.js +26 -0
- package/dist/components/KeyValueList.js.map +1 -0
- package/dist/components/Link.js +47 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/LoadingBar.js +85 -0
- package/dist/components/LoadingBar.js.map +1 -0
- package/dist/components/LoadingInput.js +29 -0
- package/dist/components/LoadingInput.js.map +1 -0
- package/dist/components/MalachiteContext.js +18 -0
- package/dist/components/MalachiteContext.js.map +1 -0
- package/dist/components/Modal.js +212 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/MultiSelect.js +645 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/components/NumberTag.js +22 -0
- package/dist/components/NumberTag.js.map +1 -0
- package/dist/components/OverflowRow.js +153 -0
- package/dist/components/OverflowRow.js.map +1 -0
- package/dist/components/Padded.js +39 -0
- package/dist/components/Padded.js.map +1 -0
- package/dist/components/PageLayout/constants.js +12 -0
- package/dist/components/PageLayout/constants.js.map +1 -0
- package/dist/components/PageLayout/emptyLayout.js +61 -0
- package/dist/components/PageLayout/emptyLayout.js.map +1 -0
- package/dist/components/PageLayout/index.js +10 -0
- package/dist/components/PageLayout/index.js.map +1 -0
- package/dist/components/PageLayout/regularLayout.js +177 -0
- package/dist/components/PageLayout/regularLayout.js.map +1 -0
- package/dist/components/PillButton.js +70 -0
- package/dist/components/PillButton.js.map +1 -0
- package/dist/components/PreviewTree.js +49 -0
- package/dist/components/PreviewTree.js.map +1 -0
- package/dist/components/Progress.js +69 -0
- package/dist/components/Progress.js.map +1 -0
- package/dist/components/QueryInput.js +370 -0
- package/dist/components/QueryInput.js.map +1 -0
- package/dist/components/Radio.js +63 -0
- package/dist/components/Radio.js.map +1 -0
- package/dist/components/Search.js +54 -0
- package/dist/components/Search.js.map +1 -0
- package/dist/components/SegmentedControl.js +107 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/SelectableCard.js +364 -0
- package/dist/components/SelectableCard.js.map +1 -0
- package/dist/components/SelectionBar.js +103 -0
- package/dist/components/SelectionBar.js.map +1 -0
- package/dist/components/SettingRow.js +40 -0
- package/dist/components/SettingRow.js.map +1 -0
- package/dist/components/ShadowEscape.js +166 -0
- package/dist/components/ShadowEscape.js.map +1 -0
- package/dist/components/SidePanel.js +140 -0
- package/dist/components/SidePanel.js.map +1 -0
- package/dist/components/SidePanelNavFooter.js +46 -0
- package/dist/components/SidePanelNavFooter.js.map +1 -0
- package/dist/components/Skeleton.js +106 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Spacer.js +63 -0
- package/dist/components/Spacer.js.map +1 -0
- package/dist/components/Spinner.js +86 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/SplitScreenLayout.js +51 -0
- package/dist/components/SplitScreenLayout.js.map +1 -0
- package/dist/components/StatBadge.js +10 -0
- package/dist/components/StatBadge.js.map +1 -0
- package/dist/components/Statistic.js +48 -0
- package/dist/components/Statistic.js.map +1 -0
- package/dist/components/StatusBadge.js +56 -0
- package/dist/components/StatusBadge.js.map +1 -0
- package/dist/components/StepTabs.js +52 -0
- package/dist/components/StepTabs.js.map +1 -0
- package/dist/components/Stepper.js +40 -0
- package/dist/components/Stepper.js.map +1 -0
- package/dist/components/Surface.js +143 -0
- package/dist/components/Surface.js.map +1 -0
- package/dist/components/Swatch.js +44 -0
- package/dist/components/Swatch.js.map +1 -0
- package/dist/components/Table/Table.js +1007 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/TablePagination.js +205 -0
- package/dist/components/Table/TablePagination.js.map +1 -0
- package/dist/components/Tabs.js +35 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Tag.js +154 -0
- package/dist/components/Tag.js.map +1 -0
- package/dist/components/TextArea/TextArea.js +289 -0
- package/dist/components/TextArea/TextArea.js.map +1 -0
- package/dist/components/ThemeScope.js +14 -0
- package/dist/components/ThemeScope.js.map +1 -0
- package/dist/components/Toggle.js +115 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/Toolbar.js +25 -0
- package/dist/components/Toolbar.js.map +1 -0
- package/dist/components/Tooltip.js +181 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/TruncatedTooltip.js +38 -0
- package/dist/components/TruncatedTooltip.js.map +1 -0
- package/dist/components/Typography/CodeText.js +49 -0
- package/dist/components/Typography/CodeText.js.map +1 -0
- package/dist/components/Typography/EllipsisText.js +27 -0
- package/dist/components/Typography/EllipsisText.js.map +1 -0
- package/dist/components/Typography/FormSectionTitle.js +21 -0
- package/dist/components/Typography/FormSectionTitle.js.map +1 -0
- package/dist/components/Typography/LinkText.js +32 -0
- package/dist/components/Typography/LinkText.js.map +1 -0
- package/dist/components/Typography/MarkdownBlock.js +304 -0
- package/dist/components/Typography/MarkdownBlock.js.map +1 -0
- package/dist/components/Typography/PageTitle.js +21 -0
- package/dist/components/Typography/PageTitle.js.map +1 -0
- package/dist/components/Typography/SecondaryText.js +51 -0
- package/dist/components/Typography/SecondaryText.js.map +1 -0
- package/dist/components/Typography/SectionTitle.js +16 -0
- package/dist/components/Typography/SectionTitle.js.map +1 -0
- package/dist/components/Typography/StatisticLabel.js +22 -0
- package/dist/components/Typography/StatisticLabel.js.map +1 -0
- package/dist/components/Typography/StatisticValue.js +21 -0
- package/dist/components/Typography/StatisticValue.js.map +1 -0
- package/dist/components/Typography/TerminalText.js +45 -0
- package/dist/components/Typography/TerminalText.js.map +1 -0
- package/dist/components/Typography/Text.js +31 -0
- package/dist/components/Typography/Text.js.map +1 -0
- package/dist/components/Typography/index.js +31 -0
- package/dist/components/Typography/index.js.map +1 -0
- package/dist/components/Typography/textStyles.js +66 -0
- package/dist/components/Typography/textStyles.js.map +1 -0
- package/dist/components/WizardLayout.js +113 -0
- package/dist/components/WizardLayout.js.map +1 -0
- package/dist/components/actionBarMenuItems.js +16 -0
- package/dist/components/actionBarMenuItems.js.map +1 -0
- package/dist/components/activeElement.js +11 -0
- package/dist/components/activeElement.js.map +1 -0
- package/dist/components/breadcrumbsNav.js +5 -0
- package/dist/components/breadcrumbsNav.js.map +1 -0
- package/dist/components/cardStripSlot.js +9 -0
- package/dist/components/cardStripSlot.js.map +1 -0
- package/dist/components/codeBlockDiff.js +78 -0
- package/dist/components/codeBlockDiff.js.map +1 -0
- package/dist/components/codeBlockLine.js +90 -0
- package/dist/components/codeBlockLine.js.map +1 -0
- package/dist/components/codeBlockStyles.js +20 -0
- package/dist/components/codeBlockStyles.js.map +1 -0
- package/dist/components/confirmationDialogVariants.js +30 -0
- package/dist/components/confirmationDialogVariants.js.map +1 -0
- package/dist/components/controlTextSize.js +14 -0
- package/dist/components/controlTextSize.js.map +1 -0
- package/dist/components/devWarning.js +22 -0
- package/dist/components/devWarning.js.map +1 -0
- package/dist/components/dividerTypes.js +7 -0
- package/dist/components/dividerTypes.js.map +1 -0
- package/dist/components/dropdownPanelPosition.js +38 -0
- package/dist/components/dropdownPanelPosition.js.map +1 -0
- package/dist/components/dropdownTriggerStyle.js +36 -0
- package/dist/components/dropdownTriggerStyle.js.map +1 -0
- package/dist/components/escapeLayers.js +13 -0
- package/dist/components/escapeLayers.js.map +1 -0
- package/dist/components/flexTypes.js +8 -0
- package/dist/components/flexTypes.js.map +1 -0
- package/dist/components/focusRing.js +9 -0
- package/dist/components/focusRing.js.map +1 -0
- package/dist/components/formItemState.js +12 -0
- package/dist/components/formItemState.js.map +1 -0
- package/dist/components/glassSurface.js +10 -0
- package/dist/components/glassSurface.js.map +1 -0
- package/dist/components/injectStyleSheet.js +33 -0
- package/dist/components/injectStyleSheet.js.map +1 -0
- package/dist/components/inlineConfirmPosition.js +27 -0
- package/dist/components/inlineConfirmPosition.js.map +1 -0
- package/dist/components/keyboardActivation.js +14 -0
- package/dist/components/keyboardActivation.js.map +1 -0
- package/dist/components/modalTray.js +16 -0
- package/dist/components/modalTray.js.map +1 -0
- package/dist/components/optionRowStyles.js +27 -0
- package/dist/components/optionRowStyles.js.map +1 -0
- package/dist/components/overlayBehaviour.js +118 -0
- package/dist/components/overlayBehaviour.js.map +1 -0
- package/dist/components/portalOverlay.js +35 -0
- package/dist/components/portalOverlay.js.map +1 -0
- package/dist/components/prismCedar.js +27 -0
- package/dist/components/prismCedar.js.map +1 -0
- package/dist/components/queryInputGeometry.js +24 -0
- package/dist/components/queryInputGeometry.js.map +1 -0
- package/dist/components/renderableNode.js +6 -0
- package/dist/components/renderableNode.js.map +1 -0
- package/dist/components/safeHref.js +11 -0
- package/dist/components/safeHref.js.map +1 -0
- package/dist/components/scrollLock.js +19 -0
- package/dist/components/scrollLock.js.map +1 -0
- package/dist/components/selectedRow.js +14 -0
- package/dist/components/selectedRow.js.map +1 -0
- package/dist/components/selectionBarChrome.js +63 -0
- package/dist/components/selectionBarChrome.js.map +1 -0
- package/dist/components/topLayer.js +29 -0
- package/dist/components/topLayer.js.map +1 -0
- package/dist/components/useAdoptedStyleSheet.js +41 -0
- package/dist/components/useAdoptedStyleSheet.js.map +1 -0
- package/dist/geist-font.js +23 -0
- package/dist/geist-font.js.map +1 -0
- package/dist/index.d.ts +1056 -86
- package/dist/index.js +403 -104
- package/dist/index.js.map +1 -1
- package/dist/inter-font.js +35 -0
- package/dist/inter-font.js.map +1 -0
- package/dist/stack-sans-font.js +17 -0
- package/dist/stack-sans-font.js.map +1 -0
- package/dist/tailwind.css.js +5 -0
- package/dist/tailwind.css.js.map +1 -0
- package/dist/theme.js +1959 -0
- package/dist/theme.js.map +1 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/geist-sans/files/geist-sans-latin-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-600-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-600-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-700-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-700-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-400-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-400-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-500-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-500-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-600-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-600-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-700-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource/inter/files/inter-latin-ext-700-normal.woff2.js.map +1 -0
- package/dist/vendor/@fontsource-variable/stack-sans-text/files/stack-sans-text-latin-wght-normal.woff2.js +5 -0
- package/dist/vendor/@fontsource-variable/stack-sans-text/files/stack-sans-text-latin-wght-normal.woff2.js.map +1 -0
- package/package.json +6 -1
- package/dist/CodeBlockHighlighter-BJeE32YS.js +0 -2791
- package/dist/CodeBlockHighlighter-BJeE32YS.js.map +0 -1
- package/dist/index-P2H4or4t.js +0 -19528
- package/dist/index-P2H4or4t.js.map +0 -1
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { jsxs as S, jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { useId as xt, useState as E, useRef as g, useLayoutEffect as T, useCallback as et, useEffect as bt, useInsertionEffect as wt } from "react";
|
|
3
|
+
import { createPortal as vt } from "react-dom";
|
|
4
|
+
import yt from "./Spinner.js";
|
|
5
|
+
import { CONTROL_TEXT_SIZE as _, CONTROL_TEXT_SIZE_CLASS as rt } from "./controlTextSize.js";
|
|
6
|
+
import { pushEscapeLayer as St } from "./escapeLayers.js";
|
|
7
|
+
import { ensureMultiSelectPanelStyles as Et } from "./optionRowStyles.js";
|
|
8
|
+
import { overlayIdentity as Tt } from "./portalOverlay.js";
|
|
9
|
+
import { computeCaretMenuGeometry as kt } from "./queryInputGeometry.js";
|
|
10
|
+
const Mt = {
|
|
11
|
+
small: "h-[var(--malachite-control-height-small,28px)] px-[10px] rounded-[var(--malachite-radius-10,10px)]",
|
|
12
|
+
medium: "h-[var(--malachite-control-height-medium,32px)] px-[10px] rounded-xl",
|
|
13
|
+
large: "h-[var(--malachite-control-height-large,42px)] px-[12px] rounded-[var(--malachite-radius-xxl,14px)]"
|
|
14
|
+
}, Lt = {
|
|
15
|
+
key: "var(--malachite-codeblock-keyword, rgb(12, 88, 174))",
|
|
16
|
+
value: "var(--malachite-codeblock-string, rgb(2, 122, 66))",
|
|
17
|
+
operator: "var(--malachite-codeblock-type, rgb(12, 88, 174))",
|
|
18
|
+
negation: "var(--malachite-text-destructive, rgb(237, 53, 54))",
|
|
19
|
+
punctuation: "var(--malachite-codeblock-foreground, rgb(10, 10, 10))",
|
|
20
|
+
error: "var(--malachite-text-error, rgb(237, 53, 54))",
|
|
21
|
+
plain: "var(--malachite-text-primary, rgb(10, 10, 10))"
|
|
22
|
+
}, It = {
|
|
23
|
+
small: {
|
|
24
|
+
fontFamily: "inherit",
|
|
25
|
+
fontSize: _.small,
|
|
26
|
+
fontWeight: 500,
|
|
27
|
+
letterSpacing: "normal",
|
|
28
|
+
lineHeight: "normal",
|
|
29
|
+
padding: 0
|
|
30
|
+
},
|
|
31
|
+
medium: {
|
|
32
|
+
fontFamily: "inherit",
|
|
33
|
+
fontSize: _.medium,
|
|
34
|
+
fontWeight: 500,
|
|
35
|
+
letterSpacing: "normal",
|
|
36
|
+
lineHeight: "normal",
|
|
37
|
+
padding: 0
|
|
38
|
+
},
|
|
39
|
+
large: {
|
|
40
|
+
fontFamily: "inherit",
|
|
41
|
+
fontSize: _.large,
|
|
42
|
+
fontWeight: 500,
|
|
43
|
+
letterSpacing: "normal",
|
|
44
|
+
lineHeight: "normal",
|
|
45
|
+
padding: 0
|
|
46
|
+
}
|
|
47
|
+
}, F = 220, nt = 360, ot = {
|
|
48
|
+
display: "flex",
|
|
49
|
+
alignItems: "center",
|
|
50
|
+
justifyContent: "center",
|
|
51
|
+
gap: 8,
|
|
52
|
+
padding: "10px 12px",
|
|
53
|
+
color: "var(--malachite-text-dimmed, rgb(161, 161, 161))",
|
|
54
|
+
whiteSpace: "nowrap"
|
|
55
|
+
}, Rt = (r) => {
|
|
56
|
+
r.preventDefault();
|
|
57
|
+
}, Dt = (r, f) => {
|
|
58
|
+
const a = [...f.filter(
|
|
59
|
+
(n) => n.start >= 0 && n.end <= r.length && n.start < n.end
|
|
60
|
+
)].sort((n, k) => n.start - k.start), s = [];
|
|
61
|
+
let u = 0;
|
|
62
|
+
for (const n of a)
|
|
63
|
+
n.start < u || (s.push(n), u = n.end);
|
|
64
|
+
return s;
|
|
65
|
+
}, _t = (r, f) => {
|
|
66
|
+
const h = [];
|
|
67
|
+
let a = 0;
|
|
68
|
+
for (const s of Dt(r, f))
|
|
69
|
+
s.start > a && h.push({ start: a, end: s.start, kind: "plain" }), h.push(s), a = s.end;
|
|
70
|
+
return a < r.length && h.push({ start: a, end: r.length, kind: "plain" }), h;
|
|
71
|
+
}, jt = ({
|
|
72
|
+
value: r,
|
|
73
|
+
onChange: f,
|
|
74
|
+
tokens: h = [],
|
|
75
|
+
suggestions: a,
|
|
76
|
+
activeRange: s,
|
|
77
|
+
onAccept: u,
|
|
78
|
+
onQueryContextChange: n,
|
|
79
|
+
onSubmit: k,
|
|
80
|
+
placeholder: B,
|
|
81
|
+
size: x = "large",
|
|
82
|
+
disabled: M = !1,
|
|
83
|
+
loading: L = !1,
|
|
84
|
+
emptyMessage: H,
|
|
85
|
+
className: it = "",
|
|
86
|
+
style: at,
|
|
87
|
+
"aria-label": lt,
|
|
88
|
+
"aria-labelledby": K
|
|
89
|
+
}) => {
|
|
90
|
+
const W = `${xt()}-listbox`, U = (t) => `${W}-option-${t}`, [N, j] = E(!1), [Y, O] = E(() => r.length), [st, $] = E(0), [ct, A] = E(!1), [i, Z] = E(null), b = g(null), C = g(null), G = g(null), I = g(null), P = g([]), z = g(null), dt = Array.isArray(a), w = a ?? [], v = w.length > 0, l = N && (L || v || dt && !v && !!H) && !ct && !M, y = l && v && !L, c = v ? Math.min(st, w.length - 1) : -1;
|
|
91
|
+
T(() => {
|
|
92
|
+
O((t) => Math.min(t, r.length));
|
|
93
|
+
}, [r]);
|
|
94
|
+
const R = et(() => {
|
|
95
|
+
const t = b.current, e = C.current;
|
|
96
|
+
t && e && (e.style.transform = `translateX(${-t.scrollLeft}px)`);
|
|
97
|
+
}, []);
|
|
98
|
+
T(() => {
|
|
99
|
+
R();
|
|
100
|
+
}, [r, R]);
|
|
101
|
+
const m = et(() => {
|
|
102
|
+
var o, p, D;
|
|
103
|
+
const t = b.current;
|
|
104
|
+
if (!t)
|
|
105
|
+
return;
|
|
106
|
+
const e = (((o = G.current) == null ? void 0 : o.offsetWidth) ?? 0) - t.scrollLeft;
|
|
107
|
+
Z(
|
|
108
|
+
kt({
|
|
109
|
+
inputRect: t.getBoundingClientRect(),
|
|
110
|
+
caretOffsetPx: e,
|
|
111
|
+
menuWidth: ((p = I.current) == null ? void 0 : p.offsetWidth) ?? F,
|
|
112
|
+
menuHeight: ((D = I.current) == null ? void 0 : D.offsetHeight) ?? 0,
|
|
113
|
+
viewportWidth: window.innerWidth,
|
|
114
|
+
viewportHeight: window.innerHeight
|
|
115
|
+
})
|
|
116
|
+
);
|
|
117
|
+
}, []);
|
|
118
|
+
T(() => {
|
|
119
|
+
l ? m() : Z(null);
|
|
120
|
+
}, [l, r, Y, a, L, m]), bt(() => {
|
|
121
|
+
if (!l)
|
|
122
|
+
return;
|
|
123
|
+
const t = () => m();
|
|
124
|
+
window.addEventListener("scroll", t, !0), window.addEventListener("resize", t);
|
|
125
|
+
const e = St(() => A(!0));
|
|
126
|
+
return () => {
|
|
127
|
+
window.removeEventListener("scroll", t, !0), window.removeEventListener("resize", t), e();
|
|
128
|
+
};
|
|
129
|
+
}, [l, m]), T(() => {
|
|
130
|
+
const t = z.current;
|
|
131
|
+
if (t === null)
|
|
132
|
+
return;
|
|
133
|
+
z.current = null;
|
|
134
|
+
const e = b.current;
|
|
135
|
+
!e || t.value !== r || (e.setSelectionRange(t.caret, t.caret), O(t.caret), n == null || n({ value: r, caret: t.caret }), R(), m());
|
|
136
|
+
}, [r]), T(() => {
|
|
137
|
+
if (!y)
|
|
138
|
+
return;
|
|
139
|
+
const t = P.current[c], e = I.current;
|
|
140
|
+
if (!t || !e)
|
|
141
|
+
return;
|
|
142
|
+
const o = t.offsetTop + t.offsetHeight;
|
|
143
|
+
o > e.scrollTop + e.clientHeight ? e.scrollTop = o - e.clientHeight : t.offsetTop < e.scrollTop && (e.scrollTop = t.offsetTop);
|
|
144
|
+
}, [c, y]), wt(() => {
|
|
145
|
+
l && Et();
|
|
146
|
+
}, [l]);
|
|
147
|
+
const V = (t, e) => {
|
|
148
|
+
O(e), n == null || n({ value: t, caret: e });
|
|
149
|
+
}, pt = (t) => {
|
|
150
|
+
const e = t.target.value;
|
|
151
|
+
A(!1), $(0), f(e), V(e, t.target.selectionStart ?? e.length);
|
|
152
|
+
}, ht = (t) => {
|
|
153
|
+
const e = t.currentTarget;
|
|
154
|
+
V(e.value, e.selectionStart ?? e.value.length);
|
|
155
|
+
}, X = (t) => {
|
|
156
|
+
var tt;
|
|
157
|
+
const e = ((tt = b.current) == null ? void 0 : tt.selectionStart) ?? r.length, o = s ?? { start: e, end: e }, p = Math.max(0, Math.min(o.start, r.length)), D = Math.max(p, Math.min(o.end, r.length)), J = t.insertText ?? t.label, Q = r.slice(0, p) + J + r.slice(D);
|
|
158
|
+
z.current = { value: Q, caret: p + J.length }, f(Q), u == null || u(t);
|
|
159
|
+
}, ft = (t) => {
|
|
160
|
+
if (y && (t.key === "ArrowDown" || t.key === "ArrowUp")) {
|
|
161
|
+
t.preventDefault();
|
|
162
|
+
const o = w.length;
|
|
163
|
+
$(
|
|
164
|
+
t.key === "ArrowDown" ? (c + 1) % o : (c - 1 + o) % o
|
|
165
|
+
);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const e = y && c >= 0 ? w[c] : void 0;
|
|
169
|
+
if (t.key === "Enter") {
|
|
170
|
+
if (e) {
|
|
171
|
+
t.preventDefault(), X(e);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
k && (t.preventDefault(), k(r));
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
t.key === "Tab" && e && (t.preventDefault(), X(e));
|
|
178
|
+
}, ut = _t(r, h), q = It[x], mt = L ? (
|
|
179
|
+
// `role="listbox"` admits only option/group children.
|
|
180
|
+
/* @__PURE__ */ S("div", { role: "presentation", style: ot, children: [
|
|
181
|
+
/* @__PURE__ */ d(yt, { size: "xxxsmall" }),
|
|
182
|
+
/* @__PURE__ */ d("span", { children: "Loading…" })
|
|
183
|
+
] })
|
|
184
|
+
) : v ? w.map((t, e) => {
|
|
185
|
+
const o = e === c;
|
|
186
|
+
return /* @__PURE__ */ S(
|
|
187
|
+
"button",
|
|
188
|
+
{
|
|
189
|
+
ref: (p) => {
|
|
190
|
+
P.current[e] = p;
|
|
191
|
+
},
|
|
192
|
+
type: "button",
|
|
193
|
+
id: U(e),
|
|
194
|
+
role: "option",
|
|
195
|
+
"aria-selected": o,
|
|
196
|
+
tabIndex: -1,
|
|
197
|
+
onClick: () => X(t),
|
|
198
|
+
onMouseEnter: () => $(e),
|
|
199
|
+
className: "malachite-multiselect-option",
|
|
200
|
+
"data-highlighted": o,
|
|
201
|
+
style: {
|
|
202
|
+
display: "flex",
|
|
203
|
+
alignItems: "center",
|
|
204
|
+
gap: 12,
|
|
205
|
+
width: "100%",
|
|
206
|
+
flexShrink: 0,
|
|
207
|
+
border: "none",
|
|
208
|
+
textAlign: "left",
|
|
209
|
+
borderRadius: 8,
|
|
210
|
+
padding: "8px 10px",
|
|
211
|
+
font: "inherit",
|
|
212
|
+
cursor: "pointer",
|
|
213
|
+
color: "var(--malachite-text-primary, rgb(10, 10, 10))"
|
|
214
|
+
},
|
|
215
|
+
children: [
|
|
216
|
+
/* @__PURE__ */ d(
|
|
217
|
+
"span",
|
|
218
|
+
{
|
|
219
|
+
style: {
|
|
220
|
+
flex: 1,
|
|
221
|
+
minWidth: 0,
|
|
222
|
+
overflow: "hidden",
|
|
223
|
+
textOverflow: "ellipsis",
|
|
224
|
+
whiteSpace: "nowrap"
|
|
225
|
+
},
|
|
226
|
+
children: t.label
|
|
227
|
+
}
|
|
228
|
+
),
|
|
229
|
+
t.detail && /* @__PURE__ */ d(
|
|
230
|
+
"span",
|
|
231
|
+
{
|
|
232
|
+
style: {
|
|
233
|
+
flexShrink: 0,
|
|
234
|
+
fontSize: "var(--malachite-font-size-xsmall, 11px)",
|
|
235
|
+
color: "var(--malachite-text-secondary, rgb(123, 123, 123))"
|
|
236
|
+
},
|
|
237
|
+
children: t.detail
|
|
238
|
+
}
|
|
239
|
+
)
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
t.id
|
|
243
|
+
);
|
|
244
|
+
}) : H ? /* @__PURE__ */ d("div", { role: "presentation", style: ot, children: H }) : null, gt = M ? "" : "hover:border-[var(--malachite-text-placeholder)]";
|
|
245
|
+
return /* @__PURE__ */ S(
|
|
246
|
+
"div",
|
|
247
|
+
{
|
|
248
|
+
className: `relative w-full ${Mt[x]} bg-[var(--malachite-card-background)] border border-solid border-[var(--malachite-card-border)] ${gt} transition-colors flex items-center ${M ? "opacity-60 cursor-not-allowed" : ""} ${it}`,
|
|
249
|
+
style: {
|
|
250
|
+
boxShadow: N ? "var(--malachite-shadow-accent, 0px 1px 0px 0px rgba(0, 175, 102, 0.15))" : "0px 1px 1px 0px rgba(0, 0, 0, 0.15)",
|
|
251
|
+
borderColor: N ? "var(--malachite-control-border-hover, rgba(0, 175, 102, 0.4))" : void 0,
|
|
252
|
+
...at
|
|
253
|
+
},
|
|
254
|
+
children: [
|
|
255
|
+
/* @__PURE__ */ S("div", { className: "relative flex-1 h-full min-w-0 overflow-hidden", children: [
|
|
256
|
+
/* @__PURE__ */ S(
|
|
257
|
+
"div",
|
|
258
|
+
{
|
|
259
|
+
ref: C,
|
|
260
|
+
"aria-hidden": "true",
|
|
261
|
+
className: `absolute inset-0 flex items-center pointer-events-none ${rt[x]}`,
|
|
262
|
+
style: { ...q, whiteSpace: "pre" },
|
|
263
|
+
children: [
|
|
264
|
+
ut.map((t) => /* @__PURE__ */ d(
|
|
265
|
+
"span",
|
|
266
|
+
{
|
|
267
|
+
style: {
|
|
268
|
+
color: Lt[t.kind],
|
|
269
|
+
...t.kind === "error" ? { textDecoration: "underline wavy" } : {}
|
|
270
|
+
},
|
|
271
|
+
children: r.slice(t.start, t.end)
|
|
272
|
+
},
|
|
273
|
+
t.start
|
|
274
|
+
)),
|
|
275
|
+
/* @__PURE__ */ d(
|
|
276
|
+
"span",
|
|
277
|
+
{
|
|
278
|
+
ref: G,
|
|
279
|
+
style: { position: "absolute", top: 0, left: 0, visibility: "hidden" },
|
|
280
|
+
children: r.slice(0, Y)
|
|
281
|
+
}
|
|
282
|
+
)
|
|
283
|
+
]
|
|
284
|
+
}
|
|
285
|
+
),
|
|
286
|
+
/* @__PURE__ */ d(
|
|
287
|
+
"input",
|
|
288
|
+
{
|
|
289
|
+
ref: b,
|
|
290
|
+
type: "text",
|
|
291
|
+
role: "combobox",
|
|
292
|
+
"aria-expanded": l,
|
|
293
|
+
"aria-controls": l ? W : void 0,
|
|
294
|
+
"aria-activedescendant": y && c >= 0 ? U(c) : void 0,
|
|
295
|
+
"aria-autocomplete": "list",
|
|
296
|
+
autoComplete: "off",
|
|
297
|
+
spellCheck: !1,
|
|
298
|
+
"aria-labelledby": K,
|
|
299
|
+
"aria-label": K ? void 0 : lt ?? B,
|
|
300
|
+
value: r,
|
|
301
|
+
onChange: pt,
|
|
302
|
+
onSelect: ht,
|
|
303
|
+
onScroll: () => {
|
|
304
|
+
R(), l && m();
|
|
305
|
+
},
|
|
306
|
+
onKeyDown: ft,
|
|
307
|
+
onFocus: () => {
|
|
308
|
+
j(!0), A(!1);
|
|
309
|
+
},
|
|
310
|
+
onBlur: () => j(!1),
|
|
311
|
+
placeholder: B,
|
|
312
|
+
disabled: M,
|
|
313
|
+
className: `absolute inset-0 w-full h-full bg-transparent border-none outline-none ${rt[x]} placeholder:text-[var(--malachite-text-placeholder)] placeholder:font-medium disabled:cursor-not-allowed`,
|
|
314
|
+
style: {
|
|
315
|
+
...q,
|
|
316
|
+
color: "transparent",
|
|
317
|
+
caretColor: "var(--malachite-text-primary, rgb(10, 10, 10))"
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
)
|
|
321
|
+
] }),
|
|
322
|
+
l && vt(
|
|
323
|
+
/* @__PURE__ */ d(
|
|
324
|
+
"div",
|
|
325
|
+
{
|
|
326
|
+
ref: I,
|
|
327
|
+
id: W,
|
|
328
|
+
role: "listbox",
|
|
329
|
+
...Tt("dropdown"),
|
|
330
|
+
onMouseDown: Rt,
|
|
331
|
+
style: {
|
|
332
|
+
position: "fixed",
|
|
333
|
+
top: (i == null ? void 0 : i.top) ?? 0,
|
|
334
|
+
left: (i == null ? void 0 : i.left) ?? 0,
|
|
335
|
+
minWidth: Math.min(
|
|
336
|
+
F,
|
|
337
|
+
(i == null ? void 0 : i.width) ?? F
|
|
338
|
+
),
|
|
339
|
+
maxWidth: Math.min(
|
|
340
|
+
nt,
|
|
341
|
+
(i == null ? void 0 : i.width) ?? nt
|
|
342
|
+
),
|
|
343
|
+
background: "var(--malachite-card-background, rgb(255, 255, 255))",
|
|
344
|
+
border: "1px solid var(--malachite-card-border, rgb(232, 232, 232))",
|
|
345
|
+
borderRadius: 12,
|
|
346
|
+
boxShadow: "0px 2px 5px 0px rgba(0, 0, 0, 0.1)",
|
|
347
|
+
padding: 4,
|
|
348
|
+
display: "flex",
|
|
349
|
+
flexDirection: "column",
|
|
350
|
+
gap: 2,
|
|
351
|
+
maxHeight: 320,
|
|
352
|
+
overflowY: "auto",
|
|
353
|
+
fontSize: _[x],
|
|
354
|
+
visibility: i ? "visible" : "hidden",
|
|
355
|
+
opacity: i ? 1 : 0
|
|
356
|
+
},
|
|
357
|
+
children: mt
|
|
358
|
+
}
|
|
359
|
+
),
|
|
360
|
+
document.body
|
|
361
|
+
)
|
|
362
|
+
]
|
|
363
|
+
}
|
|
364
|
+
);
|
|
365
|
+
};
|
|
366
|
+
export {
|
|
367
|
+
jt as QueryInput,
|
|
368
|
+
jt as default
|
|
369
|
+
};
|
|
370
|
+
//# sourceMappingURL=QueryInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryInput.js","sources":["../../src/components/QueryInput.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useId,\n useInsertionEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport Spinner from './Spinner';\nimport { CONTROL_TEXT_SIZE, CONTROL_TEXT_SIZE_CLASS } from './controlTextSize';\nimport { pushEscapeLayer } from './escapeLayers';\nimport { ensureMultiSelectPanelStyles } from './optionRowStyles';\nimport { overlayIdentity } from './portalOverlay';\nimport { type CaretMenuGeometry, computeCaretMenuGeometry } from './queryInputGeometry';\n\nexport type QueryTokenKind =\n | 'key'\n | 'value'\n | 'operator'\n | 'negation'\n | 'punctuation'\n | 'error'\n | 'plain';\n\nexport interface QueryToken {\n /** Index into `value`. */\n start: number;\n /** Exclusive. */\n end: number;\n kind: QueryTokenKind;\n}\n\nexport interface QuerySuggestion {\n id: string;\n label: string;\n /** Secondary text, right-aligned in the row. */\n detail?: string;\n /** What replaces `activeRange` when accepted. Defaults to `label`. */\n insertText?: string;\n}\n\nexport type QueryInputSize = 'small' | 'medium' | 'large';\n\nexport interface QueryInputProps {\n value: string;\n onChange: (value: string) => void;\n /** Ranges to colour. Tokens that are out of range, reversed or overlapping are ignored. */\n tokens?: QueryToken[];\n /** Rows for the caret menu. Empty or undefined means the menu stays closed. */\n suggestions?: QuerySuggestion[];\n /** The span an accepted suggestion replaces. Defaults to a zero-width span at the caret. */\n activeRange?: { start: number; end: number };\n onAccept?: (suggestion: QuerySuggestion) => void;\n /** Every value change AND every caret move, so the consumer can recompute tokens/suggestions. */\n onQueryContextChange?: (context: { value: string; caret: number }) => void;\n /** Enter with nothing highlighted in the menu. */\n onSubmit?: (value: string) => void;\n placeholder?: string;\n size?: QueryInputSize;\n disabled?: boolean;\n /** Suggestions are being fetched: the menu shows a loading row instead of the empty message. */\n loading?: boolean;\n emptyMessage?: string;\n className?: string;\n style?: React.CSSProperties;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\n// Same 28/32/42 ladder as Search, minus the icon gap this component has no icon to space.\nconst SIZE_CLASSES: Record<QueryInputSize, string> = {\n small: 'h-[var(--malachite-control-height-small,28px)] px-[10px] rounded-[var(--malachite-radius-10,10px)]',\n medium: 'h-[var(--malachite-control-height-medium,32px)] px-[10px] rounded-xl',\n large: 'h-[var(--malachite-control-height-large,42px)] px-[12px] rounded-[var(--malachite-radius-xxl,14px)]',\n};\n\nconst TOKEN_COLORS: Record<QueryTokenKind, string> = {\n key: 'var(--malachite-codeblock-keyword, rgb(12, 88, 174))',\n value: 'var(--malachite-codeblock-string, rgb(2, 122, 66))',\n operator: 'var(--malachite-codeblock-type, rgb(12, 88, 174))',\n negation: 'var(--malachite-text-destructive, rgb(237, 53, 54))',\n punctuation: 'var(--malachite-codeblock-foreground, rgb(10, 10, 10))',\n error: 'var(--malachite-text-error, rgb(237, 53, 54))',\n plain: 'var(--malachite-text-primary, rgb(10, 10, 10))',\n};\n\n// The one place the mirror and the input agree on typography: diverge here and the coloured\n// text drifts out from under the caret it's supposed to sit beneath.\nconst TEXT_STYLE: Record<QueryInputSize, React.CSSProperties> = {\n small: {\n fontFamily: 'inherit',\n fontSize: CONTROL_TEXT_SIZE.small,\n fontWeight: 500,\n letterSpacing: 'normal',\n lineHeight: 'normal',\n padding: 0,\n },\n medium: {\n fontFamily: 'inherit',\n fontSize: CONTROL_TEXT_SIZE.medium,\n fontWeight: 500,\n letterSpacing: 'normal',\n lineHeight: 'normal',\n padding: 0,\n },\n large: {\n fontFamily: 'inherit',\n fontSize: CONTROL_TEXT_SIZE.large,\n fontWeight: 500,\n letterSpacing: 'normal',\n lineHeight: 'normal',\n padding: 0,\n },\n};\n\n/** Before layout the portal hasn't painted yet, so the first geometry pass needs a width. */\nconst MENU_FALLBACK_WIDTH_PX = 220;\n\nconst MENU_MAX_WIDTH_PX = 360;\n\nconst MENU_MESSAGE_STYLE: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n padding: '10px 12px',\n color: 'var(--malachite-text-dimmed, rgb(161, 161, 161))',\n whiteSpace: 'nowrap',\n};\n\n/** Keeps focus (and the caret) on the input so a row click never blurs it first. */\nconst handleMenuMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n};\n\ninterface QuerySegment {\n start: number;\n end: number;\n kind: QueryTokenKind;\n}\n\n/** Drops tokens the consumer got wrong rather than letting them corrupt the render. */\nconst sanitizeTokens = (value: string, tokens: QueryToken[]): QueryToken[] => {\n const inRange = tokens.filter(\n (token) => token.start >= 0 && token.end <= value.length && token.start < token.end,\n );\n const sorted = [...inRange].sort((a, b) => a.start - b.start);\n const accepted: QueryToken[] = [];\n let cursor = 0;\n for (const token of sorted) {\n if (token.start < cursor) {\n continue;\n }\n accepted.push(token);\n cursor = token.end;\n }\n return accepted;\n};\n\n/** Fills the gaps between tokens with 'plain' segments so the mirror's text always equals `value`. */\nconst buildSegments = (value: string, tokens: QueryToken[]): QuerySegment[] => {\n const segments: QuerySegment[] = [];\n let cursor = 0;\n for (const token of sanitizeTokens(value, tokens)) {\n if (token.start > cursor) {\n segments.push({ start: cursor, end: token.start, kind: 'plain' });\n }\n segments.push(token);\n cursor = token.end;\n }\n if (cursor < value.length) {\n segments.push({ start: cursor, end: value.length, kind: 'plain' });\n }\n return segments;\n};\n\nconst QueryInput: React.FC<QueryInputProps> = ({\n value,\n onChange,\n tokens = [],\n suggestions,\n activeRange,\n onAccept,\n onQueryContextChange,\n onSubmit,\n placeholder,\n size = 'large',\n disabled = false,\n loading = false,\n emptyMessage,\n className = '',\n style,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n}) => {\n const instanceId = useId();\n const listboxId = `${instanceId}-listbox`;\n const getRowId = (index: number) => `${listboxId}-option-${index}`;\n\n const [focused, setFocused] = useState(false);\n const [caret, setCaret] = useState(() => value.length);\n const [rawHighlightedIndex, setHighlightedIndex] = useState(0);\n // Escape closes the menu whatever `suggestions` and `loading` say. Lifted by an edit or a\n // refocus, so navigating a dismissed query does not pop it back open.\n const [dismissed, setDismissed] = useState(false);\n const [menuPosition, setMenuPosition] = useState<CaretMenuGeometry | null>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const mirrorRef = useRef<HTMLDivElement>(null);\n const measureRef = useRef<HTMLSpanElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const rowRefs = useRef<(HTMLButtonElement | null)[]>([]);\n // Caret restore after an accepted suggestion. Carries the string it was computed against:\n // nothing obliges a controlled consumer to apply the value handed to `onChange`, and a\n // caret from a rejected or rewritten suggestion must not land on a later unrelated edit.\n const pendingSelectionRef = useRef<{ value: string; caret: number } | null>(null);\n\n const suggestionsProvided = Array.isArray(suggestions);\n const suggestionList = suggestions ?? [];\n const hasSuggestions = suggestionList.length > 0;\n const isEmptyList = suggestionsProvided && !hasSuggestions;\n const wantsMenu = loading || hasSuggestions || (isEmptyList && !!emptyMessage);\n const isMenuOpen = focused && wantsMenu && !dismissed && !disabled;\n // `loading` paints the spinner over any rows the consumer is still holding, so nothing is\n // on screen to arrow through, accept, or point `aria-activedescendant` at.\n const rowsVisible = isMenuOpen && hasSuggestions && !loading;\n\n // A consumer's `suggestions` array is commonly rebuilt inline, so its identity changes on\n // any parent re-render and cannot stand in for \"the candidates changed\". Clamping during\n // render keeps the row the user arrowed to, and keeps the highlight inside a shrunken list.\n const highlightedIndex = hasSuggestions\n ? Math.min(rawHighlightedIndex, suggestionList.length - 1)\n : -1;\n\n useLayoutEffect(() => {\n setCaret((current) => Math.min(current, value.length));\n }, [value]);\n\n const syncMirrorScroll = useCallback(() => {\n const input = inputRef.current;\n const mirror = mirrorRef.current;\n if (input && mirror) {\n mirror.style.transform = `translateX(${-input.scrollLeft}px)`;\n }\n }, []);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: re-syncs on every value change, not on value itself\n useLayoutEffect(() => {\n syncMirrorScroll();\n }, [value, syncMirrorScroll]);\n\n const updateMenuPosition = useCallback(() => {\n const input = inputRef.current;\n if (!input) {\n return;\n }\n const caretOffsetPx = (measureRef.current?.offsetWidth ?? 0) - input.scrollLeft;\n setMenuPosition(\n computeCaretMenuGeometry({\n inputRect: input.getBoundingClientRect(),\n caretOffsetPx,\n menuWidth: menuRef.current?.offsetWidth ?? MENU_FALLBACK_WIDTH_PX,\n menuHeight: menuRef.current?.offsetHeight ?? 0,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n }),\n );\n }, []);\n\n // Depends on `caret` as well as `value`: the measuring span is sliced at the caret, so an\n // arrow-key move with no edit still changes where the menu belongs.\n // biome-ignore lint/correctness/useExhaustiveDependencies: repositions on every keystroke, not on value itself\n useLayoutEffect(() => {\n if (isMenuOpen) {\n updateMenuPosition();\n } else {\n setMenuPosition(null);\n }\n // `suggestions` and `loading` are here because they change the menu's own size: rows\n // arriving after a fetch resize it while the query and caret sit still, and a stale\n // measurement would leave `openUp` and the caret-aligned `left` computed for the old box.\n }, [isMenuOpen, value, caret, suggestions, loading, updateMenuPosition]);\n\n useEffect(() => {\n if (!isMenuOpen) {\n return undefined;\n }\n const handleScrollOrResize = () => updateMenuPosition();\n window.addEventListener('scroll', handleScrollOrResize, true);\n window.addEventListener('resize', handleScrollOrResize);\n const popEscapeLayer = pushEscapeLayer(() => setDismissed(true));\n return () => {\n window.removeEventListener('scroll', handleScrollOrResize, true);\n window.removeEventListener('resize', handleScrollOrResize);\n popEscapeLayer();\n };\n }, [isMenuOpen, updateMenuPosition]);\n\n // Restore the caret placed by the last accepted suggestion once the new `value` has\n // actually rendered. Guarded on the ref so an externally-driven value change never gets\n // its selection clobbered.\n // biome-ignore lint/correctness/useExhaustiveDependencies: intentionally re-reads latest closures via pendingSelectionRef's gate\n useLayoutEffect(() => {\n const pending = pendingSelectionRef.current;\n if (pending === null) {\n return;\n }\n pendingSelectionRef.current = null;\n const input = inputRef.current;\n // Dropped unless the consumer applied exactly the string this caret was measured\n // against. A rejected or rewritten suggestion leaves the caret where the user put it.\n if (!input || pending.value !== value) {\n return;\n }\n input.setSelectionRange(pending.caret, pending.caret);\n setCaret(pending.caret);\n onQueryContextChange?.({ value, caret: pending.caret });\n syncMirrorScroll();\n updateMenuPosition();\n }, [value]);\n\n // Scrolled by hand rather than with `scrollIntoView`, which would also scroll the page and\n // carry the field itself out of view. Same reason MultiSelect does it this way.\n useLayoutEffect(() => {\n if (!rowsVisible) {\n return;\n }\n const row = rowRefs.current[highlightedIndex];\n const container = menuRef.current;\n if (!row || !container) {\n return;\n }\n const rowBottom = row.offsetTop + row.offsetHeight;\n if (rowBottom > container.scrollTop + container.clientHeight) {\n container.scrollTop = rowBottom - container.clientHeight;\n } else if (row.offsetTop < container.scrollTop) {\n container.scrollTop = row.offsetTop;\n }\n }, [highlightedIndex, rowsVisible]);\n\n // useInsertionEffect, not layout: the rules have to land before the rows paint.\n useInsertionEffect(() => {\n if (isMenuOpen) {\n ensureMultiSelectPanelStyles();\n }\n }, [isMenuOpen]);\n\n const reportCaret = (nextValue: string, nextCaret: number) => {\n setCaret(nextCaret);\n onQueryContextChange?.({ value: nextValue, caret: nextCaret });\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const next = event.target.value;\n // Editing is the user asking again, so it lifts an earlier Escape. Moving the caret is\n // not, and neither is a new `suggestions` array: that identity changes on any parent\n // re-render, which would undo the dismissal with nothing having been asked.\n setDismissed(false);\n setHighlightedIndex(0);\n onChange(next);\n reportCaret(next, event.target.selectionStart ?? next.length);\n };\n\n const handleSelect = (event: React.SyntheticEvent<HTMLInputElement>) => {\n const target = event.currentTarget;\n reportCaret(target.value, target.selectionStart ?? target.value.length);\n };\n\n const acceptSuggestion = (suggestion: QuerySuggestion) => {\n const fallbackCaret = inputRef.current?.selectionStart ?? value.length;\n const range = activeRange ?? { start: fallbackCaret, end: fallbackCaret };\n // Clamped for the same reason `sanitizeTokens` drops a bad range, except this one\n // writes: `slice` reads a negative index from the end of the string, so an unchecked\n // `start` of -1 silently rewrites the tail instead of doing nothing.\n const start = Math.max(0, Math.min(range.start, value.length));\n const end = Math.max(start, Math.min(range.end, value.length));\n const insertText = suggestion.insertText ?? suggestion.label;\n const next = value.slice(0, start) + insertText + value.slice(end);\n pendingSelectionRef.current = { value: next, caret: start + insertText.length };\n onChange(next);\n onAccept?.(suggestion);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (rowsVisible && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {\n event.preventDefault();\n const count = suggestionList.length;\n // Steps from the clamped index, so a list that shrank moves from the row on screen\n // rather than from a raw index the user can no longer see.\n setHighlightedIndex(\n event.key === 'ArrowDown'\n ? (highlightedIndex + 1) % count\n : (highlightedIndex - 1 + count) % count,\n );\n return;\n }\n\n const highlighted =\n rowsVisible && highlightedIndex >= 0 ? suggestionList[highlightedIndex] : undefined;\n\n if (event.key === 'Enter') {\n if (highlighted) {\n event.preventDefault();\n acceptSuggestion(highlighted);\n return;\n }\n if (onSubmit) {\n // Otherwise a surrounding <form> submits too and the query is sent twice.\n // Without the prop the native submit is left alone, which is the useful default.\n event.preventDefault();\n onSubmit(value);\n }\n return;\n }\n\n if (event.key === 'Tab' && highlighted) {\n // Tab completes the term and stays put, the way an editor or a search bar does.\n // Letting focus move on would hand the next keystroke to another field.\n event.preventDefault();\n acceptSuggestion(highlighted);\n }\n };\n\n const segments = buildSegments(value, tokens);\n const textStyle = TEXT_STYLE[size];\n\n const menuContent = (() => {\n if (loading) {\n return (\n // `role=\"listbox\"` admits only option/group children.\n <div role=\"presentation\" style={MENU_MESSAGE_STYLE}>\n <Spinner size=\"xxxsmall\" />\n <span>Loading…</span>\n </div>\n );\n }\n if (hasSuggestions) {\n return suggestionList.map((suggestion, index) => {\n const highlighted = index === highlightedIndex;\n return (\n <button\n key={suggestion.id}\n ref={(element) => {\n rowRefs.current[index] = element;\n }}\n type=\"button\"\n id={getRowId(index)}\n role=\"option\"\n aria-selected={highlighted}\n // Focus stays on the input under the activedescendant model, so a row\n // must not become its own tab stop.\n tabIndex={-1}\n onClick={() => acceptSuggestion(suggestion)}\n onMouseEnter={() => setHighlightedIndex(index)}\n className=\"malachite-multiselect-option\"\n data-highlighted={highlighted}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n width: '100%',\n flexShrink: 0,\n border: 'none',\n textAlign: 'left',\n borderRadius: 8,\n padding: '8px 10px',\n font: 'inherit',\n cursor: 'pointer',\n color: 'var(--malachite-text-primary, rgb(10, 10, 10))',\n }}\n >\n <span\n style={{\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {suggestion.label}\n </span>\n {suggestion.detail && (\n <span\n style={{\n flexShrink: 0,\n fontSize: 'var(--malachite-font-size-xsmall, 11px)',\n color: 'var(--malachite-text-secondary, rgb(123, 123, 123))',\n }}\n >\n {suggestion.detail}\n </span>\n )}\n </button>\n );\n });\n }\n if (emptyMessage) {\n // `role=\"listbox\"` admits only option/group children.\n return (\n <div role=\"presentation\" style={MENU_MESSAGE_STYLE}>\n {emptyMessage}\n </div>\n );\n }\n return null;\n })();\n\n const hoverBorderClass = disabled ? '' : 'hover:border-[var(--malachite-text-placeholder)]';\n\n return (\n <div\n className={`relative w-full ${SIZE_CLASSES[size]} bg-[var(--malachite-card-background)] border border-solid border-[var(--malachite-card-border)] ${hoverBorderClass} transition-colors flex items-center ${disabled ? 'opacity-60 cursor-not-allowed' : ''} ${className}`}\n style={{\n boxShadow: focused\n ? 'var(--malachite-shadow-accent, 0px 1px 0px 0px rgba(0, 175, 102, 0.15))'\n : '0px 1px 1px 0px rgba(0, 0, 0, 0.15)',\n borderColor: focused\n ? 'var(--malachite-control-border-hover, rgba(0, 175, 102, 0.4))'\n : undefined,\n ...style,\n }}\n >\n {/* Clips here, not on the mirror: the mirror is what translates, and a transform\n carries the element's own clip rect with it, so the window onto the text would\n slide out of the field by exactly `scrollLeft`. */}\n <div className=\"relative flex-1 h-full min-w-0 overflow-hidden\">\n {/* aria-hidden: purely decorative, the input carries the accessible value. */}\n <div\n ref={mirrorRef}\n aria-hidden=\"true\"\n className={`absolute inset-0 flex items-center pointer-events-none ${CONTROL_TEXT_SIZE_CLASS[size]}`}\n style={{ ...textStyle, whiteSpace: 'pre' }}\n >\n {segments.map((segment) => (\n <span\n key={segment.start}\n style={{\n color: TOKEN_COLORS[segment.kind],\n ...(segment.kind === 'error'\n ? { textDecoration: 'underline wavy' }\n : {}),\n }}\n >\n {value.slice(segment.start, segment.end)}\n </span>\n ))}\n <span\n ref={measureRef}\n style={{ position: 'absolute', top: 0, left: 0, visibility: 'hidden' }}\n >\n {value.slice(0, caret)}\n </span>\n </div>\n <input\n ref={inputRef}\n type=\"text\"\n role=\"combobox\"\n aria-expanded={isMenuOpen}\n aria-controls={isMenuOpen ? listboxId : undefined}\n aria-activedescendant={\n rowsVisible && highlightedIndex >= 0\n ? getRowId(highlightedIndex)\n : undefined\n }\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n spellCheck={false}\n aria-labelledby={ariaLabelledBy}\n // A visible label outranks it, so the fallback only applies without one.\n aria-label={ariaLabelledBy ? undefined : (ariaLabel ?? placeholder)}\n value={value}\n onChange={handleChange}\n onSelect={handleSelect}\n onScroll={() => {\n syncMirrorScroll();\n if (isMenuOpen) {\n updateMenuPosition();\n }\n }}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n setFocused(true);\n setDismissed(false);\n }}\n onBlur={() => setFocused(false)}\n placeholder={placeholder}\n disabled={disabled}\n className={`absolute inset-0 w-full h-full bg-transparent border-none outline-none ${CONTROL_TEXT_SIZE_CLASS[size]} placeholder:text-[var(--malachite-text-placeholder)] placeholder:font-medium disabled:cursor-not-allowed`}\n style={{\n ...textStyle,\n color: 'transparent',\n caretColor: 'var(--malachite-text-primary, rgb(10, 10, 10))',\n }}\n />\n </div>\n {isMenuOpen &&\n createPortal(\n <div\n ref={menuRef}\n id={listboxId}\n role=\"listbox\"\n // Rides the dropdown overlay band, but borrows the multiselect option\n // rows below: their highlight follows `data-highlighted`, which is the\n // keyboard cursor this menu has, rather than a bare `:hover`.\n {...overlayIdentity('dropdown')}\n onMouseDown={handleMenuMouseDown}\n style={{\n position: 'fixed',\n top: menuPosition?.top ?? 0,\n left: menuPosition?.left ?? 0,\n minWidth: Math.min(\n MENU_FALLBACK_WIDTH_PX,\n menuPosition?.width ?? MENU_FALLBACK_WIDTH_PX,\n ),\n maxWidth: Math.min(\n MENU_MAX_WIDTH_PX,\n menuPosition?.width ?? MENU_MAX_WIDTH_PX,\n ),\n background: 'var(--malachite-card-background, rgb(255, 255, 255))',\n border: '1px solid var(--malachite-card-border, rgb(232, 232, 232))',\n borderRadius: 12,\n boxShadow: '0px 2px 5px 0px rgba(0, 0, 0, 0.1)',\n padding: 4,\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n maxHeight: 320,\n overflowY: 'auto',\n fontSize: CONTROL_TEXT_SIZE[size],\n visibility: menuPosition ? 'visible' : 'hidden',\n opacity: menuPosition ? 1 : 0,\n }}\n >\n {menuContent}\n </div>,\n document.body,\n )}\n </div>\n );\n};\n\nexport default QueryInput;\nexport { QueryInput };\n"],"names":["SIZE_CLASSES","TOKEN_COLORS","TEXT_STYLE","CONTROL_TEXT_SIZE","MENU_FALLBACK_WIDTH_PX","MENU_MAX_WIDTH_PX","MENU_MESSAGE_STYLE","handleMenuMouseDown","event","sanitizeTokens","value","tokens","sorted","token","a","b","accepted","cursor","buildSegments","segments","QueryInput","onChange","suggestions","activeRange","onAccept","onQueryContextChange","onSubmit","placeholder","size","disabled","loading","emptyMessage","className","style","ariaLabel","ariaLabelledBy","listboxId","useId","getRowId","index","focused","setFocused","useState","caret","setCaret","rawHighlightedIndex","setHighlightedIndex","dismissed","setDismissed","menuPosition","setMenuPosition","inputRef","useRef","mirrorRef","measureRef","menuRef","rowRefs","pendingSelectionRef","suggestionsProvided","suggestionList","hasSuggestions","isMenuOpen","rowsVisible","highlightedIndex","useLayoutEffect","current","syncMirrorScroll","useCallback","input","mirror","updateMenuPosition","caretOffsetPx","_a","computeCaretMenuGeometry","_b","_c","useEffect","handleScrollOrResize","popEscapeLayer","pushEscapeLayer","pending","row","container","rowBottom","useInsertionEffect","ensureMultiSelectPanelStyles","reportCaret","nextValue","nextCaret","handleChange","next","handleSelect","target","acceptSuggestion","suggestion","fallbackCaret","range","start","end","insertText","handleKeyDown","count","highlighted","textStyle","menuContent","jsxs","jsx","Spinner","element","hoverBorderClass","CONTROL_TEXT_SIZE_CLASS","segment","createPortal","overlayIdentity"],"mappings":";;;;;;;;;AAwEA,MAAMA,KAA+C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACX,GAEMC,KAA+C;AAAA,EACjD,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AACX,GAIMC,KAA0D;AAAA,EAC5D,OAAO;AAAA,IACH,YAAY;AAAA,IACZ,UAAUC,EAAkB;AAAA,IAC5B,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,SAAS;AAAA,EAAA;AAAA,EAEb,QAAQ;AAAA,IACJ,YAAY;AAAA,IACZ,UAAUA,EAAkB;AAAA,IAC5B,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,SAAS;AAAA,EAAA;AAAA,EAEb,OAAO;AAAA,IACH,YAAY;AAAA,IACZ,UAAUA,EAAkB;AAAA,IAC5B,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,SAAS;AAAA,EAAA;AAEjB,GAGMC,IAAyB,KAEzBC,KAAoB,KAEpBC,KAA0C;AAAA,EAC5C,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAChB,GAGMC,KAAsB,CAACC,MAA4B;AACrD,EAAAA,EAAM,eAAA;AACV,GASMC,KAAiB,CAACC,GAAeC,MAAuC;AAI1E,QAAMC,IAAS,CAAC,GAHAD,EAAO;AAAA,IACnB,CAACE,MAAUA,EAAM,SAAS,KAAKA,EAAM,OAAOH,EAAM,UAAUG,EAAM,QAAQA,EAAM;AAAA,EAAA,CAE1D,EAAE,KAAK,CAACC,GAAGC,MAAMD,EAAE,QAAQC,EAAE,KAAK,GACtDC,IAAyB,CAAA;AAC/B,MAAIC,IAAS;AACb,aAAWJ,KAASD;AAChB,IAAIC,EAAM,QAAQI,MAGlBD,EAAS,KAAKH,CAAK,GACnBI,IAASJ,EAAM;AAEnB,SAAOG;AACX,GAGME,KAAgB,CAACR,GAAeC,MAAyC;AAC3E,QAAMQ,IAA2B,CAAA;AACjC,MAAIF,IAAS;AACb,aAAWJ,KAASJ,GAAeC,GAAOC,CAAM;AAC5C,IAAIE,EAAM,QAAQI,KACdE,EAAS,KAAK,EAAE,OAAOF,GAAQ,KAAKJ,EAAM,OAAO,MAAM,SAAS,GAEpEM,EAAS,KAAKN,CAAK,GACnBI,IAASJ,EAAM;AAEnB,SAAII,IAASP,EAAM,UACfS,EAAS,KAAK,EAAE,OAAOF,GAAQ,KAAKP,EAAM,QAAQ,MAAM,SAAS,GAE9DS;AACX,GAEMC,KAAwC,CAAC;AAAA,EAC3C,OAAAV;AAAA,EACA,UAAAW;AAAA,EACA,QAAAV,IAAS,CAAA;AAAA,EACT,aAAAW;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,SAAAC,IAAU;AAAA,EACV,cAAAC;AAAA,EACA,WAAAC,KAAY;AAAA,EACZ,OAAAC;AAAA,EACA,cAAcC;AAAA,EACd,mBAAmBC;AACvB,MAAM;AAEF,QAAMC,IAAY,GADCC,GAAA,CACY,YACzBC,IAAW,CAACC,MAAkB,GAAGH,CAAS,WAAWG,CAAK,IAE1D,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtC,CAACC,GAAOC,CAAQ,IAAIF,EAAS,MAAMhC,EAAM,MAAM,GAC/C,CAACmC,IAAqBC,CAAmB,IAAIJ,EAAS,CAAC,GAGvD,CAACK,IAAWC,CAAY,IAAIN,EAAS,EAAK,GAC1C,CAACO,GAAcC,CAAe,IAAIR,EAAmC,IAAI,GAEzES,IAAWC,EAAyB,IAAI,GACxCC,IAAYD,EAAuB,IAAI,GACvCE,IAAaF,EAAwB,IAAI,GACzCG,IAAUH,EAAuB,IAAI,GACrCI,IAAUJ,EAAqC,EAAE,GAIjDK,IAAsBL,EAAgD,IAAI,GAE1EM,KAAsB,MAAM,QAAQpC,CAAW,GAC/CqC,IAAiBrC,KAAe,CAAA,GAChCsC,IAAiBD,EAAe,SAAS,GAGzCE,IAAarB,MADDV,KAAW8B,KADTF,MAAuB,CAACE,KACmB,CAAC,CAAC7B,MACtB,CAACgB,MAAa,CAAClB,GAGpDiC,IAAcD,KAAcD,KAAkB,CAAC9B,GAK/CiC,IAAmBH,IACnB,KAAK,IAAIf,IAAqBc,EAAe,SAAS,CAAC,IACvD;AAEN,EAAAK,EAAgB,MAAM;AAClB,IAAApB,EAAS,CAACqB,MAAY,KAAK,IAAIA,GAASvD,EAAM,MAAM,CAAC;AAAA,EACzD,GAAG,CAACA,CAAK,CAAC;AAEV,QAAMwD,IAAmBC,GAAY,MAAM;AACvC,UAAMC,IAAQjB,EAAS,SACjBkB,IAAShB,EAAU;AACzB,IAAIe,KAASC,MACTA,EAAO,MAAM,YAAY,cAAc,CAACD,EAAM,UAAU;AAAA,EAEhE,GAAG,CAAA,CAAE;AAGL,EAAAJ,EAAgB,MAAM;AAClB,IAAAE,EAAA;AAAA,EACJ,GAAG,CAACxD,GAAOwD,CAAgB,CAAC;AAE5B,QAAMI,IAAqBH,GAAY,MAAM;;AACzC,UAAMC,IAAQjB,EAAS;AACvB,QAAI,CAACiB;AACD;AAEJ,UAAMG,OAAiBC,IAAAlB,EAAW,YAAX,gBAAAkB,EAAoB,gBAAe,KAAKJ,EAAM;AACrE,IAAAlB;AAAA,MACIuB,GAAyB;AAAA,QACrB,WAAWL,EAAM,sBAAA;AAAA,QACjB,eAAAG;AAAA,QACA,aAAWG,IAAAnB,EAAQ,YAAR,gBAAAmB,EAAiB,gBAAetE;AAAA,QAC3C,cAAYuE,IAAApB,EAAQ,YAAR,gBAAAoB,EAAiB,iBAAgB;AAAA,QAC7C,eAAe,OAAO;AAAA,QACtB,gBAAgB,OAAO;AAAA,MAAA,CAC1B;AAAA,IAAA;AAAA,EAET,GAAG,CAAA,CAAE;AAKL,EAAAX,EAAgB,MAAM;AAClB,IAAIH,IACAS,EAAA,IAEApB,EAAgB,IAAI;AAAA,EAK5B,GAAG,CAACW,GAAYnD,GAAOiC,GAAOrB,GAAaQ,GAASwC,CAAkB,CAAC,GAEvEM,GAAU,MAAM;AACZ,QAAI,CAACf;AACD;AAEJ,UAAMgB,IAAuB,MAAMP,EAAA;AACnC,WAAO,iBAAiB,UAAUO,GAAsB,EAAI,GAC5D,OAAO,iBAAiB,UAAUA,CAAoB;AACtD,UAAMC,IAAiBC,GAAgB,MAAM/B,EAAa,EAAI,CAAC;AAC/D,WAAO,MAAM;AACT,aAAO,oBAAoB,UAAU6B,GAAsB,EAAI,GAC/D,OAAO,oBAAoB,UAAUA,CAAoB,GACzDC,EAAA;AAAA,IACJ;AAAA,EACJ,GAAG,CAACjB,GAAYS,CAAkB,CAAC,GAMnCN,EAAgB,MAAM;AAClB,UAAMgB,IAAUvB,EAAoB;AACpC,QAAIuB,MAAY;AACZ;AAEJ,IAAAvB,EAAoB,UAAU;AAC9B,UAAMW,IAAQjB,EAAS;AAGvB,IAAI,CAACiB,KAASY,EAAQ,UAAUtE,MAGhC0D,EAAM,kBAAkBY,EAAQ,OAAOA,EAAQ,KAAK,GACpDpC,EAASoC,EAAQ,KAAK,GACtBvD,KAAA,QAAAA,EAAuB,EAAE,OAAAf,GAAO,OAAOsE,EAAQ,UAC/Cd,EAAA,GACAI,EAAA;AAAA,EACJ,GAAG,CAAC5D,CAAK,CAAC,GAIVsD,EAAgB,MAAM;AAClB,QAAI,CAACF;AACD;AAEJ,UAAMmB,IAAMzB,EAAQ,QAAQO,CAAgB,GACtCmB,IAAY3B,EAAQ;AAC1B,QAAI,CAAC0B,KAAO,CAACC;AACT;AAEJ,UAAMC,IAAYF,EAAI,YAAYA,EAAI;AACtC,IAAIE,IAAYD,EAAU,YAAYA,EAAU,eAC5CA,EAAU,YAAYC,IAAYD,EAAU,eACrCD,EAAI,YAAYC,EAAU,cACjCA,EAAU,YAAYD,EAAI;AAAA,EAElC,GAAG,CAAClB,GAAkBD,CAAW,CAAC,GAGlCsB,GAAmB,MAAM;AACrB,IAAIvB,KACAwB,GAAA;AAAA,EAER,GAAG,CAACxB,CAAU,CAAC;AAEf,QAAMyB,IAAc,CAACC,GAAmBC,MAAsB;AAC1D,IAAA5C,EAAS4C,CAAS,GAClB/D,KAAA,QAAAA,EAAuB,EAAE,OAAO8D,GAAW,OAAOC;EACtD,GAEMC,KAAe,CAACjF,MAA+C;AACjE,UAAMkF,IAAOlF,EAAM,OAAO;AAI1B,IAAAwC,EAAa,EAAK,GAClBF,EAAoB,CAAC,GACrBzB,EAASqE,CAAI,GACbJ,EAAYI,GAAMlF,EAAM,OAAO,kBAAkBkF,EAAK,MAAM;AAAA,EAChE,GAEMC,KAAe,CAACnF,MAAkD;AACpE,UAAMoF,IAASpF,EAAM;AACrB,IAAA8E,EAAYM,EAAO,OAAOA,EAAO,kBAAkBA,EAAO,MAAM,MAAM;AAAA,EAC1E,GAEMC,IAAmB,CAACC,MAAgC;;AACtD,UAAMC,MAAgBvB,KAAArB,EAAS,YAAT,gBAAAqB,GAAkB,mBAAkB9D,EAAM,QAC1DsF,IAAQzE,KAAe,EAAE,OAAOwE,GAAe,KAAKA,EAAA,GAIpDE,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAID,EAAM,OAAOtF,EAAM,MAAM,CAAC,GACvDwF,IAAM,KAAK,IAAID,GAAO,KAAK,IAAID,EAAM,KAAKtF,EAAM,MAAM,CAAC,GACvDyF,IAAaL,EAAW,cAAcA,EAAW,OACjDJ,IAAOhF,EAAM,MAAM,GAAGuF,CAAK,IAAIE,IAAazF,EAAM,MAAMwF,CAAG;AACjE,IAAAzC,EAAoB,UAAU,EAAE,OAAOiC,GAAM,OAAOO,IAAQE,EAAW,OAAA,GACvE9E,EAASqE,CAAI,GACblE,KAAA,QAAAA,EAAWsE;AAAA,EACf,GAEMM,KAAgB,CAAC5F,MAAiD;AACpE,QAAIsD,MAAgBtD,EAAM,QAAQ,eAAeA,EAAM,QAAQ,YAAY;AACvE,MAAAA,EAAM,eAAA;AACN,YAAM6F,IAAQ1C,EAAe;AAG7B,MAAAb;AAAA,QACItC,EAAM,QAAQ,eACPuD,IAAmB,KAAKsC,KACxBtC,IAAmB,IAAIsC,KAASA;AAAA,MAAA;AAE3C;AAAA,IACJ;AAEA,UAAMC,IACFxC,KAAeC,KAAoB,IAAIJ,EAAeI,CAAgB,IAAI;AAE9E,QAAIvD,EAAM,QAAQ,SAAS;AACvB,UAAI8F,GAAa;AACb,QAAA9F,EAAM,eAAA,GACNqF,EAAiBS,CAAW;AAC5B;AAAA,MACJ;AACA,MAAI5E,MAGAlB,EAAM,eAAA,GACNkB,EAAShB,CAAK;AAElB;AAAA,IACJ;AAEA,IAAIF,EAAM,QAAQ,SAAS8F,MAGvB9F,EAAM,eAAA,GACNqF,EAAiBS,CAAW;AAAA,EAEpC,GAEMnF,KAAWD,GAAcR,GAAOC,CAAM,GACtC4F,IAAYrG,GAAW0B,CAAI,GAE3B4E,KACE1E;AAAA;AAAA,IAGI,gBAAA2E,EAAC,OAAA,EAAI,MAAK,gBAAe,OAAOnG,IAC5B,UAAA;AAAA,MAAA,gBAAAoG,EAACC,IAAA,EAAQ,MAAK,WAAA,CAAW;AAAA,MACzB,gBAAAD,EAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,IAAA,EAAA,CAClB;AAAA,MAGJ9C,IACOD,EAAe,IAAI,CAACmC,GAAYvD,MAAU;AAC7C,UAAM+D,IAAc/D,MAAUwB;AAC9B,WACI,gBAAA0C;AAAA,MAAC;AAAA,MAAA;AAAA,QAEG,KAAK,CAACG,MAAY;AACd,UAAApD,EAAQ,QAAQjB,CAAK,IAAIqE;AAAA,QAC7B;AAAA,QACA,MAAK;AAAA,QACL,IAAItE,EAASC,CAAK;AAAA,QAClB,MAAK;AAAA,QACL,iBAAe+D;AAAA,QAGf,UAAU;AAAA,QACV,SAAS,MAAMT,EAAiBC,CAAU;AAAA,QAC1C,cAAc,MAAMhD,EAAoBP,CAAK;AAAA,QAC7C,WAAU;AAAA,QACV,oBAAkB+D;AAAA,QAClB,OAAO;AAAA,UACH,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK;AAAA,UACL,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,cAAc;AAAA,UACd,SAAS;AAAA,UACT,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,QAGX,UAAA;AAAA,UAAA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,OAAO;AAAA,gBACH,MAAM;AAAA,gBACN,UAAU;AAAA,gBACV,UAAU;AAAA,gBACV,cAAc;AAAA,gBACd,YAAY;AAAA,cAAA;AAAA,cAGf,UAAAZ,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAEfA,EAAW,UACR,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,OAAO;AAAA,gBACH,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,OAAO;AAAA,cAAA;AAAA,cAGV,UAAAZ,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QAChB;AAAA,MAAA;AAAA,MAlDCA,EAAW;AAAA,IAAA;AAAA,EAsD5B,CAAC,IAED/D,sBAGK,OAAA,EAAI,MAAK,gBAAe,OAAOzB,IAC3B,UAAAyB,GACL,IAGD,MAGL8E,KAAmBhF,IAAW,KAAK;AAEzC,SACI,gBAAA4E;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW,mBAAmBzG,GAAa4B,CAAI,CAAC,oGAAoGiF,EAAgB,wCAAwChF,IAAW,kCAAkC,EAAE,IAAIG,EAAS;AAAA,MACxQ,OAAO;AAAA,QACH,WAAWQ,IACL,4EACA;AAAA,QACN,aAAaA,IACP,kEACA;AAAA,QACN,GAAGP;AAAA,MAAA;AAAA,MAMP,UAAA;AAAA,QAAA,gBAAAwE,EAAC,OAAA,EAAI,WAAU,kDAEX,UAAA;AAAA,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,KAAKpD;AAAA,cACL,eAAY;AAAA,cACZ,WAAW,0DAA0DyD,GAAwBlF,CAAI,CAAC;AAAA,cAClG,OAAO,EAAE,GAAG2E,GAAW,YAAY,MAAA;AAAA,cAElC,UAAA;AAAA,gBAAApF,GAAS,IAAI,CAAC4F,MACX,gBAAAL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEG,OAAO;AAAA,sBACH,OAAOzG,GAAa8G,EAAQ,IAAI;AAAA,sBAChC,GAAIA,EAAQ,SAAS,UACf,EAAE,gBAAgB,iBAAA,IAClB,CAAA;AAAA,oBAAC;AAAA,oBAGV,UAAArG,EAAM,MAAMqG,EAAQ,OAAOA,EAAQ,GAAG;AAAA,kBAAA;AAAA,kBARlCA,EAAQ;AAAA,gBAAA,CAUpB;AAAA,gBACD,gBAAAL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,KAAKpD;AAAA,oBACL,OAAO,EAAE,UAAU,YAAY,KAAK,GAAG,MAAM,GAAG,YAAY,SAAA;AAAA,oBAE3D,UAAA5C,EAAM,MAAM,GAAGiC,CAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACzB;AAAA,YAAA;AAAA,UAAA;AAAA,UAEJ,gBAAA+D;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,KAAKvD;AAAA,cACL,MAAK;AAAA,cACL,MAAK;AAAA,cACL,iBAAeU;AAAA,cACf,iBAAeA,IAAazB,IAAY;AAAA,cACxC,yBACI0B,KAAeC,KAAoB,IAC7BzB,EAASyB,CAAgB,IACzB;AAAA,cAEV,qBAAkB;AAAA,cAClB,cAAa;AAAA,cACb,YAAY;AAAA,cACZ,mBAAiB5B;AAAA,cAEjB,cAAYA,IAAiB,SAAaD,MAAaP;AAAA,cACvD,OAAAjB;AAAA,cACA,UAAU+E;AAAA,cACV,UAAUE;AAAA,cACV,UAAU,MAAM;AACZ,gBAAAzB,EAAA,GACIL,KACAS,EAAA;AAAA,cAER;AAAA,cACA,WAAW8B;AAAA,cACX,SAAS,MAAM;AACX,gBAAA3D,EAAW,EAAI,GACfO,EAAa,EAAK;AAAA,cACtB;AAAA,cACA,QAAQ,MAAMP,EAAW,EAAK;AAAA,cAC9B,aAAAd;AAAA,cACA,UAAAE;AAAA,cACA,WAAW,0EAA0EiF,GAAwBlF,CAAI,CAAC;AAAA,cAClH,OAAO;AAAA,gBACH,GAAG2E;AAAA,gBACH,OAAO;AAAA,gBACP,YAAY;AAAA,cAAA;AAAA,YAChB;AAAA,UAAA;AAAA,QACJ,GACJ;AAAA,QACC1C,KACGmD;AAAA,UACI,gBAAAN;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,KAAKnD;AAAA,cACL,IAAInB;AAAA,cACJ,MAAK;AAAA,cAIJ,GAAG6E,GAAgB,UAAU;AAAA,cAC9B,aAAa1G;AAAA,cACb,OAAO;AAAA,gBACH,UAAU;AAAA,gBACV,MAAK0C,KAAA,gBAAAA,EAAc,QAAO;AAAA,gBAC1B,OAAMA,KAAA,gBAAAA,EAAc,SAAQ;AAAA,gBAC5B,UAAU,KAAK;AAAA,kBACX7C;AAAA,mBACA6C,KAAA,gBAAAA,EAAc,UAAS7C;AAAA,gBAAA;AAAA,gBAE3B,UAAU,KAAK;AAAA,kBACXC;AAAA,mBACA4C,KAAA,gBAAAA,EAAc,UAAS5C;AAAA,gBAAA;AAAA,gBAE3B,YAAY;AAAA,gBACZ,QAAQ;AAAA,gBACR,cAAc;AAAA,gBACd,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT,eAAe;AAAA,gBACf,KAAK;AAAA,gBACL,WAAW;AAAA,gBACX,WAAW;AAAA,gBACX,UAAUF,EAAkByB,CAAI;AAAA,gBAChC,YAAYqB,IAAe,YAAY;AAAA,gBACvC,SAASA,IAAe,IAAI;AAAA,cAAA;AAAA,cAG/B,UAAAuD;AAAA,YAAA;AAAA,UAAA;AAAA,UAEL,SAAS;AAAA,QAAA;AAAA,MACb;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { FOCUS_RING as h } from "./focusRing.js";
|
|
3
|
+
const x = ({
|
|
4
|
+
checked: r,
|
|
5
|
+
onChange: t,
|
|
6
|
+
disabled: o = !1,
|
|
7
|
+
size: e = 14,
|
|
8
|
+
presentational: l = !1,
|
|
9
|
+
"aria-label": u,
|
|
10
|
+
"aria-labelledby": b,
|
|
11
|
+
className: i = "",
|
|
12
|
+
id: p
|
|
13
|
+
}) => {
|
|
14
|
+
const n = 2 * Math.round(e * 0.5 / 2), s = r ? "border-[color:var(--malachite-accent-foreground)]" : `border-[color:var(--malachite-text-placeholder)]${o || l ? "" : " hover:border-[color:var(--malachite-text-secondary)]"}`, c = {
|
|
15
|
+
position: "relative",
|
|
16
|
+
flexShrink: 0,
|
|
17
|
+
display: "inline-flex",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
justifyContent: "center",
|
|
20
|
+
width: `${e}px`,
|
|
21
|
+
height: `${e}px`,
|
|
22
|
+
padding: 0,
|
|
23
|
+
borderRadius: "50%",
|
|
24
|
+
borderWidth: "1px",
|
|
25
|
+
borderStyle: "solid",
|
|
26
|
+
backgroundColor: "transparent",
|
|
27
|
+
opacity: o ? 0.5 : 1,
|
|
28
|
+
transition: "border-color 150ms ease-in-out"
|
|
29
|
+
}, d = r ? /* @__PURE__ */ a(
|
|
30
|
+
"span",
|
|
31
|
+
{
|
|
32
|
+
style: {
|
|
33
|
+
width: `${n}px`,
|
|
34
|
+
height: `${n}px`,
|
|
35
|
+
borderRadius: "50%",
|
|
36
|
+
backgroundColor: "var(--malachite-accent-foreground, rgb(2, 122, 66))"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
) : null;
|
|
40
|
+
return l ? /* @__PURE__ */ a("span", { "aria-hidden": "true", className: `${s} ${i}`, style: c, children: d }) : /* @__PURE__ */ a(
|
|
41
|
+
"button",
|
|
42
|
+
{
|
|
43
|
+
type: "button",
|
|
44
|
+
role: "radio",
|
|
45
|
+
id: p,
|
|
46
|
+
"aria-checked": r,
|
|
47
|
+
"aria-label": u,
|
|
48
|
+
"aria-labelledby": b,
|
|
49
|
+
disabled: o,
|
|
50
|
+
onClick: () => {
|
|
51
|
+
r || t == null || t(!0);
|
|
52
|
+
},
|
|
53
|
+
className: `${h} ${s} ${i}`,
|
|
54
|
+
style: { ...c, cursor: o ? "not-allowed" : "pointer" },
|
|
55
|
+
children: d
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
x as Radio,
|
|
61
|
+
x as default
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=Radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../src/components/Radio.tsx"],"sourcesContent":["import React from 'react';\nimport { FOCUS_RING } from './focusRing';\n\ninterface RadioProps {\n checked: boolean;\n /** Optional when `presentational` — a presentational radio is a visual indicator only. */\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n size?: number;\n /**\n * Render a visual-only indicator (a non-interactive, non-focusable `<span>`,\n * `aria-hidden`) instead of an interactive radio. Use this inside a clickable\n * row/card whose wrapper is the real control, so there's a single tab stop.\n */\n presentational?: boolean;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n id?: string;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n checked,\n onChange,\n disabled = false,\n size = 14,\n presentational = false,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n className = '',\n id,\n}) => {\n // Keep the dot an even number of pixels so the leftover space (size - dot) is even\n // and the flex-centred dot lands on whole pixels. An odd dot leaves a half-pixel per\n // side, which renders visibly off-centre on 1x / fractionally-scaled displays\n // (e.g. Windows at 125%/150%).\n const dot = 2 * Math.round((size * 0.5) / 2);\n\n // Border colour lives in Tailwind classes (not inline) so the hover variant can\n // override it — inline styles would always win over a `:hover` rule. A\n // presentational indicator has no interactive hover (the row owns hover).\n const hoverClass =\n disabled || presentational ? '' : ' hover:border-[color:var(--malachite-text-secondary)]';\n const borderClass = checked\n ? 'border-[color:var(--malachite-accent-foreground)]'\n : `border-[color:var(--malachite-text-placeholder)]${hoverClass}`;\n\n const circleStyle: React.CSSProperties = {\n position: 'relative',\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: `${size}px`,\n height: `${size}px`,\n padding: 0,\n borderRadius: '50%',\n borderWidth: '1px',\n borderStyle: 'solid',\n backgroundColor: 'transparent',\n opacity: disabled ? 0.5 : 1,\n transition: 'border-color 150ms ease-in-out',\n };\n\n const innerDot = checked ? (\n <span\n style={{\n width: `${dot}px`,\n height: `${dot}px`,\n borderRadius: '50%',\n backgroundColor: 'var(--malachite-accent-foreground, rgb(2, 122, 66))',\n }}\n />\n ) : null;\n\n if (presentational) {\n return (\n <span aria-hidden=\"true\" className={`${borderClass} ${className}`} style={circleStyle}>\n {innerDot}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n id={id}\n aria-checked={checked}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n disabled={disabled}\n onClick={() => {\n // Radios don't toggle off on re-click; the parent manages the group.\n if (!checked) onChange?.(true);\n }}\n className={`${FOCUS_RING} ${borderClass} ${className}`}\n style={{ ...circleStyle, cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n {innerDot}\n </button>\n );\n};\n\nexport default Radio;\nexport { Radio };\nexport type { RadioProps };\n"],"names":["Radio","checked","onChange","disabled","size","presentational","ariaLabel","ariaLabelledBy","className","id","dot","borderClass","circleStyle","innerDot","jsx","FOCUS_RING"],"mappings":";;AAqBA,MAAMA,IAA8B,CAAC;AAAA,EACjC,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,gBAAAC,IAAiB;AAAA,EACjB,cAAcC;AAAA,EACd,mBAAmBC;AAAA,EACnB,WAAAC,IAAY;AAAA,EACZ,IAAAC;AACJ,MAAM;AAKF,QAAMC,IAAM,IAAI,KAAK,MAAON,IAAO,MAAO,CAAC,GAOrCO,IAAcV,IACd,sDACA,mDAHFE,KAAYE,IAAiB,KAAK,uDAG6B,IAE7DO,IAAmC;AAAA,IACrC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO,GAAGR,CAAI;AAAA,IACd,QAAQ,GAAGA,CAAI;AAAA,IACf,SAAS;AAAA,IACT,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,SAASD,IAAW,MAAM;AAAA,IAC1B,YAAY;AAAA,EAAA,GAGVU,IAAWZ,IACb,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,QACH,OAAO,GAAGJ,CAAG;AAAA,QACb,QAAQ,GAAGA,CAAG;AAAA,QACd,cAAc;AAAA,QACd,iBAAiB;AAAA,MAAA;AAAA,IACrB;AAAA,EAAA,IAEJ;AAEJ,SAAIL,IAEI,gBAAAS,EAAC,QAAA,EAAK,eAAY,QAAO,WAAW,GAAGH,CAAW,IAAIH,CAAS,IAAI,OAAOI,GACrE,UAAAC,GACL,IAKJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,MAAK;AAAA,MACL,IAAAL;AAAA,MACA,gBAAcR;AAAA,MACd,cAAYK;AAAA,MACZ,mBAAiBC;AAAA,MACjB,UAAAJ;AAAA,MACA,SAAS,MAAM;AAEX,QAAKF,KAASC,KAAA,QAAAA,EAAW;AAAA,MAC7B;AAAA,MACA,WAAW,GAAGa,CAAU,IAAIJ,CAAW,IAAIH,CAAS;AAAA,MACpD,OAAO,EAAE,GAAGI,GAAa,QAAQT,IAAW,gBAAgB,UAAA;AAAA,MAE3D,UAAAU;AAAA,IAAA;AAAA,EAAA;AAGb;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsxs as C, jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { useState as S } from "react";
|
|
3
|
+
import $ from "./CustomIcons/SearchIcon.js";
|
|
4
|
+
import { CONTROL_TEXT_SIZE_CLASS as w } from "./controlTextSize.js";
|
|
5
|
+
const y = {
|
|
6
|
+
small: "h-[var(--malachite-control-height-small,28px)] gap-[6px] px-[10px] rounded-[var(--malachite-radius-10,10px)]",
|
|
7
|
+
medium: "h-[var(--malachite-control-height-medium,32px)] gap-[10px] px-[10px] rounded-xl",
|
|
8
|
+
large: "h-[var(--malachite-control-height-large,42px)] gap-[12px] px-[12px] rounded-[var(--malachite-radius-xxl,14px)]"
|
|
9
|
+
}, E = 15, L = ({
|
|
10
|
+
value: s,
|
|
11
|
+
onChange: n,
|
|
12
|
+
placeholder: r,
|
|
13
|
+
size: t = "large",
|
|
14
|
+
variant: d = "default",
|
|
15
|
+
disabled: a = !1,
|
|
16
|
+
autoFocus: i = !1,
|
|
17
|
+
className: x = "",
|
|
18
|
+
style: h
|
|
19
|
+
}) => {
|
|
20
|
+
const [o, l] = S(!1), e = d === "muted", p = e ? "bg-[var(--malachite-card-border)]" : "bg-[var(--malachite-card-background)]", m = e ? "border-transparent" : "border-[var(--malachite-card-border)]", u = a ? "" : "hover:border-[var(--malachite-text-placeholder)]", v = e ? "text-[var(--malachite-text-secondary)]" : "text-[var(--malachite-text-placeholder)]", g = e ? "placeholder:text-[var(--malachite-text-secondary)]" : "placeholder:text-[var(--malachite-text-placeholder)]", b = e ? "none" : o ? "var(--malachite-shadow-accent, 0px 1px 0px 0px rgba(0, 175, 102, 0.15))" : "0px 1px 1px 0px rgba(0, 0, 0, 0.15)";
|
|
21
|
+
return /* @__PURE__ */ C(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: `w-full ${p} border border-solid ${m} ${u} transition-colors flex items-center ${y[t]} ${a ? "opacity-60 cursor-not-allowed" : ""} ${x}`,
|
|
25
|
+
style: {
|
|
26
|
+
boxShadow: b,
|
|
27
|
+
borderColor: o ? "var(--malachite-control-border-hover, rgba(0, 175, 102, 0.4))" : void 0,
|
|
28
|
+
...h
|
|
29
|
+
},
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ c($, { size: E, className: `${v} shrink-0` }),
|
|
32
|
+
/* @__PURE__ */ c(
|
|
33
|
+
"input",
|
|
34
|
+
{
|
|
35
|
+
type: "text",
|
|
36
|
+
value: s,
|
|
37
|
+
onChange: (f) => n(f.target.value),
|
|
38
|
+
onFocus: () => l(!0),
|
|
39
|
+
onBlur: () => l(!1),
|
|
40
|
+
placeholder: r,
|
|
41
|
+
"aria-label": r ?? "Search",
|
|
42
|
+
disabled: a,
|
|
43
|
+
autoFocus: i,
|
|
44
|
+
className: `flex-1 bg-transparent border-none outline-none ${w[t]} font-medium text-[var(--malachite-text-primary)] ${g} placeholder:font-medium disabled:cursor-not-allowed min-w-0`
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
L as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=Search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../src/components/Search.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport SearchIcon from './CustomIcons/SearchIcon';\nimport { CONTROL_TEXT_SIZE_CLASS } from './controlTextSize';\n\nexport type SearchSize = 'small' | 'medium' | 'large';\nexport type SearchVariant = 'default' | 'muted';\n\n// Figma \"Search Element - Standard\": Small 28px, Medium 32px, Large 42px, with the radius\n// tracking the tier (10/12/14) and the icon staying 15px throughout.\nconst SIZE_CLASSES: Record<SearchSize, string> = {\n small: 'h-[var(--malachite-control-height-small,28px)] gap-[6px] px-[10px] rounded-[var(--malachite-radius-10,10px)]',\n medium: 'h-[var(--malachite-control-height-medium,32px)] gap-[10px] px-[10px] rounded-xl',\n large: 'h-[var(--malachite-control-height-large,42px)] gap-[12px] px-[12px] rounded-[var(--malachite-radius-xxl,14px)]',\n};\n\nconst ICON_SIZE = 15;\n\nexport interface SearchProps {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n /** 'large' (42px) for form inputs; 'medium' (32px) for toolbars; 'small' (28px) in a table. */\n size?: SearchSize;\n variant?: SearchVariant;\n disabled?: boolean;\n autoFocus?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nconst Search: React.FC<SearchProps> = ({\n value,\n onChange,\n placeholder,\n size = 'large',\n variant = 'default',\n disabled = false,\n autoFocus = false,\n className = '',\n style,\n}) => {\n const [focused, setFocused] = useState(false);\n const isMuted = variant === 'muted';\n\n // Muted variant: a borderless search that sits on a surface (no shadow). Default:\n // white field with border + subtle shadow. Both keep a visible focus border.\n // The fill is the Border colour by design; the dimmed grey vanishes on a sunken page.\n const bgClass = isMuted\n ? 'bg-[var(--malachite-card-border)]'\n : 'bg-[var(--malachite-card-background)]';\n const restingBorderClass = isMuted\n ? 'border-transparent'\n : 'border-[var(--malachite-card-border)]';\n // Hover darkens the border; focus (inline below) takes precedence.\n const hoverBorderClass = disabled ? '' : 'hover:border-[var(--malachite-text-placeholder)]';\n const iconColorClass = isMuted\n ? 'text-[var(--malachite-text-secondary)]'\n : 'text-[var(--malachite-text-placeholder)]';\n const placeholderColorClass = isMuted\n ? 'placeholder:text-[var(--malachite-text-secondary)]'\n : 'placeholder:text-[var(--malachite-text-placeholder)]';\n const boxShadow = isMuted\n ? 'none'\n : focused\n ? 'var(--malachite-shadow-accent, 0px 1px 0px 0px rgba(0, 175, 102, 0.15))'\n : '0px 1px 1px 0px rgba(0, 0, 0, 0.15)';\n\n return (\n <div\n className={`w-full ${bgClass} border border-solid ${restingBorderClass} ${hoverBorderClass} transition-colors flex items-center ${SIZE_CLASSES[size]} ${disabled ? 'opacity-60 cursor-not-allowed' : ''} ${className}`}\n style={{\n boxShadow,\n borderColor: focused\n ? 'var(--malachite-control-border-hover, rgba(0, 175, 102, 0.4))'\n : undefined,\n ...style,\n }}\n >\n <SearchIcon size={ICON_SIZE} className={`${iconColorClass} shrink-0`} />\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n placeholder={placeholder}\n aria-label={placeholder ?? 'Search'}\n disabled={disabled}\n autoFocus={autoFocus}\n className={`flex-1 bg-transparent border-none outline-none ${CONTROL_TEXT_SIZE_CLASS[size]} font-medium text-[var(--malachite-text-primary)] ${placeholderColorClass} placeholder:font-medium disabled:cursor-not-allowed min-w-0`}\n />\n </div>\n );\n};\n\nexport default Search;\n"],"names":["SIZE_CLASSES","ICON_SIZE","Search","value","onChange","placeholder","size","variant","disabled","autoFocus","className","style","focused","setFocused","useState","isMuted","bgClass","restingBorderClass","hoverBorderClass","iconColorClass","placeholderColorClass","boxShadow","jsxs","jsx","SearchIcon","e","CONTROL_TEXT_SIZE_CLASS"],"mappings":";;;;AASA,MAAMA,IAA2C;AAAA,EAC7C,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACX,GAEMC,IAAY,IAeZC,IAAgC,CAAC;AAAA,EACnC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,OAAAC;AACJ,MAAM;AACF,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAUR,MAAY,SAKtBS,IAAUD,IACV,sCACA,yCACAE,IAAqBF,IACrB,uBACA,yCAEAG,IAAmBV,IAAW,KAAK,oDACnCW,IAAiBJ,IACjB,2CACA,4CACAK,IAAwBL,IACxB,uDACA,wDACAM,IAAYN,IACZ,SACAH,IACE,4EACA;AAER,SACI,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW,UAAUN,CAAO,wBAAwBC,CAAkB,IAAIC,CAAgB,wCAAwClB,EAAaM,CAAI,CAAC,IAAIE,IAAW,kCAAkC,EAAE,IAAIE,CAAS;AAAA,MACpN,OAAO;AAAA,QACH,WAAAW;AAAA,QACA,aAAaT,IACP,kEACA;AAAA,QACN,GAAGD;AAAA,MAAA;AAAA,MAGP,UAAA;AAAA,QAAA,gBAAAY,EAACC,KAAW,MAAMvB,GAAW,WAAW,GAAGkB,CAAc,aAAa;AAAA,QACtE,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,MAAK;AAAA,YACL,OAAApB;AAAA,YACA,UAAU,CAACsB,MAAMrB,EAASqB,EAAE,OAAO,KAAK;AAAA,YACxC,SAAS,MAAMZ,EAAW,EAAI;AAAA,YAC9B,QAAQ,MAAMA,EAAW,EAAK;AAAA,YAC9B,aAAAR;AAAA,YACA,cAAYA,KAAe;AAAA,YAC3B,UAAAG;AAAA,YACA,WAAAC;AAAA,YACA,WAAW,kDAAkDiB,EAAwBpB,CAAI,CAAC,qDAAqDc,CAAqB;AAAA,UAAA;AAAA,QAAA;AAAA,MACxK;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|