@pstdio/ui 0.4.0 → 0.5.1
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/MermaidComponent-x3aKzNXm.js +124 -0
- package/dist/MermaidComponent-x3aKzNXm.js.map +1 -0
- package/dist/chat-ui.js +1364 -795
- package/dist/chat-ui.js.map +1 -1
- package/dist/components/chat-ui/agent-types.d.ts +4 -0
- package/dist/components/chat-ui/components/chat-input-actions.d.ts +10 -0
- package/dist/components/chat-ui/components/chat-input-question-prompt.d.ts +33 -0
- package/dist/components/chat-ui/components/chat-input.d.ts +3 -1
- package/dist/components/chat-ui/components/chat-panel-sticky-user-message.d.ts +9 -0
- package/dist/components/chat-ui/components/chat-panel.d.ts +4 -1
- package/dist/components/chat-ui/components/message-parts-renderer.d.ts +1 -0
- package/dist/components/chat-ui/components/timeline-tool-blocks.d.ts +14 -0
- package/dist/components/chat-ui/components/timeline.d.ts +22 -0
- package/dist/components/chat-ui/components/tool-invocation-timeline.d.ts +2 -1
- package/dist/components/chat-ui/index.d.ts +1 -0
- package/dist/components/chat-ui/tool-rendering/apply-patch-renderer.d.ts +2 -0
- package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -2
- package/dist/components/chat-ui/tool-rendering/default-renderers.d.ts +10 -7
- package/dist/components/chat-ui/tool-rendering/edit-renderer.d.ts +2 -0
- package/dist/components/chat-ui/tool-rendering/question-renderer.d.ts +10 -0
- package/dist/components/chat-ui/tool-rendering/shared.d.ts +52 -0
- package/dist/components/chat-ui/tool-rendering/standard-renderers.d.ts +6 -0
- package/dist/components/chat-ui/tool-rendering/todowrite-renderer.d.ts +10 -0
- package/dist/components/chat-ui/utils/get-icon.d.ts +2 -0
- package/dist/components/chat-ui/utils/tool-name.d.ts +2 -0
- package/dist/components/menu-item.d.ts +2 -1
- package/dist/components/radio.d.ts +8 -0
- package/dist/components/resource-context-menu.d.ts +20 -0
- package/dist/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.d.ts +2 -1
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockActionsPlugin.d.ts +4 -0
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.d.ts +2 -0
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeHighlightingPlugin.d.ts +1 -0
- package/dist/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/should-show-floating-toolbar.d.ts +11 -0
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidComponent.d.ts +6 -0
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.d.ts +23 -0
- package/dist/components/rich-text/shared/plugins/MermaidPlugin/index.d.ts +1 -0
- package/dist/components/rich-text/utils/markdown.d.ts +1 -0
- package/dist/components/session-indicator.d.ts +1 -1
- package/dist/components/sidebar-tree/sidebar-tree.types.d.ts +5 -1
- package/dist/components/tickets/tag-badge.d.ts +10 -0
- package/dist/components/tickets/tag-option-icon.d.ts +2 -0
- package/dist/components/tickets/ticket-board.d.ts +8 -2
- package/dist/components/tickets/ticket-card.d.ts +10 -0
- package/dist/components/tickets/ticket-grouping.d.ts +2 -2
- package/dist/components/tickets/ticket-list.d.ts +9 -1
- package/dist/components/tickets/tickets-workspace.d.ts +11 -3
- package/dist/components/tickets/types.d.ts +22 -5
- package/dist/components/tickets/workspace-helpers.d.ts +18 -0
- package/dist/get-file-type-icon-Bwqf1WXA.js +101 -0
- package/dist/get-file-type-icon-Bwqf1WXA.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +1886 -1583
- package/dist/index.js.map +1 -1
- package/dist/radio-C42qncrD.js +236 -0
- package/dist/radio-C42qncrD.js.map +1 -0
- package/dist/rich-message-CoXTd5kw.js +1512 -0
- package/dist/rich-message-CoXTd5kw.js.map +1 -0
- package/dist/rich-text.js +414 -255
- package/dist/rich-text.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/recipes/button.d.ts +6 -0
- package/dist/{theme-D0VvFB1Y.js → theme-BLGUwVOD.js} +7 -1
- package/dist/theme-BLGUwVOD.js.map +1 -0
- package/dist/theme.js +1 -1
- package/package.json +3 -1
- package/dist/components/attached-panel.utils.test.d.ts +0 -1
- package/dist/components/breadcrumb.stories.d.ts +0 -25
- package/dist/components/button.stories.d.ts +0 -18
- package/dist/components/chat-ui/components/ai-conversation.stories.d.ts +0 -6
- package/dist/components/chat-ui/components/ai-message.stories.d.ts +0 -6
- package/dist/components/chat-ui/components/ai-response.stories.d.ts +0 -7
- package/dist/components/chat-ui/components/attachment-list.stories.d.ts +0 -6
- package/dist/components/chat-ui/components/chat-input.stories.d.ts +0 -7
- package/dist/components/chat-ui/components/chat-panel-alerts.stories.d.ts +0 -9
- package/dist/components/chat-ui/components/chat-panel.stories.d.ts +0 -10
- package/dist/components/chat-ui/components/message-parts-renderer.stories.d.ts +0 -9
- package/dist/components/chat-ui/components/model-swap-separator.stories.d.ts +0 -6
- package/dist/components/chat-ui/components/tool-invocation-timeline.stories.d.ts +0 -6
- package/dist/components/chat-ui/components/workspace-hub.stories.d.ts +0 -6
- package/dist/components/checkbox.stories.d.ts +0 -15
- package/dist/components/column-file-browser.stories.d.ts +0 -15
- package/dist/components/data-table/data-table.stories.d.ts +0 -33
- package/dist/components/delete-confirmation-modal.stories.d.ts +0 -11
- package/dist/components/diff-bubble.stories.d.ts +0 -13
- package/dist/components/diff-drawer.stories.d.ts +0 -8
- package/dist/components/diff-view-adapter.test.d.ts +0 -1
- package/dist/components/drawer-inline.stories.d.ts +0 -8
- package/dist/components/empty-state.stories.d.ts +0 -34
- package/dist/components/file-selector.stories.d.ts +0 -17
- package/dist/components/folder-picker-dialog.stories.d.ts +0 -11
- package/dist/components/info-card.stories.d.ts +0 -41
- package/dist/components/item-section.stories.d.ts +0 -17
- package/dist/components/layout.stories.d.ts +0 -11
- package/dist/components/menu-item.stories.d.ts +0 -72
- package/dist/components/open-source-notices-screen.stories.d.ts +0 -12
- package/dist/components/param-editor-horizontal.stories.d.ts +0 -19
- package/dist/components/param-editor.stories.d.ts +0 -24
- package/dist/components/properties.stories.d.ts +0 -17
- package/dist/components/resource-badge.stories.d.ts +0 -7
- package/dist/components/rich-text/collaborative-markdown-editor/collaborative-markdown-editor.stories.d.ts +0 -9
- package/dist/components/rich-text/markdown-editor/markdown-editor.stories.d.ts +0 -7
- package/dist/components/rich-text/prompt-input/prompt-input.stories.d.ts +0 -8
- package/dist/components/rich-text/rich-message/rich-message.stories.d.ts +0 -6
- package/dist/components/rich-text/shared/nodes/DataTableNode.stories.d.ts +0 -7
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeNode.d.ts +0 -21
- package/dist/components/rich-text/shared/plugins/CodePlugin/CodeNode.test.d.ts +0 -1
- package/dist/components/rich-text/shared/transformers/markdown-transformers.test.d.ts +0 -1
- package/dist/components/scroll-area.stories.d.ts +0 -7
- package/dist/components/searchable-menu.stories.d.ts +0 -8
- package/dist/components/session-indicator.stories.d.ts +0 -12
- package/dist/components/sidebar/sidebar.store.test.d.ts +0 -1
- package/dist/components/sidebar/sidebar.stories.d.ts +0 -11
- package/dist/components/sidebar-tree/sidebar-tree-searchable-action-menu.stories.d.ts +0 -6
- package/dist/components/sidebar-tree/sidebar-tree.stories.d.ts +0 -13
- package/dist/components/slider.stories.d.ts +0 -15
- package/dist/components/style-guide.stories.d.ts +0 -23
- package/dist/components/switch.stories.d.ts +0 -16
- package/dist/components/tickets/display-menu.stories.d.ts +0 -6
- package/dist/components/tickets/filter-menu.stories.d.ts +0 -6
- package/dist/components/tickets/ticket-board.stories.d.ts +0 -5
- package/dist/components/tickets/ticket-card.stories.d.ts +0 -18
- package/dist/components/tickets/ticket-grouping.test.d.ts +0 -1
- package/dist/components/tickets/ticket-list.stories.d.ts +0 -10
- package/dist/components/tickets/tickets-workspace.stories.d.ts +0 -10
- package/dist/components/tickets/use-workspace-store.test.d.ts +0 -1
- package/dist/components/toaster.stories.d.ts +0 -11
- package/dist/components/workspace-badge.stories.d.ts +0 -13
- package/dist/empty-state-yGspgiPl.js +0 -185
- package/dist/empty-state-yGspgiPl.js.map +0 -1
- package/dist/get-file-type-icon-CirIyuE8.js +0 -92
- package/dist/get-file-type-icon-CirIyuE8.js.map +0 -1
- package/dist/rich-message-Bad4GxH2.js +0 -1423
- package/dist/rich-message-Bad4GxH2.js.map +0 -1
- package/dist/theme-D0VvFB1Y.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rich-message-Bad4GxH2.js","sources":["../src/components/rich-text/shared/components/content-editable.tsx","../src/components/resource-badge.tsx","../src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkNode.tsx","../src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.ts","../src/components/rich-text/theme/rich-text-theme.tsx","../src/components/rich-text/shared/components/default-rich-text-components.tsx","../src/components/rich-text/shared/nodes/DataTableNode.tsx","../src/components/rich-text/shared/plugins/CodePlugin/CodeNode.tsx","../src/components/rich-text/shared/plugins/EquationPlugin/EquationNode.tsx","../src/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.tsx","../src/components/rich-text/shared/plugins/HorizontalRulePlugin/HorizontalRuleNode.ts","../src/components/rich-text/shared/plugins/HorizontalRulePlugin/horizontalRule.ts","../src/components/rich-text/shared/transformers/markdown-transformers.ts","../src/components/rich-text/shared/editor-config.ts","../src/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.tsx","../src/components/rich-text/shared/plugins/ToggleEditablePlugin.tsx","../src/components/rich-text/shared/plugins/TreeViewPlugin/TreeViewPlugin.tsx","../src/components/rich-text/utils/markdown.ts","../src/components/rich-text/prompt-input/events.ts","../src/components/rich-text/prompt-input/commands.ts","../src/components/rich-text/prompt-input/plugins/CommentPlugin/nodes/CommentNode/CommentNode.tsx","../src/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentCommands.ts","../src/components/rich-text/prompt-input/plugins/CommentPlugin/hooks/useCommentSchema.ts","../src/components/rich-text/prompt-input/plugins/CommentPlugin/CommentPlugin.tsx","../src/components/rich-text/prompt-input/utils.ts","../src/components/rich-text/prompt-input/plugins/ImperativeAPIPlugin.tsx","../src/components/rich-text/prompt-input/plugins/keyboard-shortcuts.ts","../src/components/rich-text/prompt-input/plugins/KeyboardShortcutPlugin.tsx","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/constants.ts","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/getSortedMenuOptions.ts","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenuItem.tsx","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/components/ReferenceMenu/ReferenceMenu.tsx","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/hooks/useContextLookup.tsx","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/utils/checkForTriggers.ts","../src/components/rich-text/prompt-input/plugins/ReferenceMenuPlugin/ReferenceMenuPlugin.tsx","../src/components/rich-text/prompt-input/plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode.tsx","../src/components/rich-text/prompt-input/plugins/ReferencePlugin/ReferencePlugin.tsx","../src/components/rich-text/prompt-input/theme/prompt-input-theme.ts","../src/components/rich-text/prompt-input/prompt-input.tsx","../src/components/rich-text/shared/plugins/StateUpdatePlugin.tsx","../src/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkNode.tsx","../src/components/rich-text/rich-message/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.ts","../src/components/rich-text/rich-message/rich-message.tsx"],"sourcesContent":["import { chakra, Flex } from \"@chakra-ui/react\";\nimport { ContentEditable as LexicalContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport { ScrollArea } from \"@/components/scroll-area\";\n\nconst StyledEditable = chakra(LexicalContentEditable);\n\ninterface ContentEditableProps {\n onRef?: (elem: HTMLDivElement) => void;\n fullWidth?: boolean;\n padding?: string;\n isRichMessage?: boolean;\n scrollable?: boolean;\n}\n\nexport function ContentEditable({\n onRef,\n fullWidth = false,\n padding,\n isRichMessage = false,\n scrollable = true,\n}: ContentEditableProps) {\n const editor = (\n <Flex ref={onRef} width=\"100%\" minH=\"100%\" padding={padding} justifyContent={fullWidth ? \"flex-start\" : \"center\"}>\n <StyledEditable\n data-testid=\"content-editable\"\n height=\"fit-content\"\n minH=\"100%\"\n width=\"100%\"\n maxWidth={fullWidth ? \"100%\" : \"720px\"}\n textStyle=\"paragraph/M/regular\"\n fontSize=\"calc(var(--chakra-font-sizes-md) * var(--rich-text-font-scale))\"\n position=\"relative\"\n outline=\"none\"\n />\n </Flex>\n );\n\n if (!scrollable) return editor;\n\n return (\n <ScrollArea\n className=\"rich-text\"\n data-rich-message={isRichMessage ? \"true\" : undefined}\n height=\"100%\"\n minH=\"0\"\n position=\"relative\"\n contentProps={{ width: \"100%\", minH: \"100%\" }}\n >\n {editor}\n </ScrollArea>\n );\n}\n","import type { HTMLChakraProps } from \"@chakra-ui/react\";\nimport { chakra, IconButton, Spacer, Text } from \"@chakra-ui/react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { AlertTriangle, X } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { getFileTypeIcon } from \"../utils/get-file-type-icon\";\nimport { Tooltip } from \"./tooltip\";\n\nconst SIZE_STYLES = {\n sm: {\n container: {\n height: \"20px\",\n lineHeight: { base: \"20px\" },\n px: \"2xs\",\n },\n iconSize: 12,\n textStyle: \"xs\",\n },\n md: {\n container: {\n height: \"24px\",\n lineHeight: { base: \"24px\" },\n px: \"xs\",\n },\n iconSize: 14,\n textStyle: \"sm\",\n },\n} as const;\n\nconst TONE_STYLES = {\n neutral: {\n color: \"color.primary\",\n bg: \"bg.muted\",\n _hover: {\n bg: \"bg.emphasized\",\n },\n },\n accent: {\n color: \"var(--schub-foreground-accent)\",\n bg: \"var(--schub-accent-subtle)\",\n _hover: {\n bg: \"var(--schub-accent-subtle)\",\n },\n },\n} as const;\n\nexport interface MissingResourceBadgeProps {\n referenceId: string;\n onRemove?: (referenceId: string) => void;\n}\n\n/**\n * Shown when a reference points to a resource that no longer exists\n */\nexport const MissingResourceBadge = (props: MissingResourceBadgeProps) => {\n const { referenceId, onRemove } = props;\n return (\n <chakra.span\n height=\"24px\"\n lineHeight={{ base: \"24px\" }}\n gap=\"2xs\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n paddingX=\"xs\"\n borderRadius=\"xs\"\n color={`fg.error`}\n bg={`bg.accent-secondary.red-light`}\n _hover={{\n bg: `bg.accent-secondary.red-light`,\n }}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n <AlertTriangle size={14} />\n </chakra.span>\n <Text maxW={{ base: \"17.5rem\" }} textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" overflow=\"hidden\">\n Missing Reference\n </Text>\n <Spacer />\n {onRemove && (\n <IconButton\n color=\"fg.error\"\n aria-label=\"Remove reference\"\n size=\"2xs\"\n ml=\"sm\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(referenceId);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n\nexport type ResourceBadgeSize = keyof typeof SIZE_STYLES;\nexport type ResourceBadgeTone = keyof typeof TONE_STYLES;\n\nexport interface ResourceBadgeProps extends Omit<HTMLChakraProps<\"span\">, \"onSelect\"> {\n fileName: string;\n onRemove?: (fileName: string) => void;\n onSelect?: (fileName: string) => void;\n size?: ResourceBadgeSize;\n tone?: ResourceBadgeTone;\n icon?: ReactNode;\n}\n\nconst DEFAULT_SIZE: ResourceBadgeSize = \"md\";\nconst DEFAULT_TONE: ResourceBadgeTone = \"neutral\";\n\nexport const ResourceBadge = (props: ResourceBadgeProps) => {\n const { fileName, onSelect, onRemove, size = DEFAULT_SIZE, tone = DEFAULT_TONE, icon, ...rest } = props;\n const IconComp: LucideIcon = getFileTypeIcon(fileName);\n const sizeStyles = SIZE_STYLES[size];\n const toneStyles = TONE_STYLES[tone];\n\n return (\n <chakra.span\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n borderRadius=\"xs\"\n gap=\"2xs\"\n cursor={onSelect ? \"pointer\" : \"default\"}\n {...toneStyles}\n {...sizeStyles.container}\n onClick={(e) => {\n e.stopPropagation();\n onSelect?.(fileName);\n }}\n {...rest}\n >\n <chakra.span mr=\"xs\" display=\"inline-flex\">\n {icon ?? <IconComp size={sizeStyles.iconSize} />}\n </chakra.span>\n <Tooltip content={fileName}>\n <Text\n maxW={{ base: \"14rem\" }}\n textOverflow=\"ellipsis\"\n whiteSpace=\"nowrap\"\n overflow=\"hidden\"\n textStyle={sizeStyles.textStyle}\n >\n {fileName}\n </Text>\n </Tooltip>\n <Spacer />\n {onRemove && (\n <IconButton\n aria-label=\"Remove reference\"\n size=\"2xs\"\n ml=\"xs\"\n variant=\"ghost\"\n _hover={{\n bg: \"transparent\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.(fileName);\n }}\n >\n <X size={12} />\n </IconButton>\n )}\n </chakra.span>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport {\n DecoratorNode,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n type SerializedLexicalNode,\n type Spread,\n} from \"lexical\";\nimport type { ReactElement } from \"react\";\nimport { ResourceBadge } from \"../../../../resource-badge\";\n\nexport type SerializedReferenceLinkNode = Spread<\n {\n href: string;\n label?: string;\n },\n SerializedLexicalNode\n>;\n\nexport class ReferenceLinkNode extends DecoratorNode<ReactElement> {\n __href: string;\n __label?: string;\n\n static getType(): string {\n return \"reference-link\";\n }\n\n static clone(node: ReferenceLinkNode): ReferenceLinkNode {\n return new ReferenceLinkNode(node.__href, node.__label, node.__key);\n }\n\n constructor(href: string, label?: string, key?: NodeKey) {\n super(key);\n this.__href = href;\n this.__label = label;\n }\n\n createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement {\n return document.createElement(\"span\");\n }\n\n updateDOM(_prevNode: ReferenceLinkNode, _dom: HTMLElement, _config: EditorConfig): boolean {\n return false;\n }\n\n getTextContent(): string {\n const label = this.__label ?? this.__href;\n return `{{link('${label}')}}`;\n }\n\n exportJSON(): SerializedReferenceLinkNode {\n return {\n type: ReferenceLinkNode.getType(),\n version: 1,\n href: this.__href,\n label: this.__label,\n };\n }\n\n static importJSON(serializedNode: SerializedReferenceLinkNode): ReferenceLinkNode {\n return $createReferenceLinkNode(serializedNode.href, serializedNode.label);\n }\n\n decorate(_editor: LexicalEditor, _config: EditorConfig): ReactElement {\n const href = this.__href;\n const fileName = href.split(\"/\").pop();\n const label = fileName || \"unknown\";\n const isExternal = /^https?:\\/\\//i.test(href);\n const isProjectFile = /^#?\\$PROJECT\\//i.test(href);\n\n return (\n <Box width=\"fit-content\" display=\"inline-block\">\n <ResourceBadge\n fileName={label}\n onSelect={() => {\n if (isExternal) {\n window.open(href, \"_blank\", \"noopener,noreferrer\");\n } else if (isProjectFile) {\n const projectPath = href.replace(/^#?\\$PROJECT\\//i, \"\");\n const event = new CustomEvent(\"ui:open-project-file\", { detail: projectPath });\n window.dispatchEvent(event);\n } else {\n window.location.assign(href);\n }\n }}\n />\n </Box>\n );\n }\n}\n\nexport function $createReferenceLinkNode(href: string, label?: string): ReferenceLinkNode {\n return new ReferenceLinkNode(href, label);\n}\n\nexport function $isReferenceLinkNode(node: LexicalNode | null | undefined): node is ReferenceLinkNode {\n return node instanceof ReferenceLinkNode;\n}\n","import type { TextMatchTransformer } from \"@lexical/markdown\";\nimport { $createReferenceLinkNode, $isReferenceLinkNode, ReferenceLinkNode } from \"./ReferenceLinkNode\";\n\n// Matches {{link('xxx')}} or {{ link(\"xxx\") }}\nconst LINK_REGEXP = /\\{\\{\\s*link\\((['\"])([^'\"\\s]+)\\1\\)\\s*\\}\\}/;\n\nexport const REFERENCE_LINK_TRANSFORMER: TextMatchTransformer = {\n dependencies: [ReferenceLinkNode],\n export: (node) => {\n if ($isReferenceLinkNode(node)) {\n const href = (node as ReferenceLinkNode).__href;\n const label = (node as ReferenceLinkNode).__label ?? href;\n // Export back to token form so markdown roundtrips\n if (label) {\n return `{{link('${label}')}}`;\n }\n return `{{link('${href}')}}`;\n }\n return null;\n },\n regExp: LINK_REGEXP,\n importRegExp: LINK_REGEXP,\n replace: (textNode, match) => {\n const value = match[2];\n // For now we assume value is both label and href; if it looks like a URL, use as href.\n const looksLikeUrl = /^(https?:\\/\\/|\\/)/i.test(value);\n const href = looksLikeUrl ? value : `#${value}`;\n const label = value;\n textNode.replace($createReferenceLinkNode(href, label));\n },\n type: \"text-match\",\n};\n","import type { EditorThemeClasses } from \"lexical\";\n\nimport \"./rich-text-theme.css\";\n\nconst theme: EditorThemeClasses = {\n code: \"rich-text__code\",\n codeHighlight: {\n atrule: \"rich-text__tokenAttr\",\n attr: \"rich-text__tokenAttr\",\n boolean: \"rich-text__tokenProperty\",\n builtin: \"rich-text__tokenSelector\",\n cdata: \"rich-text__tokenComment\",\n char: \"rich-text__tokenSelector\",\n class: \"rich-text__tokenFunction\",\n \"class-name\": \"rich-text__tokenFunction\",\n comment: \"rich-text__tokenComment\",\n constant: \"rich-text__tokenProperty\",\n deleted: \"rich-text__tokenProperty\",\n doctype: \"rich-text__tokenComment\",\n entity: \"rich-text__tokenOperator\",\n function: \"rich-text__tokenFunction\",\n important: \"rich-text__tokenVariable\",\n inserted: \"rich-text__tokenSelector\",\n keyword: \"rich-text__tokenAttr\",\n namespace: \"rich-text__tokenVariable\",\n number: \"rich-text__tokenProperty\",\n operator: \"rich-text__tokenOperator\",\n prolog: \"rich-text__tokenComment\",\n property: \"rich-text__tokenProperty\",\n punctuation: \"rich-text__tokenPunctuation\",\n regex: \"rich-text__tokenVariable\",\n selector: \"rich-text__tokenSelector\",\n string: \"rich-text__tokenSelector\",\n symbol: \"rich-text__tokenProperty\",\n tag: \"rich-text__tokenProperty\",\n url: \"rich-text__tokenOperator\",\n variable: \"rich-text__tokenVariable\",\n },\n embedBlock: {\n base: \"rich-text__embedBlock\",\n focus: \"rich-text__embedBlockFocus\",\n },\n list: {\n checklist: \"rich-text__checklist\",\n listitem: \"rich-text__listItem\",\n listitemChecked: \"rich-text__listItemChecked\",\n listitemUnchecked: \"rich-text__listItemUnchecked\",\n nested: {\n listitem: \"rich-text__nestedListItem\",\n },\n olDepth: [\"rich-text__ol1\", \"rich-text__ol2\", \"rich-text__ol3\", \"rich-text__ol4\", \"rich-text__ol5\"],\n ol: \"rich-text__ol\",\n ul: \"rich-text__ul\",\n },\n heading: {\n h1: \"rich-text__h1\",\n h2: \"rich-text__h2\",\n h3: \"rich-text__h3\",\n },\n paragraph: \"rich-text__p\",\n text: {\n underline: \"rich-text__textUnderline\",\n italic: \"rich-text__textItalic\",\n code: \"rich-text__textCode\",\n },\n link: \"rich-text__link\",\n quote: \"rich-text__quote\",\n reference: \"rich-text__reference\",\n table: \"rich-text__table\",\n tableCell: \"rich-text__tableCell\",\n tableRow: \"rich-text__tableRow\",\n tableCellHeader: \"rich-text__tableCellHeader\",\n layoutContainer: \"rich-text__layoutContainer\",\n layoutItem: \"rich-text__layoutItem\",\n draggableBlockDemo: {\n row: \"rich-text__row\",\n content: \"rich-text__content\",\n },\n};\n\nexport default theme;\n","import { Box, Table, Text, Textarea } from \"@chakra-ui/react\";\nimport type { CodeEditorProps, DataTableProps } from \"../types/rich-text-components\";\n\nconst scaledSmallFontSize = \"calc(var(--chakra-font-sizes-sm) * var(--rich-text-font-scale))\";\n\nconst formatValue = (value: unknown) => {\n if (value === null || value === undefined) return \"-\";\n if (typeof value === \"string\") return value.length ? value : \"-\";\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value).toUpperCase();\n if (value instanceof Date) return value.toISOString();\n return JSON.stringify(value);\n};\n\nexport const DefaultRichTextCodeEditor = (props: CodeEditorProps) => {\n const { defaultCode = \"\", isEditable = false, showLineNumbers = false, disableScroll = false } = props;\n\n if (isEditable) {\n return (\n <Textarea\n defaultValue={defaultCode}\n fontFamily=\"mono\"\n fontSize={scaledSmallFontSize}\n resize=\"vertical\"\n minHeight=\"100%\"\n />\n );\n }\n\n const lines = showLineNumbers ? defaultCode.split(\"\\n\") : [defaultCode];\n\n return (\n <Box\n as=\"pre\"\n margin={0}\n padding=\"sm\"\n fontFamily=\"mono\"\n fontSize={scaledSmallFontSize}\n lineHeight=\"1.5\"\n overflowY={disableScroll ? \"hidden\" : \"auto\"}\n background=\"bg.muted\"\n borderRadius=\"md\"\n width=\"100%\"\n >\n {showLineNumbers ? (\n <Box as=\"code\" display=\"grid\" gridTemplateColumns=\"auto 1fr\" columnGap=\"sm\">\n {lines.map((line, index) => (\n <Box as=\"span\" key={`${index}-${line}`} display=\"contents\">\n <Text as=\"span\" color=\"fg.muted\" textAlign=\"right\" fontSize=\"inherit\">\n {index + 1}\n </Text>\n <Text as=\"span\" fontSize=\"inherit\">\n {line.length ? line : \" \"}\n </Text>\n </Box>\n ))}\n </Box>\n ) : (\n <Box as=\"code\">{defaultCode}</Box>\n )}\n </Box>\n );\n};\n\nexport const DefaultRichTextDataTable = (props: DataTableProps) => {\n const { data, fullWidth = false, noBorder = false, hiddenColumns = [] } = props;\n\n if (!data.length) {\n return (\n <Box padding=\"sm\" borderWidth={noBorder ? \"0\" : \"1px\"} borderColor=\"border.muted\">\n <Text textStyle=\"label/S/regular\" fontSize={scaledSmallFontSize} color=\"fg.muted\">\n No data\n </Text>\n </Box>\n );\n }\n\n const hiddenSet = new Set(hiddenColumns);\n const columns = Object.keys(data[0] ?? {}).filter((key) => !hiddenSet.has(key));\n\n return (\n <Table.ScrollArea overflowX=\"auto\" maxWidth=\"100%\">\n <Table.Root\n size=\"sm\"\n width={fullWidth ? \"100%\" : \"fit-content\"}\n borderWidth={noBorder ? \"0\" : \"1px\"}\n borderColor=\"border.muted\"\n >\n <Table.Header>\n <Table.Row background=\"bg.muted\">\n {columns.map((column) => (\n <Table.ColumnHeader key={column} textTransform=\"none\" paddingX=\"xs\" paddingY=\"2xs\">\n <Text textStyle=\"label/S/medium\" fontSize={scaledSmallFontSize}>\n {column}\n </Text>\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {data.map((row, rowIndex) => (\n <Table.Row key={`${rowIndex}-${columns.join(\"-\")}`}>\n {columns.map((column) => (\n <Table.Cell key={`${rowIndex}-${column}`} paddingX=\"xs\" paddingY=\"2xs\">\n <Text textStyle=\"paragraph/S/regular\" fontSize={scaledSmallFontSize}>\n {formatValue(row[column])}\n </Text>\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n </Table.ScrollArea>\n );\n};\n","import { DecoratorNode, type NodeKey, type SerializedLexicalNode, type Spread } from \"lexical\";\nimport type React from \"react\";\nimport { DefaultRichTextDataTable } from \"../components/default-rich-text-components\";\nimport type { RowData } from \"../types/rich-text-components\";\n\nexport type { RowData } from \"../types/rich-text-components\";\n\nexport class DataTableNode extends DecoratorNode<React.JSX.Element> {\n __data: RowData[];\n\n static getType() {\n return \"data_table\";\n }\n\n static clone(node: DataTableNode) {\n return new DataTableNode(node.__data, node.__key);\n }\n\n constructor(data: RowData[], key?: NodeKey) {\n super(key);\n this.__data = data;\n }\n\n getData(): RowData[] {\n return this.__data;\n }\n\n createDOM(): HTMLElement {\n return document.createElement(\"div\");\n }\n\n updateDOM(): boolean {\n return false;\n }\n\n decorate() {\n return <DefaultRichTextDataTable fullWidth isReadOnly data={this.__data} />;\n }\n\n exportJSON(): SerializedDataTableNode {\n return {\n type: \"data_table\",\n version: 1,\n data: this.__data,\n };\n }\n\n static importJSON(json: SerializedDataTableNode) {\n return new DataTableNode(json.data);\n }\n\n getTextContent(): string {\n // Convert table data to a readable text representation\n if (!this.__data.length) return \"\";\n\n const headers = Object.keys(this.__data[0]);\n const headerRow = headers.join(\" | \");\n const separator = headers.map(() => \"---\").join(\" | \");\n const dataRows = this.__data.map((row) => headers.map((header) => String(row[header] || \"\")).join(\" | \"));\n\n return [headerRow, separator, ...dataRows].join(\"\\n\");\n }\n}\n\nexport type SerializedDataTableNode = Spread<{ data: RowData[] }, SerializedLexicalNode>;\n\nexport function $createDataTableNode(data: RowData[]) {\n return new DataTableNode(data);\n}\n\nexport function $isDataTableNode(node: unknown): node is DataTableNode {\n return node instanceof DataTableNode;\n}\n","import { Box } from \"@chakra-ui/react\";\nimport { DecoratorNode, type SerializedLexicalNode } from \"lexical\";\nimport type { ReactNode } from \"react\";\nimport { DefaultRichTextCodeEditor } from \"../../components/default-rich-text-components\";\n\nexport interface SerializedCodeBlockNode extends SerializedLexicalNode {\n type: \"codeblock\";\n language: string;\n code: string;\n version: 1;\n}\n\nexport class CodeBlockNode extends DecoratorNode<ReactNode> {\n __language: string;\n __code: string;\n\n static getType() {\n return \"codeblock\";\n }\n\n static clone(node: CodeBlockNode) {\n return new CodeBlockNode(node.__language, node.__code, node.__key);\n }\n\n constructor(language: string, code: string, key?: string) {\n super(key);\n this.__language = language;\n this.__code = code;\n }\n\n createDOM() {\n return document.createElement(\"div\");\n }\n\n updateDOM() {\n return false;\n }\n\n static importJSON(serializedNode: SerializedCodeBlockNode): CodeBlockNode {\n const { language, code } = serializedNode;\n return new CodeBlockNode(language, code);\n }\n\n exportJSON(): SerializedCodeBlockNode {\n return {\n type: \"codeblock\",\n language: this.__language,\n code: this.__code,\n version: 1,\n };\n }\n\n // Used by Lexical's markdown export as fallback for DecoratorNodes\n getTextContent() {\n return `\\`\\`\\`${this.__language}\\n${this.__code}\\n\\`\\`\\``;\n }\n\n decorate() {\n return (\n <Box borderRadius=\"md\" overflow=\"hidden\">\n <DefaultRichTextCodeEditor\n language={this.__language || \"plaintext\"}\n defaultCode={this.__code}\n isEditable={false}\n showLineNumbers\n disableScroll\n />\n </Box>\n );\n }\n}\n","import katex from \"katex\";\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread,\n} from \"lexical\";\nimport { $applyNodeReplacement, DecoratorNode, type DOMExportOutput } from \"lexical\";\nimport * as React from \"react\";\nimport { Suspense } from \"react\";\n\nconst EquationComponent = React.lazy(() => import(\"./EquationComponent\"));\n\nexport type SerializedEquationNode = Spread<\n {\n equation: string;\n inline: boolean;\n },\n SerializedLexicalNode\n>;\n\nfunction $convertEquationElement(domNode: HTMLElement): null | DOMConversionOutput {\n let equation = domNode.getAttribute(\"data-lexical-equation\");\n const inline = domNode.getAttribute(\"data-lexical-inline\") === \"true\";\n\n // Decode the equation from base64\n equation = atob(equation || \"\");\n\n if (equation) {\n const node = $createEquationNode(equation, inline);\n return { node };\n }\n\n return null;\n}\n\nexport class EquationNode extends DecoratorNode<React.ReactNode> {\n __equation: string;\n __inline: boolean;\n\n static getType(): string {\n return \"equation\";\n }\n\n static clone(node: EquationNode): EquationNode {\n return new EquationNode(node.__equation, node.__inline, node.__key);\n }\n\n constructor(equation: string, inline?: boolean, key?: NodeKey) {\n super(key);\n this.__equation = equation;\n this.__inline = inline ?? false;\n }\n\n static importJSON(serializedNode: SerializedEquationNode): EquationNode {\n return $createEquationNode(serializedNode.equation, serializedNode.inline);\n }\n\n exportJSON(): SerializedEquationNode {\n return {\n equation: this.getEquation(),\n inline: this.__inline,\n type: \"equation\",\n version: 1,\n };\n }\n\n createDOM(_config: EditorConfig): HTMLElement {\n const element = document.createElement(this.__inline ? \"span\" : \"div\");\n\n // EquationNodes should implement `user-action:none` in their CSS to avoid issues with deletion on Android.\n element.className = \"editor-equation\";\n return element;\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement(this.__inline ? \"span\" : \"div\");\n\n // Encode the equation as base64 to avoid issues with special characters\n const equation = btoa(this.__equation);\n element.setAttribute(\"data-lexical-equation\", equation);\n element.setAttribute(\"data-lexical-inline\", `${this.__inline}`);\n katex.render(this.__equation, element, {\n displayMode: !this.__inline, // true === block display //\n errorColor: \"#cc0000\",\n output: \"html\",\n strict: \"warn\",\n throwOnError: false,\n trust: false,\n });\n\n return { element };\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n div: (domNode: HTMLElement) => {\n if (!domNode.hasAttribute(\"data-lexical-equation\")) {\n return null;\n }\n\n return {\n conversion: $convertEquationElement,\n priority: 2,\n };\n },\n span: (domNode: HTMLElement) => {\n if (!domNode.hasAttribute(\"data-lexical-equation\")) {\n return null;\n }\n\n return {\n conversion: $convertEquationElement,\n priority: 1,\n };\n },\n };\n }\n\n updateDOM(prevNode: EquationNode): boolean {\n // If the inline property changes, replace the element\n return this.__inline !== prevNode.__inline;\n }\n\n getTextContent(): string {\n return this.__equation;\n }\n\n getEquation(): string {\n return this.__equation;\n }\n\n setEquation(equation: string): void {\n const writable = this.getWritable();\n writable.__equation = equation;\n }\n\n isInline(): boolean {\n return this.__inline;\n }\n\n decorate() {\n return (\n <Suspense fallback={null}>\n <EquationComponent equation={this.__equation} inline={this.__inline} />\n </Suspense>\n );\n }\n}\n\nexport function $createEquationNode(equation = \"\", inline = false): EquationNode {\n const equationNode = new EquationNode(equation, inline);\n return $applyNodeReplacement(equationNode);\n}\n\nexport function $isEquationNode(node: LexicalNode | null | undefined): node is EquationNode {\n return node instanceof EquationNode;\n}\n","import \"./EquationPlugin.css\";\n\nimport type { MultilineElementTransformer, TextMatchTransformer } from \"@lexical/markdown\";\nimport { $createEquationNode, $isEquationNode, EquationNode } from \"./EquationNode.tsx\";\n\nexport const EQUATION_INLINE: TextMatchTransformer = {\n dependencies: [EquationNode],\n export: (node) => {\n if ($isEquationNode(node) && node.isInline()) {\n return `\\\\( ${node.getEquation().trim()} \\\\)`;\n }\n return null;\n },\n importRegExp: /\\\\\\((.*?)\\\\\\)/,\n regExp: /\\\\\\((.*?)\\\\\\)/,\n replace: (textNode, match) => {\n const equationNode = $createEquationNode(match[1].trim(), true);\n textNode.replace(equationNode);\n },\n type: \"text-match\",\n};\n\nexport const EQUATION_MULTILINE: MultilineElementTransformer = {\n dependencies: [EquationNode],\n regExpStart: /\\\\\\[/,\n regExpEnd: /\\\\]/,\n export: (node) => {\n if ($isEquationNode(node) && !node.isInline()) {\n return `\\\\[ ${node.getEquation().trim()} \\\\]`;\n }\n return null;\n },\n replace: (rootNode, _children, _startMatch, _endMatch, linesInBetween) => {\n if (linesInBetween) {\n rootNode.append($createEquationNode(linesInBetween.join(\" \"), false));\n return true;\n }\n return false;\n },\n type: \"multiline-element\",\n};\n\nexport function EquationPlugin(): null {\n return null;\n}\n","import {\n type EditorConfig,\n ElementNode,\n type LexicalEditor,\n type LexicalNode,\n type SerializedElementNode,\n type Spread,\n} from \"lexical\";\n\nexport type SerializedHRNode = Spread<SerializedElementNode, SerializedElementNode>;\n\nexport class HRNode extends ElementNode {\n static getType() {\n return \"hr\";\n }\n\n static clone(node: HRNode) {\n return new HRNode(node?.__key);\n }\n\n static importJSON(_serializedNode: SerializedHRNode) {\n return $createHRNode();\n }\n\n exportJSON(): SerializedHRNode {\n return {\n ...super.exportJSON(),\n };\n }\n\n createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement {\n const element = document.createElement(\"hr\");\n element.style = \"margin: 2rem 0;\";\n return element;\n }\n\n updateDOM(_prevNode: unknown, _dom: HTMLElement, _config: EditorConfig): boolean {\n return false;\n }\n\n decorate(_editor: LexicalEditor) {\n return null;\n }\n}\n\nexport function $createHRNode(): HRNode {\n return new HRNode();\n}\n\nexport function $isHRNode(node: LexicalNode | null | undefined): node is HRNode {\n return node instanceof HRNode;\n}\n","import type { ElementTransformer } from \"@lexical/markdown\";\nimport type { LexicalNode } from \"lexical\";\nimport { $createHRNode, $isHRNode, HRNode } from \"./HorizontalRuleNode\";\n\nexport const HR: ElementTransformer = {\n dependencies: [HRNode],\n export: (node: LexicalNode) => {\n return $isHRNode(node) ? \"***\" : null;\n },\n regExp: /^(---|\\*\\*\\*|___)\\s?$/,\n replace: (parentNode) => {\n const line = $createHRNode();\n parentNode.replace(line);\n },\n type: \"element\",\n};\n","import { $createAutoLinkNode, $isAutoLinkNode, AutoLinkNode } from \"@lexical/link\";\nimport type { ElementTransformer, TextMatchTransformer } from \"@lexical/markdown\";\nimport { $createTextNode, TextNode } from \"lexical\";\nimport { $createDataTableNode, $isDataTableNode, type RowData } from \"../nodes/DataTableNode\";\nimport { HR } from \"../plugins/HorizontalRulePlugin/horizontalRule\";\n\nexport const TABLE: ElementTransformer = {\n dependencies: [],\n export: (node, _traverseChildren) => {\n if ($isDataTableNode(node)) {\n const data = node.getData();\n\n if (!data.length) return \"\";\n\n const headers = Object.keys(data[0]);\n const headerRow = headers.join(\" | \");\n const separator = headers.map(() => \"---\").join(\" | \");\n const dataRows = data.map((row) => headers.map((header) => String(row[header] || \"\")).join(\" | \"));\n\n return [`| ${headerRow} |`, `| ${separator} |`, ...dataRows.map((row) => `| ${row} |`)].join(\"\\n\");\n }\n\n return null;\n },\n regExp: /^\\s*(\\|.+\\|)\\s*$/,\n replace: (parentNode, _children, match, _isImport) => {\n const previousNode = parentNode.getPreviousSibling();\n const isTableDelimiter = /^\\|?\\s*:?-{3,}:?\\s*(?:\\|\\s*:?-{3,}:?\\s*)*\\|?$/gm.test(match[0]);\n\n // if it is a delimiter, remove it\n if (isTableDelimiter) {\n parentNode.remove();\n return;\n }\n\n // Parse current row\n const cells = match[0]\n .split(\"|\")\n .slice(1, -1)\n .map((cell) => cell.trim());\n\n if (previousNode?.getType() === \"data_table\" && $isDataTableNode(previousNode)) {\n // Add row to existing table\n const existingData = previousNode.getData();\n const newRow: RowData = {};\n\n // Check if we have a placeholder row with empty values (created from headers)\n const isPlaceholderRow =\n existingData.length === 1 && Object.values(existingData[0]).every((value) => value === \"\");\n\n // Get headers from existing data structure\n const headers = existingData.length > 0 ? Object.keys(existingData[0]) : cells.map((_, index) => `col_${index}`);\n\n cells.forEach((cell, index) => {\n const header = headers[index] || `col_${index}`;\n newRow[header] = cell;\n });\n\n // If we had a placeholder row, replace it; otherwise append\n const newTableData = isPlaceholderRow ? [newRow] : [...existingData, newRow];\n const newTableNode = $createDataTableNode(newTableData);\n previousNode.replace(newTableNode);\n parentNode.remove();\n } else {\n // Create new table - treat first row as headers\n // Create a temporary empty row with these headers, which will be replaced when actual data comes\n const newRow: RowData = {};\n cells.forEach((cell, index) => {\n newRow[cell || `col_${index}`] = \"\";\n });\n\n const tableNode = $createDataTableNode([newRow]);\n parentNode.replace(tableNode);\n }\n },\n type: \"element\",\n};\n\nexport const UNDERLINE_INS_TAG: TextMatchTransformer = {\n dependencies: [TextNode],\n export: (node, _children) => {\n if (node instanceof TextNode) {\n let markdownText = node.getTextContent();\n\n if (node.hasFormat(\"bold\")) {\n markdownText = `**${markdownText}**`;\n } else if (node.hasFormat(\"italic\")) {\n markdownText = `*${markdownText}*`;\n } else if (node.hasFormat(\"underline\")) {\n markdownText = `<ins>${markdownText}</ins>`;\n } else {\n return null;\n }\n\n return markdownText;\n }\n return null;\n },\n regExp: /<ins>(.*)<\\/ins>/,\n importRegExp: /<ins>(.*)<\\/ins>/,\n replace: (node, match) => {\n const textNode = $createTextNode(match[1]);\n textNode.toggleFormat(\"underline\");\n node.replace(textNode);\n },\n type: \"text-match\",\n};\n\nexport const UNDERLINE_U_TAG: TextMatchTransformer = {\n dependencies: [TextNode],\n export: (_node, _children) => {\n return null;\n },\n regExp: /<u>(.*)<\\/u>/,\n importRegExp: /<u>(.*)<\\/u>/,\n replace: (node, match) => {\n const textNode = $createTextNode(match[1]);\n textNode.toggleFormat(\"underline\");\n node.replace(textNode);\n },\n type: \"text-match\",\n};\n\nconst BARE_URL_REGEXP = /https?:\\/\\/[^\\s<>\"']*[^\\s<>\"'.,:;\"')\\]}]/;\n\nexport const BARE_URL: TextMatchTransformer = {\n dependencies: [AutoLinkNode],\n export: (node, exportChildren) => {\n if (!$isAutoLinkNode(node)) {\n return null;\n }\n\n return exportChildren(node);\n },\n regExp: BARE_URL_REGEXP,\n importRegExp: BARE_URL_REGEXP,\n replace: (textNode, match) => {\n const href = match[0];\n const autoLinkNode = $createAutoLinkNode(href);\n const linkTextNode = $createTextNode(href);\n\n linkTextNode.setFormat(textNode.getFormat());\n autoLinkNode.append(linkTextNode);\n textNode.replace(autoLinkNode);\n },\n type: \"text-match\",\n};\n\nexport const TRANSFORMERS_EXTENDED = [TABLE, HR, UNDERLINE_INS_TAG, UNDERLINE_U_TAG, BARE_URL];\n","import { CodeNode } from \"@lexical/code\";\nimport { AutoLinkNode, LinkNode } from \"@lexical/link\";\nimport { ListItemNode, ListNode } from \"@lexical/list\";\nimport { CHECK_LIST, TRANSFORMERS } from \"@lexical/markdown\";\nimport { HeadingNode, QuoteNode } from \"@lexical/rich-text\";\nimport type { Klass, LexicalNode } from \"lexical\";\nimport { REFERENCE_LINK_TRANSFORMER, ReferenceLinkNode } from \"../markdown-editor/plugins/ReferenceLinkPlugin\";\nimport theme from \"../theme/rich-text-theme\";\nimport { DataTableNode } from \"./nodes/DataTableNode\";\nimport { CodeBlockNode } from \"./plugins/CodePlugin/CodeNode\";\nimport { EquationNode } from \"./plugins/EquationPlugin/EquationNode\";\nimport { EQUATION_INLINE, EQUATION_MULTILINE } from \"./plugins/EquationPlugin/EquationPlugin\";\nimport { HRNode } from \"./plugins/HorizontalRulePlugin/HorizontalRuleNode\";\nimport { TRANSFORMERS_EXTENDED } from \"./transformers/markdown-transformers\";\n\nexport const editorNodes: Array<Klass<LexicalNode>> = [\n QuoteNode,\n LinkNode,\n AutoLinkNode,\n DataTableNode,\n HeadingNode,\n ListNode,\n ListItemNode,\n CodeNode,\n CodeBlockNode,\n EquationNode,\n HRNode,\n ReferenceLinkNode,\n];\n\nexport const editorTransformers = [\n CHECK_LIST,\n ...TRANSFORMERS,\n ...TRANSFORMERS_EXTENDED,\n EQUATION_INLINE,\n EQUATION_MULTILINE,\n REFERENCE_LINK_TRANSFORMER,\n];\n\nexport const editorTheme = theme;\n","import { CodeNode } from \"@lexical/code\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $nodesOfType } from \"lexical\";\nimport { useEffect } from \"react\";\nimport { CodeBlockNode } from \"./CodeNode\";\n\nexport function ImportCodeBlocksPlugin() {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n editor.update(() => {\n const codeNodes = $nodesOfType(CodeNode);\n for (const n of codeNodes) {\n const lang = n.getLanguage() ?? \"plaintext\";\n const code = n.getTextContent();\n n.replace(new CodeBlockNode(lang, code));\n }\n });\n }, [editor]);\n\n return null;\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useEffect } from \"react\";\n\nexport default function ToggleEditablePlugin({ isEditable }: { isEditable: boolean }) {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n editor.setEditable(isEditable);\n }, [isEditable, editor]);\n\n return null;\n}\n","import { Box } from \"@chakra-ui/react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { TreeView } from \"@lexical/react/LexicalTreeView\";\n\nexport function TreeViewPlugin() {\n const [editor] = useLexicalComposerContext();\n return (\n <Box fontSize=\"xs\" color=\"fg.muted\" padding=\"4\">\n <TreeView\n treeTypeButtonClassName=\"debug-treetype-button\"\n timeTravelButtonClassName=\"debug-timetravel-button\"\n timeTravelPanelButtonClassName=\"debug-timetravel-button\"\n timeTravelPanelClassName=\"debug-timetravel-panel\"\n timeTravelPanelSliderClassName=\"debug-timetravel-slider\"\n viewClassName=\"tree-view-output\"\n editor={editor}\n />\n </Box>\n );\n}\n","const FRONTMATTER_PATTERN = /^---\\s*\\n([\\s\\S]*?)\\n---\\s*(?:\\n|$)/;\n\nexport function splitFrontmatter(content: string) {\n const match = content.match(FRONTMATTER_PATTERN);\n if (!match) {\n return { frontmatter: \"\", body: content };\n }\n return {\n frontmatter: match[0],\n body: content.slice(match[0].length),\n };\n}\n","export const FOCUS_EDITOR = \"FOCUS_EDITOR\";\nexport const UPLOAD_FILE = \"UPLOAD_FILE\";\nexport const OPEN_CONTEXT = \"OPEN_CONTEXT\";\nexport const DROP_EVENT = \"DROP_EVENT\";\n\n// prompt actions\nexport const RUN_PROMPT = \"RUN_PROMPT\";\nexport const UPDATE_FORMAT = \"UPDATE_FORMAT\";\nexport const UPDATE_BEHAVIOR = \"UPDATE_BEHAVIOR\";\nexport const INSERT_PROMPT = \"INSERT_PROMPT\";\nexport const RENAME_PROMPT = \"RENAME_PROMPT\";\nexport const DUPLICATE_PROMPT = \"DUPLICATE_PROMPT\";\nexport const DELETE_PROMPT = \"DELETE_PROMPT\";\n\n// reference actions\nexport const DELETE_REFERENCES = \"DELETE_REFERENCES\";\nexport const RENAME_REFERENCES = \"RENAME_REFERENCES\";\nexport const INSERT_REFERENCE = \"INSERT_REFERENCE\";\n\n// block actions\nexport const INSERT_BLOCK = \"INSERT_BLOCK\";\n","import { createCommand } from \"lexical\";\nimport {\n DELETE_PROMPT,\n DELETE_REFERENCES,\n DUPLICATE_PROMPT,\n INSERT_BLOCK,\n INSERT_PROMPT,\n INSERT_REFERENCE,\n OPEN_CONTEXT,\n RENAME_PROMPT,\n RENAME_REFERENCES,\n RUN_PROMPT,\n UPDATE_BEHAVIOR,\n UPDATE_FORMAT,\n UPLOAD_FILE,\n} from \"./events\";\n\nexport const UPLOAD_FILE_COMMAND = createCommand(UPLOAD_FILE);\nexport const OPEN_CONTEXT_COMMAND = createCommand(OPEN_CONTEXT);\n\n// prompt actions\nexport const RUN_PROMPT_COMMAND = createCommand(RUN_PROMPT);\nexport const UPDATE_FORMAT_COMMAND = createCommand(UPDATE_FORMAT);\nexport const UPDATE_BEHAVIOR_COMMAND = createCommand(UPDATE_BEHAVIOR);\nexport const INSERT_PROMPT_COMMAND = createCommand(INSERT_PROMPT);\nexport const RENAME_PROMPT_COMMAND = createCommand(RENAME_PROMPT);\nexport const DUPLICATE_PROMPT_COMMAND = createCommand(DUPLICATE_PROMPT);\nexport const DELETE_PROMPT_COMMAND = createCommand(DELETE_PROMPT);\n\n// reference actions\nexport const DELETE_REFERENCES_COMMAND = createCommand(DELETE_REFERENCES);\nexport const RENAME_REFERENCES_COMMAND = createCommand(RENAME_REFERENCES);\nexport const INSERT_REFERENCE_COMMAND = createCommand(INSERT_REFERENCE);\n\n// block actions\nexport const INSERT_BLOCK_COMMAND = createCommand(INSERT_BLOCK);\n\n// placeholder actions\nexport const INSERT_NEW_FILE_PLACEHOLDER = \"INSERT_NEW_FILE_PLACEHOLDER\";\nexport const INSERT_NEW_TEXT_PLACEHOLDER = \"INSERT_NEW_TEXT_PLACEHOLDER\";\nexport const INSERT_PLACEHOLDER_REFERENCE = \"INSERT_PLACEHOLDER_REFERENCE\";\nexport const INSERT_NEW_FILE_PLACEHOLDER_COMMAND = createCommand(INSERT_NEW_FILE_PLACEHOLDER);\nexport const INSERT_NEW_TEXT_PLACEHOLDER_COMMAND = createCommand(INSERT_NEW_TEXT_PLACEHOLDER);\nexport const INSERT_PLACEHOLDER_REFERENCE_COMMAND = createCommand(INSERT_PLACEHOLDER_REFERENCE);\n","import { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n $createParagraphNode,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n ElementNode,\n isHTMLElement,\n type LexicalEditor,\n type LexicalNode,\n type ParagraphNode,\n type RangeSelection,\n type SerializedElementNode,\n} from \"lexical\";\n\nexport type SerializedCommentNode = SerializedElementNode;\n\nfunction convertCommentElement(element: HTMLElement): DOMConversionOutput {\n const node = $createCommentNode();\n if (element.style !== null) {\n node.setFormat(element.style.textAlign as ElementFormatType);\n }\n return { node };\n}\n\nexport class CommentNode extends ElementNode {\n static getType(): string {\n return \"comment\";\n }\n\n static clone(node: CommentNode): CommentNode {\n return new CommentNode(node.__key);\n }\n\n createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement(\"blockquote\");\n addClassNamesToElement(element, config.theme.comment);\n return element;\n }\n\n updateDOM(): boolean {\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => ({\n conversion: convertCommentElement,\n priority: 0,\n }),\n };\n }\n\n exportDOM(editor: LexicalEditor): DOMExportOutput {\n const { element } = super.exportDOM(editor);\n\n if (element && isHTMLElement(element)) {\n if (this.isEmpty()) {\n element.append(document.createElement(\"br\"));\n }\n\n const formatType = this.getFormatType();\n element.style.textAlign = formatType;\n\n const direction = this.getDirection();\n if (direction) {\n element.dir = direction;\n }\n }\n\n return {\n element,\n };\n }\n\n static importJSON(serializedNode: SerializedCommentNode): CommentNode {\n const node = $createCommentNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n exportJSON(): SerializedElementNode {\n return {\n ...super.exportJSON(),\n type: \"comment\",\n };\n }\n\n getTextContent(): string {\n const originalText = super.getTextContent();\n // escape { and } symbols\n const withEscapedReferences = originalText.replace(/([{}])/g, \"\\\\$1\");\n return `{{! ${withEscapedReferences} }}`;\n }\n\n // mutation\n\n insertNewAfter(_: RangeSelection, restoreSelection?: boolean): ParagraphNode {\n const newBlock = $createParagraphNode();\n const direction = this.getDirection();\n newBlock.setDirection(direction);\n this.insertAfter(newBlock, restoreSelection);\n return newBlock;\n }\n\n collapseAtStart(): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach((child) => {\n paragraph.append(child);\n });\n this.replace(paragraph);\n return true;\n }\n}\n\nexport function $createCommentNode(): CommentNode {\n return new CommentNode();\n}\n\nexport function $isCommentNode(node: LexicalNode | null | undefined): node is CommentNode {\n return node instanceof CommentNode;\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { $setBlocksType } from \"@lexical/selection\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport { $getSelection, $isRangeSelection, COMMAND_PRIORITY_LOW, type TextNode } from \"lexical\";\nimport { useEffect } from \"react\";\nimport { INSERT_BLOCK_COMMAND } from \"../../../commands\";\nimport { $createCommentNode } from \"../nodes/CommentNode/CommentNode\";\n\nexport const insertCommentBlock = (_blockType: string, nodeToReplace?: TextNode) => {\n const selection = $getSelection();\n const commentNode = $createCommentNode();\n\n if (nodeToReplace) {\n const nodeParent = nodeToReplace.getParent();\n nodeParent?.replace(commentNode, true);\n nodeToReplace.remove();\n commentNode.selectEnd();\n return;\n }\n\n if ($isRangeSelection(selection)) {\n $setBlocksType(selection, $createCommentNode);\n }\n};\n\ntype InsertBlockEvent = {\n optionId: string;\n nodeToReplace?: TextNode;\n};\n\nexport function useCommentCommands(): null {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n INSERT_BLOCK_COMMAND,\n (event: InsertBlockEvent) => {\n const { optionId, nodeToReplace } = event;\n insertCommentBlock(optionId, nodeToReplace);\n return false;\n },\n COMMAND_PRIORITY_LOW,\n ),\n );\n }, [editor]);\n\n return null;\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport { $createParagraphNode } from \"lexical\";\nimport { useEffect } from \"react\";\nimport { CommentNode } from \"../nodes/CommentNode/CommentNode\";\n\nexport const useCommentSchema = () => {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n return mergeRegister(\n editor.registerNodeTransform(CommentNode, (node) => {\n const children = node.getChildren();\n\n /**\n * Comment nodes cannot have other comments as children\n */\n const invalidChildren = children.filter((child) => child.getType() === \"comment\");\n\n if (invalidChildren.length > 0) {\n editor.update(() => {\n invalidChildren.forEach((child) => {\n child.replace($createParagraphNode(), true);\n });\n });\n }\n }),\n );\n }, [editor]);\n};\n","import { useCommentCommands } from \"./hooks/useCommentCommands\";\nimport { useCommentSchema } from \"./hooks/useCommentSchema\";\n\nexport function CommentPlugin(): null {\n useCommentSchema();\n useCommentCommands();\n return null;\n}\n","import { $getRoot, $isElementNode, ElementNode, type Klass, type LexicalNode, type RootNode } from \"lexical\";\n\nexport function $getAllNodesOfType<T extends LexicalNode>(nodeType: Klass<T>) {\n const root = $getRoot();\n const nodesOfType: T[] = [];\n\n const traverse = (node: LexicalNode) => {\n if (node instanceof nodeType) {\n nodesOfType.push(node as T);\n }\n if (node instanceof ElementNode) {\n node.getChildren?.().forEach(traverse);\n }\n };\n\n traverse(root);\n return nodesOfType;\n}\n\nexport const $getTextContent = (root: RootNode) => {\n let textContent = \"\";\n const children = root.getChildren();\n const childrenLength = children.length;\n for (let i = 0; i < childrenLength; i++) {\n const child = children[i];\n textContent += child.getTextContent();\n if ($isElementNode(child) && i !== childrenLength - 1 && !child.isInline()) {\n textContent += \"\\n\";\n }\n }\n return textContent;\n};\n\ntype SerializedNode = {\n type?: string;\n text?: string;\n name?: string;\n referenceId?: string;\n children?: SerializedNode[];\n};\n\ntype SerializedRoot = {\n root?: SerializedNode;\n};\n\nconst getReferenceMarker = (node: SerializedNode) => {\n if (node.type !== \"reference\") return null;\n return `#${node.name ?? node.referenceId ?? \"\"}`;\n};\n\nconst shouldAppendParagraphBreak = (node: SerializedNode) => {\n return node.type === \"paragraph\" && Boolean(node.children?.length);\n};\n\nconst traverseSerializedNode = (node: SerializedNode): string => {\n if (node.type === \"comment\") {\n return \"\";\n }\n\n const referenceMarker = getReferenceMarker(node);\n if (referenceMarker !== null) {\n return referenceMarker;\n }\n\n let text = typeof node.text === \"string\" ? node.text : \"\";\n const children = node.children;\n if (!Array.isArray(children)) return text;\n\n const childrenLength = children.length;\n for (let i = 0; i < childrenLength; i += 1) {\n const child = children[i];\n if (child.type === \"comment\") {\n if (i !== childrenLength - 1) {\n text += \"\\n\";\n }\n continue;\n }\n\n text += traverseSerializedNode(child);\n if (shouldAppendParagraphBreak(child)) {\n text += \"\\n\";\n }\n }\n\n return text;\n};\n\nexport const getTextFromSerializedEditorState = (state: string): string => {\n try {\n const parsed = JSON.parse(state) as SerializedRoot;\n return traverseSerializedNode(parsed.root ?? {});\n } catch {\n return \"\";\n }\n};\n\nexport const emptyEditorState = {\n root: {\n direction: \"ltr\",\n format: \"\",\n indent: 0,\n type: \"root\",\n version: 1,\n children: [\n {\n type: \"paragraph\",\n version: 1,\n format: \"\",\n indent: 0,\n textFormat: undefined,\n direction: null,\n children: [],\n },\n ],\n },\n};\n\nexport function generateEditorStateFromString(input = \"\") {\n if (!input.trim()) {\n return JSON.parse(JSON.stringify(emptyEditorState));\n }\n\n // Split on line breaks → one paragraph per line\n const paragraphs = input.split(/\\r?\\n/);\n\n const children = paragraphs.map((line) => ({\n type: \"paragraph\",\n version: 1,\n format: \"\",\n indent: 0,\n textFormat: undefined,\n direction: null,\n children: line\n ? [\n {\n type: \"text\",\n version: 1,\n text: line,\n format: \"\",\n detail: 0,\n mode: \"normal\",\n style: \"\",\n },\n ]\n : [],\n }));\n\n return {\n root: {\n direction: \"ltr\",\n format: \"\",\n indent: 0,\n type: \"root\",\n version: 1,\n children,\n },\n };\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useImperativeHandle } from \"react\";\nimport { generateEditorStateFromString, getTextFromSerializedEditorState } from \"../utils\";\n\nexport interface PromptEditorRef {\n setEditorValue: (value: string) => void;\n}\n\nexport function ImperativeAPIPlugin({\n editorRef,\n previousTextRef,\n}: {\n editorRef: React.ForwardedRef<PromptEditorRef>;\n previousTextRef: React.MutableRefObject<string>;\n}) {\n const [editor] = useLexicalComposerContext();\n\n useImperativeHandle(\n editorRef,\n () => ({\n setEditorValue: (value: string) => {\n const state = editor.parseEditorState(JSON.stringify(generateEditorStateFromString(value)));\n editor.setEditorState(state);\n previousTextRef.current = getTextFromSerializedEditorState(value);\n editor.focus(undefined, { defaultSelection: \"rootEnd\" });\n },\n }),\n [editor, previousTextRef],\n );\n\n return null;\n}\n","type KeyDownLikeEvent = {\n key: string;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n};\n\nexport const shouldSubmitOnEnter = (event: KeyDownLikeEvent) => {\n if (event.key !== \"Enter\") return false;\n\n return !event.ctrlKey && !event.metaKey && !event.shiftKey && !event.altKey;\n};\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { COMMAND_PRIORITY_HIGH, KEY_DOWN_COMMAND } from \"lexical\";\nimport { useEffect } from \"react\";\nimport { shouldSubmitOnEnter } from \"./keyboard-shortcuts\";\n\nexport interface KeyboardShortcutPluginProps {\n onSubmit?: () => void;\n}\n\nexport function KeyboardShortcutPlugin({ onSubmit }: KeyboardShortcutPluginProps) {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n return editor.registerCommand(\n KEY_DOWN_COMMAND,\n (event: KeyboardEvent) => {\n if (shouldSubmitOnEnter(event)) {\n event.preventDefault();\n onSubmit?.();\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_HIGH,\n );\n }, [editor, onSubmit]);\n\n return null;\n}\n","import type { MenuOptionGroup } from \"./ReferenceMenuOption\";\n\nexport const menuSortOrder: MenuOptionGroup[] = [\"table\", \"connector\"];\n","import { menuSortOrder } from \"../constants\";\nimport type { MenuOptionGroup, ReferenceMenuOption } from \"../ReferenceMenuOption\";\n\nexport const getSortedMenuOptions = (options: ReferenceMenuOption[]) => {\n const sortedOptions = options\n .sort((a, b) => menuSortOrder.indexOf(a.group) - menuSortOrder.indexOf(b.group))\n .map((option, index) => ({ ...option, index }) as ReferenceMenuOption);\n\n const groupedOptions = sortedOptions.reduce(\n (acc, option) => {\n const bucket = acc[option.group] ?? [];\n bucket.push(option);\n acc[option.group] = bucket;\n return acc;\n },\n {} as Record<MenuOptionGroup, ReferenceMenuOption[]>,\n );\n\n return groupedOptions;\n};\n","import { Flex, Text, Tooltip } from \"@chakra-ui/react\";\n\ninterface ReferenceMenuItemProps {\n id: string;\n isSelected: boolean;\n onClick: () => void;\n onMouseEnter: () => void;\n primaryLabel: string;\n secondaryLabel?: string;\n setRefElement: (element: HTMLDivElement) => void;\n tabIndex: number;\n}\n\nexport function ReferenceMenuItem(props: ReferenceMenuItemProps) {\n const { id, isSelected, onClick, onMouseEnter, setRefElement, secondaryLabel, primaryLabel, tabIndex = -1 } = props;\n\n return (\n <Flex\n direction=\"column\"\n cursor=\"pointer\"\n gap=\"2xs\"\n padding=\"2xs\"\n paddingX=\"sm\"\n bg={isSelected ? \"bg.active\" : \"transparent\"}\n _hover={{ bg: isSelected ? \"bg.active\" : \"bg.hover\" }}\n tabIndex={tabIndex}\n ref={setRefElement}\n role=\"option\"\n aria-selected={isSelected}\n id={id}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n >\n <Tooltip.Root>\n <Tooltip.Trigger>\n <Text mt=\"1px\" lineClamp={1} textOverflow=\"ellipsis\" textStyle=\"label/M/regular\">\n {primaryLabel}\n </Text>\n </Tooltip.Trigger>\n <Tooltip.Positioner>\n <Tooltip.Content>{primaryLabel}</Tooltip.Content>\n </Tooltip.Positioner>\n </Tooltip.Root>\n {secondaryLabel && (\n <Text lineClamp={2} textOverflow=\"ellipsis\" textStyle=\"label/S/regular\" color=\"fg.muted\">\n {secondaryLabel}\n </Text>\n )}\n </Flex>\n );\n}\n","import { Box, Text } from \"@chakra-ui/react\";\nimport { useEffect } from \"react\";\nimport type { ReferenceMenuOption } from \"../../ReferenceMenuOption\";\nimport { getSortedMenuOptions } from \"../../utils/getSortedMenuOptions\";\nimport { ReferenceMenuItem } from \"./ReferenceMenuItem\";\n\ninterface ReferenceMenuProps {\n options: ReferenceMenuOption[];\n selectedIndex: number | null;\n onSelectItem: (option: ReferenceMenuOption, index: number) => void;\n onMouseEnterItem: (index: number) => void;\n}\n\nexport const ReferenceMenu = (props: ReferenceMenuProps) => {\n const { options, selectedIndex, onSelectItem, onMouseEnterItem } = props;\n const { table = [], connector = [] } = getSortedMenuOptions(options);\n\n const hasResults = [...table, ...connector].length;\n\n /** scroll to the selected item if necessary */\n useEffect(() => {\n document\n .getElementById(`typeahead-item-${selectedIndex}`)\n ?.scrollIntoView({ behavior: \"instant\", block: \"nearest\" });\n }, [selectedIndex]);\n\n return (\n <Box\n zIndex=\"1000\"\n position=\"absolute\"\n layerStyle=\"modal\"\n overflow=\"auto\"\n maxHeight={\"24rem\"}\n minWidth={{\n base: \"100vw\",\n md: \"264px\",\n }}\n >\n {!hasResults && <Text>No results</Text>}\n {!!table.length && (\n <>\n <Text paddingTop=\"xs\" paddingBottom=\"2xs\" paddingX=\"sm\" color=\"fg.muted\" textStyle=\"label/S/medium\">\n Tables\n </Text>\n <Box>\n {table.map((option) => {\n return (\n <ReferenceMenuItem\n id={`typeahead-item-${option.index}`}\n isSelected={selectedIndex === option.index}\n onClick={() => onSelectItem(option, option.index)}\n onMouseEnter={() => onMouseEnterItem(option.index)}\n key={option.id}\n primaryLabel={option.name}\n secondaryLabel={option.description}\n setRefElement={option.setRefElement}\n tabIndex={-1}\n />\n );\n })}\n </Box>\n </>\n )}\n {!!connector.length && (\n <>\n <Text paddingTop=\"xs\" paddingBottom=\"2xs\" paddingX=\"sm\" color=\"fg.muted\" textStyle=\"label/S/medium\">\n Data Sources\n </Text>\n <Box>\n {connector.map((option) => {\n return (\n <ReferenceMenuItem\n id={`typeahead-item-${option.index}`}\n isSelected={selectedIndex === option.index}\n onClick={() => onSelectItem(option, option.index)}\n onMouseEnter={() => onMouseEnterItem(option.index)}\n key={option.id}\n primaryLabel={option.name}\n secondaryLabel={option.description}\n setRefElement={option.setRefElement}\n tabIndex={-1}\n />\n );\n })}\n </Box>\n </>\n )}\n </Box>\n );\n};\n","import type { ReferenceMenuOption } from \"../ReferenceMenuOption\";\n\nconst localFilter = (data: ReferenceMenuOption[], q: string) =>\n data.filter((m) => m.name.replace(/ /g, \"_\").toLowerCase().includes(q.toLowerCase()));\n\n/**\n * Search across all resources and menu options\n *\n * @param queryString\n * @returns\n */\nexport function useContextLookup(\n queryString: string | null,\n items: {\n resourceId: string;\n resourceType: \"table\" | \"connector\";\n name: string;\n description?: string;\n }[] = [],\n) {\n const baseOptions: ReferenceMenuOption[] = items.map(\n (res, index): ReferenceMenuOption => ({\n id: res.resourceId,\n key: res.resourceId,\n index,\n group: res.resourceType,\n name: res.name,\n description: res.description,\n setRefElement: () => {},\n }),\n );\n\n if (queryString == null || queryString === \"\") {\n return baseOptions;\n }\n\n return localFilter(baseOptions, queryString);\n}\n","import type { MenuTextMatch } from \"@lexical/react/LexicalTypeaheadMenuPlugin\";\n\nconst VALID_PUNCTUATION = \"\\\\.\\\\-<>_:\";\nconst TRIGGERS = [\"#\"].join(\"\");\n\nconst VALID_CHARS = `[^${TRIGGERS}${VALID_PUNCTUATION}\\\\s]`;\nconst VALID_JOINS = `(?:[${VALID_PUNCTUATION}]|)`;\n\nconst LENGTH_LIMIT = 75;\n\nconst TriggerRegex = new RegExp(`(^|\\\\s|\\\\()([${TRIGGERS}]((?:${VALID_CHARS}${VALID_JOINS}){0,${LENGTH_LIMIT}}))$`);\n\nconst AliasRegex = new RegExp(`(^|\\\\s|\\\\()([${TRIGGERS}]((?:${VALID_CHARS}){0,${LENGTH_LIMIT}}))$`);\n\n/**\n * lexical will run this function on text nodes\n *\n * @param text\n * @param minMatchLength\n * @returns\n */\nexport function checkForTriggers(text: string, minMatchLength: number): MenuTextMatch | null {\n let match = TriggerRegex.exec(text);\n\n if (match === null) {\n match = AliasRegex.exec(text);\n }\n\n if (match !== null) {\n // The strategy ignores leading whitespace but we need to know it's\n // length to add it to the leadOffset\n const maybeLeadingWhitespace = match[1];\n const matchingString = match[3];\n\n if (matchingString.length >= minMatchLength) {\n return {\n leadOffset: match.index + maybeLeadingWhitespace.length,\n matchingString,\n replaceableString: match[2],\n };\n }\n }\n\n return null;\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { LexicalTypeaheadMenuPlugin } from \"@lexical/react/LexicalTypeaheadMenuPlugin\";\nimport type { TextNode } from \"lexical\";\nimport { useState } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { INSERT_REFERENCE_COMMAND } from \"../../commands\";\nimport { ReferenceMenu } from \"./components/ReferenceMenu/ReferenceMenu\";\nimport { useContextLookup } from \"./hooks/useContextLookup\";\nimport type { ReferenceMenuOption } from \"./ReferenceMenuOption\";\nimport { checkForTriggers } from \"./utils/checkForTriggers\";\n\nconst SUGGESTION_LIST_LENGTH_LIMIT = 20;\n\ntype Props = {\n items?: Array<{\n resourceId: string;\n resourceType: \"table\" | \"connector\";\n name: string;\n description?: string;\n }>;\n};\n\nexport function ReferenceMenuPlugin({ items = [] }: Props) {\n const [queryString, setQueryString] = useState<string | null>(null);\n const [editor] = useLexicalComposerContext();\n const searchResults = useContextLookup(queryString, items);\n\n /**\n * triggers when the user selects an option in the context menu\n */\n const onSelectOption = (\n selectedOption: ReferenceMenuOption,\n nodeToReplace: TextNode | null,\n closeMenu: () => void,\n ) => {\n editor.update(() => {\n if (!nodeToReplace) return;\n\n editor.dispatchCommand(INSERT_REFERENCE_COMMAND, {\n resourceId: selectedOption.id,\n resourceType: selectedOption.group,\n name: selectedOption.name,\n nodeToReplace,\n });\n\n closeMenu();\n });\n };\n\n /**\n * checks text nodes and return nodes matching the trigger\n */\n const checkForTrigger = (text: string) => {\n return checkForTriggers(text, 0);\n };\n\n /**\n * define the options to display in the context menu\n */\n const menuOptions = searchResults.slice(0, SUGGESTION_LIST_LENGTH_LIMIT);\n\n return (\n <LexicalTypeaheadMenuPlugin<ReferenceMenuOption>\n onQueryChange={setQueryString}\n onSelectOption={onSelectOption}\n triggerFn={checkForTrigger}\n options={menuOptions}\n menuRenderFn={(anchorElementRef, { options, selectedIndex, selectOptionAndCleanUp, setHighlightedIndex }) => {\n if (!anchorElementRef.current) return null;\n return ReactDOM.createPortal(\n <ReferenceMenu\n options={options}\n selectedIndex={selectedIndex}\n onSelectItem={(option, i) => {\n setHighlightedIndex(i);\n selectOptionAndCleanUp(option);\n }}\n onMouseEnterItem={(i) => {\n setHighlightedIndex(i);\n }}\n />,\n anchorElementRef.current,\n );\n }}\n />\n );\n}\n","import { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n type DOMExportOutput,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n type SerializedTextNode,\n type Spread,\n TextNode,\n} from \"lexical\";\n\ntype SerializedReferenceNode = Spread<\n {\n referenceId: string;\n name: string;\n },\n SerializedTextNode\n>;\n\nexport class ReferenceNode extends TextNode {\n __referenceId: string;\n __name: string;\n\n static getType(): string {\n return \"reference\";\n }\n\n static clone(node: ReferenceNode): ReferenceNode {\n return new ReferenceNode(node.__referenceId, node.__name, node.__key);\n }\n\n constructor(referenceId: string, name: string, key?: NodeKey) {\n super(name, key);\n this.__referenceId = referenceId;\n this.__name = name;\n }\n\n isKeyboardSelectable(): boolean {\n return false;\n }\n\n canBeEmpty(): boolean {\n return false;\n }\n\n canInsertTextAfter(): boolean {\n return false;\n }\n\n canInsertTextBefore(): boolean {\n return false;\n }\n\n createDOM(config: EditorConfig): HTMLElement {\n const span = document.createElement(\"span\");\n addClassNamesToElement(span, config.theme.reference);\n span.setAttribute(\"data-reference-id\", this.__referenceId);\n span.setAttribute(\"data-name\", this.__name);\n span.textContent = `#${this.__name}`;\n return span;\n }\n\n updateDOM(prevNode: ReferenceNode, dom: HTMLElement): boolean {\n if (prevNode.__name !== this.__name || prevNode.__referenceId !== this.__referenceId) {\n dom.setAttribute(\"data-reference-id\", this.__referenceId);\n dom.setAttribute(\"data-name\", this.__name);\n dom.textContent = `#${this.__name}`;\n }\n\n return false;\n }\n\n exportDOM(_editor: LexicalEditor): DOMExportOutput {\n const el = document.createElement(\"span\");\n el.setAttribute(\"data-reference-id\", this.__referenceId);\n el.setAttribute(\"data-name\", this.__name);\n el.textContent = `#${this.__name}`;\n return { element: el };\n }\n\n static importJSON(serializedNode: SerializedReferenceNode): ReferenceNode {\n const node = new ReferenceNode(serializedNode.referenceId, serializedNode.name);\n return node;\n }\n\n exportJSON(): SerializedReferenceNode {\n return {\n ...super.exportJSON(),\n type: \"reference\",\n referenceId: this.__referenceId,\n name: this.__name,\n };\n }\n\n getTextContent(): string {\n return `#${this.__name}`;\n }\n}\n\nexport function $createReferenceNode(referenceId: string, name: string): ReferenceNode {\n return new ReferenceNode(referenceId, name);\n}\n\nexport function $isReferenceNode(node: LexicalNode | null | undefined): node is ReferenceNode {\n return node instanceof ReferenceNode;\n}\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport { COMMAND_PRIORITY_LOW, type LexicalNode } from \"lexical\";\nimport { type PropsWithChildren, useEffect } from \"react\";\nimport { INSERT_REFERENCE_COMMAND } from \"../../commands\";\nimport { $createReferenceNode } from \"./nodes/ReferenceNode/ReferenceNode\";\n\nexport const $insertExistingReference = (nodeToReplace: LexicalNode, resourceId: string, name: string) => {\n const refNode = $createReferenceNode(resourceId, name);\n\n if (nodeToReplace) {\n nodeToReplace?.replace(refNode);\n nodeToReplace.remove();\n refNode.selectEnd();\n return;\n }\n};\n\nexport function ReferencePlugin(\n props: PropsWithChildren<{ onAddReference?: (resourceId: string, resourceType: \"table\" | \"connector\") => void }>,\n) {\n const { onAddReference } = props;\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n INSERT_REFERENCE_COMMAND,\n (event: {\n resourceId: string;\n resourceType: \"table\" | \"connector\";\n name: string;\n nodeToReplace: LexicalNode;\n }) => {\n const { resourceId, resourceType, name, nodeToReplace } = event;\n\n editor.update(() => {\n $insertExistingReference(nodeToReplace, resourceId, name);\n });\n\n onAddReference?.(resourceId, resourceType);\n return true;\n },\n COMMAND_PRIORITY_LOW,\n ),\n );\n }, [editor, onAddReference]);\n\n return null;\n}\n","import type { EditorThemeClasses } from \"lexical\";\nimport baseTheme from \"../../theme/rich-text-theme\";\nimport \"./prompt-input-theme.css\";\n\nconst promptInputTheme: EditorThemeClasses = {\n ...baseTheme,\n // Override paragraph class to remove margins specifically for prompt input\n paragraph: \"rich-text__p rich-text__p--no-margin\",\n};\n\nexport default promptInputTheme;\n","import { Flex, Kbd, Text } from \"@chakra-ui/react\";\nimport { MarkNode } from \"@lexical/mark\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { LexicalErrorBoundary } from \"@lexical/react/LexicalErrorBoundary\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { $getRoot } from \"lexical\";\nimport type { ReactElement } from \"react\";\nimport { type ForwardRefRenderFunction, forwardRef, useRef } from \"react\";\nimport { ContentEditable } from \"../shared/components/content-editable\";\nimport ToggleEditablePlugin from \"../shared/plugins/ToggleEditablePlugin\";\nimport { TreeViewPlugin } from \"../shared/plugins/TreeViewPlugin/TreeViewPlugin\";\nimport { CommentPlugin } from \"./plugins/CommentPlugin/CommentPlugin\";\nimport { CommentNode } from \"./plugins/CommentPlugin/nodes/CommentNode/CommentNode\";\nimport { ImperativeAPIPlugin, type PromptEditorRef } from \"./plugins/ImperativeAPIPlugin\";\nimport { KeyboardShortcutPlugin } from \"./plugins/KeyboardShortcutPlugin\";\nimport { ReferenceMenuPlugin } from \"./plugins/ReferenceMenuPlugin/ReferenceMenuPlugin\";\nimport { ReferenceNode } from \"./plugins/ReferencePlugin/nodes/ReferenceNode/ReferenceNode\";\nimport { ReferencePlugin } from \"./plugins/ReferencePlugin/ReferencePlugin\";\nimport theme from \"./theme/prompt-input-theme\";\nimport { $getTextContent, getTextFromSerializedEditorState } from \"./utils\";\n\nexport type ReferenceItem = {\n resourceId: string;\n resourceType: \"table\" | \"connector\";\n name: string;\n description?: string;\n};\n\nexport interface PromptEditorProps {\n defaultState: string;\n debug?: boolean;\n isEditable?: boolean;\n placeholder?: ReactElement | ((isEditable: boolean) => ReactElement | null);\n onChange?: (text: string, state: object) => void;\n onError?: (error: Error) => void;\n onSubmit?: () => void;\n /** Dynamic list of references (tables, connectors) shown when typing # */\n references?: ReferenceItem[];\n /** Optional app callback when a reference is inserted */\n onAddReference?: (resourceId: string, resourceType: \"table\" | \"connector\") => void;\n}\n\nconst nodes = [CommentNode, MarkNode, ReferenceNode];\n\nexport const BasePromptEditor: ForwardRefRenderFunction<PromptEditorRef, PromptEditorProps> = (props, ref) => {\n const { defaultState, debug = false, isEditable = true, placeholder } = props;\n const { onChange, onError = () => {}, onSubmit, references = [], onAddReference } = props;\n\n const initialConfig = {\n namespace: \"PROMPT_EDITOR\",\n nodes,\n editorState: defaultState,\n editable: isEditable,\n onError,\n theme,\n };\n\n const previousTextRef = useRef<string>(getTextFromSerializedEditorState(defaultState));\n const placeholderNode: ReactElement | ((isEditable: boolean) => ReactElement | null) = placeholder ?? (\n <Text textStyle=\"label/M/regular\" color=\"fg.subtle\" pointerEvents=\"none\" position=\"absolute\" top=\"0\">\n Type your query here or press <Kbd color=\"fg.subtle\">#</Kbd> to add a reference.\n </Text>\n );\n\n return (\n <Flex direction=\"column\" justifyContent=\"space-between\" width=\"100%\" position=\"relative\">\n <LexicalComposer initialConfig={initialConfig}>\n <HistoryPlugin />\n <RichTextPlugin\n contentEditable={<ContentEditable fullWidth />}\n placeholder={placeholderNode}\n ErrorBoundary={LexicalErrorBoundary}\n />\n <OnChangePlugin\n ignoreSelectionChange\n ignoreHistoryMergeTagChange={false}\n onChange={(editorState) => {\n editorState.read(() => {\n // handle comment blocks properly\n const root = $getRoot();\n const rawText = $getTextContent(root);\n\n if (rawText !== previousTextRef.current) {\n previousTextRef.current = rawText;\n onChange?.(rawText, editorState.toJSON());\n }\n });\n }}\n />\n <ImperativeAPIPlugin editorRef={ref} previousTextRef={previousTextRef} />\n <ToggleEditablePlugin isEditable={isEditable} />\n <CommentPlugin />\n <KeyboardShortcutPlugin onSubmit={onSubmit} />\n <ReferenceMenuPlugin items={references} />\n <ReferencePlugin onAddReference={onAddReference} />\n {debug ? <TreeViewPlugin /> : \"\"}\n </LexicalComposer>\n </Flex>\n );\n};\n\nexport const PromptEditor = forwardRef(BasePromptEditor);\n\nexport type { PromptEditorRef } from \"./plugins/ImperativeAPIPlugin\";\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useEffect } from \"react\";\n\ntype StateUpdatePluginProps = {\n value: string;\n onUpdate: (value: string) => void;\n};\n\nexport default function StateUpdatePlugin({ value, onUpdate }: StateUpdatePluginProps) {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n editor.update(() => onUpdate(value), { tag: \"history-merge\" });\n }, [value, editor, onUpdate]);\n\n return null;\n}\n","import { Box } from \"@chakra-ui/react\";\nimport {\n DecoratorNode,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n type SerializedLexicalNode,\n type Spread,\n} from \"lexical\";\nimport type { ReactElement } from \"react\";\nimport { ResourceBadge } from \"../../../../resource-badge\";\n\nexport type SerializedReferenceLinkNode = Spread<\n {\n href: string;\n label?: string;\n },\n SerializedLexicalNode\n>;\n\nexport class ReferenceLinkNode extends DecoratorNode<ReactElement> {\n __href: string;\n __label?: string;\n\n static getType(): string {\n return \"reference-link\";\n }\n\n static clone(node: ReferenceLinkNode): ReferenceLinkNode {\n return new ReferenceLinkNode(node.__href, node.__label, node.__key);\n }\n\n constructor(href: string, label?: string, key?: NodeKey) {\n super(key);\n this.__href = href;\n this.__label = label;\n }\n\n createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement {\n return document.createElement(\"span\");\n }\n\n updateDOM(_prevNode: ReferenceLinkNode, _dom: HTMLElement, _config: EditorConfig): boolean {\n return false;\n }\n\n getTextContent(): string {\n const label = this.__label ?? this.__href;\n return `{{link('${label}')}}`;\n }\n\n exportJSON(): SerializedReferenceLinkNode {\n return {\n type: ReferenceLinkNode.getType(),\n version: 1,\n href: this.__href,\n label: this.__label,\n };\n }\n\n static importJSON(serializedNode: SerializedReferenceLinkNode): ReferenceLinkNode {\n return $createReferenceLinkNode(serializedNode.href, serializedNode.label);\n }\n\n decorate(_editor: LexicalEditor, _config: EditorConfig): ReactElement {\n const href = this.__href;\n const fileName = href.split(\"/\").pop();\n const label = fileName || \"unknown\";\n const isExternal = /^https?:\\/\\//i.test(href);\n const isProjectFile = /^#?\\$PROJECT\\//i.test(href);\n\n return (\n <Box width=\"fit-content\" display=\"inline-block\">\n <ResourceBadge\n fileName={label}\n onSelect={() => {\n if (isExternal) {\n window.open(href, \"_blank\", \"noopener,noreferrer\");\n } else if (isProjectFile) {\n const projectPath = href.replace(/^#?\\$PROJECT\\//i, \"\");\n const event = new CustomEvent(\"ui:open-project-file\", { detail: projectPath });\n window.dispatchEvent(event);\n } else {\n window.location.assign(href);\n }\n }}\n />\n </Box>\n );\n }\n}\n\nexport function $createReferenceLinkNode(href: string, label?: string): ReferenceLinkNode {\n return new ReferenceLinkNode(href, label);\n}\n\nexport function $isReferenceLinkNode(node: LexicalNode | null | undefined): node is ReferenceLinkNode {\n return node instanceof ReferenceLinkNode;\n}\n","import type { TextMatchTransformer } from \"@lexical/markdown\";\nimport { $createReferenceLinkNode, $isReferenceLinkNode, ReferenceLinkNode } from \"./ReferenceLinkNode\";\n\n// Matches {{link('xxx')}} or {{ link(\"xxx\") }}\nconst LINK_REGEXP = /\\{\\{\\s*link\\((['\"])([^'\"\\s]+)\\1\\)\\s*\\}\\}/;\n\nexport const REFERENCE_LINK_TRANSFORMER: TextMatchTransformer = {\n dependencies: [ReferenceLinkNode],\n export: (node) => {\n if ($isReferenceLinkNode(node)) {\n const href = (node as ReferenceLinkNode).__href;\n const label = (node as ReferenceLinkNode).__label ?? href;\n // Export back to token form so markdown roundtrips\n if (label) {\n return `{{link('${label}')}}`;\n }\n return `{{link('${href}')}}`;\n }\n return null;\n },\n regExp: LINK_REGEXP,\n importRegExp: LINK_REGEXP,\n replace: (textNode, match) => {\n const value = match[2];\n // For now we assume value is both label and href; if it looks like a URL, use as href.\n const looksLikeUrl = /^(https?:\\/\\/|\\/)/i.test(value);\n const href = looksLikeUrl ? value : `#${value}`;\n const label = value;\n textNode.replace($createReferenceLinkNode(href, label));\n },\n type: \"text-match\",\n};\n","import \"../theme/rich-text-theme.css\";\n\nimport { Flex } from \"@chakra-ui/react\";\nimport { CodeNode } from \"@lexical/code\";\nimport { AutoLinkNode, LinkNode } from \"@lexical/link\";\nimport { ListItemNode, ListNode } from \"@lexical/list\";\nimport { $convertFromMarkdownString, $convertToMarkdownString, TRANSFORMERS } from \"@lexical/markdown\";\nimport { ClickableLinkPlugin } from \"@lexical/react/LexicalClickableLinkPlugin\";\nimport { LexicalComposer } from \"@lexical/react/LexicalComposer\";\nimport { LexicalErrorBoundary } from \"@lexical/react/LexicalErrorBoundary\";\nimport { HorizontalRulePlugin } from \"@lexical/react/LexicalHorizontalRulePlugin\";\nimport { LinkPlugin } from \"@lexical/react/LexicalLinkPlugin\";\nimport { ListPlugin } from \"@lexical/react/LexicalListPlugin\";\nimport { OnChangePlugin } from \"@lexical/react/LexicalOnChangePlugin\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { HeadingNode, QuoteNode } from \"@lexical/rich-text\";\nimport { $getRoot } from \"lexical\";\nimport { ContentEditable } from \"../shared/components/content-editable\";\nimport { DataTableNode } from \"../shared/nodes/DataTableNode\";\nimport { ImportCodeBlocksPlugin } from \"../shared/plugins/CodePlugin/CodeBlockPlugin\";\nimport { CodeBlockNode } from \"../shared/plugins/CodePlugin/CodeNode\";\nimport { EquationNode } from \"../shared/plugins/EquationPlugin/EquationNode\";\nimport { EQUATION_INLINE, EQUATION_MULTILINE, EquationPlugin } from \"../shared/plugins/EquationPlugin/EquationPlugin\";\nimport { HRNode } from \"../shared/plugins/HorizontalRulePlugin/HorizontalRuleNode\";\nimport StateUpdatePlugin from \"../shared/plugins/StateUpdatePlugin\";\nimport ToggleEditablePlugin from \"../shared/plugins/ToggleEditablePlugin\";\nimport { TreeViewPlugin } from \"../shared/plugins/TreeViewPlugin/TreeViewPlugin\";\nimport { TRANSFORMERS_EXTENDED } from \"../shared/transformers/markdown-transformers\";\nimport theme from \"../theme/rich-text-theme\";\nimport { splitFrontmatter } from \"../utils/markdown\";\nimport { REFERENCE_LINK_TRANSFORMER, ReferenceLinkNode } from \"./plugins/ReferenceLinkPlugin\";\n\nexport interface RichMessageProps {\n debug?: boolean;\n defaultState: string;\n fullWidth?: boolean;\n isEditable?: boolean;\n onChange?: (value: string) => void;\n}\n\nconst transformers = [\n ...TRANSFORMERS,\n ...TRANSFORMERS_EXTENDED,\n EQUATION_INLINE,\n EQUATION_MULTILINE,\n REFERENCE_LINK_TRANSFORMER,\n];\n\nexport function RichMessage(props: RichMessageProps) {\n const { debug = false, defaultState = \"\", fullWidth = false, isEditable = false, onChange } = props;\n const { frontmatter, body } = splitFrontmatter(defaultState);\n const shouldTrackChanges = isEditable && Boolean(onChange);\n\n const initialConfig = {\n namespace: \"RICH_MESSAGE\",\n nodes: [\n QuoteNode,\n LinkNode,\n AutoLinkNode,\n DataTableNode,\n HeadingNode,\n ListNode,\n ListItemNode,\n CodeNode,\n CodeBlockNode,\n EquationNode,\n HRNode,\n ReferenceLinkNode,\n ],\n editorState: () => {\n return $convertFromMarkdownString(body, transformers, undefined, false);\n },\n onError: (error: Error) => console.error(error),\n editable: isEditable,\n theme,\n };\n\n return (\n <Flex\n className=\"rich-text\"\n data-rich-message=\"true\"\n justifyContent=\"space-between\"\n width=\"100%\"\n maxWidth=\"100%\"\n height=\"100%\"\n position=\"relative\"\n direction=\"column\"\n overflow=\"hidden\"\n >\n <LexicalComposer initialConfig={initialConfig}>\n <StateUpdatePlugin\n value={body}\n onUpdate={(value: string) => {\n $convertFromMarkdownString(value, transformers, undefined, false);\n }}\n />\n <LinkPlugin />\n <ClickableLinkPlugin newTab />\n <ListPlugin />\n <HorizontalRulePlugin />\n <ImportCodeBlocksPlugin />\n <EquationPlugin />\n <RichTextPlugin\n contentEditable={<ContentEditable fullWidth={fullWidth} isRichMessage />}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {shouldTrackChanges ? (\n <OnChangePlugin\n ignoreSelectionChange\n ignoreHistoryMergeTagChange={false}\n onChange={(editorState) => {\n editorState.read(() => {\n const root = $getRoot();\n const markdownBody = $convertToMarkdownString(transformers, root);\n onChange?.(frontmatter + markdownBody);\n });\n }}\n />\n ) : null}\n <ToggleEditablePlugin isEditable={isEditable} />\n {debug && <TreeViewPlugin />}\n </LexicalComposer>\n </Flex>\n );\n}\n"],"names":["StyledEditable","chakra","LexicalContentEditable","ContentEditable","t0","$","_c","onRef","fullWidth","t1","padding","isRichMessage","t2","scrollable","t3","undefined","t4","t5","t6","t7","jsx","Flex","editor","t8","t9","Symbol","for","width","minH","t10","ScrollArea","SIZE_STYLES","sm","container","height","lineHeight","base","px","iconSize","textStyle","md","TONE_STYLES","neutral","color","bg","_hover","accent","DEFAULT_SIZE","DEFAULT_TONE","ResourceBadge","props","fileName","icon","onRemove","onSelect","rest","size","tone","getFileTypeIcon","IconComp","sizeStyles","toneStyles","e","stopPropagation","Text","Tooltip","Spacer","t11","IconButton","e_0","X","t12","jsxs","ReferenceLinkNode","DecoratorNode","__href","__label","getType","clone","node","__key","constructor","href","label","key","createDOM","_config","_editor","document","createElement","updateDOM","_prevNode","_dom","getTextContent","exportJSON","type","version","importJSON","serializedNode","$createReferenceLinkNode","decorate","split","pop","isExternal","test","isProjectFile","Box","window","open","projectPath","replace","event","CustomEvent","detail","dispatchEvent","location","assign","$isReferenceLinkNode","LINK_REGEXP","REFERENCE_LINK_TRANSFORMER","dependencies","export","regExp","importRegExp","textNode","match","value","theme","code","codeHighlight","atrule","attr","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","important","inserted","keyword","namespace","number","operator","prolog","property","punctuation","regex","selector","string","symbol","tag","url","variable","embedBlock","focus","list","checklist","listitem","listitemChecked","listitemUnchecked","nested","olDepth","ol","ul","heading","h1","h2","h3","paragraph","text","underline","italic","link","quote","reference","table","tableCell","tableRow","tableCellHeader","layoutContainer","layoutItem","draggableBlockDemo","row","content","scaledSmallFontSize","formatValue","length","String","toUpperCase","Date","toISOString","JSON","stringify","DefaultRichTextCodeEditor","defaultCode","isEditable","showLineNumbers","disableScroll","Textarea","lines","map","_temp","DefaultRichTextDataTable","data","noBorder","hiddenColumns","Set","hiddenSet","Object","keys","filter","has","columns","Table","_temp2","rowIndex","column_0","column","join","line","index","DataTableNode","__data","getData","json","headers","headerRow","separator","dataRows","header","$createDataTableNode","$isDataTableNode","CodeBlockNode","__language","__code","language","EquationComponent","React","lazy","$convertEquationElement","domNode","equation","getAttribute","inline","atob","$createEquationNode","EquationNode","__equation","__inline","getEquation","element","className","exportDOM","btoa","setAttribute","katex","render","displayMode","errorColor","output","strict","throwOnError","trust","importDOM","div","hasAttribute","conversion","priority","span","prevNode","setEquation","writable","getWritable","isInline","Suspense","equationNode","$applyNodeReplacement","$isEquationNode","EQUATION_INLINE","trim","EQUATION_MULTILINE","regExpStart","regExpEnd","rootNode","_children","_startMatch","_endMatch","linesInBetween","append","EquationPlugin","HRNode","ElementNode","_serializedNode","$createHRNode","style","$isHRNode","HR","parentNode","TABLE","_traverseChildren","_isImport","previousNode","getPreviousSibling","remove","cells","slice","cell","existingData","newRow","isPlaceholderRow","values","every","_","forEach","newTableData","newTableNode","tableNode","UNDERLINE_INS_TAG","TextNode","markdownText","hasFormat","$createTextNode","toggleFormat","UNDERLINE_U_TAG","_node","BARE_URL_REGEXP","BARE_URL","AutoLinkNode","exportChildren","$isAutoLinkNode","autoLinkNode","$createAutoLinkNode","linkTextNode","setFormat","getFormat","TRANSFORMERS_EXTENDED","editorNodes","QuoteNode","LinkNode","HeadingNode","ListNode","ListItemNode","CodeNode","editorTransformers","CHECK_LIST","TRANSFORMERS","editorTheme","ImportCodeBlocksPlugin","useLexicalComposerContext","update","useEffect","codeNodes","$nodesOfType","n","lang","getLanguage","ToggleEditablePlugin","setEditable","TreeViewPlugin","TreeView","FRONTMATTER_PATTERN","splitFrontmatter","frontmatter","body","UPLOAD_FILE","OPEN_CONTEXT","RUN_PROMPT","UPDATE_FORMAT","UPDATE_BEHAVIOR","INSERT_PROMPT","RENAME_PROMPT","DUPLICATE_PROMPT","DELETE_PROMPT","DELETE_REFERENCES","RENAME_REFERENCES","INSERT_REFERENCE","INSERT_BLOCK","createCommand","INSERT_REFERENCE_COMMAND","INSERT_BLOCK_COMMAND","INSERT_NEW_FILE_PLACEHOLDER","INSERT_NEW_TEXT_PLACEHOLDER","INSERT_PLACEHOLDER_REFERENCE","convertCommentElement","$createCommentNode","textAlign","CommentNode","config","addClassNamesToElement","blockquote","isHTMLElement","isEmpty","formatType","getFormatType","direction","getDirection","dir","format","setIndent","indent","setDirection","insertNewAfter","restoreSelection","newBlock","$createParagraphNode","insertAfter","collapseAtStart","children","getChildren","child","insertCommentBlock","_blockType","nodeToReplace","selection","$getSelection","commentNode","nodeParent","getParent","selectEnd","$isRangeSelection","$setBlocksType","useCommentCommands","mergeRegister","registerCommand","COMMAND_PRIORITY_LOW","optionId","useCommentSchema","registerNodeTransform","invalidChildren","child_0","CommentPlugin","$getTextContent","root","textContent","childrenLength","i","$isElementNode","getReferenceMarker","name","referenceId","shouldAppendParagraphBreak","Boolean","traverseSerializedNode","referenceMarker","Array","isArray","getTextFromSerializedEditorState","state","parsed","parse","emptyEditorState","textFormat","generateEditorStateFromString","input","mode","ImperativeAPIPlugin","editorRef","previousTextRef","setEditorValue","parseEditorState","setEditorState","current","defaultSelection","useImperativeHandle","shouldSubmitOnEnter","ctrlKey","metaKey","shiftKey","altKey","KeyboardShortcutPlugin","onSubmit","KEY_DOWN_COMMAND","preventDefault","COMMAND_PRIORITY_HIGH","menuSortOrder","getSortedMenuOptions","options","sort","a","b","indexOf","group","option","reduce","acc","bucket","push","ReferenceMenuItem","id","isSelected","onClick","onMouseEnter","setRefElement","secondaryLabel","primaryLabel","tabIndex","ReferenceMenu","selectedIndex","onSelectItem","onMouseEnterItem","connector","hasResults","getElementById","scrollIntoView","behavior","block","T0","Fragment","description","option_0","t13","localFilter","q","m","toLowerCase","includes","useContextLookup","queryString","items","baseOptions","res","resourceId","resourceType","VALID_PUNCTUATION","TRIGGERS","VALID_CHARS","VALID_JOINS","LENGTH_LIMIT","TriggerRegex","RegExp","AliasRegex","checkForTriggers","minMatchLength","exec","maybeLeadingWhitespace","matchingString","leadOffset","replaceableString","SUGGESTION_LIST_LENGTH_LIMIT","ReferenceMenuPlugin","setQueryString","useState","searchResults","selectedOption","closeMenu","dispatchCommand","onSelectOption","checkForTrigger","menuOptions","LexicalTypeaheadMenuPlugin","anchorElementRef","selectOptionAndCleanUp","setHighlightedIndex","ReactDOM","createPortal","i_0","ReferenceNode","__referenceId","__name","isKeyboardSelectable","canBeEmpty","canInsertTextAfter","canInsertTextBefore","dom","el","$createReferenceNode","$insertExistingReference","refNode","ReferencePlugin","onAddReference","promptInputTheme","baseTheme","nodes","MarkNode","BasePromptEditor","ref","defaultState","debug","placeholder","onChange","onError","references","editorState","editable","initialConfig","useRef","Kbd","placeholderNode","HistoryPlugin","RichTextPlugin","LexicalErrorBoundary","OnChangePlugin","read","$getRoot","rawText","toJSON","t14","t15","t16","t17","t18","t19","LexicalComposer","PromptEditor","forwardRef","StateUpdatePlugin","onUpdate","transformers","RichMessage","shouldTrackChanges","$convertFromMarkdownString","LinkPlugin","ClickableLinkPlugin","ListPlugin","HorizontalRulePlugin","markdownBody","$convertToMarkdownString","error","console"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme-D0VvFB1Y.js","sources":["../src/theme/global.ts","../src/theme/primitives/colors.ts","../src/theme/primitives/fonts.ts","../src/theme/primitives/sizes.ts","../src/theme/recipes/alert.ts","../src/theme/recipes/button.ts","../src/theme/recipes/dialog.ts","../src/theme/recipes/divider.ts","../src/theme/recipes/drawer.ts","../src/theme/recipes/editable.ts","../src/theme/recipes/form.ts","../src/theme/recipes/input.ts","../src/theme/recipes/menu.ts","../src/theme/recipes/popover.ts","../src/theme/recipes/progress-circle.ts","../src/theme/recipes/skeleton.ts","../src/theme/recipes/textarea.ts","../src/theme/recipes/tooltip.ts","../src/theme/tokens/borders.ts","../src/theme/tokens/colors.ts","../src/theme/tokens/layer-styles.ts","../src/theme/tokens/shadows.ts","../src/theme/tokens/text.ts","../src/theme/theme.ts"],"sourcesContent":["export const globalCss = {\n \"*::selection\": {\n bg: {\n base: \"bg.accent-secondary.blue-medium\",\n _dark: \"bg.accent-secondary.blue-medium\",\n },\n color: {\n _dark: \"fg.inverted\",\n },\n },\n\n \":root\": {\n \"--focus-border\": \"blue.border\",\n \"--separator-border\": \"transparent !important\",\n },\n\n html: {\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n },\n\n body: {\n height: \"100%\",\n width: \"100%\",\n fontFamily: \"body\",\n fontWeight: \"regular\",\n fontSize: \"md\",\n bg: \"bg\",\n color: \"fg\",\n borderColor: \"border\",\n overflow: \"hidden\",\n },\n\n \"#root\": {\n height: \"100%\",\n width: \"100%\",\n display: \"flex\",\n },\n\n \".sash\": {\n zIndex: \"docked\",\n },\n\n \"@keyframes message-fade-in\": {\n from: { opacity: 0, transform: \"translateY(4px)\" },\n to: { opacity: 1, transform: \"translateY(0)\" },\n },\n\n \"@media (min-width: 2560px)\": {\n html: { fontSize: \"1.25rem\" },\n },\n\n \"@media (min-width: 3840px)\": {\n html: { fontSize: \"1.5rem\" },\n },\n};\n","export const blacks = {\n DEFAULT: { value: \"#0A0D15\" },\n 50: { value: \"#FFFFFF\" },\n 75: { value: \"#FCFCFC\" },\n 100: { value: \"#F9F9F9\" },\n 200: { value: \"#F5F5F5\" },\n 300: { value: \"#EAEAEA\" },\n 400: { value: \"#C5C5C7\" },\n 500: { value: \"#797D83\" },\n 600: { value: \"#5A5F67\" },\n 700: { value: \"#444750\" },\n 750: { value: \"#33363E\" },\n 800: { value: \"#22252C\" },\n 850: { value: \"#1b2028\" },\n 900: { value: \"#0A0D15\" },\n 1000: { value: \"#000000\" },\n};\n\nexport const blue = {\n DEFAULT: { value: \"#5098FF\" },\n 50: { value: \"#EEF5FF\" },\n 100: { value: \"#D2E4FF\" },\n 200: { value: \"#A8CBFE\" },\n 300: { value: \"#81B4FE\" },\n 400: { value: \"#6CA9FF\" },\n 500: { value: \"#5098FF\" },\n 600: { value: \"#2B82FF\" },\n 700: { value: \"#0E6EF6\" },\n 800: { value: \"#0652C3\" },\n 900: { value: \"#002862\" },\n};\n\nexport const sapphire = {\n DEFAULT: { value: \"#3A4BE4\" },\n 25: { value: \"#F0F1FF\" },\n 50: { value: \"#E0E3FF\" },\n 100: { value: \"#BEC4FF\" },\n 200: { value: \"#97A2FF\" },\n 300: { value: \"#6A78F8\" },\n 400: { value: \"#4E5FF3\" },\n 500: { value: \"#3A4BE4\" },\n 600: { value: \"#2A3CD7\" },\n 700: { value: \"#202FB8\" },\n 800: { value: \"#131F87\" },\n 900: { value: \"#0A125A\" },\n};\n\nexport const pink = {\n DEFAULT: { value: \"#E054EC\" },\n 25: { value: \"#FDF0FF\" },\n 50: { value: \"#FCE1FF\" },\n 100: { value: \"#F5CBF9\" },\n 200: { value: \"#F6B4FC\" },\n 300: { value: \"#F69AFF\" },\n 400: { value: \"#EF81FA\" },\n 500: { value: \"#E054EC\" },\n 600: { value: \"#B636C1\" },\n 700: { value: \"#951BA0\" },\n 800: { value: \"#6F0C78\" },\n 900: { value: \"#520659\" },\n};\n\nexport const peach = {\n DEFAULT: { value: \"#FBD8CE\" },\n 50: { value: \"#FFF2EC\" },\n 100: { value: \"#FCE1DA\" },\n 200: { value: \"#FBD8CE\" },\n 300: { value: \"#F7C4B8\" },\n 400: { value: \"#F3AA9A\" },\n 500: { value: \"#EB8A75\" },\n 600: { value: \"#D17059\" },\n 700: { value: \"#A85646\" },\n 800: { value: \"#7B3F34\" },\n 900: { value: \"#522923\" },\n};\n\nexport const red = {\n DEFAULT: { value: \"#FF3232\" },\n 50: { value: \"#FFE0E3\" },\n 100: { value: \"#FFCCCC\" },\n 200: { value: \"#FDA8A8\" },\n 300: { value: \"#FF8B8B\" },\n 400: { value: \"#FF6B6B\" },\n 500: { value: \"#FF3232\" },\n 600: { value: \"#DE1D1D\" },\n 700: { value: \"#BA1313\" },\n 800: { value: \"#8E0E0E\" },\n 900: { value: \"#580707\" },\n};\n\nexport const orange = {\n DEFAULT: { value: \"#F78C25\" },\n 50: { value: \"#FFF4E8\" },\n 100: { value: \"#FFE2C1\" },\n 200: { value: \"#FFC98E\" },\n 300: { value: \"#FFAD57\" },\n 400: { value: \"#F78C25\" },\n 500: { value: \"#E26F12\" },\n 600: { value: \"#C85D12\" },\n 700: { value: \"#A74810\" },\n 800: { value: \"#7E330C\" },\n 900: { value: \"#552107\" },\n};\n\nexport const yellow = {\n DEFAULT: { value: \"#FFD643\" },\n 50: { value: \"#FFF7D9\" },\n 75: { value: \"#FFF3C2\" },\n 100: { value: \"#FFEEB3\" },\n 150: { value: \"#FFE999\" },\n 200: { value: \"#FFE792\" },\n 300: { value: \"#FFDE67\" },\n 400: { value: \"#FFD643\" },\n 500: { value: \"#FFC909\" },\n 600: { value: \"#E4B200\" },\n 700: { value: \"#C69B00\" },\n 800: { value: \"#9D7A00\" },\n 900: { value: \"#644E00\" },\n};\n\nexport const green = {\n DEFAULT: { value: \"#2DD665\" },\n 50: { value: \"#CFFFDF\" },\n 100: { value: \"#ACFBC7\" },\n 200: { value: \"#86F3AB\" },\n 300: { value: \"#61EA8F\" },\n 400: { value: \"#2DD665\" },\n 500: { value: \"#0AB744\" },\n 600: { value: \"#029232\" },\n 700: { value: \"#007126\" },\n 800: { value: \"#00511B\" },\n 900: { value: \"#003110\" },\n};\n\nexport const teal = {\n DEFAULT: { value: \"#3EECC4\" },\n 50: { value: \"#C9FFF3\" },\n 100: { value: \"#9EFBE6\" },\n 200: { value: \"#6DF4D5\" },\n 300: { value: \"#3EECC4\" },\n 400: { value: \"#16DFB0\" },\n 500: { value: \"#12C69C\" },\n 600: { value: \"#10A884\" },\n 700: { value: \"#0C8367\" },\n 800: { value: \"#096C55\" },\n 900: { value: \"#024F3D\" },\n};\n\nexport const cyan = {\n DEFAULT: { value: \"#5CDCFF\" },\n 50: { value: \"#DAF7FE\" },\n 100: { value: \"#ADEDFF\" },\n 200: { value: \"#85E4FF\" },\n 300: { value: \"#5CDCFF\" },\n 400: { value: \"#30D2FF\" },\n 500: { value: \"#00C0F5\" },\n 600: { value: \"#03AAD7\" },\n 700: { value: \"#0095BE\" },\n 800: { value: \"#007A9B\" },\n 900: { value: \"#005B73\" },\n};\n\nexport const purple = {\n DEFAULT: { value: \"#8B47FF\" },\n 50: { value: \"#EFE6FF\" },\n 100: { value: \"#D8C2FF\" },\n 200: { value: \"#BE99FF\" },\n 300: { value: \"#A36DFF\" },\n 400: { value: \"#8B47FF\" },\n 500: { value: \"#7223F9\" },\n 600: { value: \"#5A00F5\" },\n 700: { value: \"#4600C0\" },\n 800: { value: \"#310086\" },\n 900: { value: \"#1E0050\" },\n};\n\nexport const sand = {\n DEFAULT: { value: \"#F4F2EC\" },\n 50: { value: \"#FCF7EF\" },\n 100: { value: \"#F4F2EC\" },\n 200: { value: \"#E8CECE\" },\n 300: { value: \"#E8CECE\" },\n 400: { value: \"#E8CECE\" },\n 500: { value: \"#E8CECE\" },\n 600: { value: \"#E8CECE\" },\n 700: { value: \"#E8CECE\" },\n 800: { value: \"#E8CECE\" },\n 900: { value: \"#E8CECE\" },\n};\n\nexport const neutral = {\n 50: { value: \"#FCFDFC\" },\n 75: { value: \"#F7F9F7\" },\n 100: { value: \"#F1F5F2\" },\n 200: { value: \"#EDF1EE\" },\n 300: { value: \"#E9EFEA\" },\n 400: { value: \"#DEE5DF\" },\n 500: { value: \"#CCD1CE\" },\n 600: { value: \"#404347\" },\n 700: { value: \"#31363C\" },\n 750: { value: \"#252A2F\" },\n 800: { value: \"#222A35\" },\n 850: { value: \"#1A202A\" },\n 900: { value: \"#141923\" },\n 950: { value: \"#10141B\" },\n};\n\nexport const mint = {\n 100: { value: \"#D3ECEE\" },\n 200: { value: \"#B3DEE2\" },\n};\n\nexport const colors = {\n sand,\n blacks,\n blue,\n sapphire,\n pink,\n peach,\n red,\n orange,\n yellow,\n green,\n teal,\n cyan,\n purple,\n neutral,\n mint,\n};\n","export const fonts = {\n display: { value: \"'Playfair Display', serif\" },\n brand: { value: \"Onest, sans-serif\" },\n heading: { value: \"Onest, sans-serif\" },\n label: { value: \"Onest, sans-serif\" },\n body: { value: \"Inter, sans-serif\" },\n};\n\nexport const fontSizes = {\n xs: { value: \"0.625rem\" }, // 10px\n sm: { value: \"0.75rem\" }, // 12px\n md: { value: \"0.875rem\" }, // 14px\n lg: { value: \"1rem\" }, // 16px\n xl: { value: \"1.125rem\" }, // 18px\n \"2xl\": { value: \"1.25rem\" }, // 20px\n \"3xl\": { value: \"1.5rem\" }, // 24px\n \"3.5xl\": { value: \"1.75rem\" }, // 28px\n \"4xl\": { value: \"2.25rem\" }, // 36px\n \"5xl\": { value: \"3rem\" }, // 48px\n \"6xl\": { value: \"4.375rem\" }, // 70px\n \"7xl\": { value: \"5.25rem\" }, // 84px\n \"icon-xs\": { value: \"0.875rem\" }, // 14px\n \"icon-sm\": { value: \"1rem\" }, // 16px\n \"icon-md\": { value: \"1.25rem\" }, // 20px\n \"icon-lg\": { value: \"1.25rem\" }, // 20px\n};\n\nexport const fontWeights = {\n regular: { value: 400 },\n medium: { value: 500 },\n semibold: { value: 600 },\n bold: { value: 700 },\n};\n","export const sp = {\n 0: \"0rem\", // 0px\n 25: \"0.125rem\", // 2px\n 50: \"0.25rem\", // 4px\n 100: \"0.5rem\", // 8px\n 150: \"0.75rem\", // 12px\n 200: \"1rem\", // 16px\n 250: \"1.25rem\", // 20px\n 300: \"1.5rem\", // 24px\n 400: \"2rem\", // 32px\n 500: \"2.5rem\", // 40px\n 600: \"3rem\", // 48px\n 700: \"3.5rem\", // 56px\n 800: \"4rem\", // 64px\n 900: \"4.5rem\", // 72px\n 1000: \"5rem\", // 80px\n 1200: \"6rem\", // 96px\n 1600: \"8rem\", // 128px\n 2000: \"10rem\", // 160px\n 3000: \"15rem\", // 240px\n 4000: \"20rem\", // 320px\n};\n\nexport const spacing = {\n none: { value: \"0\" },\n \"2xs\": { value: sp[50] },\n xs: { value: sp[100] },\n sm: { value: sp[150] },\n md: { value: sp[200] },\n lg: { value: sp[300] },\n xl: { value: sp[400] },\n \"2xl\": { value: sp[500] },\n \"3xl\": { value: sp[600] },\n \"3.5xl\": { value: sp[700] },\n \"4xl\": { value: sp[800] },\n \"4.5xl\": { value: sp[900] },\n \"5xl\": { value: sp[1600] },\n};\n\nexport const radii = {\n none: { value: \"0\" },\n \"2xs\": { value: sp[25] },\n xs: { value: sp[50] },\n sm: { value: sp[100] },\n md: { value: sp[150] },\n lg: { value: sp[200] },\n xl: { value: sp[400] },\n full: { value: \"100%\" },\n};\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { alertAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const alertSlotRecipe = defineSlotRecipe({\n slots: alertAnatomy.keys(),\n base: {\n root: {\n pt: \"xs\",\n pb: \"xs\",\n },\n },\n});\n","import { defineRecipe } from \"@chakra-ui/react\";\n\nexport const buttonRecipe = defineRecipe({\n base: {\n borderRadius: \"sm\",\n transition: \"all 0.1s ease-in-out\",\n fontFamily: \"label\",\n fontWeight: \"500\",\n color: \"fg\",\n bg: \"bg\",\n borderColor: \"border.muted\",\n _disabled: {\n opacity: 1,\n color: \"fg.subtle\",\n bg: \"bg.muted\",\n _hover: { bg: \"bg.muted\" },\n },\n _loading: {\n opacity: 1,\n color: \"fg.subtle\",\n bg: \"bg.muted\",\n _hover: { bg: \"bg.muted\" },\n },\n },\n variants: {\n variant: {\n \"display-primary\": {\n bg: \"blacks.900\",\n color: \"fg.inverted\",\n borderRadius: \"xl\",\n outline: \"none\",\n border: \"none\",\n _hover: { bg: \"blacks.800\" },\n },\n \"display-outline\": {\n bg: \"transparent\",\n color: \"fg\",\n borderRadius: \"xl\",\n border: \"2px solid {fg}\",\n _hover: { bg: \"bg.hover\" },\n _active: { bg: \"bg.active\" },\n },\n \"display-ghost\": {\n bg: \"transparent\",\n color: \"fg\",\n borderRadius: \"xl\",\n _hover: { bg: \"bg.hover\" },\n _active: { bg: \"bg.active\" },\n },\n \"display-link\": {\n bg: \"transparent\",\n color: \"fg\",\n border: \"none\",\n borderRadius: \"xl\",\n _hover: { textDecoration: \"underline\" },\n _active: { textDecoration: \"underline\" },\n },\n primary: {\n color: \"blacks.1000\",\n bg: \"bg.button.primary.default\",\n border: \"none\",\n _hover: { bg: \"bg.button.primary.hover\" },\n _active: { bg: \"bg.button.primary.pressed\" },\n },\n secondary: {\n color: \"fg\",\n bg: \"bg\",\n border: \"2px solid border.muted\",\n _hover: { bg: \"bg.hover\" },\n _active: { bg: \"bg.active\" },\n _disabled: {\n opacity: 1,\n color: \"fg.subtle\",\n borderColor: \"border.muted\",\n },\n },\n outline: {\n color: \"fg\",\n bg: \"bg\",\n border: \"border.muted\",\n _hover: { bg: \"bg.hover\" },\n _active: { bg: \"bg.active\" },\n _disabled: {\n opacity: 1,\n color: \"fg.subtle\",\n borderColor: \"border.muted\",\n },\n },\n ghost: {\n color: \"fg\",\n bg: \"transparent\",\n border: \"none\",\n _hover: { bg: \"bg.hover\" },\n _active: { bg: \"bg.active\" },\n _disabled: {\n bg: \"transparent\",\n _hover: { bg: \"transparent\" },\n },\n },\n },\n size: {\n \"2xl\": {\n px: \"1.5rem\",\n h: \"3.5rem\",\n textStyle: \"label/L/medium\",\n },\n lg: {\n px: \"1rem\",\n h: \"3rem\",\n textStyle: \"label/M/medium\",\n },\n md: {\n textStyle: \"label/M/medium\",\n },\n sm: {\n px: \"0.5rem\",\n h: \"2rem\",\n textStyle: \"label/S/medium\",\n },\n },\n },\n\n defaultVariants: { size: \"md\", variant: \"outline\" },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { dialogAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const dialogSlotRecipe = defineSlotRecipe({\n slots: dialogAnatomy.keys(),\n base: {\n content: {\n bg: \"bg\",\n },\n },\n});\n","import { defineRecipe } from \"@chakra-ui/react\";\n\nexport const dividerRecipe = defineRecipe({\n base: {\n borderColor: \"border\",\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { drawerAnatomy as parts } from \"@chakra-ui/react/anatomy\";\n\nexport const drawerSlotRecipe = defineSlotRecipe({\n slots: parts.keys(),\n base: {\n header: {\n fontWeight: \"medium\",\n textStyle: \"label/M/medium\",\n p: \"xs\",\n },\n content: {\n bg: \"bg\",\n },\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\n\nexport const editableSlotRecipe = defineSlotRecipe({\n slots: [\"preview\", \"input\", \"textarea\"] as const,\n base: {\n preview: {\n textStyle: \"label/L/medium\",\n borderRadius: \"2xs\",\n focusRingColor: \"border\",\n py: \"0\",\n lineHeight: \"1.5rem\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _hover: { bg: \"bg.hover\" },\n },\n input: {\n textStyle: \"label/L/medium\",\n borderRadius: \"2xs\",\n focusRingColor: \"border\",\n py: \"0\",\n lineHeight: \"1.5rem\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n bg: \"bg\",\n width: \"auto\",\n _focusVisible: { boxShadow: \"none\" },\n _placeholder: { color: \"fg.muted\" },\n },\n textarea: {\n textStyle: \"label/L/medium\",\n borderRadius: \"2xs\",\n focusRingColor: \"border\",\n py: \"0\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n bg: \"bg.muted\",\n width: \"auto\",\n _focusVisible: { boxShadow: \"none\" },\n _placeholder: { color: \"fg.muted\" },\n },\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { fieldsetAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const fieldsetSlotRecipe = defineSlotRecipe({\n slots: fieldsetAnatomy.keys(),\n base: {\n legend: {\n mb: \"2xs\",\n },\n },\n});\n","import { defineRecipe } from \"@chakra-ui/react\";\n\nexport const inputRecipe = defineRecipe({\n base: {\n px: \"sm\",\n borderRadius: \"sm\",\n border: \"1px solid\",\n transition: \"border-color 0.2s ease-in-out\",\n bg: \"bg\",\n color: \"fg\",\n borderColor: \"border.muted\",\n _hover: { borderColor: \"border\" },\n _active: { borderColor: \"blue.border\" },\n _focus: { borderColor: \"blue.border\" },\n _focusVisible: { borderColor: \"blue.border\" },\n _placeholder: { color: \"fg.subtle\" },\n },\n variants: {\n size: {\n sm: {\n h: \"2rem\",\n },\n },\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { menuAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const menuSlotRecipe = defineSlotRecipe({\n slots: menuAnatomy.keys(),\n base: {\n itemGroupLabel: {\n ml: \"{2xs}\",\n textStyle: \"label/S/regular\",\n fontWeight: \"normal\",\n color: \"fg.muted\",\n },\n\n item: {\n bg: \"bg.menu-item.default\",\n color: \"fg.menu-item.default\",\n textStyle: \"label/M/regular\",\n px: \"0.5rem\",\n h: \"2.25rem\",\n _hover: { bg: \"bg.menu-item.hover\" },\n _focus: { bg: \"bg.menu-item.focus\" },\n _active: { bg: \"bg.menu-item.selected\" },\n },\n\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"2xs\",\n borderRadius: \"sm\",\n py: \"xs\",\n bg: \"bg\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"border.muted\",\n boxShadow: \"low\",\n zIndex: \"dropdown\",\n textStyle: \"label/M/regular\",\n },\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { popoverAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const popoverRecipe = defineSlotRecipe({\n slots: popoverAnatomy.keys(),\n base: {\n positioner: {\n _focus: { boxShadow: \"none !important\" },\n },\n closeTrigger: {\n textStyle: \"label/M/medium\",\n color: \"fg\",\n },\n arrow: {\n bg: \"background-primary !important\",\n borderColor: \"button-secondary-stroke\",\n },\n content: {\n gap: \"8px\",\n py: \"xs\",\n borderRadius: \"12px\",\n bg: \"bg\",\n borderColor: \"border\",\n _focus: { boxShadow: \"none !important\" },\n },\n title: {\n borderBottom: \"none\",\n textStyle: \"label/M/medium\",\n bg: \"bg\",\n },\n body: { textStyle: \"primary\" },\n footer: {},\n },\n variants: {\n variant: {\n responsive: {\n content: { width: \"unset\" },\n },\n },\n size: {\n \"2xl\": {\n content: { width: \"2xl\" },\n },\n },\n },\n});\n","import { progressCircleSlotRecipe as baseProgressCircleSlotRecipe } from \"@chakra-ui/react/theme\";\n\nconst baseSizeVariants = baseProgressCircleSlotRecipe.variants?.size ?? {};\n\nexport const progressCircleSlotRecipe = {\n ...baseProgressCircleSlotRecipe,\n variants: {\n ...baseProgressCircleSlotRecipe.variants,\n size: {\n ...baseSizeVariants,\n \"2xs\": {\n circle: {\n \"--size\": \"14px\",\n \"--thickness\": \"2px\",\n },\n valueText: {\n textStyle: \"2xs\",\n },\n },\n },\n },\n};\n","import { defineRecipe } from \"@chakra-ui/react\";\n\nexport const skeletonRecipe = defineRecipe({\n base: {\n \"--start-color\": \"fg\",\n \"--end-color\": \"fg.muted\",\n },\n});\n","import { defineRecipe } from \"@chakra-ui/react\";\n\nexport const textareaRecipe = defineRecipe({\n base: {\n paddingX: \"sm\",\n paddingY: \"xs\",\n opacity: \"1\",\n outline: \"none\",\n color: \"fg\",\n border: \"1px solid\",\n transition: \"border-color 0.2s ease-in-out\",\n borderColor: \"border.muted\",\n _hover: {\n borderColor: \"border\",\n },\n _active: {\n borderColor: \"blue.border\",\n },\n _focus: {\n borderColor: \"blue.border\",\n },\n _focusVisible: {\n borderColor: \"blue.border\",\n },\n _placeholder: {\n color: \"fg.subtle\",\n },\n },\n});\n","import { defineSlotRecipe } from \"@chakra-ui/react\";\nimport { tooltipAnatomy } from \"@chakra-ui/react/anatomy\";\n\nexport const tooltipRecipe = defineSlotRecipe({\n slots: tooltipAnatomy.keys(),\n base: {\n content: {\n bg: \"bg.inverted\",\n color: \"fg.inverted\",\n },\n arrow: {\n bg: \"bg.inverted\",\n },\n },\n});\n","export const borders = {\n DEFAULT: {\n value: {\n base: \"1px solid {colors.blacks.400}\",\n _dark: \"1px solid {colors.blacks.600}\",\n },\n },\n\n muted: {\n value: {\n base: \"1px solid {colors.blacks.300}\",\n _dark: \"1px solid {colors.blacks.700}\",\n },\n },\n\n subtle: {\n value: {\n base: \"1px solid {colors.blacks.300}\",\n _dark: \"1px solid {colors.blacks.50}\",\n },\n },\n\n inverted: {\n value: {\n base: \"1px solid {colors.blacks.400}\",\n _dark: \"1px solid {colors.blacks.600}\",\n },\n },\n\n accent: {\n value: {\n base: \"1px solid {colors.blue.700}\",\n _dark: \"1px solid {colors.blue.200}\",\n },\n },\n\n \"accent-light\": {\n value: {\n base: \"1px solid {colors.blue.200}\",\n _dark: \"1px solid {colors.blue.900}\",\n },\n },\n};\n","export const fg = {\n DEFAULT: {\n value: {\n base: \"{colors.blacks.800}\",\n _dark: \"{colors.blacks.200}\",\n },\n },\n\n muted: {\n value: {\n base: \"{colors.blacks.500}\",\n _dark: \"{colors.blacks.500}\",\n },\n },\n\n subtle: {\n value: {\n base: \"{colors.blacks.400}\",\n _dark: \"{colors.blacks.600}\",\n },\n },\n\n inverted: {\n value: {\n base: \"{colors.blacks.50}\",\n _dark: \"{colors.blacks.800}\",\n },\n },\n\n success: {\n value: {\n base: \"{colors.green.400}\",\n _dark: \"{colors.green.400}\",\n },\n },\n\n error: {\n value: {\n base: \"{colors.red.400}\",\n _dark: \"{colors.red.400}\",\n },\n },\n\n accent: {\n \"pink-dark\": {\n value: {\n base: \"{colors.pink.700}\",\n _dark: \"{colors.pink.50}\",\n },\n },\n },\n\n \"green-dark\": {\n value: {\n base: \"{colors.green.700}\",\n _dark: \"{colors.green.50}\",\n },\n },\n\n \"blue-dark\": {\n value: {\n base: \"{colors.sapphire.700}\",\n _dark: \"{colors.sapphire.100}\",\n },\n },\n\n \"blue-very-dark\": {\n value: {\n base: \"{colors.sapphire.900}\",\n _dark: \"{colors.sapphire.800}\",\n },\n },\n\n button: {\n primary: {\n default: {\n value: {\n base: \"{colors.blacks.200}\",\n _dark: \"{colors.blacks.200}\",\n },\n },\n disabled: {\n value: \"{colors.fg.subtle}\",\n },\n },\n },\n\n \"menu-item\": {\n default: {\n value: \"{colors.fg}\",\n },\n secondary: {\n value: \"{colors.fg.muted}\",\n },\n },\n};\n\nexport const bg = {\n DEFAULT: {\n value: {\n base: \"{colors.blacks.50}\",\n _dark: \"{colors.blacks.900}\",\n },\n },\n\n muted: {\n value: {\n base: \"{colors.neutral.200}\",\n _dark: \"{colors.neutral.800}\",\n },\n },\n\n subtle: {\n value: {\n base: \"{colors.neutral.50}\",\n _dark: \"{colors.neutral.950}\",\n },\n },\n\n hover: {\n value: {\n base: \"{colors.neutral.100}\",\n _dark: \"{colors.neutral.850}\",\n },\n },\n\n active: {\n value: {\n base: \"{colors.neutral.75}\",\n _dark: \"{colors.blacks.850}\",\n },\n },\n\n code: {\n value: {\n base: \"{colors.blacks.50}\",\n _dark: \"{colors.blacks.800}\",\n },\n },\n\n emphasized: {\n value: {\n base: \"{colors.bg.active}\",\n _dark: \"{colors.bg.active}\",\n },\n },\n\n inverted: {\n value: {\n base: \"{colors.blacks.800}\",\n _dark: \"{colors.blacks.100}\",\n },\n },\n\n panel: {\n value: {\n base: \"{colors.blacks.100}\",\n _dark: \"{colors.blacks.850}\",\n },\n },\n\n dark: {\n value: {\n base: \"{colors.blacks.900}\",\n _dark: \"{colors.blacks.900}\",\n },\n },\n\n white: {\n value: {\n base: \"{colors.blacks.50}\",\n _dark: \"{colors.blacks.50}\",\n },\n },\n\n button: {\n primary: {\n default: {\n value: {\n base: \"{colors.bg.accent-primary.default}\",\n _dark: \"{colors.bg.accent-primary.dark}\",\n },\n },\n hover: {\n value: {\n base: \"{colors.bg.accent-primary.hover}\",\n _dark: \"{colors.bg.accent-primary.medium}\",\n },\n },\n pressed: {\n value: {\n base: \"{colors.bg.accent-primary.pressed}\",\n _dark: \"{colors.bg.accent-primary.medium}\",\n },\n },\n disabled: {\n value: \"{colors.bg.muted}\",\n },\n },\n },\n\n \"menu-item\": {\n default: {\n value: \"{colors.bg}\",\n },\n hover: {\n value: \"{colors.bg.hover}\",\n },\n focus: {\n value: \"{colors.bg.hover}\",\n },\n selected: {\n value: \"{colors.bg.active}\",\n },\n },\n\n display: {\n \"very-light\": {\n value: {\n base: \"{colors.sand.50}\",\n _dark: \"{colors.blacks.1000}\",\n },\n },\n },\n\n \"accent-primary\": {\n default: {\n value: {\n base: \"{colors.yellow.75}\",\n _dark: \"{colors.yellow.75}\",\n },\n },\n hover: {\n value: {\n base: \"{colors.yellow.100}\",\n _dark: \"{colors.yellow.100}\",\n },\n },\n pressed: {\n value: {\n base: \"{colors.yellow.150}\",\n _dark: \"{colors.yellow.150}\",\n },\n },\n \"very-light\": {\n value: {\n base: \"{colors.yellow.75}\",\n _dark: \"{colors.yellow.75}\",\n },\n },\n light: {\n value: {\n base: \"{colors.yellow.75}\",\n _dark: \"{colors.yellow.75}\",\n },\n },\n medium: {\n value: {\n base: \"{colors.yellow.100}\",\n _dark: \"{colors.yellow.100}\",\n },\n },\n dark: {\n value: {\n base: \"{colors.yellow.150}\",\n _dark: \"{colors.yellow.150}\",\n },\n },\n },\n\n \"accent-secondary\": {\n \"grey-dark\": {\n value: {\n base: \"{colors.blacks.50}\",\n _dark: \"{colors.blacks.1000}\",\n },\n },\n \"grey-light\": {\n value: {\n base: \"{colors.blacks.100}\",\n _dark: \"{colors.blacks.900}\",\n },\n },\n \"red-very-light\": {\n value: {\n base: \"{colors.red.50}\",\n _dark: \"{colors.red.100}\",\n },\n },\n \"red-light\": {\n value: {\n base: \"{colors.red.100}\",\n _dark: \"{colors.red.100}\",\n },\n },\n \"pink-light\": {\n value: {\n base: \"{colors.pink.50}\",\n _dark: \"{colors.pink.700}\",\n },\n },\n \"pink-medium\": {\n value: {\n base: \"{colors.pink.100}\",\n _dark: \"{colors.pink.800}\",\n },\n },\n \"blue-very-light\": {\n value: {\n base: \"{colors.blue.25}\",\n _dark: \"{colors.blue.50}\",\n },\n },\n \"blue-light\": {\n value: {\n base: \"{colors.mint.100}\",\n _dark: \"{colors.mint.100}\",\n },\n },\n \"blue-medium\": {\n value: {\n base: \"{colors.mint.200}\",\n _dark: \"{colors.mint.200}\",\n },\n },\n \"blue-dark\": {\n value: {\n base: \"{colors.blue.700}\",\n _dark: \"{colors.blue.200}\",\n },\n },\n \"cyan-light\": {\n value: {\n base: \"{colors.cyan.50}\",\n _dark: \"{colors.cyan.100}\",\n },\n },\n \"green-light\": {\n value: {\n base: \"{colors.green.50}\",\n _dark: \"{colors.sapphire.50}\",\n },\n },\n \"yellow-light\": {\n value: {\n base: \"{colors.yellow.75}\",\n _dark: \"{colors.yellow.75}\",\n },\n },\n \"yellow-medium\": {\n value: {\n base: \"{colors.yellow.100}\",\n _dark: \"{colors.yellow.100}\",\n },\n },\n \"yellow-dark\": {\n value: {\n base: \"{colors.yellow.150}\",\n _dark: \"{colors.yellow.150}\",\n },\n },\n \"sand-light\": {\n value: {\n base: \"{colors.sand.100}\",\n _dark: \"{colors.sand.100}\",\n },\n },\n },\n};\n\nexport const border = {\n DEFAULT: {\n value: {\n base: \"{colors.neutral.500}\",\n _dark: \"{colors.neutral.600}\",\n },\n },\n\n muted: {\n value: {\n base: \"{colors.neutral.400}\",\n _dark: \"{colors.neutral.700}\",\n },\n },\n\n subtle: {\n value: {\n base: \"{colors.neutral.300}\",\n _dark: \"{colors.neutral.750}\",\n },\n },\n\n inverted: {\n value: {\n base: \"{colors.neutral.600}\",\n _dark: \"{colors.neutral.500}\",\n },\n },\n\n \"accent-light\": {\n value: {\n base: \"{colors.mint.100}\",\n _dark: \"{colors.mint.100}\",\n },\n },\n\n accent: {\n value: {\n base: \"{colors.blue.700}\",\n _dark: \"{colors.blue.200}\",\n },\n },\n\n button: {\n primary: {\n value: \"{colors.border.muted}\",\n },\n },\n};\n\nexport const blue = {\n border: {\n value: {\n _light: \"{colors.mint.200}\",\n _dark: \"{colors.mint.200}\",\n },\n },\n};\n\nexport const orange = {\n contrast: {\n value: {\n _light: \"black\",\n _dark: \"black\",\n },\n },\n fg: {\n value: {\n _light: \"{colors.orange.700}\",\n _dark: \"{colors.orange.300}\",\n },\n },\n subtle: {\n value: {\n _light: \"{colors.orange.100}\",\n _dark: \"{colors.orange.900}\",\n },\n },\n muted: {\n value: {\n _light: \"{colors.orange.200}\",\n _dark: \"{colors.orange.800}\",\n },\n },\n emphasized: {\n value: {\n _light: \"{colors.orange.300}\",\n _dark: \"{colors.orange.700}\",\n },\n },\n solid: {\n value: {\n _light: \"{colors.orange.500}\",\n _dark: \"{colors.orange.400}\",\n },\n },\n focusRing: {\n value: {\n _light: \"{colors.orange.500}\",\n _dark: \"{colors.orange.500}\",\n },\n },\n border: {\n value: {\n _light: \"{colors.orange.400}\",\n _dark: \"{colors.orange.500}\",\n },\n },\n};\n\nexport const vis = {\n text: {\n primary: {\n value: {\n base: \"{colors.blacks.800}\",\n _dark: \"{colors.blacks.200}\",\n },\n },\n secondary: {\n value: {\n base: \"{colors.blacks.600}\",\n _dark: \"{colors.blacks.500}\",\n },\n },\n },\n\n grid: {\n value: {\n base: \"{colors.blacks.300}\",\n _dark: \"{colors.blacks.800}\",\n },\n },\n\n axis: {\n value: {\n base: \"{colors.blacks.700}\",\n _dark: \"{colors.blacks.300}\",\n },\n },\n\n categorical: {\n 1: {\n value: {\n base: \"{colors.blue.300}\",\n _dark: \"{colors.blue.300}\",\n },\n },\n 2: {\n value: {\n base: \"{colors.orange.500}\",\n _dark: \"{colors.orange.500}\",\n },\n },\n 3: {\n value: {\n base: \"{colors.purple.700}\",\n _dark: \"{colors.purple.700}\",\n },\n },\n 4: {\n value: {\n base: \"{colors.red.500}\",\n _dark: \"{colors.red.600}\",\n },\n },\n 5: {\n value: {\n base: \"{colors.pink.500}\",\n _dark: \"{colors.pink.500}\",\n },\n },\n 6: {\n value: {\n base: \"{colors.cyan.800}\",\n _dark: \"{colors.green.500}\",\n },\n },\n 7: {\n value: {\n base: \"{colors.red.200}\",\n _dark: \"{colors.cyan.700}\",\n },\n },\n },\n\n sequential: {\n blue: {\n \"low-3\": {\n value: {\n base: \"{colors.blue.200}\",\n _dark: \"{colors.blue.800}\",\n },\n },\n \"low-2\": {\n value: {\n base: \"{colors.blue.300}\",\n _dark: \"{colors.blue.700}\",\n },\n },\n \"low-1\": {\n value: {\n base: \"{colors.blue.400}\",\n _dark: \"{colors.blue.600}\",\n },\n },\n default: {\n value: {\n base: \"{colors.blue.500}\",\n _dark: \"{colors.blue.500}\",\n },\n },\n \"high-1\": {\n value: {\n base: \"{colors.blue.600}\",\n _dark: \"{colors.blue.400}\",\n },\n },\n \"high-2\": {\n value: {\n base: \"{colors.blue.700}\",\n _dark: \"{colors.blue.300}\",\n },\n },\n \"high-3\": {\n value: {\n base: \"{colors.blue.800}\",\n _dark: \"{colors.blue.200}\",\n },\n },\n },\n red: {\n \"low-3\": {\n value: {\n base: \"{colors.red.200}\",\n _dark: \"{colors.red.800}\",\n },\n },\n \"low-2\": {\n value: {\n base: \"{colors.red.300}\",\n _dark: \"{colors.red.700}\",\n },\n },\n \"low-1\": {\n value: {\n base: \"{colors.red.400}\",\n _dark: \"{colors.red.600}\",\n },\n },\n default: {\n value: {\n base: \"{colors.red.500}\",\n _dark: \"{colors.red.500}\",\n },\n },\n \"high-1\": {\n value: {\n base: \"{colors.red.600}\",\n _dark: \"{colors.red.400}\",\n },\n },\n \"high-2\": {\n value: {\n base: \"{colors.red.700}\",\n _dark: \"{colors.red.300}\",\n },\n },\n \"high-3\": {\n value: {\n base: \"{colors.red.800}\",\n _dark: \"{colors.red.200}\",\n },\n },\n },\n },\n};\n\nexport const text = {\n selectable: {\n primary: {\n value: {\n base: \"{colors.blacks.800}\",\n _dark: \"{colors.blacks.800}\",\n },\n },\n },\n};\n\nexport const semanticColors = {\n fg,\n bg,\n border,\n blue,\n orange,\n vis,\n text,\n};\n","import { defineLayerStyles } from \"@chakra-ui/react\";\n\nexport const layerStyles = defineLayerStyles({\n modal: {\n value: {\n paddingInline: \"xs\",\n paddingBlock: \"sm\",\n borderRadius: \"sm\",\n bg: \"bg\",\n border: \"1px solid\",\n borderColor: \"border\",\n boxShadow: \"mid\",\n },\n },\n});\n","// Primitive shadow tokens\nexport const shadows = {\n \"low-light\": { value: \"0px 2px 4px 0px rgba(0, 0, 0, 0.10)\" },\n \"mid-light\": { value: \"0px 6px 12px 0px rgba(0, 0, 0, 0.10)\" },\n \"high-light\": { value: \"0px 12px 24px 0px rgba(0, 0, 0, 0.10)\" },\n \"low-dark\": { value: \"0px 2px 4px 0px rgba(0, 0, 0, 0.45)\" },\n \"mid-dark\": { value: \"0px 6px 12px 0px rgba(0, 0, 0, 0.5)\" },\n \"high-dark\": { value: \"0px 12px 24px 0px rgba(0, 0, 0, 0.55)\" },\n \"desktop-icon-label-text-light\": { value: \"0px 1px 3px rgba(15, 23, 42, 0.45)\" },\n \"desktop-icon-label-text-dark\": { value: \"0px 1px 3px rgba(8, 15, 35, 0.75)\" },\n \"desktop-icon-label-text-selected-light\": { value: \"0px 1px 3px rgba(37, 99, 235, 0.55)\" },\n \"desktop-icon-label-text-selected-dark\": { value: \"0px 2px 4px rgba(37, 99, 235, 0.75)\" },\n};\n\n// Semantic shadow tokens for light/dark mode\nexport const semanticShadows = {\n low: {\n value: {\n base: \"{shadows.low-light}\",\n _dark: \"{shadows.low-dark}\",\n },\n },\n mid: {\n value: {\n base: \"{shadows.mid-light}\",\n _dark: \"{shadows.mid-dark}\",\n },\n },\n high: {\n value: {\n base: \"{shadows.high-light}\",\n _dark: \"{shadows.high-dark}\",\n },\n },\n \"desktop-icon-label\": {\n value: {\n base: \"{shadows.desktop-icon-label-text-light}\",\n _dark: \"{shadows.desktop-icon-label-text-dark}\",\n },\n },\n \"desktop-icon-label-selected\": {\n value: {\n base: \"{shadows.desktop-icon-label-text-selected-light}\",\n _dark: \"{shadows.desktop-icon-label-text-selected-dark}\",\n },\n },\n};\n","import { defineTextStyles } from \"@chakra-ui/react\";\n\nexport const textStyles = defineTextStyles({\n brand: {\n value: {\n fontFamily: \"brand\",\n fontSize: \"3xl\",\n fontWeight: \"500\",\n },\n },\n \"heading/display/L\": {\n value: {\n fontFamily: \"display\",\n fontWeight: \"600\",\n fontSize: [\"5xl\", \"5xl\", \"5xl\", \"6xl\"],\n lineHeight: \"120%\",\n },\n },\n \"heading/display/M\": {\n value: {\n fontFamily: \"display\",\n fontWeight: \"600\",\n fontSize: [\"4xl\", \"5xl\"],\n lineHeight: \"120%\",\n },\n },\n \"heading/display/S\": {\n value: {\n fontFamily: \"display\",\n fontWeight: \"600\",\n fontSize: [\"3xl\", \"4xl\"],\n lineHeight: \"120%\",\n },\n },\n \"heading/XL\": {\n value: {\n fontFamily: \"heading\",\n fontSize: \"5xl\",\n fontWeight: \"500\",\n lineHeight: \"120%\",\n },\n },\n \"heading/L\": {\n value: {\n fontFamily: \"heading\",\n fontSize: \"4xl\",\n fontWeight: \"500\",\n lineHeight: \"110%\",\n },\n },\n \"heading/M\": {\n value: {\n fontFamily: \"heading\",\n fontSize: \"3xl\",\n fontWeight: \"500\",\n lineHeight: \"120%\",\n },\n },\n \"heading/S\": {\n value: {\n fontFamily: \"heading\",\n fontSize: \"2xl\",\n fontWeight: \"500\",\n lineHeight: \"120%\",\n },\n },\n \"label/XL/regular\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"2xl\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.16px\",\n },\n },\n \"label/L/regular\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"lg\",\n fontWeight: \"400\",\n lineHeight: \"20px\",\n letterSpacing: \"0.16px\",\n },\n },\n \"label/L/medium\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"lg\",\n fontWeight: \"500\",\n lineHeight: \"20px\",\n letterSpacing: \"0.16px\",\n },\n },\n \"label/L/medium/underline\": {\n value: {\n textDecoration: \"underline\",\n fontFamily: \"label\",\n fontSize: \"lg\",\n fontWeight: \"500\",\n lineHeight: \"20px\",\n letterSpacing: \"0.16px\",\n },\n },\n \"label/L/medium/uppercase\": {\n value: {\n letterSpacing: \"0.089rem\",\n fontFamily: \"label\",\n fontWeight: \"600\",\n fontSize: \"lg\",\n lineHeight: \"150%\",\n textTransform: \"uppercase\",\n color: \"fg.muted\",\n },\n },\n \"label/M/regular\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"md\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"label/M/regular/underline\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"md\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n textDecoration: \"underline\",\n letterSpacing: \"0.14px\",\n },\n },\n \"label/M/medium\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"md\",\n fontWeight: \"500\",\n lineHeight: \"150%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"label/S/regular\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"sm\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.12px\",\n },\n },\n \"label/S/medium\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"sm\",\n fontWeight: \"500\",\n lineHeight: \"150%\",\n letterSpacing: \"0.12px\",\n },\n },\n \"label/S/italic\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"sm\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.12px\",\n fontStyle: \"italic\",\n },\n },\n \"label/XS\": {\n value: {\n fontFamily: \"label\",\n fontSize: \"xs\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.1px\",\n },\n },\n \"paragraph/M/regular\": {\n value: {\n fontFamily: \"body\",\n fontSize: \"md\",\n fontWeight: \"400\",\n lineHeight: \"171%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"paragraph/M/medium\": {\n value: {\n fontFamily: \"body\",\n fontSize: \"md\",\n fontWeight: \"500\",\n lineHeight: \"171%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"paragraph/L/regular\": {\n value: {\n fontFamily: \"body\",\n fontSize: \"lg\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"paragraph/L/medium\": {\n value: {\n fontFamily: \"body\",\n fontSize: \"lg\",\n fontWeight: \"500\",\n lineHeight: \"150%\",\n letterSpacing: \"0.14px\",\n },\n },\n \"paragraph/XL/regular\": {\n value: {\n fontFamily: \"body\",\n fontWeight: \"400\",\n lineHeight: \"150%\",\n fontSize: [\"xl\", \"2xl\"],\n color: \"fg\",\n letterSpacing: \"0.14px\",\n },\n },\n \"paragraph/XL/medium\": {\n value: {\n fontFamily: \"body\",\n fontWeight: \"500\",\n lineHeight: \"150%\",\n fontSize: [\"xl\", \"2xl\"],\n color: \"fg\",\n letterSpacing: \"0.14px\",\n },\n },\n} satisfies Parameters<typeof defineTextStyles>[0]);\n","import { createSystem, defaultConfig, defineConfig } from \"@chakra-ui/react\";\nimport { globalCss } from \"./global\";\nimport { colors } from \"./primitives/colors\";\nimport { fontSizes, fonts, fontWeights } from \"./primitives/fonts\";\nimport { radii, spacing } from \"./primitives/sizes\";\nimport { alertSlotRecipe } from \"./recipes/alert\";\nimport { buttonRecipe } from \"./recipes/button\";\nimport { dialogSlotRecipe } from \"./recipes/dialog\";\nimport { dividerRecipe } from \"./recipes/divider\";\nimport { drawerSlotRecipe } from \"./recipes/drawer\";\nimport { editableSlotRecipe } from \"./recipes/editable\";\nimport { fieldsetSlotRecipe } from \"./recipes/form\";\nimport { inputRecipe } from \"./recipes/input\";\nimport { menuSlotRecipe } from \"./recipes/menu\";\nimport { popoverRecipe } from \"./recipes/popover\";\nimport { progressCircleSlotRecipe } from \"./recipes/progress-circle\";\nimport { skeletonRecipe } from \"./recipes/skeleton\";\nimport { textareaRecipe } from \"./recipes/textarea\";\nimport { tooltipRecipe } from \"./recipes/tooltip\";\nimport { borders } from \"./tokens/borders\";\nimport { semanticColors } from \"./tokens/colors\";\nimport { layerStyles } from \"./tokens/layer-styles\";\nimport { semanticShadows, shadows } from \"./tokens/shadows\";\nimport { textStyles } from \"./tokens/text\";\n\nconst config = defineConfig({\n globalCss,\n theme: {\n breakpoints: {\n \"3xl\": \"2560px\",\n \"4xl\": \"3840px\",\n },\n textStyles,\n layerStyles,\n recipes: {\n button: buttonRecipe,\n divider: dividerRecipe,\n input: inputRecipe,\n skeleton: skeletonRecipe,\n textarea: textareaRecipe,\n },\n tokens: {\n colors,\n fonts,\n fontSizes,\n fontWeights,\n radii,\n shadows,\n spacing,\n },\n semanticTokens: {\n colors: semanticColors,\n borders,\n shadows: semanticShadows,\n },\n slotRecipes: {\n alert: alertSlotRecipe,\n drawer: drawerSlotRecipe,\n tooltip: tooltipRecipe,\n popover: popoverRecipe,\n menu: menuSlotRecipe,\n editable: editableSlotRecipe,\n form: fieldsetSlotRecipe,\n dialog: dialogSlotRecipe,\n progressCircle: progressCircleSlotRecipe,\n },\n },\n});\n\nexport default createSystem(defaultConfig, config);\n"],"names":["globalCss","bg","base","_dark","color","html","height","width","overflow","body","fontFamily","fontWeight","fontSize","borderColor","display","zIndex","from","opacity","transform","to","blacks","DEFAULT","value","blue","sapphire","pink","peach","red","orange","yellow","green","teal","cyan","purple","sand","neutral","mint","colors","fonts","brand","heading","label","fontSizes","xs","sm","md","lg","xl","fontWeights","regular","medium","semibold","bold","sp","spacing","none","radii","full","alertSlotRecipe","defineSlotRecipe","slots","alertAnatomy","keys","root","pt","pb","buttonRecipe","defineRecipe","borderRadius","transition","_disabled","_hover","_loading","variants","variant","outline","border","_active","textDecoration","primary","secondary","ghost","size","px","h","textStyle","defaultVariants","dialogSlotRecipe","dialogAnatomy","content","dividerRecipe","drawerSlotRecipe","parts","header","p","editableSlotRecipe","preview","focusRingColor","py","lineHeight","transitionProperty","transitionDuration","input","_focusVisible","boxShadow","_placeholder","textarea","fieldsetSlotRecipe","fieldsetAnatomy","legend","mb","inputRecipe","_focus","menuSlotRecipe","menuAnatomy","itemGroupLabel","ml","item","flexDirection","gap","borderWidth","borderStyle","popoverRecipe","popoverAnatomy","positioner","closeTrigger","arrow","title","borderBottom","footer","responsive","baseSizeVariants","baseProgressCircleSlotRecipe","progressCircleSlotRecipe","circle","valueText","skeletonRecipe","textareaRecipe","paddingX","paddingY","tooltipRecipe","tooltipAnatomy","borders","muted","subtle","inverted","accent","fg","success","error","button","default","disabled","hover","active","code","emphasized","panel","dark","white","pressed","focus","selected","light","_light","contrast","solid","focusRing","vis","text","grid","axis","categorical","sequential","selectable","semanticColors","layerStyles","defineLayerStyles","modal","paddingInline","paddingBlock","shadows","semanticShadows","low","mid","high","textStyles","defineTextStyles","letterSpacing","textTransform","fontStyle","config","defineConfig","theme","breakpoints","recipes","divider","skeleton","tokens","semanticTokens","slotRecipes","alert","drawer","tooltip","popover","menu","editable","form","dialog","progressCircle","createSystem","defaultConfig"],"mappings":"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"}
|