@etus/ui 0.4.0-beta.7 → 0.4.0-beta.9
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/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
- package/dist/chunk-2FJJOHHH.js.map +1 -0
- package/dist/{chunk-2YWWZEPE.js → chunk-2HM5Z2YP.js} +3 -3
- package/dist/{chunk-2YWWZEPE.js.map → chunk-2HM5Z2YP.js.map} +1 -1
- package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
- package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
- package/dist/{chunk-SCGKQ5RE.js → chunk-2ROFZG3A.js} +3 -3
- package/dist/{chunk-SCGKQ5RE.js.map → chunk-2ROFZG3A.js.map} +1 -1
- package/dist/chunk-2Z722V5K.js +231 -0
- package/dist/chunk-2Z722V5K.js.map +1 -0
- package/dist/chunk-37IIHQP4.js +233 -0
- package/dist/chunk-37IIHQP4.js.map +1 -0
- package/dist/{chunk-YP2ATSXP.js → chunk-3BBOSSDG.js} +14 -6
- package/dist/{chunk-YP2ATSXP.js.map → chunk-3BBOSSDG.js.map} +1 -1
- package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
- package/dist/chunk-3JCV72FO.js.map +1 -0
- package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
- package/dist/chunk-45D4O7RK.js.map +1 -0
- package/dist/{chunk-OTSK2KAI.js → chunk-4EYYCHLD.js} +5 -5
- package/dist/{chunk-OTSK2KAI.js.map → chunk-4EYYCHLD.js.map} +1 -1
- package/dist/{chunk-QIETN4UU.js → chunk-55RLLBXW.js} +4 -4
- package/dist/{chunk-QIETN4UU.js.map → chunk-55RLLBXW.js.map} +1 -1
- package/dist/{chunk-FCT6FEEZ.js → chunk-5DMK7CVS.js} +5 -5
- package/dist/{chunk-FCT6FEEZ.js.map → chunk-5DMK7CVS.js.map} +1 -1
- package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
- package/dist/chunk-5I7AXWJU.js.map +1 -0
- package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
- package/dist/chunk-5SUD32RK.js.map +1 -0
- package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
- package/dist/chunk-6DN2UAIR.js.map +1 -0
- package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
- package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
- package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
- package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
- package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
- package/dist/chunk-DCUFQJYP.js.map +1 -0
- package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
- package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
- package/dist/{chunk-23BHD62H.js → chunk-EVZ2GZU4.js} +5 -5
- package/dist/chunk-EVZ2GZU4.js.map +1 -0
- package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
- package/dist/chunk-G2MAGZHQ.js.map +1 -0
- package/dist/{chunk-4GQN76L7.js → chunk-G7PBPX3K.js} +3 -3
- package/dist/{chunk-4GQN76L7.js.map → chunk-G7PBPX3K.js.map} +1 -1
- package/dist/{chunk-36XTKR3B.js → chunk-GDSYLR7L.js} +4 -4
- package/dist/{chunk-36XTKR3B.js.map → chunk-GDSYLR7L.js.map} +1 -1
- package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
- package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
- package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
- package/dist/chunk-HI3T55XK.js.map +1 -0
- package/dist/chunk-HJ4E6YPW.js +236 -0
- package/dist/chunk-HJ4E6YPW.js.map +1 -0
- package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
- package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
- package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
- package/dist/chunk-IOWHM7ZY.js.map +1 -0
- package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
- package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
- package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
- package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
- package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
- package/dist/chunk-KVJOKWP4.js.map +1 -0
- package/dist/{chunk-2Y7PQ6ZL.js → chunk-LNSCL76Q.js} +5 -5
- package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-LNSCL76Q.js.map} +1 -1
- package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
- package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
- package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
- package/dist/chunk-M7TPROVH.js.map +1 -0
- package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
- package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
- package/dist/{chunk-JMZ4CO6R.js → chunk-NCT5WXKG.js} +3 -3
- package/dist/{chunk-JMZ4CO6R.js.map → chunk-NCT5WXKG.js.map} +1 -1
- package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
- package/dist/chunk-O7AUE5GP.js.map +1 -0
- package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
- package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
- package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
- package/dist/chunk-OXDWUKGP.js.map +1 -0
- package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
- package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
- package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
- package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
- package/dist/{chunk-KC6CHPT3.js → chunk-RJ2QVURO.js} +4 -4
- package/dist/{chunk-KC6CHPT3.js.map → chunk-RJ2QVURO.js.map} +1 -1
- package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
- package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
- package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
- package/dist/chunk-S7TVRVRU.js.map +1 -0
- package/dist/{chunk-JKYB5QAP.js → chunk-SLRCXCHM.js} +4 -4
- package/dist/{chunk-JKYB5QAP.js.map → chunk-SLRCXCHM.js.map} +1 -1
- package/dist/{chunk-JONTKXGK.js → chunk-U2CXFKRK.js} +3 -3
- package/dist/{chunk-JONTKXGK.js.map → chunk-U2CXFKRK.js.map} +1 -1
- package/dist/{chunk-B4ETIQOO.js → chunk-U2R47SPY.js} +3 -3
- package/dist/{chunk-B4ETIQOO.js.map → chunk-U2R47SPY.js.map} +1 -1
- package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
- package/dist/chunk-UDY3IDCY.js.map +1 -0
- package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
- package/dist/chunk-UPYT2XM5.js.map +1 -0
- package/dist/{chunk-V7XHE25E.js → chunk-UST7EAJM.js} +4 -4
- package/dist/{chunk-V7XHE25E.js.map → chunk-UST7EAJM.js.map} +1 -1
- package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
- package/dist/chunk-VAVE4ZJF.js.map +1 -0
- package/dist/{chunk-6ELVWWIA.js → chunk-VBJ26PZJ.js} +3 -3
- package/dist/{chunk-6ELVWWIA.js.map → chunk-VBJ26PZJ.js.map} +1 -1
- package/dist/chunk-WKWLKGNI.js +643 -0
- package/dist/chunk-WKWLKGNI.js.map +1 -0
- package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
- package/dist/chunk-X253YD45.js.map +1 -0
- package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
- package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
- package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
- package/dist/chunk-XAIUZJOJ.js.map +1 -0
- package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
- package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
- package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
- package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
- package/dist/chunk-XYYOV5GW.js +186 -0
- package/dist/chunk-XYYOV5GW.js.map +1 -0
- package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
- package/dist/chunk-YACIRNVP.js.map +1 -0
- package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
- package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
- package/dist/{chunk-AUCDXPWH.js → chunk-YZ25HHV2.js} +5 -5
- package/dist/{chunk-AUCDXPWH.js.map → chunk-YZ25HHV2.js.map} +1 -1
- package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
- package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
- package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
- package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
- package/dist/components/advanced/Calendar/index.js +4 -4
- package/dist/components/advanced/Command/index.js +1 -1
- package/dist/components/advanced/EventCalendar/index.js +4 -4
- package/dist/components/advanced/FileDropzone/index.js +1 -1
- package/dist/components/advanced/FilterBuilder/index.js +4 -4
- package/dist/components/advanced/MarkdownEditor/index.js +2 -2
- package/dist/components/advanced/ReportBuilder/index.js +2 -2
- package/dist/components/advanced/RichTextEditor/index.js +2 -2
- package/dist/components/advanced/index.js +17 -17
- package/dist/components/data-display/AreaChart/index.js +1 -1
- package/dist/components/data-display/BarChart/index.js +1 -1
- package/dist/components/data-display/Carousel/index.js +4 -4
- package/dist/components/data-display/ChartCard/index.js +2 -2
- package/dist/components/data-display/DashboardFilterbar/index.js +6 -6
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +4 -4
- package/dist/components/data-display/DataTable/index.js +7 -7
- package/dist/components/data-display/ImageGallery/index.js +7 -7
- package/dist/components/data-display/KPICard/index.js +4 -4
- package/dist/components/data-display/Lightbox/index.js +1 -1
- package/dist/components/data-display/LineChart/index.js +1 -1
- package/dist/components/data-display/List/index.js +3 -3
- package/dist/components/data-display/Table/index.js +1 -1
- package/dist/components/data-display/VirtualTable/index.js +2 -2
- package/dist/components/data-display/index.js +34 -34
- package/dist/components/feedback/Alert/index.js +1 -1
- package/dist/components/feedback/AlertDialog/index.js +4 -4
- package/dist/components/feedback/ConfirmModal/index.js +5 -5
- package/dist/components/feedback/Modal/index.js +1 -1
- package/dist/components/feedback/Notification/index.js +2 -2
- package/dist/components/feedback/index.js +10 -10
- package/dist/components/forms/ColorPicker/index.js +1 -1
- package/dist/components/forms/DatePicker/index.js +5 -5
- package/dist/components/forms/DateRangePicker/index.js +5 -5
- package/dist/components/forms/Field/index.js +2 -2
- package/dist/components/forms/Form/index.js +2 -2
- package/dist/components/forms/IftaLabel/index.js +1 -1
- package/dist/components/forms/InputGroup/index.js +4 -4
- package/dist/components/forms/InputOTPField/index.js +3 -3
- package/dist/components/forms/MultiSelect/index.js +2 -1
- package/dist/components/forms/RadioButton/index.js +1 -1
- package/dist/components/forms/Rating/index.js +1 -1
- package/dist/components/forms/TagsInput/index.js +2 -2
- package/dist/components/forms/TextareaField/index.js +3 -3
- package/dist/components/forms/ToggleGroup/index.js +1 -1
- package/dist/components/forms/index.js +31 -31
- package/dist/components/index.js +141 -141
- package/dist/components/layout/index.js +2 -2
- package/dist/components/navigation/AccountSwitch/index.js +4 -4
- package/dist/components/navigation/Drawer/index.js +1 -1
- package/dist/components/navigation/DropdownMenu/index.js +1 -1
- package/dist/components/navigation/Header/index.js +1 -1
- package/dist/components/navigation/MobileSidebar/index.js +4 -4
- package/dist/components/navigation/Pagination/index.js +4 -4
- package/dist/components/navigation/Sidebar/index.js +5 -5
- package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
- package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
- package/dist/components/navigation/index.js +16 -16
- package/dist/components/primitives/AspectRatio/index.js +1 -1
- package/dist/components/primitives/Avatar/index.js +1 -1
- package/dist/components/primitives/Badge/index.js +1 -1
- package/dist/components/primitives/Button/index.js +3 -3
- package/dist/components/primitives/ConfirmButton/index.js +5 -5
- package/dist/components/primitives/Label/index.js +1 -1
- package/dist/components/primitives/ProgressBar/index.js +1 -1
- package/dist/components/primitives/SplitButton/index.js +2 -2
- package/dist/components/primitives/StatusIndicator/index.js +1 -1
- package/dist/components/primitives/Tag/index.js +1 -1
- package/dist/components/primitives/Toggle/index.js +1 -1
- package/dist/components/primitives/index.js +21 -21
- package/dist/components/workflow/ApprovalFlow/index.js +5 -5
- package/dist/components/workflow/CommentSystem/index.js +5 -5
- package/dist/components/workflow/Dashboard/index.js +4 -4
- package/dist/components/workflow/DashboardBuilder/index.js +5 -5
- package/dist/components/workflow/KanbanBoard/index.js +5 -5
- package/dist/components/workflow/ReportGenerator/index.js +5 -5
- package/dist/components/workflow/TaskStatus/index.js +2 -2
- package/dist/components/workflow/Wizard/index.js +4 -4
- package/dist/components/workflow/index.js +16 -16
- package/dist/index.d.ts +162 -56
- package/dist/index.js +143 -143
- package/dist/styles.css +121 -25
- package/package.json +2 -2
- package/dist/chunk-23BHD62H.js.map +0 -1
- package/dist/chunk-2UGDLAYC.js.map +0 -1
- package/dist/chunk-33JGPMUW.js.map +0 -1
- package/dist/chunk-3WOGOTOV.js.map +0 -1
- package/dist/chunk-4MQNDQ4O.js.map +0 -1
- package/dist/chunk-65YSTUD2.js.map +0 -1
- package/dist/chunk-FSMHI7DW.js.map +0 -1
- package/dist/chunk-GAP3OZR7.js +0 -223
- package/dist/chunk-GAP3OZR7.js.map +0 -1
- package/dist/chunk-HKXQLWGR.js.map +0 -1
- package/dist/chunk-IBVCSZCH.js.map +0 -1
- package/dist/chunk-ICAQYWCX.js +0 -153
- package/dist/chunk-ICAQYWCX.js.map +0 -1
- package/dist/chunk-IRKDMISK.js.map +0 -1
- package/dist/chunk-J62TFQHR.js.map +0 -1
- package/dist/chunk-KPNNSUXM.js.map +0 -1
- package/dist/chunk-KR3IVNQH.js.map +0 -1
- package/dist/chunk-OWIFNJXZ.js.map +0 -1
- package/dist/chunk-PLLJNHWU.js.map +0 -1
- package/dist/chunk-R4UOT76L.js.map +0 -1
- package/dist/chunk-SHS6EGWS.js +0 -226
- package/dist/chunk-SHS6EGWS.js.map +0 -1
- package/dist/chunk-TNROOKX3.js.map +0 -1
- package/dist/chunk-UFRMZ3M6.js.map +0 -1
- package/dist/chunk-VFALJSXB.js.map +0 -1
- package/dist/chunk-VPNFYQBL.js.map +0 -1
- package/dist/chunk-XD5LE64P.js +0 -311
- package/dist/chunk-XD5LE64P.js.map +0 -1
- package/dist/chunk-XV6NXXXP.js +0 -206
- package/dist/chunk-XV6NXXXP.js.map +0 -1
- package/dist/chunk-YWA63YN3.js.map +0 -1
- package/dist/chunk-Z3FL7LEK.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/advanced/MarkdownEditor/MarkdownEditor.variants.ts","../src/components/advanced/MarkdownEditor/MarkdownEditor.tsx"],"names":[],"mappings":"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","file":"chunk-FYJHWYPM.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const markdownEditorVariants = cva(\n \"bg-background text-foreground border rounded-md overflow-hidden\",\n {\n variants: {\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownToolbarVariants = cva(\n \"bg-muted flex flex-wrap items-center gap-1 border-b p-1\",\n {\n variants: {\n position: {\n top: \"rounded-t-md\",\n bottom: \"rounded-b-md border-t border-b-0\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\nexport const markdownEditorAreaVariants = cva(\n \"font-mono text-sm resize-none bg-background p-4 focus:outline-none w-full\",\n {\n variants: {\n disabled: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownPreviewVariants = cva(\n \"prose prose-sm dark:prose-invert max-w-none p-4 bg-muted/50 overflow-auto\",\n {\n variants: {\n mode: {\n split: \"flex-1\",\n tabs: \"\",\n preview: \"\",\n },\n },\n defaultVariants: {\n mode: \"tabs\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n MarkdownEditorProps,\n MarkdownEditorRef,\n MarkdownHelpProps,\n MarkdownPreviewProps,\n MarkdownToolbarProps,\n} from \"./MarkdownEditor.types\"\n\nimport {\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HelpCircleIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n QuoteIcon,\n StrikethroughIcon,\n} from \"lucide-react\"\nimport { marked } from \"marked\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../navigation/Tabs\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\nimport {\n markdownEditorAreaVariants,\n markdownEditorVariants,\n markdownPreviewVariants,\n markdownToolbarVariants,\n} from \"./MarkdownEditor.variants\"\n\n// Configure marked for security\nmarked.setOptions({\n breaks: true,\n gfm: true,\n})\n\n/**\n * MarkdownHelp - Modal with markdown syntax reference\n */\nfunction MarkdownHelp({ open, onOpenChange }: MarkdownHelpProps) {\n const syntaxExamples = [\n { syntax: \"**bold**\", description: \"Bold text\" },\n { syntax: \"*italic*\", description: \"Italic text\" },\n { syntax: \"~~strikethrough~~\", description: \"Strikethrough\" },\n { syntax: \"# Heading 1\", description: \"Large heading\" },\n { syntax: \"## Heading 2\", description: \"Medium heading\" },\n { syntax: \"### Heading 3\", description: \"Small heading\" },\n { syntax: \"[link](url)\", description: \"Hyperlink\" },\n { syntax: \"\", description: \"Image\" },\n { syntax: \"> quote\", description: \"Blockquote\" },\n { syntax: \"`code`\", description: \"Inline code\" },\n { syntax: \"```code block```\", description: \"Code block\" },\n { syntax: \"- item\", description: \"Unordered list\" },\n { syntax: \"1. item\", description: \"Ordered list\" },\n { syntax: \"- [ ] task\", description: \"Task list\" },\n ]\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Markdown Syntax</DialogTitle>\n <DialogDescription>\n Quick reference for markdown formatting\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid grid-cols-2 gap-2 text-sm\">\n {syntaxExamples.map(({ syntax, description }) => (\n <div key={syntax} className=\"flex items-center gap-2\">\n <code className=\"bg-muted rounded px-1.5 py-0.5 font-mono text-xs\">\n {syntax}\n </code>\n <span className=\"text-muted-foreground\">{description}</span>\n </div>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n/**\n * MarkdownPreview - Renders markdown content as HTML\n */\nfunction MarkdownPreview({ content, className }: MarkdownPreviewProps) {\n const html = React.useMemo(() => {\n if (!content) return \"\"\n return marked.parse(content) as string\n }, [content])\n\n return (\n <div\n className={cn(markdownPreviewVariants(), className)}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml -- required for markdown rendering\n dangerouslySetInnerHTML={{ __html: html }}\n data-slot=\"markdown-preview\"\n />\n )\n}\n\n/**\n * MarkdownToolbar - Formatting toolbar for the editor\n */\nfunction MarkdownToolbar({\n className,\n disabled = false,\n editorRef,\n showHelp = true,\n onHelpClick,\n}: MarkdownToolbarProps) {\n const handleAction = React.useCallback(\n (before: string, after: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.wrapSelection(before, after)\n },\n [disabled, editorRef]\n )\n\n const handleInsert = React.useCallback(\n (text: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.insertText(text)\n },\n [disabled, editorRef]\n )\n\n return (\n <div\n aria-label=\"Markdown formatting\"\n className={cn(markdownToolbarVariants(), className)}\n data-slot=\"markdown-toolbar\"\n role=\"toolbar\"\n >\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold (Ctrl+B)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"**\", \"**\"); }}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic (Ctrl+I)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"*\", \"*\"); }}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"~~\", \"~~\"); }}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code (Ctrl+E)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"`\", \"`\"); }}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"# \"); }}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"## \"); }}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"### \"); }}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- \"); }}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Numbered list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"1. \"); }}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- [ ] \"); }}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Quote\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"> \"); }}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Link (Ctrl+K)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"[\", \"](url)\"); }}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Image\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"\"); }}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n\n {showHelp && (\n <>\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Markdown help\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={onHelpClick}\n >\n <HelpCircleIcon className=\"size-4\" />\n </Toggle>\n </>\n )}\n </div>\n )\n}\n\n/**\n * MarkdownEditor - A markdown editor with toolbar and preview.\n *\n * Supports tabs mode (switch between editor/preview), split mode (side by side),\n * or standalone editor/preview modes.\n *\n * @example\n * ```tsx\n * const [content, setContent] = useState(\"\")\n *\n * <MarkdownEditor\n * value={content}\n * onChange={setContent}\n * placeholder=\"Write something...\"\n * />\n * ```\n */\nfunction MarkdownEditor({\n \"aria-describedby\": ariaDescribedBy,\n \"aria-label\": ariaLabel = \"Markdown editor\",\n allowImages: _allowImages = true,\n className,\n defaultValue = \"\",\n disabled = false,\n maxHeight,\n minHeight = \"200px\",\n mode = \"tabs\",\n onBlur,\n onChange,\n onFocus,\n onImageUpload: _onImageUpload,\n placeholder = \"Write markdown...\",\n readOnly = false,\n ref,\n showHelp = true,\n showToolbar = true,\n toolbar: _toolbar,\n value,\n}: MarkdownEditorProps & { ref?: React.Ref<MarkdownEditorRef> }) {\n const textareaRef = React.useRef<HTMLTextAreaElement>(null)\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [showHelpModal, setShowHelpModal] = React.useState(false)\n\n // Controlled vs uncontrolled value\n const currentValue = value ?? internalValue\n\n // Create stable ref for internal use (toolbar, etc.)\n const editorRef = React.useRef<MarkdownEditorRef | null>(null)\n\n // Expose ref methods - using useImperativeHandle directly for immediate availability\n React.useImperativeHandle(\n ref,\n () => {\n const methods: MarkdownEditorRef = {\n blur: () => textareaRef.current?.blur(),\n focus: () => textareaRef.current?.focus(),\n getSelection: () => {\n const textarea = textareaRef.current\n if (!textarea) return { start: 0, end: 0, text: \"\" }\n return {\n end: textarea.selectionEnd,\n start: textarea.selectionStart,\n text: textarea.value.substring(\n textarea.selectionStart,\n textarea.selectionEnd\n ),\n }\n },\n getValue: () => textareaRef.current?.value ?? \"\",\n insertText: (text: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const newValue =\n currentValue.slice(0, start) + text + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Restore cursor position\n requestAnimationFrame(() => {\n textarea.selectionStart = start + text.length\n textarea.selectionEnd = start + text.length\n textarea.focus()\n })\n },\n setValue: (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n wrapSelection: (before: string, after: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const selectedText = currentValue.substring(start, end)\n const newText = before + selectedText + after\n const newValue =\n currentValue.slice(0, start) + newText + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Select the wrapped text\n requestAnimationFrame(() => {\n textarea.selectionStart = start + before.length\n textarea.selectionEnd = start + before.length + selectedText.length\n textarea.focus()\n })\n },\n }\n // Also update internal ref for toolbar use\n editorRef.current = methods\n return methods\n },\n [currentValue, onChange, value]\n )\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [onChange, value]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (disabled || readOnly) return\n\n const isMod = e.metaKey || e.ctrlKey\n\n if (isMod && e.key === \"b\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"**\", \"**\")\n } else if (isMod && e.key === \"i\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"*\", \"*\")\n } else if (isMod && e.key === \"k\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"[\", \"](url)\")\n } else if (isMod && e.key === \"e\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"`\", \"`\")\n }\n },\n [disabled, readOnly]\n )\n\n const isDisabled = disabled || readOnly\n\n const editorStyle: React.CSSProperties = {\n maxHeight,\n minHeight,\n }\n\n const renderEditor = () => (\n <textarea\n ref={textareaRef}\n aria-describedby={ariaDescribedBy}\n aria-label={ariaLabel}\n aria-multiline=\"true\"\n className={cn(markdownEditorAreaVariants({ disabled: isDisabled }))}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readOnly}\n role=\"textbox\"\n style={editorStyle}\n value={currentValue}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n />\n )\n\n const renderPreview = () => (\n <MarkdownPreview\n className={mode === \"split\" ? \"flex-1\" : undefined}\n content={currentValue}\n />\n )\n\n const renderContent = () => {\n switch (mode) {\n case \"editor\":\n return renderEditor()\n\n case \"preview\":\n return renderPreview()\n\n case \"split\":\n return (\n <div className=\"flex flex-1\">\n <div className=\"flex-1 overflow-auto border-r\" style={editorStyle}>\n {renderEditor()}\n </div>\n <div className=\"flex-1 overflow-auto\" style={editorStyle}>\n {renderPreview()}\n </div>\n </div>\n )\n\n case \"tabs\":\n default:\n return (\n <Tabs className=\"flex-1\" defaultValue=\"editor\">\n <TabsList className=\"mx-2 mt-2\">\n <TabsTrigger value=\"editor\">Editor</TabsTrigger>\n <TabsTrigger value=\"preview\">Preview</TabsTrigger>\n </TabsList>\n <TabsContent className=\"mt-0\" value=\"editor\">\n {renderEditor()}\n </TabsContent>\n <TabsContent className=\"mt-0\" value=\"preview\">\n {renderPreview()}\n </TabsContent>\n </Tabs>\n )\n }\n }\n\n return (\n <>\n <div\n className={cn(markdownEditorVariants({ disabled }), className)}\n data-slot=\"markdown-editor\"\n >\n {showToolbar && mode !== \"preview\" && (\n <MarkdownToolbar\n disabled={isDisabled}\n editorRef={editorRef as React.RefObject<MarkdownEditorRef>}\n showHelp={showHelp}\n onHelpClick={() => { setShowHelpModal(true); }}\n />\n )}\n {renderContent()}\n </div>\n\n <MarkdownHelp open={showHelpModal} onOpenChange={setShowHelpModal} />\n </>\n )\n}\n\nexport { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/MarkdownEditor/MarkdownEditor.variants.ts","../src/components/advanced/MarkdownEditor/MarkdownEditor.tsx"],"names":[],"mappings":"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","file":"chunk-S524YVMO.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const markdownEditorVariants = cva(\n \"bg-background text-foreground border rounded-md overflow-hidden\",\n {\n variants: {\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownToolbarVariants = cva(\n \"bg-muted flex flex-wrap items-center gap-1 border-b p-1\",\n {\n variants: {\n position: {\n top: \"rounded-t-md\",\n bottom: \"rounded-b-md border-t border-b-0\",\n },\n },\n defaultVariants: {\n position: \"top\",\n },\n }\n)\n\nexport const markdownEditorAreaVariants = cva(\n \"font-mono text-sm resize-none bg-background p-4 focus:outline-none w-full\",\n {\n variants: {\n disabled: {\n true: \"cursor-not-allowed\",\n false: \"\",\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n)\n\nexport const markdownPreviewVariants = cva(\n \"prose prose-sm dark:prose-invert max-w-none p-4 bg-muted/50 overflow-auto\",\n {\n variants: {\n mode: {\n split: \"flex-1\",\n tabs: \"\",\n preview: \"\",\n },\n },\n defaultVariants: {\n mode: \"tabs\",\n },\n }\n)\n","\"use client\"\n\nimport type {\n MarkdownEditorProps,\n MarkdownEditorRef,\n MarkdownHelpProps,\n MarkdownPreviewProps,\n MarkdownToolbarProps,\n} from \"./MarkdownEditor.types\"\n\nimport {\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HelpCircleIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n QuoteIcon,\n StrikethroughIcon,\n} from \"lucide-react\"\nimport { marked } from \"marked\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../navigation/Tabs\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\nimport {\n markdownEditorAreaVariants,\n markdownEditorVariants,\n markdownPreviewVariants,\n markdownToolbarVariants,\n} from \"./MarkdownEditor.variants\"\n\n// Configure marked for security\nmarked.setOptions({\n breaks: true,\n gfm: true,\n})\n\n/**\n * MarkdownHelp - Modal with markdown syntax reference\n */\nfunction MarkdownHelp({ open, onOpenChange }: MarkdownHelpProps) {\n const syntaxExamples = [\n { syntax: \"**bold**\", description: \"Bold text\" },\n { syntax: \"*italic*\", description: \"Italic text\" },\n { syntax: \"~~strikethrough~~\", description: \"Strikethrough\" },\n { syntax: \"# Heading 1\", description: \"Large heading\" },\n { syntax: \"## Heading 2\", description: \"Medium heading\" },\n { syntax: \"### Heading 3\", description: \"Small heading\" },\n { syntax: \"[link](url)\", description: \"Hyperlink\" },\n { syntax: \"\", description: \"Image\" },\n { syntax: \"> quote\", description: \"Blockquote\" },\n { syntax: \"`code`\", description: \"Inline code\" },\n { syntax: \"```code block```\", description: \"Code block\" },\n { syntax: \"- item\", description: \"Unordered list\" },\n { syntax: \"1. item\", description: \"Ordered list\" },\n { syntax: \"- [ ] task\", description: \"Task list\" },\n ]\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Markdown Syntax</DialogTitle>\n <DialogDescription>\n Quick reference for markdown formatting\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid grid-cols-2 gap-2 text-sm\">\n {syntaxExamples.map(({ syntax, description }) => (\n <div key={syntax} className=\"flex items-center gap-2\">\n <code className=\"bg-muted rounded px-1.5 py-0.5 font-mono text-xs\">\n {syntax}\n </code>\n <span className=\"text-muted-foreground\">{description}</span>\n </div>\n ))}\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n/**\n * MarkdownPreview - Renders markdown content as HTML\n */\nfunction MarkdownPreview({ content, className }: MarkdownPreviewProps) {\n const html = React.useMemo(() => {\n if (!content) return \"\"\n return marked.parse(content) as string\n }, [content])\n\n return (\n <div\n className={cn(markdownPreviewVariants(), className)}\n // eslint-disable-next-line @eslint-react/dom/no-dangerously-set-innerhtml -- required for markdown rendering\n dangerouslySetInnerHTML={{ __html: html }}\n data-slot=\"markdown-preview\"\n />\n )\n}\n\n/**\n * MarkdownToolbar - Formatting toolbar for the editor\n */\nfunction MarkdownToolbar({\n className,\n disabled = false,\n editorRef,\n showHelp = true,\n onHelpClick,\n}: MarkdownToolbarProps) {\n const handleAction = React.useCallback(\n (before: string, after: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.wrapSelection(before, after)\n },\n [disabled, editorRef]\n )\n\n const handleInsert = React.useCallback(\n (text: string) => {\n if (disabled || !editorRef.current) return\n editorRef.current.insertText(text)\n },\n [disabled, editorRef]\n )\n\n return (\n <div\n aria-label=\"Markdown formatting\"\n className={cn(markdownToolbarVariants(), className)}\n data-slot=\"markdown-toolbar\"\n role=\"toolbar\"\n >\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold (Ctrl+B)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"**\", \"**\"); }}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic (Ctrl+I)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"*\", \"*\"); }}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"~~\", \"~~\"); }}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code (Ctrl+E)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"`\", \"`\"); }}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Headings */}\n <Toggle\n aria-label=\"Heading 1\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"# \"); }}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"## \"); }}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"### \"); }}\n >\n <Heading3Icon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Lists */}\n <Toggle\n aria-label=\"Bullet list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- \"); }}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Numbered list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"1. \"); }}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"- [ ] \"); }}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Quote\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleInsert(\"> \"); }}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Link (Ctrl+K)\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"[\", \"](url)\"); }}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Image\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => { handleAction(\"\"); }}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n\n {showHelp && (\n <>\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Markdown help\"\n disabled={disabled}\n pressed={false}\n size=\"sm\"\n onPressedChange={onHelpClick}\n >\n <HelpCircleIcon className=\"size-4\" />\n </Toggle>\n </>\n )}\n </div>\n )\n}\n\n/**\n * MarkdownEditor - A markdown editor with toolbar and preview.\n *\n * Supports tabs mode (switch between editor/preview), split mode (side by side),\n * or standalone editor/preview modes.\n *\n * @example\n * ```tsx\n * const [content, setContent] = useState(\"\")\n *\n * <MarkdownEditor\n * value={content}\n * onChange={setContent}\n * placeholder=\"Write something...\"\n * />\n * ```\n */\nfunction MarkdownEditor({\n \"aria-describedby\": ariaDescribedBy,\n \"aria-label\": ariaLabel = \"Markdown editor\",\n allowImages: _allowImages = true,\n className,\n defaultValue = \"\",\n disabled = false,\n maxHeight,\n minHeight = \"200px\",\n mode = \"tabs\",\n onBlur,\n onChange,\n onFocus,\n onImageUpload: _onImageUpload,\n placeholder = \"Write markdown...\",\n readOnly = false,\n ref,\n showHelp = true,\n showToolbar = true,\n toolbar: _toolbar,\n value,\n}: MarkdownEditorProps & { ref?: React.Ref<MarkdownEditorRef> }) {\n const textareaRef = React.useRef<HTMLTextAreaElement>(null)\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const [showHelpModal, setShowHelpModal] = React.useState(false)\n\n // Controlled vs uncontrolled value\n const currentValue = value ?? internalValue\n\n // Create stable ref for internal use (toolbar, etc.)\n const editorRef = React.useRef<MarkdownEditorRef | null>(null)\n\n // Expose ref methods - using useImperativeHandle directly for immediate availability\n React.useImperativeHandle(\n ref,\n () => {\n const methods: MarkdownEditorRef = {\n blur: () => textareaRef.current?.blur(),\n focus: () => textareaRef.current?.focus(),\n getSelection: () => {\n const textarea = textareaRef.current\n if (!textarea) return { start: 0, end: 0, text: \"\" }\n return {\n end: textarea.selectionEnd,\n start: textarea.selectionStart,\n text: textarea.value.substring(\n textarea.selectionStart,\n textarea.selectionEnd\n ),\n }\n },\n getValue: () => textareaRef.current?.value ?? \"\",\n insertText: (text: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const newValue =\n currentValue.slice(0, start) + text + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Restore cursor position\n requestAnimationFrame(() => {\n textarea.selectionStart = start + text.length\n textarea.selectionEnd = start + text.length\n textarea.focus()\n })\n },\n setValue: (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n wrapSelection: (before: string, after: string) => {\n const textarea = textareaRef.current\n if (!textarea) return\n\n const start = textarea.selectionStart\n const end = textarea.selectionEnd\n const selectedText = currentValue.substring(start, end)\n const newText = before + selectedText + after\n const newValue =\n currentValue.slice(0, start) + newText + currentValue.slice(end)\n\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n\n // Select the wrapped text\n requestAnimationFrame(() => {\n textarea.selectionStart = start + before.length\n textarea.selectionEnd = start + before.length + selectedText.length\n textarea.focus()\n })\n },\n }\n // Also update internal ref for toolbar use\n editorRef.current = methods\n return methods\n },\n [currentValue, onChange, value]\n )\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [onChange, value]\n )\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (disabled || readOnly) return\n\n const isMod = e.metaKey || e.ctrlKey\n\n if (isMod && e.key === \"b\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"**\", \"**\")\n } else if (isMod && e.key === \"i\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"*\", \"*\")\n } else if (isMod && e.key === \"k\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"[\", \"](url)\")\n } else if (isMod && e.key === \"e\") {\n e.preventDefault()\n editorRef.current?.wrapSelection(\"`\", \"`\")\n }\n },\n [disabled, readOnly]\n )\n\n const isDisabled = disabled || readOnly\n\n const editorStyle: React.CSSProperties = {\n maxHeight,\n minHeight,\n }\n\n const renderEditor = () => (\n <textarea\n ref={textareaRef}\n aria-describedby={ariaDescribedBy}\n aria-label={ariaLabel}\n aria-multiline=\"true\"\n className={cn(markdownEditorAreaVariants({ disabled: isDisabled }))}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readOnly}\n role=\"textbox\"\n style={editorStyle}\n value={currentValue}\n onBlur={onBlur}\n onChange={handleChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n />\n )\n\n const renderPreview = () => (\n <MarkdownPreview\n className={mode === \"split\" ? \"flex-1\" : undefined}\n content={currentValue}\n />\n )\n\n const renderContent = () => {\n switch (mode) {\n case \"editor\":\n return renderEditor()\n\n case \"preview\":\n return renderPreview()\n\n case \"split\":\n return (\n <div className=\"flex flex-1\">\n <div className=\"flex-1 overflow-auto border-r\" style={editorStyle}>\n {renderEditor()}\n </div>\n <div className=\"flex-1 overflow-auto\" style={editorStyle}>\n {renderPreview()}\n </div>\n </div>\n )\n\n case \"tabs\":\n default:\n return (\n <Tabs className=\"flex-1\" defaultValue=\"editor\">\n <TabsList className=\"mx-2 mt-2\">\n <TabsTrigger value=\"editor\">Editor</TabsTrigger>\n <TabsTrigger value=\"preview\">Preview</TabsTrigger>\n </TabsList>\n <TabsContent className=\"mt-0\" value=\"editor\">\n {renderEditor()}\n </TabsContent>\n <TabsContent className=\"mt-0\" value=\"preview\">\n {renderPreview()}\n </TabsContent>\n </Tabs>\n )\n }\n }\n\n return (\n <>\n <div\n className={cn(markdownEditorVariants({ disabled }), className)}\n data-slot=\"markdown-editor\"\n >\n {showToolbar && mode !== \"preview\" && (\n <MarkdownToolbar\n disabled={isDisabled}\n editorRef={editorRef as React.RefObject<MarkdownEditorRef>}\n showHelp={showHelp}\n onHelpClick={() => { setShowHelpModal(true); }}\n />\n )}\n {renderContent()}\n </div>\n\n <MarkdownHelp open={showHelpModal} onOpenChange={setShowHelpModal} />\n </>\n )\n}\n\nexport { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar }\n"]}
|
|
@@ -73,7 +73,7 @@ function StatusIndicator({
|
|
|
73
73
|
const defaultAriaLabel = `Status: ${variant ?? "neutral"}`;
|
|
74
74
|
const accessibleLabel = ariaLabel ?? (label ? void 0 : defaultAriaLabel);
|
|
75
75
|
const isBar = shape === "bar-vertical" || shape === "bar-horizontal";
|
|
76
|
-
const isProd = typeof process !== "undefined" && process.env
|
|
76
|
+
const isProd = typeof process !== "undefined" && process.env.NODE_ENV === "production";
|
|
77
77
|
if (isBar && label && !isProd) {
|
|
78
78
|
console.warn(
|
|
79
79
|
`<StatusIndicator shape="${shape}"> ignores the \`label\` prop. Use shape="dot" to combine with label, or move the label to surrounding context.`
|
|
@@ -163,5 +163,5 @@ function StatusIndicator({
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
export { StatusIndicator, statusIndicatorVariants };
|
|
166
|
-
//# sourceMappingURL=chunk-
|
|
167
|
-
//# sourceMappingURL=chunk-
|
|
166
|
+
//# sourceMappingURL=chunk-S7TVRVRU.js.map
|
|
167
|
+
//# sourceMappingURL=chunk-S7TVRVRU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/StatusIndicator/StatusIndicator.variants.ts","../src/components/primitives/StatusIndicator/StatusIndicator.tsx"],"names":[],"mappings":"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","file":"chunk-S7TVRVRU.js","sourcesContent":["// StatusIndicator/StatusIndicator.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n// Extracted to satisfy sonarjs/no-duplicate-string — each appears multiple times in compoundVariants.\nconst FULL_H = \"h-full\"\nconst FULL_W = \"w-full\"\nconst SHAPE_BAR_V = \"bar-vertical\" as const\nconst SHAPE_BAR_H = \"bar-horizontal\" as const\n\n/**\n * StatusIndicator style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const statusIndicatorVariants = cva(\"shrink-0\", {\n variants: {\n variant: {\n success: \"bg-[color:var(--status-indicator-dot-color-success)]\",\n warning: \"bg-[color:var(--status-indicator-dot-color-warning)]\",\n error: \"bg-[color:var(--status-indicator-dot-color-error)]\",\n destructive: \"bg-[color:var(--status-indicator-dot-color-destructive)]\",\n info: \"bg-[color:var(--status-indicator-dot-color-info)]\",\n neutral: \"bg-[color:var(--status-indicator-dot-color-neutral)]\",\n },\n shape: {\n dot: \"rounded-[var(--status-indicator-root-border-radius)]\",\n \"bar-vertical\": \"rounded-xs\",\n \"bar-horizontal\": \"rounded-xs\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n default: \"\",\n lg: \"\",\n xl: \"\",\n \"2xl\": \"\",\n },\n },\n compoundVariants: [\n // Dot — uses size for both dimensions\n { shape: \"dot\", size: \"xs\", className: \"size-[var(--status-indicator-dot-size-xs)]\" },\n { shape: \"dot\", size: \"sm\", className: \"size-[var(--status-indicator-dot-size-sm)]\" },\n { shape: \"dot\", size: \"default\", className: \"size-[var(--status-indicator-dot-size-default)]\" },\n { shape: \"dot\", size: \"lg\", className: \"size-[var(--status-indicator-dot-size-lg)]\" },\n { shape: \"dot\", size: \"xl\", className: \"size-[var(--status-indicator-dot-size-xl)]\" },\n { shape: \"dot\", size: \"2xl\", className: \"size-[var(--status-indicator-dot-size-2xl)]\" },\n // Bar-vertical — width is secondary dim (size controls it); height 100% (FULL_H constant below)\n { shape: SHAPE_BAR_V, size: \"xs\", className: `${FULL_H} w-px` },\n { shape: SHAPE_BAR_V, size: \"sm\", className: `${FULL_H} w-[2px]` },\n { shape: SHAPE_BAR_V, size: \"default\", className: `${FULL_H} w-[2px]` },\n { shape: SHAPE_BAR_V, size: \"lg\", className: `${FULL_H} w-[3px]` },\n { shape: SHAPE_BAR_V, size: \"xl\", className: `${FULL_H} w-[4px]` },\n { shape: SHAPE_BAR_V, size: \"2xl\", className: `${FULL_H} w-[6px]` },\n // Bar-horizontal — height is secondary dim; width 100% (FULL_W constant below)\n { shape: SHAPE_BAR_H, size: \"xs\", className: `${FULL_W} h-px` },\n { shape: SHAPE_BAR_H, size: \"sm\", className: `${FULL_W} h-[2px]` },\n { shape: SHAPE_BAR_H, size: \"default\", className: `${FULL_W} h-[2px]` },\n { shape: SHAPE_BAR_H, size: \"lg\", className: `${FULL_W} h-[3px]` },\n { shape: SHAPE_BAR_H, size: \"xl\", className: `${FULL_W} h-[4px]` },\n { shape: SHAPE_BAR_H, size: \"2xl\", className: `${FULL_W} h-[6px]` },\n ],\n defaultVariants: {\n variant: \"neutral\",\n shape: \"dot\",\n size: \"default\",\n },\n})\n\n// Export variant prop types\nexport type StatusIndicatorVariantProps = VariantProps<typeof statusIndicatorVariants>\n","\"use client\"\n\nimport type { StatusIndicatorProps } from \"./StatusIndicator.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { statusIndicatorVariants } from \"./StatusIndicator.variants\"\n\nfunction StatusIndicator({\n className,\n variant,\n shape = \"dot\",\n size,\n pulse = false,\n label,\n labelPosition = \"right\",\n \"aria-label\": ariaLabel,\n ...props\n}: StatusIndicatorProps) {\n // Generate accessible label based on variant if not provided\n const defaultAriaLabel = `Status: ${variant ?? \"neutral\"}`\n const accessibleLabel = ariaLabel ?? (label ? undefined : defaultAriaLabel)\n\n // Bar shapes ignore `label` — they're purely visual (warning in dev when misused).\n const isBar = shape === \"bar-vertical\" || shape === \"bar-horizontal\"\n \n // `typeof process` guard is required so the library runs in browser bundlers (Vite, etc.) where `process` is not defined globally — without it, the dev-only warning branch throws `ReferenceError: process is not defined`.\n const isProd =\n typeof process !== \"undefined\" && process.env.NODE_ENV === \"production\"\n if (isBar && label && !isProd) {\n \n console.warn(\n `<StatusIndicator shape=\"${shape}\"> ignores the \\`label\\` prop. Use shape=\"dot\" to combine with label, or move the label to surrounding context.`,\n )\n }\n\n // Bar shape — render the bar alone (no label, no inline-flex wrapper).\n if (isBar) {\n return (\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape, size }),\n pulse && \"animate-pulse\",\n className,\n )}\n aria-label={accessibleLabel}\n data-shape={shape}\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n />\n )\n }\n\n // If no label, render just the dot\n if (!label) {\n return (\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape: \"dot\", size }),\n pulse && \"animate-pulse\",\n className\n )}\n aria-label={accessibleLabel}\n data-shape=\"dot\"\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n >\n <span\n className=\"sr-only\"\n data-slot=\"status-indicator-dot\"\n >\n {variant ?? \"neutral\"}\n </span>\n </span>\n )\n }\n\n // With label, render inline-flex container\n return (\n <span\n className={cn(\n \"inline-flex shrink-0 items-center gap-[var(--status-indicator-label-gap)]\",\n labelPosition === \"left\" && \"flex-row-reverse\",\n className\n )}\n aria-label={accessibleLabel}\n data-shape=\"dot\"\n data-slot=\"status-indicator\"\n data-variant={variant ?? \"neutral\"}\n role=\"status\"\n {...props}\n >\n <span\n className={cn(\n statusIndicatorVariants({ variant, shape: \"dot\", size }),\n pulse && \"animate-pulse\"\n )}\n aria-hidden=\"true\"\n data-slot=\"status-indicator-dot\"\n />\n <span\n className=\"text-[length:var(--status-indicator-label-font-size)] leading-normal text-[color:var(--status-indicator-label-color)]\"\n data-slot=\"status-indicator-label\"\n >\n {label}\n </span>\n </span>\n )\n}\n\nexport { StatusIndicator }\nexport { statusIndicatorVariants } from \"./StatusIndicator.variants\"\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Textarea } from './chunk-U6EOAIPK.js';
|
|
2
|
-
import { Avatar, AvatarImage, AvatarFallback } from './chunk-
|
|
3
|
-
import { Button } from './chunk-
|
|
2
|
+
import { Avatar, AvatarImage, AvatarFallback } from './chunk-3BBOSSDG.js';
|
|
3
|
+
import { Button } from './chunk-HDOR3SN3.js';
|
|
4
4
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
5
5
|
import { Paperclip, Smile, Send, MoreHorizontal, Edit2, Trash2, CornerDownRight, X, MessageCircle } from 'lucide-react';
|
|
6
6
|
import { useId, useRef, useState, useMemo, useCallback } from 'react';
|
|
@@ -1066,5 +1066,5 @@ function CommentSystem({
|
|
|
1066
1066
|
}
|
|
1067
1067
|
|
|
1068
1068
|
export { CommentInput, CommentItem, CommentReactions, CommentSystem, commentActionsVariants, commentContentVariants, commentEmptyStateVariants, commentHeaderVariants, commentInputContainerVariants, commentItemVariants, commentMentionVariants, commentReactionVariants, commentRepliesVariants, commentSystemVariants, commentThreadLineVariants, commentTimelineMarkerVariants, defaultReactions, mentionSuggestionItemVariants, mentionSuggestionsVariants };
|
|
1069
|
-
//# sourceMappingURL=chunk-
|
|
1070
|
-
//# sourceMappingURL=chunk-
|
|
1069
|
+
//# sourceMappingURL=chunk-SLRCXCHM.js.map
|
|
1070
|
+
//# sourceMappingURL=chunk-SLRCXCHM.js.map
|