@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/ColorPicker/ColorPicker.variants.ts","../src/components/forms/ColorPicker/colorMath.ts","../src/components/forms/ColorPicker/ColorPickerPanel.tsx","../src/components/forms/ColorPicker/ColorPicker.tsx"],"names":["m","React2","jsxs","jsx"],"mappings":"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","file":"chunk-WKWLKGNI.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ColorPicker trigger variant styles using CVA\n */\nexport const colorPickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--color-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-[color:var(--color-picker-focus-ring-primary)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\",\n \"aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/20 dark:aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/40 aria-invalid:border-[color:var(--color-picker-focus-ring-destructive)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-9 px-2.5 py-1 text-sm\",\n md: \"h-10 px-3 py-1 text-base md:text-sm\",\n lg: \"h-11 px-3.5 py-1.5 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ColorPicker swatch styles using CVA\n */\nexport const colorPickerSwatchVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input cursor-pointer transition-all\",\n \"hover:scale-110 hover:border-ring\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ColorPicker preview swatch (in trigger) styles\n */\nexport const colorPickerPreviewVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ColorPickerTriggerVariantProps = VariantProps<typeof colorPickerTriggerVariants>\nexport type ColorPickerSwatchVariantProps = VariantProps<typeof colorPickerSwatchVariants>\nexport type ColorPickerPreviewVariantProps = VariantProps<typeof colorPickerPreviewVariants>\n","/**\n * Color conversion helpers for the ColorPicker visual picker (DES-1256 item 3).\n *\n * All hue values are 0–360; saturation/value/lightness are 0–100; alpha is 0–1;\n * RGB channels are 0–255. Internal module — not exported from the package.\n */\n\nexport interface RGBA {\n /** 0–1 */\n a: number\n /** 0–255 */\n b: number\n /** 0–255 */\n g: number\n /** 0–255 */\n r: number\n}\n\nexport interface HSV {\n /** 0–360 */\n h: number\n /** 0–100 */\n s: number\n /** 0–100 */\n v: number\n}\n\nexport interface HSL {\n /** 0–360 */\n h: number\n /** 0–100 */\n l: number\n /** 0–100 */\n s: number\n}\n\nexport type ColorFormat = \"hex\" | \"hsl\" | \"rgb\"\n\nconst clamp = (n: number, min: number, max: number): number =>\n Math.min(max, Math.max(min, n))\n\n/**\n * Parse a hex string (3/4/6/8 digits, optional leading `#`) into RGBA.\n * Returns null when the string is not a valid hex color.\n */\nexport function hexToRgba(hex: string): null | RGBA {\n const match = /^#?([0-9a-f]{3,8})$/i.exec(hex.trim())\n if (!match?.[1]) return null\n let h = match[1]\n if (h.length === 3 || h.length === 4) {\n h = h.replaceAll(/./g, (c) => c + c)\n }\n if (h.length !== 6 && h.length !== 8) return null\n return {\n r: Number.parseInt(h.slice(0, 2), 16),\n g: Number.parseInt(h.slice(2, 4), 16),\n b: Number.parseInt(h.slice(4, 6), 16),\n a: h.length === 8 ? Number.parseInt(h.slice(6, 8), 16) / 255 : 1,\n }\n}\n\nconst toHex2 = (n: number): string =>\n clamp(Math.round(n), 0, 255).toString(16).padStart(2, \"0\")\n\n/** RGBA → hex string. 6-digit when fully opaque, 8-digit (`#rrggbbaa`) otherwise. */\nexport function rgbaToHex({ r, g, b, a }: RGBA): string {\n const base = `#${toHex2(r)}${toHex2(g)}${toHex2(b)}`\n return a >= 1 ? base : base + toHex2(clamp(a, 0, 1) * 255)\n}\n\n/** Shared hue→rgb chroma distribution used by HSV and HSL conversions. */\nfunction chromaToRgb(h: number, c: number, x: number, m: number): RGBA {\n const [rp, gp, bp] =\n h < 60\n ? [c, x, 0]\n : h < 120\n ? [x, c, 0]\n : h < 180\n ? [0, c, x]\n : h < 240\n ? [0, x, c]\n : h < 300\n ? [x, 0, c]\n : [c, 0, x]\n return {\n r: Math.round((rp + m) * 255),\n g: Math.round((gp + m) * 255),\n b: Math.round((bp + m) * 255),\n a: 1,\n }\n}\n\nexport function rgbToHsv(r: number, g: number, b: number): HSV {\n const rn = r / 255\n const gn = g / 255\n const bn = b / 255\n const max = Math.max(rn, gn, bn)\n const min = Math.min(rn, gn, bn)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === rn) h = ((gn - bn) / d) % 6\n else if (max === gn) h = (bn - rn) / d + 2\n else h = (rn - gn) / d + 4\n h *= 60\n if (h < 0) h += 360\n }\n return { h, s: (max === 0 ? 0 : d / max) * 100, v: max * 100 }\n}\n\nexport function hsvToRgb(h: number, s: number, v: number): RGBA {\n const sn = s / 100\n const vn = v / 100\n const c = vn * sn\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n return chromaToRgb(h, c, x, vn - c)\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): HSL {\n const rn = r / 255\n const gn = g / 255\n const bn = b / 255\n const max = Math.max(rn, gn, bn)\n const min = Math.min(rn, gn, bn)\n const d = max - min\n const l = (max + min) / 2\n let h = 0\n let s = 0\n if (d !== 0) {\n s = d / (1 - Math.abs(2 * l - 1))\n if (max === rn) h = ((gn - bn) / d) % 6\n else if (max === gn) h = (bn - rn) / d + 2\n else h = (rn - gn) / d + 4\n h *= 60\n if (h < 0) h += 360\n }\n return { h, s: s * 100, l: l * 100 }\n}\n\nexport function hslToRgb(h: number, s: number, l: number): RGBA {\n const sn = s / 100\n const ln = l / 100\n const c = (1 - Math.abs(2 * ln - 1)) * sn\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n return chromaToRgb(h, c, x, ln - c / 2)\n}\n\n/** Format an RGBA color as a string in the requested format. */\nexport function formatColor(rgba: RGBA, format: ColorFormat): string {\n const { r, g, b, a } = rgba\n if (format === \"hex\") return rgbaToHex(rgba).toUpperCase()\n if (format === \"rgb\") {\n const rgb = `${String(Math.round(r))}, ${String(Math.round(g))}, ${String(Math.round(b))}`\n return a >= 1 ? `rgb(${rgb})` : `rgba(${rgb}, ${String(Number(a.toFixed(2)))})`\n }\n const { h, s, l } = rgbToHsl(r, g, b)\n const hsl = `${String(Math.round(h))}, ${String(Math.round(s))}%, ${String(Math.round(l))}%`\n return a >= 1 ? `hsl(${hsl})` : `hsla(${hsl}, ${String(Number(a.toFixed(2)))})`\n}\n\n/** Parse a user-typed string in the given format into RGBA (null when invalid). */\nexport function parseColor(input: string, format: ColorFormat): null | RGBA {\n const str = input.trim()\n if (format === \"hex\") return hexToRgba(str)\n if (format === \"rgb\") {\n const m =\n /^rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*(?:,\\s*([\\d.]+)\\s*)?\\)$/i.exec(\n str\n )\n if (!m) return null\n return {\n r: clamp(Math.round(Number(m[1])), 0, 255),\n g: clamp(Math.round(Number(m[2])), 0, 255),\n b: clamp(Math.round(Number(m[3])), 0, 255),\n a: m[4] === undefined ? 1 : clamp(Number(m[4]), 0, 1),\n }\n }\n const m =\n /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+)\\s*)?\\)$/i.exec(\n str\n )\n if (!m) return null\n const rgb = hslToRgb(\n Number(m[1]),\n clamp(Number(m[2]), 0, 100),\n clamp(Number(m[3]), 0, 100)\n )\n return { ...rgb, a: m[4] === undefined ? 1 : clamp(Number(m[4]), 0, 1) }\n}\n","\"use client\"\n\nimport type { ColorFormat, RGBA } from \"./colorMath\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n formatColor,\n hexToRgba,\n hsvToRgb,\n parseColor,\n rgbaToHex,\n rgbToHsv,\n} from \"./colorMath\"\n\nconst FORMATS: ColorFormat[] = [\"hex\", \"rgb\", \"hsl\"]\n\nconst clampPct = (n: number): number => Math.min(100, Math.max(0, n))\n\nconst HUE_TRACK =\n \"linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)\"\n\nconst CHECKERBOARD =\n \"repeating-conic-gradient(#bbb 0% 25%, #fff 0% 50%) 50% / 12px 12px\"\n\n// Color-space overlays for the saturation/value area (white = desaturate, black =\n// darken). Held as consts — like HUE_TRACK — since these axes are not tokenizable.\nconst SATURATION_WHITE = \"linear-gradient(to right, #fff, rgba(255,255,255,0))\"\nconst SATURATION_BLACK = \"linear-gradient(to top, #000, rgba(0,0,0,0))\"\n\nconst thumbClass =\n \"pointer-events-none absolute -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white ring-1 ring-black/30\"\n\n// ─────────────────────────── Saturation / Value area ───────────────────────────\n\ninterface SaturationAreaProps {\n hue: number\n onChange: (s: number, v: number) => void\n s: number\n v: number\n}\n\nfunction SaturationArea({ hue, s, v, onChange }: SaturationAreaProps) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const setFromPoint = (clientX: number, clientY: number) => {\n const el = ref.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n onChange(\n clampPct(((clientX - rect.left) / rect.width) * 100),\n clampPct((1 - (clientY - rect.top) / rect.height) * 100)\n )\n }\n\n const handlePointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n e.currentTarget.setPointerCapture(e.pointerId)\n setFromPoint(e.clientX, e.clientY)\n }\n\n const handlePointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.buttons !== 1) return\n setFromPoint(e.clientX, e.clientY)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const step = e.shiftKey ? 10 : 1\n let ns = s\n let nv = v\n let handled = true\n if (e.key === \"ArrowRight\") ns = clampPct(s + step)\n else if (e.key === \"ArrowLeft\") ns = clampPct(s - step)\n else if (e.key === \"ArrowUp\") nv = clampPct(v + step)\n else if (e.key === \"ArrowDown\") nv = clampPct(v - step)\n else handled = false\n if (handled) {\n e.preventDefault()\n onChange(ns, nv)\n }\n }\n\n return (\n <div\n ref={ref}\n aria-label=\"Saturation and brightness\"\n aria-valuetext={`Saturation ${String(Math.round(s))}%, brightness ${String(Math.round(v))}%`}\n className=\"relative h-40 w-full touch-none cursor-crosshair overflow-hidden rounded-md outline-none focus-visible:ring-[length:var(--color-picker-focus-ring-width)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50\"\n data-slot=\"color-picker-area\"\n role=\"slider\"\n style={{ backgroundColor: `hsl(${String(hue)}, 100%, 50%)` }}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div className=\"absolute inset-0\" style={{ background: SATURATION_WHITE }} />\n <div className=\"absolute inset-0\" style={{ background: SATURATION_BLACK }} />\n <span\n style={{\n left: `${String(s)}%`,\n top: `${String(100 - v)}%`,\n backgroundColor: rgbaToHex(hsvToRgb(hue, s, v)),\n }}\n className={cn(thumbClass, \"size-3.5\")}\n data-slot=\"color-picker-area-thumb\"\n />\n </div>\n )\n}\n\n// ─────────────────────────────── 1D color slider ───────────────────────────────\n\ninterface ColorSliderProps {\n ariaLabel: string\n max: number\n onChange: (value: number) => void\n thumbColor: string\n trackStyle: React.CSSProperties\n value: number\n}\n\nfunction ColorSlider({\n ariaLabel,\n max,\n thumbColor,\n trackStyle,\n value,\n onChange,\n}: ColorSliderProps) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const setFromPoint = (clientX: number) => {\n const el = ref.current\n if (!el) return\n const rect = el.getBoundingClientRect()\n const next = ((clientX - rect.left) / rect.width) * max\n onChange(Math.min(max, Math.max(0, next)))\n }\n\n const handlePointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n e.currentTarget.setPointerCapture(e.pointerId)\n setFromPoint(e.clientX)\n }\n\n const handlePointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.buttons !== 1) return\n setFromPoint(e.clientX)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const step = (e.shiftKey ? 10 : 1) * (max / 100)\n let next = value\n let handled = true\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") next = Math.min(max, value + step)\n else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") next = Math.max(0, value - step)\n else if (e.key === \"Home\") next = 0\n else if (e.key === \"End\") next = max\n else handled = false\n if (handled) {\n e.preventDefault()\n onChange(next)\n }\n }\n\n return (\n <div\n ref={ref}\n aria-label={ariaLabel}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={Math.round(value)}\n className=\"relative h-3 w-full touch-none cursor-pointer rounded-full outline-none focus-visible:ring-[length:var(--color-picker-focus-ring-width)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50\"\n role=\"slider\"\n style={trackStyle}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <span\n className={cn(thumbClass, \"top-1/2 size-4\")}\n style={{ left: `${String((value / max) * 100)}%`, backgroundColor: thumbColor }}\n />\n </div>\n )\n}\n\n// ─────────────────────────────────── Panel ─────────────────────────────────────\n\ninterface ColorPickerPanelProps {\n onChange: (hex: string) => void\n showAlpha: boolean\n showInput: boolean\n value: string\n}\n\nexport function ColorPickerPanel({\n showAlpha,\n showInput,\n value,\n onChange,\n}: ColorPickerPanelProps) {\n const initial = hexToRgba(value) ?? { r: 0, g: 0, b: 0, a: 1 }\n const [hsv, setHsv] = React.useState(() => rgbToHsv(initial.r, initial.g, initial.b))\n const [alpha, setAlpha] = React.useState(initial.a)\n const [format, setFormat] = React.useState<ColorFormat>(\"hex\")\n const [draft, setDraft] = React.useState(\"\")\n const lastEmittedRef = React.useRef(value)\n\n const rgba: RGBA = { ...hsvToRgb(hsv.h, hsv.s, hsv.v), a: alpha }\n const formatted = formatColor(rgba, format)\n\n // Sync external value changes (e.g. swatch clicks) into the internal HSV state,\n // skipping the echo of our own emits so dragging never loses hue at the edges.\n // Effects are the intended pattern here: resettable state derived from a prop +\n // a draft field that only re-syncs after a valid value is committed.\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-pass-data-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- resettable state synced from the `value` prop */\n React.useEffect(() => {\n if (value === lastEmittedRef.current) return\n const next = hexToRgba(value)\n if (!next) return\n setHsv(rgbToHsv(next.r, next.g, next.b))\n setAlpha(next.a)\n }, [value])\n\n React.useEffect(() => {\n setDraft(formatted)\n }, [formatted])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-pass-data-to-parent, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const emit = (nextHsv: { h: number; s: number; v: number }, nextAlpha: number) => {\n setHsv(nextHsv)\n setAlpha(nextAlpha)\n const hex = rgbaToHex({ ...hsvToRgb(nextHsv.h, nextHsv.s, nextHsv.v), a: nextAlpha })\n lastEmittedRef.current = hex\n onChange(hex)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n setDraft(raw)\n // While typing hex, only commit a complete 6/8-digit value so 3-digit\n // intermediates don't fire mid-keystroke (3-digit is accepted on blur).\n if (format === \"hex\" && !/^#?[0-9a-f]{6}(?:[0-9a-f]{2})?$/i.test(raw.trim())) return\n const parsed = parseColor(raw, format)\n if (parsed) emit(rgbToHsv(parsed.r, parsed.g, parsed.b), parsed.a)\n }\n\n const handleInputBlur = () => {\n const parsed = parseColor(draft, format)\n if (parsed) emit(rgbToHsv(parsed.r, parsed.g, parsed.b), parsed.a)\n else setDraft(formatted)\n }\n\n const solidHex = rgbaToHex(hsvToRgb(hsv.h, hsv.s, hsv.v))\n\n return (\n <div className=\"space-y-3\" data-slot=\"color-picker-panel\">\n <SaturationArea\n hue={hsv.h}\n s={hsv.s}\n v={hsv.v}\n onChange={(s, v) => { emit({ h: hsv.h, s, v }, alpha) }}\n />\n\n <div className=\"flex items-center gap-3\">\n <span\n style={{\n background: `linear-gradient(${rgbaToHex(rgba)}, ${rgbaToHex(rgba)}), ${CHECKERBOARD}`,\n }}\n aria-hidden=\"true\"\n className=\"size-9 shrink-0 rounded-full border border-[color:var(--color-picker-trigger-border)]\"\n data-slot=\"color-picker-panel-preview\"\n />\n <div className=\"flex-1 space-y-2\">\n <ColorSlider\n ariaLabel=\"Hue\"\n max={360}\n thumbColor={`hsl(${String(hsv.h)}, 100%, 50%)`}\n trackStyle={{ background: HUE_TRACK }}\n value={hsv.h}\n onChange={(h) => { emit({ h, s: hsv.s, v: hsv.v }, alpha) }}\n />\n {showAlpha && (\n <div className=\"relative rounded-full\" style={{ background: CHECKERBOARD }}>\n <ColorSlider\n trackStyle={{\n background: `linear-gradient(to right, rgba(0,0,0,0), ${solidHex})`,\n }}\n ariaLabel=\"Alpha\"\n max={1}\n thumbColor={solidHex}\n value={alpha}\n onChange={(a) => { emit(hsv, a) }}\n />\n </div>\n )}\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div aria-label=\"Color format\" className=\"flex gap-1\" role=\"group\">\n {FORMATS.map((f) => (\n <button\n key={f}\n className={cn(\n \"rounded-md px-2 py-1 text-xs font-medium uppercase transition-colors\",\n format === f\n ? \"bg-accent text-accent-foreground\"\n : \"text-muted-foreground hover:bg-accent/50\"\n )}\n aria-pressed={format === f}\n type=\"button\"\n onClick={() => { setFormat(f) }}\n >\n {f}\n </button>\n ))}\n </div>\n {showInput && (\n <input\n aria-label={`Color value (${format})`}\n className=\"flex h-9 w-full min-w-0 flex-1 rounded-md border border-input bg-transparent px-3 py-1 font-mono text-sm uppercase shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\"\n data-slot=\"color-picker-input\"\n spellCheck={false}\n value={draft}\n onBlur={handleInputBlur}\n onChange={handleInputChange}\n />\n )}\n </div>\n </div>\n )\n}\n","import type { ColorPickerProps } from \"./ColorPicker.types\"\n\nimport { Palette } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport {\n colorPickerPreviewVariants,\n colorPickerSwatchVariants,\n colorPickerTriggerVariants,\n} from \"./ColorPicker.variants\"\nimport { ColorPickerPanel } from \"./ColorPickerPanel\"\n\n/**\n * Normalizes a hex color to lowercase, expanding 3-digit shorthand to 6-digit.\n * 6- and 8-digit (`#rrggbbaa`) values pass through unchanged (just lowercased).\n */\nfunction normalizeHexColor(color: string): string {\n let normalized = color\n if (!normalized.startsWith(\"#\")) {\n normalized = `#${normalized}`\n }\n if (normalized.length === 4) {\n const r = normalized[1] ?? \"\"\n const g = normalized[2] ?? \"\"\n const b = normalized[3] ?? \"\"\n return `#${r}${r}${g}${g}${b}${b}`.toLowerCase()\n }\n return normalized.toLowerCase()\n}\n\n/**\n * Default preset swatches\n */\nconst DEFAULT_SWATCHES = [\n \"#ef4444\", // red\n \"#f97316\", // orange\n \"#eab308\", // yellow\n \"#22c55e\", // green\n \"#14b8a6\", // teal\n \"#3b82f6\", // blue\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#000000\", // black\n \"#ffffff\", // white\n]\n\nfunction ColorPicker({\n className,\n value,\n defaultValue,\n placeholder = \"Select color\",\n disabled = false,\n swatches = DEFAULT_SWATCHES,\n showInput = true,\n showAlpha = true,\n showPreview = true,\n onChange,\n onOpenChange,\n size = \"md\",\n variant = \"default\",\n required = false,\n invalid = false,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n}: ColorPickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalColor, setInternalColor] = React.useState<string | undefined>(defaultValue)\n\n // Use controlled value if provided, otherwise use internal state\n const selectedColor = value ?? internalColor\n\n const handleColorChange = (color: string) => {\n const normalizedColor = normalizeHexColor(color)\n if (value === undefined) {\n setInternalColor(normalizedColor)\n }\n onChange?.(normalizedColor)\n }\n\n const handleSwatchClick = (color: string) => {\n handleColorChange(color)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n return (\n <div className={cn(\"relative\", className)} data-slot=\"color-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n className={cn(\n colorPickerTriggerVariants({ size, variant }),\n !selectedColor && \"text-muted-foreground\"\n )}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-required={required}\n data-has-value={!!selectedColor}\n data-size={size}\n data-slot=\"color-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n >\n <span className=\"flex items-center gap-2 flex-1 truncate\">\n {showPreview && selectedColor && (\n <span\n aria-hidden=\"true\"\n className={cn(colorPickerPreviewVariants({ size }))}\n data-slot=\"color-picker-preview\"\n style={{ backgroundColor: selectedColor }}\n />\n )}\n <span className=\"truncate\">\n {selectedColor ?? placeholder}\n </span>\n </span>\n <Palette aria-hidden=\"true\" className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[var(--color-picker-content-width)] p-[var(--color-picker-content-padding)]\"\n data-slot=\"color-picker-content\"\n >\n <div className=\"space-y-3\">\n {/* Visual picker: saturation/value area + hue/alpha sliders + format input */}\n <ColorPickerPanel\n showAlpha={showAlpha}\n showInput={showInput}\n value={selectedColor ?? \"#000000\"}\n onChange={handleColorChange}\n />\n\n {/* Preset swatches */}\n {swatches.length > 0 ? (\n <div className=\"space-y-1.5\">\n <span className=\"text-xs text-muted-foreground font-medium\">\n Preset colors\n </span>\n <div\n aria-label=\"Color swatches\"\n className=\"grid grid-cols-5 gap-2\"\n data-slot=\"color-picker-swatches\"\n role=\"group\"\n >\n {swatches.map((color, index) => (\n <button\n key={`${color}-${String(index)}`}\n className={cn(\n colorPickerSwatchVariants({ size }),\n selectedColor === color && \"ring-2 ring-ring ring-offset-2\"\n )}\n aria-label={`Select color ${color}`}\n aria-pressed={selectedColor === color}\n data-color={color}\n data-selected={selectedColor === color}\n data-slot=\"color-picker-swatch\"\n style={{ backgroundColor: color }}\n type=\"button\"\n onClick={() => { handleSwatchClick(color); }}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </PopoverContent>\n </Popover>\n {name && (\n <input\n name={name}\n type=\"hidden\"\n value={selectedColor ?? \"\"}\n />\n )}\n </div>\n )\n}\n\nexport { ColorPicker }\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Dialog, DialogHeader, DialogTitle, DialogDescription, DialogContent } from './chunk-ZUFM33AV.js';
|
|
2
2
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
3
3
|
import { Command as Command$1 } from 'cmdk';
|
|
4
|
-
import { SearchIcon } from 'lucide-react';
|
|
4
|
+
import { SearchIcon, XIcon } from 'lucide-react';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -77,6 +77,26 @@ var commandInputIconVariants = cva(
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
);
|
|
80
|
+
var commandInputClearVariants = cva(
|
|
81
|
+
// Base styles (always applied)
|
|
82
|
+
[
|
|
83
|
+
"text-muted-foreground hover:text-foreground flex shrink-0 items-center justify-center rounded-[var(--command-item-radius)] outline-hidden transition-colors",
|
|
84
|
+
"hover:translate-y-px active:translate-y-0.5",
|
|
85
|
+
"focus-visible:ring-ring focus-visible:ring-4"
|
|
86
|
+
],
|
|
87
|
+
{
|
|
88
|
+
variants: {
|
|
89
|
+
size: {
|
|
90
|
+
sm: "size-[var(--command-icon-size-sm)]",
|
|
91
|
+
default: "size-[var(--command-icon-size-md)]",
|
|
92
|
+
lg: "size-[var(--command-icon-size-lg)]"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
defaultVariants: {
|
|
96
|
+
size: "default"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
);
|
|
80
100
|
var commandListVariants = cva(
|
|
81
101
|
// Base styles (always applied)
|
|
82
102
|
["scroll-py-1 overflow-x-hidden overflow-y-auto"],
|
|
@@ -288,9 +308,40 @@ function CommandDialog({
|
|
|
288
308
|
)
|
|
289
309
|
] });
|
|
290
310
|
}
|
|
291
|
-
function CommandInput({
|
|
311
|
+
function CommandInput({
|
|
312
|
+
className,
|
|
313
|
+
size: sizeProp,
|
|
314
|
+
clearable = false,
|
|
315
|
+
onClear,
|
|
316
|
+
value,
|
|
317
|
+
defaultValue,
|
|
318
|
+
onValueChange,
|
|
319
|
+
...props
|
|
320
|
+
}) {
|
|
292
321
|
const { size: contextSize } = useCommandContext();
|
|
293
322
|
const size = sizeProp ?? contextSize;
|
|
323
|
+
const isControlled = value !== void 0;
|
|
324
|
+
const [internalValue, setInternalValue] = React.useState(
|
|
325
|
+
typeof defaultValue === "string" ? defaultValue : ""
|
|
326
|
+
);
|
|
327
|
+
const currentValue = isControlled ? value : internalValue;
|
|
328
|
+
const handleValueChange = React.useCallback(
|
|
329
|
+
(next) => {
|
|
330
|
+
if (!isControlled) {
|
|
331
|
+
setInternalValue(next);
|
|
332
|
+
}
|
|
333
|
+
onValueChange?.(next);
|
|
334
|
+
},
|
|
335
|
+
[isControlled, onValueChange]
|
|
336
|
+
);
|
|
337
|
+
const handleClear = React.useCallback(() => {
|
|
338
|
+
if (!isControlled) {
|
|
339
|
+
setInternalValue("");
|
|
340
|
+
}
|
|
341
|
+
onValueChange?.("");
|
|
342
|
+
onClear?.();
|
|
343
|
+
}, [isControlled, onValueChange, onClear]);
|
|
344
|
+
const showClear = clearable && currentValue !== "";
|
|
294
345
|
return /* @__PURE__ */ jsxs(
|
|
295
346
|
"div",
|
|
296
347
|
{
|
|
@@ -303,9 +354,23 @@ function CommandInput({ className, size: sizeProp, ...props }) {
|
|
|
303
354
|
{
|
|
304
355
|
className: cn(commandInputVariants({ size }), className),
|
|
305
356
|
"data-slot": "command-input",
|
|
357
|
+
value: currentValue,
|
|
358
|
+
onValueChange: handleValueChange,
|
|
306
359
|
...props
|
|
307
360
|
}
|
|
308
|
-
)
|
|
361
|
+
),
|
|
362
|
+
showClear ? /* @__PURE__ */ jsx(
|
|
363
|
+
"button",
|
|
364
|
+
{
|
|
365
|
+
"aria-label": "Limpar busca",
|
|
366
|
+
className: cn(commandInputClearVariants({ size })),
|
|
367
|
+
"data-slot": "command-input-clear",
|
|
368
|
+
tabIndex: -1,
|
|
369
|
+
type: "button",
|
|
370
|
+
onClick: handleClear,
|
|
371
|
+
children: /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true" })
|
|
372
|
+
}
|
|
373
|
+
) : null
|
|
309
374
|
]
|
|
310
375
|
}
|
|
311
376
|
);
|
|
@@ -396,6 +461,6 @@ function CommandShortcut({
|
|
|
396
461
|
);
|
|
397
462
|
}
|
|
398
463
|
|
|
399
|
-
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, commandEmptyVariants, commandGroupVariants, commandInputIconVariants, commandInputVariants, commandInputWrapperVariants, commandItemVariants, commandListVariants, commandSeparatorVariants, commandShortcutVariants, commandVariants };
|
|
400
|
-
//# sourceMappingURL=chunk-
|
|
401
|
-
//# sourceMappingURL=chunk-
|
|
464
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, commandEmptyVariants, commandGroupVariants, commandInputClearVariants, commandInputIconVariants, commandInputVariants, commandInputWrapperVariants, commandItemVariants, commandListVariants, commandSeparatorVariants, commandShortcutVariants, commandVariants };
|
|
465
|
+
//# sourceMappingURL=chunk-X253YD45.js.map
|
|
466
|
+
//# sourceMappingURL=chunk-X253YD45.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/Command/Command.variants.ts","../src/components/advanced/Command/Command.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-X253YD45.js","sourcesContent":["// Command/Command.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Command root style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const commandVariants = cva(\n // Base styles (always applied)\n [\n \"bg-popover text-popover-foreground\",\n \"flex h-full w-full flex-col overflow-hidden rounded-md\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input wrapper style variants using CVA\n *\n * Controls the height and padding of the input container.\n */\nexport const commandInputWrapperVariants = cva(\n // Base styles (always applied)\n [\"flex items-center gap-[var(--command-input-wrapper-gap)] border-b-[var(--command-input-wrapper-border-width)] px-[var(--command-input-wrapper-padding-x)]\"],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-wrapper-height-sm)]\",\n default: \"h-[var(--command-input-wrapper-height-md)]\",\n lg: \"h-[var(--command-input-wrapper-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input style variants using CVA\n */\nexport const commandInputVariants = cva(\n // Base styles (always applied)\n [\n \"placeholder:text-muted-foreground\",\n \"flex w-full rounded-md bg-transparent outline-hidden\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--command-input-height-sm)] py-[var(--command-input-padding-y-sm)] text-[length:var(--command-input-text-size-sm)]\",\n default: \"h-[var(--command-input-height-md)] py-[var(--command-input-padding-y-md)] text-[length:var(--command-input-text-size-md)]\",\n lg: \"h-[var(--command-input-height-lg)] py-[var(--command-input-padding-y-lg)] text-[length:var(--command-input-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input icon style variants using CVA\n */\nexport const commandInputIconVariants = cva(\n // Base styles (always applied)\n [\"shrink-0 opacity-50\"],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command input clear button (Icon/X) style variants using CVA\n *\n * Trailing affordance that clears the search value. Matches the Figma\n * `Command/Input` Icon/X (16×16) shown to the right of the search input.\n */\nexport const commandInputClearVariants = cva(\n // Base styles (always applied)\n [\n \"text-muted-foreground hover:text-foreground flex shrink-0 items-center justify-center rounded-[var(--command-item-radius)] outline-hidden transition-colors\",\n \"hover:translate-y-px active:translate-y-0.5\",\n \"focus-visible:ring-ring focus-visible:ring-4\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--command-icon-size-sm)]\",\n default: \"size-[var(--command-icon-size-md)]\",\n lg: \"size-[var(--command-icon-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command list style variants using CVA\n */\nexport const commandListVariants = cva(\n // Base styles (always applied)\n [\"scroll-py-1 overflow-x-hidden overflow-y-auto\"],\n {\n variants: {\n size: {\n sm: \"max-h-[var(--command-list-max-height-sm)]\",\n default: \"max-h-[var(--command-list-max-height-md)]\",\n lg: \"max-h-[var(--command-list-max-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command empty state style variants using CVA\n */\nexport const commandEmptyVariants = cva(\n // Base styles (always applied)\n [\"text-center\"],\n {\n variants: {\n size: {\n sm: \"py-[var(--command-empty-padding-y-sm)] text-[length:var(--command-empty-text-size-sm)]\",\n default: \"py-[var(--command-empty-padding-y-md)] text-[length:var(--command-empty-text-size-md)]\",\n lg: \"py-[var(--command-empty-padding-y-lg)] text-[length:var(--command-empty-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command group style variants using CVA\n */\nexport const commandGroupVariants = cva(\n // Base styles (always applied)\n [\"text-foreground overflow-hidden p-[var(--command-group-padding)]\"],\n {\n variants: {\n size: {\n sm: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-sm)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-sm)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-sm)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n default: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-md)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-md)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-md)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n lg: [\n \"[&_[cmdk-group-heading]]:px-[var(--command-group-heading-padding-x-lg)]\",\n \"[&_[cmdk-group-heading]]:py-[var(--command-group-heading-padding-y-lg)]\",\n \"[&_[cmdk-group-heading]]:text-[length:var(--command-group-heading-text-size-lg)]\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group-heading]]:text-muted-foreground\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command item style variants using CVA\n *\n * Supports both size and visual variant options.\n */\nexport const commandItemVariants = cva(\n // Base styles (always applied)\n [\n \"relative flex cursor-default items-center gap-[var(--command-item-gap)] rounded-[var(--command-item-radius)] outline-hidden select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: [\n \"px-[var(--command-item-padding-x-sm)] py-[var(--command-item-padding-y-sm)] text-[length:var(--command-item-text-size-sm)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-sm)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n default: [\n \"px-[var(--command-item-padding-x-md)] py-[var(--command-item-padding-y-md)] text-[length:var(--command-item-text-size-md)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-md)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n lg: [\n \"px-[var(--command-item-padding-x-lg)] py-[var(--command-item-padding-y-lg)] text-[length:var(--command-item-text-size-lg)]\",\n \"[&_svg:not([class*='size-'])]:size-[var(--command-item-icon-size-lg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n ],\n },\n variant: {\n default: [\n \"data-[selected=true]:bg-accent\",\n \"data-[selected=true]:text-accent-foreground\",\n ],\n destructive: [\n \"text-destructive\",\n \"data-[selected=true]:bg-destructive/10\",\n \"data-[selected=true]:text-destructive\",\n \"[&_svg:not([class*='text-'])]:text-destructive\",\n ],\n },\n },\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * Command separator style variants using CVA\n */\nexport const commandSeparatorVariants = cva(\n // Base styles (always applied)\n [\"bg-border -mx-[var(--command-separator-margin-x)] h-[var(--command-separator-height)]\"],\n {\n variants: {\n size: {\n sm: \"my-[var(--command-separator-margin-y-sm)]\",\n default: \"my-[var(--command-separator-margin-y-md)]\",\n lg: \"my-[var(--command-separator-margin-y-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * Command shortcut style variants using CVA\n */\nexport const commandShortcutVariants = cva(\n // Base styles (always applied)\n [\"text-muted-foreground ml-auto tracking-widest\"],\n {\n variants: {\n size: {\n sm: \"text-[length:var(--command-shortcut-text-size-sm)]\",\n default: \"text-[length:var(--command-shortcut-text-size-md)]\",\n lg: \"text-[length:var(--command-shortcut-text-size-lg)]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n// Export variant prop types\nexport type CommandVariantProps = VariantProps<typeof commandVariants>\nexport type CommandInputWrapperVariantProps = VariantProps<\n typeof commandInputWrapperVariants\n>\nexport type CommandInputVariantProps = VariantProps<typeof commandInputVariants>\nexport type CommandInputIconVariantProps = VariantProps<\n typeof commandInputIconVariants\n>\nexport type CommandInputClearVariantProps = VariantProps<\n typeof commandInputClearVariants\n>\nexport type CommandListVariantProps = VariantProps<typeof commandListVariants>\nexport type CommandEmptyVariantProps = VariantProps<typeof commandEmptyVariants>\nexport type CommandGroupVariantProps = VariantProps<typeof commandGroupVariants>\nexport type CommandItemVariantProps = VariantProps<typeof commandItemVariants>\nexport type CommandSeparatorVariantProps = VariantProps<\n typeof commandSeparatorVariants\n>\nexport type CommandShortcutVariantProps = VariantProps<\n typeof commandShortcutVariants\n>\n\n/**\n * Combined variant props for the Command compound component\n */\nexport interface CommandCombinedVariantProps {\n /** Size of the command components */\n size?: CommandVariantProps[\"size\"]\n}\n\n/**\n * Item-specific variant props\n */\nexport interface CommandItemCombinedVariantProps {\n /** Size of the item (inherited from context if not provided) */\n size?: CommandItemVariantProps[\"size\"]\n /** Visual variant of the item */\n variant?: CommandItemVariantProps[\"variant\"]\n}\n","// Command/Command.tsx\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { SearchIcon, XIcon } from \"lucide-react\"\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 {\n type CommandCombinedVariantProps,\n commandEmptyVariants,\n commandGroupVariants,\n commandInputClearVariants,\n commandInputIconVariants,\n commandInputVariants,\n commandInputWrapperVariants,\n type CommandItemCombinedVariantProps,\n commandItemVariants,\n commandListVariants,\n commandSeparatorVariants,\n commandShortcutVariants,\n commandVariants,\n} from \"./Command.variants\"\n\n// ============================================\n// CONTEXT FOR VARIANT PROPAGATION\n// ============================================\n\ntype CommandContextValue = CommandCombinedVariantProps\n\nconst CommandContext = React.createContext<CommandContextValue>({\n size: \"default\",\n})\n\nfunction useCommandContext() {\n return React.use(CommandContext)\n}\n\n// ============================================\n// COMMAND ROOT\n// ============================================\n\ntype CommandProps = React.ComponentProps<typeof CommandPrimitive> &\n CommandCombinedVariantProps\n\n/**\n * Command - Command palette and combobox component\n *\n * @example\n * ```tsx\n * <Command size=\"default\">\n * <CommandInput placeholder=\"Search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nfunction Command({ size = \"default\", className, ...props }: CommandProps) {\n return (\n <CommandContext value={{ size }}>\n <CommandPrimitive\n className={cn(commandVariants({ size }), className)}\n data-slot=\"command\"\n {...props}\n />\n </CommandContext>\n )\n}\n\n// ============================================\n// COMMAND DIALOG\n// ============================================\n\ntype CommandDialogProps = React.ComponentProps<typeof Dialog> &\n CommandCombinedVariantProps & {\n className?: string\n description?: string\n showCloseButton?: boolean\n title?: string\n }\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n size = \"default\",\n ...props\n}: CommandDialogProps) {\n // Dialog always uses lg size for better UX\n const dialogSize = size === \"sm\" ? \"default\" : size === \"default\" ? \"lg\" : \"lg\"\n\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"overflow-hidden p-0\", className)}\n showCloseButton={showCloseButton}\n >\n <Command\n className={cn(\n // Override styles for dialog context based on size\n size === \"sm\" && [\n \"[&_[cmdk-group-heading]]:px-1.5\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-1.5\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-4 [&_[cmdk-input-wrapper]_svg]:w-4\",\n \"[&_[cmdk-item]]:px-1.5 [&_[cmdk-item]]:py-2\",\n \"[&_[cmdk-item]_svg]:h-4 [&_[cmdk-item]_svg]:w-4\",\n ],\n (size === \"default\" || size === \"lg\") && [\n \"[&_[cmdk-group-heading]]:px-2\",\n \"[&_[cmdk-group-heading]]:font-medium\",\n \"[&_[cmdk-group]]:px-2\",\n \"[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0\",\n \"[&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5\",\n \"[&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3\",\n \"[&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\",\n ]\n )}\n size={dialogSize}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// COMMAND INPUT\n// ============================================\n\ntype CommandInputProps = Omit<\n React.ComponentProps<typeof CommandPrimitive.Input>,\n \"size\"\n> &\n Partial<CommandCombinedVariantProps> & {\n clearable?: boolean\n onClear?: () => void\n }\n\nfunction CommandInput({\n className,\n size: sizeProp,\n clearable = false,\n onClear,\n value,\n defaultValue,\n onValueChange,\n ...props\n}: CommandInputProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n // Track the search value so the clear button works in both controlled and\n // uncontrolled modes. cmdk's Input is value-driven (value + onValueChange).\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState(\n typeof defaultValue === \"string\" ? defaultValue : \"\"\n )\n const currentValue = isControlled ? value : internalValue\n\n const handleValueChange = React.useCallback(\n (next: string) => {\n if (!isControlled) {\n setInternalValue(next)\n }\n onValueChange?.(next)\n },\n [isControlled, onValueChange]\n )\n\n const handleClear = React.useCallback(() => {\n if (!isControlled) {\n setInternalValue(\"\")\n }\n onValueChange?.(\"\")\n onClear?.()\n }, [isControlled, onValueChange, onClear])\n\n const showClear = clearable && currentValue !== \"\"\n\n return (\n <div\n className={cn(commandInputWrapperVariants({ size }))}\n data-slot=\"command-input-wrapper\"\n >\n <SearchIcon className={cn(commandInputIconVariants({ size }))} />\n <CommandPrimitive.Input\n className={cn(commandInputVariants({ size }), className)}\n data-slot=\"command-input\"\n value={currentValue}\n onValueChange={handleValueChange}\n {...props}\n />\n {showClear ? (\n <button\n aria-label=\"Limpar busca\"\n className={cn(commandInputClearVariants({ size }))}\n data-slot=\"command-input-clear\"\n tabIndex={-1}\n type=\"button\"\n onClick={handleClear}\n >\n <XIcon aria-hidden=\"true\" />\n </button>\n ) : null}\n </div>\n )\n}\n\n// ============================================\n// COMMAND LIST\n// ============================================\n\ntype CommandListProps = React.ComponentProps<typeof CommandPrimitive.List> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandList({ className, size: sizeProp, ...props }: CommandListProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.List\n className={cn(commandListVariants({ size }), className)}\n data-slot=\"command-list\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND EMPTY\n// ============================================\n\ntype CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandEmpty({ className, size: sizeProp, ...props }: CommandEmptyProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Empty\n className={cn(commandEmptyVariants({ size }), className)}\n data-slot=\"command-empty\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND GROUP\n// ============================================\n\ntype CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandGroup({ className, size: sizeProp, ...props }: CommandGroupProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Group\n className={cn(commandGroupVariants({ size }), className)}\n data-slot=\"command-group\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SEPARATOR\n// ============================================\n\ntype CommandSeparatorProps = React.ComponentProps<\n typeof CommandPrimitive.Separator\n> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandSeparator({\n className,\n size: sizeProp,\n ...props\n}: CommandSeparatorProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Separator\n className={cn(commandSeparatorVariants({ size }), className)}\n data-slot=\"command-separator\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND ITEM\n// ============================================\n\ntype CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item> &\n CommandItemCombinedVariantProps\n\nfunction CommandItem({\n className,\n size: sizeProp,\n variant = \"default\",\n ...props\n}: CommandItemProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <CommandPrimitive.Item\n className={cn(commandItemVariants({ size, variant }), className)}\n data-slot=\"command-item\"\n {...props}\n />\n )\n}\n\n// ============================================\n// COMMAND SHORTCUT\n// ============================================\n\ntype CommandShortcutProps = React.ComponentProps<\"span\"> &\n Partial<CommandCombinedVariantProps>\n\nfunction CommandShortcut({\n className,\n size: sizeProp,\n ...props\n}: CommandShortcutProps) {\n const { size: contextSize } = useCommandContext()\n const size = sizeProp ?? contextSize\n\n return (\n <span\n className={cn(commandShortcutVariants({ size }), className)}\n data-slot=\"command-shortcut\"\n {...props}\n />\n )\n}\n\n// ============================================\n// EXPORTS\n// ============================================\n\nexport {\n Command,\n CommandDialog,\n type CommandDialogProps,\n CommandEmpty,\n type CommandEmptyProps,\n CommandGroup,\n type CommandGroupProps,\n CommandInput,\n type CommandInputProps,\n CommandItem,\n type CommandItemProps,\n CommandList,\n type CommandListProps,\n type CommandProps,\n CommandSeparator,\n type CommandSeparatorProps,\n CommandShortcut,\n type CommandShortcutProps,\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Toggle } from './chunk-
|
|
1
|
+
import { Toggle } from './chunk-UPYT2XM5.js';
|
|
2
2
|
import { Divider } from './chunk-3L5G7VI2.js';
|
|
3
3
|
import { cn } from './chunk-HRNDJU7D.js';
|
|
4
4
|
import Highlight from '@tiptap/extension-highlight';
|
|
@@ -808,5 +808,5 @@ var richTextEditorPlaceholderVariants = cva(
|
|
|
808
808
|
);
|
|
809
809
|
|
|
810
810
|
export { RichTextBubbleMenuContent, RichTextEditor, RichTextFloatingMenuContent, RichTextToolbar, richTextEditorBubbleMenuVariants, richTextEditorContentVariants, richTextEditorFloatingMenuVariants, richTextEditorPlaceholderVariants, richTextEditorToolbarButtonVariants, richTextEditorToolbarVariants, richTextEditorVariants };
|
|
811
|
-
//# sourceMappingURL=chunk-
|
|
812
|
-
//# sourceMappingURL=chunk-
|
|
811
|
+
//# sourceMappingURL=chunk-X3AXEE3S.js.map
|
|
812
|
+
//# sourceMappingURL=chunk-X3AXEE3S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/advanced/RichTextEditor/RichTextEditor.tsx","../src/components/advanced/RichTextEditor/RichTextEditor.variants.ts"],"names":[],"mappings":"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","file":"chunk-6XY7QYVR.js","sourcesContent":["import type {\n RichTextBubbleMenuProps,\n RichTextEditorProps,\n RichTextEditorRef,\n RichTextFloatingMenuProps,\n RichTextToolbarProps,\n} from \"./RichTextEditor.types\"\n\nimport Highlight from \"@tiptap/extension-highlight\"\nimport Image from \"@tiptap/extension-image\"\nimport Link from \"@tiptap/extension-link\"\nimport Placeholder from \"@tiptap/extension-placeholder\"\nimport { Table } from \"@tiptap/extension-table\"\nimport { TableCell } from \"@tiptap/extension-table-cell\"\nimport { TableHeader } from \"@tiptap/extension-table-header\"\nimport { TableRow } from \"@tiptap/extension-table-row\"\nimport TaskItem from \"@tiptap/extension-task-item\"\nimport TaskList from \"@tiptap/extension-task-list\"\nimport TextAlign from \"@tiptap/extension-text-align\"\nimport Underline from \"@tiptap/extension-underline\"\nimport { EditorContent, useEditor } from \"@tiptap/react\"\nimport { BubbleMenu, FloatingMenu } from \"@tiptap/react/menus\"\nimport StarterKit from \"@tiptap/starter-kit\"\nimport {\n AlignCenterIcon,\n AlignLeftIcon,\n AlignRightIcon,\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HighlighterIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n MinusIcon,\n QuoteIcon,\n RedoIcon,\n StrikethroughIcon,\n TableIcon,\n UnderlineIcon,\n UndoIcon,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\n\nfunction requestPromptValue(\n promptMessage: string,\n promptForValue?: (currentValue?: string) => null | string,\n currentValue?: string\n) {\n if (promptForValue) {\n return promptForValue(currentValue)\n }\n\n if (typeof window === \"undefined\") {\n return null\n }\n\n return window.prompt(promptMessage, currentValue)\n}\n\nfunction RichTextToolbar({\n className,\n editor,\n promptForImage,\n promptForLink,\n}: RichTextToolbarProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n const addImage = React.useCallback(() => {\n if (!editor) return\n const url = requestPromptValue(\"Image URL\", promptForImage)\n\n if (url) {\n editor.chain().focus().setImage({ src: url }).run()\n }\n }, [editor, promptForImage])\n\n const insertTable = React.useCallback(() => {\n if (!editor) return\n editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()\n }, [editor])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-muted flex flex-wrap items-center gap-1 rounded-t-md border-b p-1 overflow-x-auto sm:overflow-visible\",\n className\n )}\n aria-label=\"Text formatting\"\n data-slot=\"rich-text-toolbar\"\n role=\"toolbar\"\n >\n {/* History */}\n <Toggle\n aria-label=\"Undo\"\n disabled={!editor.can().undo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().undo().run()}\n >\n <UndoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Redo\"\n disabled={!editor.can().redo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().redo().run()}\n >\n <RedoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon 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 pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n pressed={editor.isActive(\"heading\", { level: 3 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}\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 pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Alignment */}\n <Toggle\n aria-label=\"Align left\"\n pressed={editor.isActive({ textAlign: \"left\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"left\").run()}\n >\n <AlignLeftIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align center\"\n pressed={editor.isActive({ textAlign: \"center\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"center\").run()}\n >\n <AlignCenterIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align right\"\n pressed={editor.isActive({ textAlign: \"right\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"right\").run()}\n >\n <AlignRightIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Horizontal rule\"\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setHorizontalRule().run()}\n >\n <MinusIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Media & Links */}\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert image\"\n pressed={false}\n size=\"sm\"\n onPressedChange={addImage}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert table\"\n pressed={false}\n size=\"sm\"\n onPressedChange={insertTable}\n >\n <TableIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextBubbleMenuContent({\n className,\n editor,\n promptForLink,\n}: RichTextBubbleMenuProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Selection formatting\"\n data-slot=\"rich-text-bubble-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n <Divider className=\"mx-1 h-4\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextFloatingMenuContent({ className, editor }: RichTextFloatingMenuProps) {\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Block formatting\"\n data-slot=\"rich-text-floating-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextEditor({\n \"aria-label\": ariaLabel = \"Rich text editor\",\n autofocus = false,\n className,\n content,\n defaultContent,\n editable = true,\n extensions = [],\n onBlur,\n onChange,\n onFocus,\n onUpdate,\n placeholder = \"Start writing...\",\n promptForImage,\n promptForLink,\n ref,\n showBubbleMenu = true,\n showFloatingMenu = false,\n showToolbar = true,\n toolbarPosition = \"top\",\n ...props\n}: RichTextEditorProps & { ref?: React.Ref<RichTextEditorRef> }) {\n const editor = useEditor({\n autofocus,\n content: content ?? defaultContent ?? \"\",\n editable,\n editorProps: {\n attributes: {\n \"aria-label\": ariaLabel,\n role: \"textbox\",\n },\n },\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3, 4, 5, 6],\n },\n link: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder,\n }),\n Link.configure({\n HTMLAttributes: {\n class: \"text-primary underline underline-offset-4 cursor-pointer\",\n },\n openOnClick: false,\n }),\n Image.configure({\n HTMLAttributes: {\n class: \"max-w-full h-auto rounded-md\",\n },\n }),\n Underline,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Highlight.configure({\n HTMLAttributes: {\n class: \"bg-yellow-200 dark:bg-yellow-800\",\n },\n multicolor: false,\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Table.configure({\n HTMLAttributes: {\n class: \"border-collapse table-auto w-full\",\n },\n resizable: true,\n }),\n TableRow,\n TableCell.configure({\n HTMLAttributes: {\n class: \"border border-border p-2\",\n },\n }),\n TableHeader.configure({\n HTMLAttributes: {\n class: \"border border-border p-2 bg-muted font-semibold\",\n },\n }),\n ...extensions,\n ],\n onBlur: ({ editor: currentEditor }) => {\n onBlur?.({ editor: currentEditor })\n },\n onFocus: ({ editor: currentEditor }) => {\n onFocus?.({ editor: currentEditor })\n },\n onUpdate: ({ editor: currentEditor }) => {\n onChange?.(currentEditor.getJSON())\n onUpdate?.({ editor: currentEditor })\n },\n })\n\n // Sync content prop changes\n // Note: useEditor returns Editor | null, but ESLint infers it as always truthy after initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n React.useEffect(() => {\n if (editor && content !== undefined) {\n const currentContent = editor.getJSON()\n const newContent = typeof content === \"string\" ? content : JSON.stringify(content)\n const currentContentStr = JSON.stringify(currentContent)\n\n if (newContent !== currentContentStr) {\n editor.commands.setContent(content)\n }\n }\n }, [editor, content])\n\n // Sync editable prop\n React.useEffect(() => {\n if (editor) {\n editor.setEditable(editable)\n }\n }, [editor, editable])\n /* eslint-enable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n\n // Expose ref methods - editor can be null before initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition */\n React.useImperativeHandle(ref, () => ({\n blur: () => {\n editor?.commands.blur()\n },\n editor,\n focus: () => {\n editor?.commands.focus()\n },\n getHTML: () => editor?.getHTML() ?? \"\",\n getJSON: () => editor?.getJSON() ?? { type: \"doc\", content: [] },\n getText: () => editor?.getText() ?? \"\",\n setContent: (newContent) => {\n editor?.commands.setContent(newContent)\n },\n }))\n /* eslint-enable @typescript-eslint/no-unnecessary-condition */\n\n const showTopToolbar = showToolbar && toolbarPosition === \"top\"\n const showBottomToolbar = showToolbar && toolbarPosition === \"bottom\"\n\n return (\n <div\n className={cn(\n \"bg-background text-foreground border rounded-md w-full\",\n className\n )}\n data-slot=\"rich-text-editor\"\n style={{ width: \"100%\", ...props.style }}\n {...props}\n >\n {showTopToolbar && (\n <RichTextToolbar\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n\n <div className=\"relative w-full\">\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showBubbleMenu && editor && (\n <BubbleMenu\n className=\"rich-text-bubble-menu\"\n editor={editor}\n >\n <RichTextBubbleMenuContent\n editor={editor}\n promptForLink={promptForLink}\n />\n </BubbleMenu>\n )}\n\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showFloatingMenu && editor && (\n <FloatingMenu\n className=\"rich-text-floating-menu\"\n editor={editor}\n >\n <RichTextFloatingMenuContent editor={editor} />\n </FloatingMenu>\n )}\n\n <EditorContent\n className={cn(\n \"prose prose-sm dark:prose-invert max-w-none w-full\",\n \"focus-within:outline-none\",\n \"[&_.ProseMirror]:min-h-36 [&_.ProseMirror]:p-4 [&_.ProseMirror]:focus:outline-none\",\n \"[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)] [&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none\",\n \"[&_.ProseMirror_ul[data-type='taskList']]:list-none [&_.ProseMirror_ul[data-type='taskList']]:pl-0\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li]:flex [&_.ProseMirror_ul[data-type='taskList']_li]:items-start [&_.ProseMirror_ul[data-type='taskList']_li]:gap-2\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li_input]:mt-1\"\n )}\n editor={editor}\n style={{ width: \"100%\", minWidth: \"100%\", maxWidth: \"none\" }}\n />\n </div>\n\n {showBottomToolbar && (\n <RichTextToolbar\n className=\"rounded-t-none rounded-b-md border-t border-b-0\"\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n </div>\n )\n}\n\nexport {\n RichTextBubbleMenuContent as RichTextBubbleMenu,\n RichTextEditor,\n RichTextFloatingMenuContent as RichTextFloatingMenu,\n RichTextToolbar,\n}\n","import { cva } from \"class-variance-authority\"\n\n/**\n * RichTextEditor container variants\n */\nexport const richTextEditorVariants = cva(\n \"relative flex flex-col rounded-lg border border-border bg-background overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-52\",\n md: \"min-h-72\",\n lg: \"min-h-96\",\n full: \"h-full min-h-72\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n focused: {\n true: \"ring-2 ring-ring ring-offset-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n focused: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar variants\n */\nexport const richTextEditorToolbarVariants = cva(\n \"flex items-center gap-1 flex-wrap border-b border-border bg-muted/30 p-2\",\n {\n variants: {\n position: {\n top: \"order-first\",\n bottom: \"order-last border-b-0 border-t\",\n floating: \"absolute top-2 left-2 right-2 z-10 rounded-md shadow-md border bg-background\",\n },\n compact: {\n true: \"p-1 gap-0.5\",\n false: \"p-2 gap-1\",\n },\n },\n defaultVariants: {\n position: \"top\",\n compact: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar button variants\n */\nexport const richTextEditorToolbarButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground\",\n active: \"bg-accent text-accent-foreground\",\n },\n size: {\n sm: \"h-7 w-7\",\n md: \"h-8 w-8\",\n lg: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * RichTextEditor content area variants\n */\nexport const richTextEditorContentVariants = cva(\n \"flex-1 overflow-auto p-4 prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n {\n variants: {\n editable: {\n true: \"\",\n false: \"pointer-events-none\",\n },\n },\n defaultVariants: {\n editable: true,\n },\n }\n)\n\n/**\n * RichTextEditor bubble menu variants\n */\nexport const richTextEditorBubbleMenuVariants = cva(\n \"flex items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor floating menu variants\n */\nexport const richTextEditorFloatingMenuVariants = cva(\n \"flex items-center gap-1 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor placeholder variants\n */\nexport const richTextEditorPlaceholderVariants = cva(\n \"absolute top-4 left-4 text-muted-foreground pointer-events-none select-none\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/RichTextEditor/RichTextEditor.tsx","../src/components/advanced/RichTextEditor/RichTextEditor.variants.ts"],"names":[],"mappings":"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","file":"chunk-X3AXEE3S.js","sourcesContent":["import type {\n RichTextBubbleMenuProps,\n RichTextEditorProps,\n RichTextEditorRef,\n RichTextFloatingMenuProps,\n RichTextToolbarProps,\n} from \"./RichTextEditor.types\"\n\nimport Highlight from \"@tiptap/extension-highlight\"\nimport Image from \"@tiptap/extension-image\"\nimport Link from \"@tiptap/extension-link\"\nimport Placeholder from \"@tiptap/extension-placeholder\"\nimport { Table } from \"@tiptap/extension-table\"\nimport { TableCell } from \"@tiptap/extension-table-cell\"\nimport { TableHeader } from \"@tiptap/extension-table-header\"\nimport { TableRow } from \"@tiptap/extension-table-row\"\nimport TaskItem from \"@tiptap/extension-task-item\"\nimport TaskList from \"@tiptap/extension-task-list\"\nimport TextAlign from \"@tiptap/extension-text-align\"\nimport Underline from \"@tiptap/extension-underline\"\nimport { EditorContent, useEditor } from \"@tiptap/react\"\nimport { BubbleMenu, FloatingMenu } from \"@tiptap/react/menus\"\nimport StarterKit from \"@tiptap/starter-kit\"\nimport {\n AlignCenterIcon,\n AlignLeftIcon,\n AlignRightIcon,\n BoldIcon,\n CodeIcon,\n Heading1Icon,\n Heading2Icon,\n Heading3Icon,\n HighlighterIcon,\n ImageIcon,\n ItalicIcon,\n LinkIcon,\n ListIcon,\n ListOrderedIcon,\n ListTodoIcon,\n MinusIcon,\n QuoteIcon,\n RedoIcon,\n StrikethroughIcon,\n TableIcon,\n UnderlineIcon,\n UndoIcon,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Divider } from \"../../primitives/Divider\"\nimport { Toggle } from \"../../primitives/Toggle\"\n\nfunction requestPromptValue(\n promptMessage: string,\n promptForValue?: (currentValue?: string) => null | string,\n currentValue?: string\n) {\n if (promptForValue) {\n return promptForValue(currentValue)\n }\n\n if (typeof window === \"undefined\") {\n return null\n }\n\n return window.prompt(promptMessage, currentValue)\n}\n\nfunction RichTextToolbar({\n className,\n editor,\n promptForImage,\n promptForLink,\n}: RichTextToolbarProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n const addImage = React.useCallback(() => {\n if (!editor) return\n const url = requestPromptValue(\"Image URL\", promptForImage)\n\n if (url) {\n editor.chain().focus().setImage({ src: url }).run()\n }\n }, [editor, promptForImage])\n\n const insertTable = React.useCallback(() => {\n if (!editor) return\n editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()\n }, [editor])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-muted flex flex-wrap items-center gap-1 rounded-t-md border-b p-1 overflow-x-auto sm:overflow-visible\",\n className\n )}\n aria-label=\"Text formatting\"\n data-slot=\"rich-text-toolbar\"\n role=\"toolbar\"\n >\n {/* History */}\n <Toggle\n aria-label=\"Undo\"\n disabled={!editor.can().undo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().undo().run()}\n >\n <UndoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Redo\"\n disabled={!editor.can().redo()}\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().redo().run()}\n >\n <RedoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Text formatting */}\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon 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 pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 3\"\n pressed={editor.isActive(\"heading\", { level: 3 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}\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 pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Alignment */}\n <Toggle\n aria-label=\"Align left\"\n pressed={editor.isActive({ textAlign: \"left\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"left\").run()}\n >\n <AlignLeftIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align center\"\n pressed={editor.isActive({ textAlign: \"center\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"center\").run()}\n >\n <AlignCenterIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Align right\"\n pressed={editor.isActive({ textAlign: \"right\" })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setTextAlign(\"right\").run()}\n >\n <AlignRightIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Blocks */}\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Horizontal rule\"\n pressed={false}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().setHorizontalRule().run()}\n >\n <MinusIcon className=\"size-4\" />\n </Toggle>\n\n <Divider className=\"mx-1 h-6\" orientation=\"vertical\" />\n\n {/* Media & Links */}\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert image\"\n pressed={false}\n size=\"sm\"\n onPressedChange={addImage}\n >\n <ImageIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Insert table\"\n pressed={false}\n size=\"sm\"\n onPressedChange={insertTable}\n >\n <TableIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextBubbleMenuContent({\n className,\n editor,\n promptForLink,\n}: RichTextBubbleMenuProps) {\n const addLink = React.useCallback(() => {\n if (!editor) return\n const previousUrl = editor.getAttributes(\"link\")[\"href\"] as string | undefined\n const url = requestPromptValue(\"URL\", promptForLink, previousUrl)\n\n if (url === null) return\n\n if (url === \"\") {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run()\n return\n }\n\n editor.chain().focus().extendMarkRange(\"link\").setLink({ href: url }).run()\n }, [editor, promptForLink])\n\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Selection formatting\"\n data-slot=\"rich-text-bubble-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Bold\"\n pressed={editor.isActive(\"bold\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBold().run()}\n >\n <BoldIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Italic\"\n pressed={editor.isActive(\"italic\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleItalic().run()}\n >\n <ItalicIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Underline\"\n pressed={editor.isActive(\"underline\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleUnderline().run()}\n >\n <UnderlineIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Strikethrough\"\n pressed={editor.isActive(\"strike\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleStrike().run()}\n >\n <StrikethroughIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Inline code\"\n pressed={editor.isActive(\"code\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleCode().run()}\n >\n <CodeIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Highlight\"\n pressed={editor.isActive(\"highlight\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHighlight().run()}\n >\n <HighlighterIcon className=\"size-4\" />\n </Toggle>\n <Divider className=\"mx-1 h-4\" orientation=\"vertical\" />\n <Toggle\n aria-label=\"Insert link\"\n pressed={editor.isActive(\"link\")}\n size=\"sm\"\n onPressedChange={addLink}\n >\n <LinkIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextFloatingMenuContent({ className, editor }: RichTextFloatingMenuProps) {\n if (!editor) return null\n\n return (\n <div\n className={cn(\n \"bg-popover text-popover-foreground flex items-center gap-0.5 rounded-md border p-1 shadow-md\",\n className\n )}\n aria-label=\"Block formatting\"\n data-slot=\"rich-text-floating-menu\"\n role=\"toolbar\"\n >\n <Toggle\n aria-label=\"Heading 1\"\n pressed={editor.isActive(\"heading\", { level: 1 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Heading1Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Heading 2\"\n pressed={editor.isActive(\"heading\", { level: 2 })}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Heading2Icon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Bullet list\"\n pressed={editor.isActive(\"bulletList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBulletList().run()}\n >\n <ListIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Ordered list\"\n pressed={editor.isActive(\"orderedList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleOrderedList().run()}\n >\n <ListOrderedIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Task list\"\n pressed={editor.isActive(\"taskList\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleTaskList().run()}\n >\n <ListTodoIcon className=\"size-4\" />\n </Toggle>\n <Toggle\n aria-label=\"Blockquote\"\n pressed={editor.isActive(\"blockquote\")}\n size=\"sm\"\n onPressedChange={() => editor.chain().focus().toggleBlockquote().run()}\n >\n <QuoteIcon className=\"size-4\" />\n </Toggle>\n </div>\n )\n}\n\nfunction RichTextEditor({\n \"aria-label\": ariaLabel = \"Rich text editor\",\n autofocus = false,\n className,\n content,\n defaultContent,\n editable = true,\n extensions = [],\n onBlur,\n onChange,\n onFocus,\n onUpdate,\n placeholder = \"Start writing...\",\n promptForImage,\n promptForLink,\n ref,\n showBubbleMenu = true,\n showFloatingMenu = false,\n showToolbar = true,\n toolbarPosition = \"top\",\n ...props\n}: RichTextEditorProps & { ref?: React.Ref<RichTextEditorRef> }) {\n const editor = useEditor({\n autofocus,\n content: content ?? defaultContent ?? \"\",\n editable,\n editorProps: {\n attributes: {\n \"aria-label\": ariaLabel,\n role: \"textbox\",\n },\n },\n extensions: [\n StarterKit.configure({\n heading: {\n levels: [1, 2, 3, 4, 5, 6],\n },\n link: false,\n underline: false,\n }),\n Placeholder.configure({\n placeholder,\n }),\n Link.configure({\n HTMLAttributes: {\n class: \"text-primary underline underline-offset-4 cursor-pointer\",\n },\n openOnClick: false,\n }),\n Image.configure({\n HTMLAttributes: {\n class: \"max-w-full h-auto rounded-md\",\n },\n }),\n Underline,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Highlight.configure({\n HTMLAttributes: {\n class: \"bg-yellow-200 dark:bg-yellow-800\",\n },\n multicolor: false,\n }),\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Table.configure({\n HTMLAttributes: {\n class: \"border-collapse table-auto w-full\",\n },\n resizable: true,\n }),\n TableRow,\n TableCell.configure({\n HTMLAttributes: {\n class: \"border border-border p-2\",\n },\n }),\n TableHeader.configure({\n HTMLAttributes: {\n class: \"border border-border p-2 bg-muted font-semibold\",\n },\n }),\n ...extensions,\n ],\n onBlur: ({ editor: currentEditor }) => {\n onBlur?.({ editor: currentEditor })\n },\n onFocus: ({ editor: currentEditor }) => {\n onFocus?.({ editor: currentEditor })\n },\n onUpdate: ({ editor: currentEditor }) => {\n onChange?.(currentEditor.getJSON())\n onUpdate?.({ editor: currentEditor })\n },\n })\n\n // Sync content prop changes\n // Note: useEditor returns Editor | null, but ESLint infers it as always truthy after initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n React.useEffect(() => {\n if (editor && content !== undefined) {\n const currentContent = editor.getJSON()\n const newContent = typeof content === \"string\" ? content : JSON.stringify(content)\n const currentContentStr = JSON.stringify(currentContent)\n\n if (newContent !== currentContentStr) {\n editor.commands.setContent(content)\n }\n }\n }, [editor, content])\n\n // Sync editable prop\n React.useEffect(() => {\n if (editor) {\n editor.setEditable(editable)\n }\n }, [editor, editable])\n /* eslint-enable @typescript-eslint/no-unnecessary-condition, react-you-might-not-need-an-effect/no-pass-data-to-parent */\n\n // Expose ref methods - editor can be null before initialization\n /* eslint-disable @typescript-eslint/no-unnecessary-condition */\n React.useImperativeHandle(ref, () => ({\n blur: () => {\n editor?.commands.blur()\n },\n editor,\n focus: () => {\n editor?.commands.focus()\n },\n getHTML: () => editor?.getHTML() ?? \"\",\n getJSON: () => editor?.getJSON() ?? { type: \"doc\", content: [] },\n getText: () => editor?.getText() ?? \"\",\n setContent: (newContent) => {\n editor?.commands.setContent(newContent)\n },\n }))\n /* eslint-enable @typescript-eslint/no-unnecessary-condition */\n\n const showTopToolbar = showToolbar && toolbarPosition === \"top\"\n const showBottomToolbar = showToolbar && toolbarPosition === \"bottom\"\n\n return (\n <div\n className={cn(\n \"bg-background text-foreground border rounded-md w-full\",\n className\n )}\n data-slot=\"rich-text-editor\"\n style={{ width: \"100%\", ...props.style }}\n {...props}\n >\n {showTopToolbar && (\n <RichTextToolbar\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n\n <div className=\"relative w-full\">\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showBubbleMenu && editor && (\n <BubbleMenu\n className=\"rich-text-bubble-menu\"\n editor={editor}\n >\n <RichTextBubbleMenuContent\n editor={editor}\n promptForLink={promptForLink}\n />\n </BubbleMenu>\n )}\n\n {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- editor can be null */}\n {showFloatingMenu && editor && (\n <FloatingMenu\n className=\"rich-text-floating-menu\"\n editor={editor}\n >\n <RichTextFloatingMenuContent editor={editor} />\n </FloatingMenu>\n )}\n\n <EditorContent\n className={cn(\n \"prose prose-sm dark:prose-invert max-w-none w-full\",\n \"focus-within:outline-none\",\n \"[&_.ProseMirror]:min-h-36 [&_.ProseMirror]:p-4 [&_.ProseMirror]:focus:outline-none\",\n \"[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)] [&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none\",\n \"[&_.ProseMirror_ul[data-type='taskList']]:list-none [&_.ProseMirror_ul[data-type='taskList']]:pl-0\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li]:flex [&_.ProseMirror_ul[data-type='taskList']_li]:items-start [&_.ProseMirror_ul[data-type='taskList']_li]:gap-2\",\n \"[&_.ProseMirror_ul[data-type='taskList']_li_input]:mt-1\"\n )}\n editor={editor}\n style={{ width: \"100%\", minWidth: \"100%\", maxWidth: \"none\" }}\n />\n </div>\n\n {showBottomToolbar && (\n <RichTextToolbar\n className=\"rounded-t-none rounded-b-md border-t border-b-0\"\n editor={editor}\n promptForImage={promptForImage}\n promptForLink={promptForLink}\n />\n )}\n </div>\n )\n}\n\nexport {\n RichTextBubbleMenuContent as RichTextBubbleMenu,\n RichTextEditor,\n RichTextFloatingMenuContent as RichTextFloatingMenu,\n RichTextToolbar,\n}\n","import { cva } from \"class-variance-authority\"\n\n/**\n * RichTextEditor container variants\n */\nexport const richTextEditorVariants = cva(\n \"relative flex flex-col rounded-lg border border-border bg-background overflow-hidden\",\n {\n variants: {\n size: {\n sm: \"min-h-52\",\n md: \"min-h-72\",\n lg: \"min-h-96\",\n full: \"h-full min-h-72\",\n },\n disabled: {\n true: \"opacity-50 cursor-not-allowed\",\n false: \"\",\n },\n focused: {\n true: \"ring-2 ring-ring ring-offset-2\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n disabled: false,\n focused: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar variants\n */\nexport const richTextEditorToolbarVariants = cva(\n \"flex items-center gap-1 flex-wrap border-b border-border bg-muted/30 p-2\",\n {\n variants: {\n position: {\n top: \"order-first\",\n bottom: \"order-last border-b-0 border-t\",\n floating: \"absolute top-2 left-2 right-2 z-10 rounded-md shadow-md border bg-background\",\n },\n compact: {\n true: \"p-1 gap-0.5\",\n false: \"p-2 gap-1\",\n },\n },\n defaultVariants: {\n position: \"top\",\n compact: false,\n },\n }\n)\n\n/**\n * RichTextEditor toolbar button variants\n */\nexport const richTextEditorToolbarButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground\",\n active: \"bg-accent text-accent-foreground\",\n },\n size: {\n sm: \"h-7 w-7\",\n md: \"h-8 w-8\",\n lg: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\n/**\n * RichTextEditor content area variants\n */\nexport const richTextEditorContentVariants = cva(\n \"flex-1 overflow-auto p-4 prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n {\n variants: {\n editable: {\n true: \"\",\n false: \"pointer-events-none\",\n },\n },\n defaultVariants: {\n editable: true,\n },\n }\n)\n\n/**\n * RichTextEditor bubble menu variants\n */\nexport const richTextEditorBubbleMenuVariants = cva(\n \"flex items-center gap-0.5 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor floating menu variants\n */\nexport const richTextEditorFloatingMenuVariants = cva(\n \"flex items-center gap-1 rounded-md border border-border bg-background p-1 shadow-md\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0 pointer-events-none\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n\n/**\n * RichTextEditor placeholder variants\n */\nexport const richTextEditorPlaceholderVariants = cva(\n \"absolute top-4 left-4 text-muted-foreground pointer-events-none select-none\",\n {\n variants: {\n visible: {\n true: \"opacity-100\",\n false: \"opacity-0\",\n },\n },\n defaultVariants: {\n visible: true,\n },\n }\n)\n"]}
|