@etus/ui 0.4.0-beta.6 → 0.4.0-beta.8

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.
Files changed (225) hide show
  1. package/dist/{chunk-2Y7PQ6ZL.js → chunk-237TQKWH.js} +4 -4
  2. package/dist/{chunk-2Y7PQ6ZL.js.map → chunk-237TQKWH.js.map} +1 -1
  3. package/dist/{chunk-KR3IVNQH.js → chunk-2FJJOHHH.js} +16 -10
  4. package/dist/chunk-2FJJOHHH.js.map +1 -0
  5. package/dist/{chunk-W4NC5CU5.js → chunk-2Q4I4VDB.js} +4 -4
  6. package/dist/{chunk-W4NC5CU5.js.map → chunk-2Q4I4VDB.js.map} +1 -1
  7. package/dist/{chunk-2HM5Z2YP.js → chunk-2YWWZEPE.js} +3 -3
  8. package/dist/{chunk-2HM5Z2YP.js.map → chunk-2YWWZEPE.js.map} +1 -1
  9. package/dist/chunk-2Z722V5K.js +231 -0
  10. package/dist/chunk-2Z722V5K.js.map +1 -0
  11. package/dist/chunk-37IIHQP4.js +233 -0
  12. package/dist/chunk-37IIHQP4.js.map +1 -0
  13. package/dist/{chunk-UFRMZ3M6.js → chunk-3JCV72FO.js} +6 -2
  14. package/dist/chunk-3JCV72FO.js.map +1 -0
  15. package/dist/{chunk-HT5XM6XK.js → chunk-43BS3PPX.js} +3 -3
  16. package/dist/{chunk-HT5XM6XK.js.map → chunk-43BS3PPX.js.map} +1 -1
  17. package/dist/{chunk-2UGDLAYC.js → chunk-45D4O7RK.js} +10 -3
  18. package/dist/chunk-45D4O7RK.js.map +1 -0
  19. package/dist/{chunk-32IJQOUV.js → chunk-4EYYCHLD.js} +4 -4
  20. package/dist/{chunk-32IJQOUV.js.map → chunk-4EYYCHLD.js.map} +1 -1
  21. package/dist/{chunk-J62TFQHR.js → chunk-5I7AXWJU.js} +13 -13
  22. package/dist/chunk-5I7AXWJU.js.map +1 -0
  23. package/dist/{chunk-65YSTUD2.js → chunk-5SUD32RK.js} +44 -14
  24. package/dist/chunk-5SUD32RK.js.map +1 -0
  25. package/dist/{chunk-23BHD62H.js → chunk-5TZDEGZN.js} +4 -4
  26. package/dist/chunk-5TZDEGZN.js.map +1 -0
  27. package/dist/{chunk-VPNFYQBL.js → chunk-6DN2UAIR.js} +3 -3
  28. package/dist/chunk-6DN2UAIR.js.map +1 -0
  29. package/dist/{chunk-EGYWK2XX.js → chunk-7CTFBOD4.js} +3 -3
  30. package/dist/{chunk-EGYWK2XX.js.map → chunk-7CTFBOD4.js.map} +1 -1
  31. package/dist/{chunk-36XTKR3B.js → chunk-BMNCNBPA.js} +3 -3
  32. package/dist/{chunk-36XTKR3B.js.map → chunk-BMNCNBPA.js.map} +1 -1
  33. package/dist/{chunk-AWYOWR5N.js → chunk-C5HSYDJC.js} +3 -3
  34. package/dist/{chunk-AWYOWR5N.js.map → chunk-C5HSYDJC.js.map} +1 -1
  35. package/dist/{chunk-VFALJSXB.js → chunk-DCUFQJYP.js} +3 -3
  36. package/dist/chunk-DCUFQJYP.js.map +1 -0
  37. package/dist/{chunk-LATTRPLQ.js → chunk-E2TI5V67.js} +3 -3
  38. package/dist/{chunk-LATTRPLQ.js.map → chunk-E2TI5V67.js.map} +1 -1
  39. package/dist/{chunk-IRKDMISK.js → chunk-G2MAGZHQ.js} +4 -3
  40. package/dist/chunk-G2MAGZHQ.js.map +1 -0
  41. package/dist/{chunk-ONQCNOLU.js → chunk-HDOR3SN3.js} +3 -3
  42. package/dist/{chunk-ONQCNOLU.js.map → chunk-HDOR3SN3.js.map} +1 -1
  43. package/dist/{chunk-PLLJNHWU.js → chunk-HI3T55XK.js} +3 -33
  44. package/dist/chunk-HI3T55XK.js.map +1 -0
  45. package/dist/chunk-HJ4E6YPW.js +236 -0
  46. package/dist/chunk-HJ4E6YPW.js.map +1 -0
  47. package/dist/{chunk-LS3WD6IZ.js → chunk-I55QJ4CU.js} +4 -4
  48. package/dist/{chunk-LS3WD6IZ.js.map → chunk-I55QJ4CU.js.map} +1 -1
  49. package/dist/{chunk-HKXQLWGR.js → chunk-IOWHM7ZY.js} +13 -11
  50. package/dist/chunk-IOWHM7ZY.js.map +1 -0
  51. package/dist/{chunk-ILAV2AZ4.js → chunk-IZC5YFGO.js} +3 -3
  52. package/dist/{chunk-ILAV2AZ4.js.map → chunk-IZC5YFGO.js.map} +1 -1
  53. package/dist/{chunk-Y7UFBSAD.js → chunk-KHOCAVQO.js} +3 -3
  54. package/dist/{chunk-Y7UFBSAD.js.map → chunk-KHOCAVQO.js.map} +1 -1
  55. package/dist/{chunk-IBVCSZCH.js → chunk-KVJOKWP4.js} +5 -4
  56. package/dist/chunk-KVJOKWP4.js.map +1 -0
  57. package/dist/{chunk-KC6CHPT3.js → chunk-KZRTQF64.js} +3 -3
  58. package/dist/{chunk-KC6CHPT3.js.map → chunk-KZRTQF64.js.map} +1 -1
  59. package/dist/{chunk-QIETN4UU.js → chunk-LEAK22ZP.js} +3 -3
  60. package/dist/{chunk-QIETN4UU.js.map → chunk-LEAK22ZP.js.map} +1 -1
  61. package/dist/{chunk-OWOVCGUZ.js → chunk-M2C7HBR5.js} +3 -3
  62. package/dist/{chunk-OWOVCGUZ.js.map → chunk-M2C7HBR5.js.map} +1 -1
  63. package/dist/{chunk-33JGPMUW.js → chunk-M7TPROVH.js} +20 -7
  64. package/dist/chunk-M7TPROVH.js.map +1 -0
  65. package/dist/{chunk-AVR3LVOQ.js → chunk-MQMRVBUL.js} +4 -4
  66. package/dist/{chunk-AVR3LVOQ.js.map → chunk-MQMRVBUL.js.map} +1 -1
  67. package/dist/{chunk-KPNNSUXM.js → chunk-O7AUE5GP.js} +5 -3
  68. package/dist/chunk-O7AUE5GP.js.map +1 -0
  69. package/dist/{chunk-6HEURMY3.js → chunk-OCXGG7UP.js} +5 -5
  70. package/dist/{chunk-6HEURMY3.js.map → chunk-OCXGG7UP.js.map} +1 -1
  71. package/dist/{chunk-V7XHE25E.js → chunk-ON7WFRYH.js} +3 -3
  72. package/dist/{chunk-V7XHE25E.js.map → chunk-ON7WFRYH.js.map} +1 -1
  73. package/dist/{chunk-FSMHI7DW.js → chunk-OXDWUKGP.js} +3 -3
  74. package/dist/chunk-OXDWUKGP.js.map +1 -0
  75. package/dist/{chunk-SJSYKUCL.js → chunk-Q335YODG.js} +3 -3
  76. package/dist/{chunk-SJSYKUCL.js.map → chunk-Q335YODG.js.map} +1 -1
  77. package/dist/{chunk-DDM2I5C6.js → chunk-R5OIL4I4.js} +3 -3
  78. package/dist/{chunk-DDM2I5C6.js.map → chunk-R5OIL4I4.js.map} +1 -1
  79. package/dist/{chunk-FYJHWYPM.js → chunk-S524YVMO.js} +3 -3
  80. package/dist/{chunk-FYJHWYPM.js.map → chunk-S524YVMO.js.map} +1 -1
  81. package/dist/{chunk-OWIFNJXZ.js → chunk-S7TVRVRU.js} +3 -3
  82. package/dist/chunk-S7TVRVRU.js.map +1 -0
  83. package/dist/{chunk-TNROOKX3.js → chunk-UDY3IDCY.js} +10 -2
  84. package/dist/chunk-UDY3IDCY.js.map +1 -0
  85. package/dist/{chunk-3WOGOTOV.js → chunk-UPYT2XM5.js} +7 -7
  86. package/dist/chunk-UPYT2XM5.js.map +1 -0
  87. package/dist/{chunk-YWA63YN3.js → chunk-VAVE4ZJF.js} +2 -2
  88. package/dist/chunk-VAVE4ZJF.js.map +1 -0
  89. package/dist/chunk-WKWLKGNI.js +643 -0
  90. package/dist/chunk-WKWLKGNI.js.map +1 -0
  91. package/dist/{chunk-Z3FL7LEK.js → chunk-X253YD45.js} +71 -6
  92. package/dist/chunk-X253YD45.js.map +1 -0
  93. package/dist/{chunk-6XY7QYVR.js → chunk-X3AXEE3S.js} +3 -3
  94. package/dist/{chunk-6XY7QYVR.js.map → chunk-X3AXEE3S.js.map} +1 -1
  95. package/dist/{chunk-R4UOT76L.js → chunk-XAIUZJOJ.js} +8 -8
  96. package/dist/chunk-XAIUZJOJ.js.map +1 -0
  97. package/dist/{chunk-ZO2EKJZM.js → chunk-XCZMJA2D.js} +7 -7
  98. package/dist/{chunk-ZO2EKJZM.js.map → chunk-XCZMJA2D.js.map} +1 -1
  99. package/dist/{chunk-XRMKL43Y.js → chunk-XOLV7G4S.js} +3 -3
  100. package/dist/{chunk-XRMKL43Y.js.map → chunk-XOLV7G4S.js.map} +1 -1
  101. package/dist/chunk-XYYOV5GW.js +186 -0
  102. package/dist/chunk-XYYOV5GW.js.map +1 -0
  103. package/dist/{chunk-4MQNDQ4O.js → chunk-YACIRNVP.js} +12 -4
  104. package/dist/chunk-YACIRNVP.js.map +1 -0
  105. package/dist/{chunk-JKYB5QAP.js → chunk-YDZBLZVZ.js} +3 -3
  106. package/dist/{chunk-JKYB5QAP.js.map → chunk-YDZBLZVZ.js.map} +1 -1
  107. package/dist/{chunk-5XQIH6WM.js → chunk-YM5YBDRM.js} +4 -4
  108. package/dist/{chunk-5XQIH6WM.js.map → chunk-YM5YBDRM.js.map} +1 -1
  109. package/dist/{chunk-AUCDXPWH.js → chunk-YQX7XZES.js} +4 -4
  110. package/dist/{chunk-AUCDXPWH.js.map → chunk-YQX7XZES.js.map} +1 -1
  111. package/dist/{chunk-CP2PEDG2.js → chunk-Z4KW5VW6.js} +3 -3
  112. package/dist/chunk-Z4KW5VW6.js.map +1 -0
  113. package/dist/{chunk-Y3BOERVB.js → chunk-ZEFK3AXP.js} +3 -3
  114. package/dist/{chunk-Y3BOERVB.js.map → chunk-ZEFK3AXP.js.map} +1 -1
  115. package/dist/{chunk-L3Z5FAJE.js → chunk-ZEYLSDSG.js} +3 -3
  116. package/dist/{chunk-L3Z5FAJE.js.map → chunk-ZEYLSDSG.js.map} +1 -1
  117. package/dist/components/advanced/Calendar/index.js +3 -3
  118. package/dist/components/advanced/Command/index.js +1 -1
  119. package/dist/components/advanced/EventCalendar/index.js +3 -3
  120. package/dist/components/advanced/FileDropzone/index.js +1 -1
  121. package/dist/components/advanced/FilterBuilder/index.js +3 -3
  122. package/dist/components/advanced/MarkdownEditor/index.js +2 -2
  123. package/dist/components/advanced/ReportBuilder/index.js +2 -2
  124. package/dist/components/advanced/RichTextEditor/index.js +2 -2
  125. package/dist/components/advanced/index.js +13 -13
  126. package/dist/components/data-display/AreaChart/index.js +1 -1
  127. package/dist/components/data-display/BarChart/index.js +1 -1
  128. package/dist/components/data-display/Carousel/index.js +3 -3
  129. package/dist/components/data-display/ChartCard/index.js +2 -2
  130. package/dist/components/data-display/DashboardFilterbar/index.js +5 -5
  131. package/dist/components/data-display/DataTable/FilterBuilder/index.js +3 -3
  132. package/dist/components/data-display/DataTable/index.js +6 -6
  133. package/dist/components/data-display/ImageGallery/index.js +6 -6
  134. package/dist/components/data-display/KPICard/index.js +3 -3
  135. package/dist/components/data-display/Lightbox/index.js +1 -1
  136. package/dist/components/data-display/LineChart/index.js +1 -1
  137. package/dist/components/data-display/List/index.js +2 -2
  138. package/dist/components/data-display/Table/index.js +1 -1
  139. package/dist/components/data-display/VirtualTable/index.js +2 -2
  140. package/dist/components/data-display/index.js +29 -29
  141. package/dist/components/feedback/Alert/index.js +1 -1
  142. package/dist/components/feedback/AlertDialog/index.js +3 -3
  143. package/dist/components/feedback/ConfirmModal/index.js +4 -4
  144. package/dist/components/feedback/Modal/index.js +1 -1
  145. package/dist/components/feedback/index.js +8 -8
  146. package/dist/components/forms/ColorPicker/index.js +1 -1
  147. package/dist/components/forms/DatePicker/index.js +4 -4
  148. package/dist/components/forms/DateRangePicker/index.js +4 -4
  149. package/dist/components/forms/IftaLabel/index.js +1 -1
  150. package/dist/components/forms/InputGroup/index.js +3 -3
  151. package/dist/components/forms/MultiSelect/index.js +2 -1
  152. package/dist/components/forms/RadioButton/index.js +1 -1
  153. package/dist/components/forms/Rating/index.js +1 -1
  154. package/dist/components/forms/Slider/index.js +1 -1
  155. package/dist/components/forms/TagsInput/index.js +2 -2
  156. package/dist/components/forms/ToggleGroup/index.js +1 -1
  157. package/dist/components/forms/index.js +19 -19
  158. package/dist/components/index.js +104 -104
  159. package/dist/components/layout/index.js +2 -2
  160. package/dist/components/navigation/AccountSwitch/index.js +3 -3
  161. package/dist/components/navigation/Drawer/index.js +1 -1
  162. package/dist/components/navigation/DropdownMenu/index.js +1 -1
  163. package/dist/components/navigation/Header/index.js +1 -1
  164. package/dist/components/navigation/MobileSidebar/index.js +3 -3
  165. package/dist/components/navigation/Pagination/index.js +3 -3
  166. package/dist/components/navigation/Sidebar/index.js +3 -3
  167. package/dist/components/navigation/UserProfileDropdown/index.js +1 -1
  168. package/dist/components/navigation/WorkspaceDropdown/index.js +1 -1
  169. package/dist/components/navigation/index.js +13 -13
  170. package/dist/components/primitives/AspectRatio/index.js +1 -1
  171. package/dist/components/primitives/Badge/index.js +1 -1
  172. package/dist/components/primitives/Button/index.js +2 -2
  173. package/dist/components/primitives/ConfirmButton/index.js +4 -4
  174. package/dist/components/primitives/ProgressBar/index.js +1 -1
  175. package/dist/components/primitives/SplitButton/index.js +2 -2
  176. package/dist/components/primitives/StatusIndicator/index.js +1 -1
  177. package/dist/components/primitives/Tag/index.js +1 -1
  178. package/dist/components/primitives/Toggle/index.js +1 -1
  179. package/dist/components/primitives/index.js +16 -16
  180. package/dist/components/workflow/ApprovalFlow/index.js +3 -3
  181. package/dist/components/workflow/CommentSystem/index.js +3 -3
  182. package/dist/components/workflow/Dashboard/index.js +3 -3
  183. package/dist/components/workflow/DashboardBuilder/index.js +3 -3
  184. package/dist/components/workflow/KanbanBoard/index.js +3 -3
  185. package/dist/components/workflow/ReportGenerator/index.js +3 -3
  186. package/dist/components/workflow/TaskStatus/index.js +2 -2
  187. package/dist/components/workflow/Wizard/index.js +3 -3
  188. package/dist/components/workflow/index.js +12 -12
  189. package/dist/index.d.ts +156 -50
  190. package/dist/index.js +104 -104
  191. package/dist/styles.css +23 -0
  192. package/package.json +2 -2
  193. package/dist/chunk-23BHD62H.js.map +0 -1
  194. package/dist/chunk-2UGDLAYC.js.map +0 -1
  195. package/dist/chunk-33JGPMUW.js.map +0 -1
  196. package/dist/chunk-3WOGOTOV.js.map +0 -1
  197. package/dist/chunk-4MQNDQ4O.js.map +0 -1
  198. package/dist/chunk-65YSTUD2.js.map +0 -1
  199. package/dist/chunk-CP2PEDG2.js.map +0 -1
  200. package/dist/chunk-FSMHI7DW.js.map +0 -1
  201. package/dist/chunk-GAP3OZR7.js +0 -223
  202. package/dist/chunk-GAP3OZR7.js.map +0 -1
  203. package/dist/chunk-HKXQLWGR.js.map +0 -1
  204. package/dist/chunk-IBVCSZCH.js.map +0 -1
  205. package/dist/chunk-ICAQYWCX.js +0 -153
  206. package/dist/chunk-ICAQYWCX.js.map +0 -1
  207. package/dist/chunk-IRKDMISK.js.map +0 -1
  208. package/dist/chunk-J62TFQHR.js.map +0 -1
  209. package/dist/chunk-KPNNSUXM.js.map +0 -1
  210. package/dist/chunk-KR3IVNQH.js.map +0 -1
  211. package/dist/chunk-OWIFNJXZ.js.map +0 -1
  212. package/dist/chunk-PLLJNHWU.js.map +0 -1
  213. package/dist/chunk-R4UOT76L.js.map +0 -1
  214. package/dist/chunk-SHS6EGWS.js +0 -226
  215. package/dist/chunk-SHS6EGWS.js.map +0 -1
  216. package/dist/chunk-TNROOKX3.js.map +0 -1
  217. package/dist/chunk-UFRMZ3M6.js.map +0 -1
  218. package/dist/chunk-VFALJSXB.js.map +0 -1
  219. package/dist/chunk-VPNFYQBL.js.map +0 -1
  220. package/dist/chunk-XD5LE64P.js +0 -311
  221. package/dist/chunk-XD5LE64P.js.map +0 -1
  222. package/dist/chunk-XV6NXXXP.js +0 -206
  223. package/dist/chunk-XV6NXXXP.js.map +0 -1
  224. package/dist/chunk-YWA63YN3.js.map +0 -1
  225. 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({ className, size: sizeProp, ...props }) {
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-Z3FL7LEK.js.map
401
- //# sourceMappingURL=chunk-Z3FL7LEK.js.map
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-3WOGOTOV.js';
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-6XY7QYVR.js.map
812
- //# sourceMappingURL=chunk-6XY7QYVR.js.map
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":";;;;;;;;;;;;;;;;;;;;;;;AAqDA,SAAS,kBAAA,CACP,aAAA,EACA,cAAA,EACA,YAAA,EACA;AACA,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,OAAO,eAAe,YAAY,CAAA;AAAA,EACpC;AAEA,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,aAAA,EAAe,YAAY,CAAA;AAClD;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,MAAM,OAAA,GAAgB,kBAAY,MAAM;AACtC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,aAAA,CAAc,MAAM,EAAE,MAAM,CAAA;AACvD,IAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,aAAA,EAAe,WAAW,CAAA;AAEhE,IAAA,IAAI,QAAQ,IAAA,EAAM;AAElB,IAAA,IAAI,QAAQ,EAAA,EAAI;AACd,MAAA,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAgB,MAAM,CAAA,CAAE,SAAA,EAAU,CAAE,GAAA,EAAI;AAC/D,MAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,eAAA,CAAgB,MAAM,CAAA,CAAE,OAAA,CAAQ,EAAE,IAAA,EAAM,GAAA,EAAK,EAAE,GAAA,EAAI;AAAA,EAC5E,CAAA,EAAG,CAAC,MAAA,EAAQ,aAAa,CAAC,CAAA;AAE1B,EAAA,MAAM,QAAA,GAAiB,kBAAY,MAAM;AACvC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,WAAA,EAAa,cAAc,CAAA;AAE1D,IAAA,IAAI,GAAA,EAAK;AACP,MAAA,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,QAAA,CAAS,EAAE,GAAA,EAAK,GAAA,EAAK,CAAA,CAAE,GAAA,EAAI;AAAA,IACpD;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,cAAc,CAAC,CAAA;AAE3B,EAAA,MAAM,WAAA,GAAoB,kBAAY,MAAM;AAC1C,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,YAAY,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,aAAA,EAAe,IAAA,EAAM,EAAE,GAAA,EAAI;AAAA,EACpF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AAEpB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,0GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,YAAA,EAAW,iBAAA;AAAA,MACX,WAAA,EAAU,mBAAA;AAAA,MACV,IAAA,EAAK,SAAA;AAAA,MAGL,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,MAAA;AAAA,YACX,QAAA,EAAU,CAAC,MAAA,CAAO,GAAA,GAAM,IAAA,EAAK;AAAA,YAC7B,OAAA,EAAS,KAAA;AAAA,YACT,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,IAAA,EAAK,CAAE,GAAA,EAAI;AAAA,YAEzD,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,MAAA;AAAA,YACX,QAAA,EAAU,CAAC,MAAA,CAAO,GAAA,GAAM,IAAA,EAAK;AAAA,YAC7B,OAAA,EAAS,KAAA;AAAA,YACT,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,IAAA,EAAK,CAAE,GAAA,EAAI;AAAA,YAEzD,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,MAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,UAAA,EAAW,CAAE,GAAA,EAAI;AAAA,YAE/D,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,QAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA;AAAA,YACjC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,YAAA,EAAa,CAAE,GAAA,EAAI;AAAA,YAEjE,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACjC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA;AAAA,YACpC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,eAAA,EAAgB,CAAE,GAAA,EAAI;AAAA,YAEpE,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACpC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,eAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA;AAAA,YACjC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,YAAA,EAAa,CAAE,GAAA,EAAI;AAAA,YAEjE,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACxC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,UAAA,EAAW,CAAE,GAAA,EAAI;AAAA,YAE/D,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA;AAAA,YACpC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,eAAA,EAAgB,CAAE,GAAA,EAAI;AAAA,YAEpE,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACtC;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,WAAW,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAG,EAAE,GAAA,EAAI;AAAA,YAE9E,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,WAAW,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAG,EAAE,GAAA,EAAI;AAAA,YAE9E,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,WAAW,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAG,EAAE,GAAA,EAAI;AAAA,YAE9E,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAAA,YACrC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAA,EAAiB,CAAE,GAAA,EAAI;AAAA,YAErE,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,cAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,aAAa,CAAA;AAAA,YACtC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,iBAAA,EAAkB,CAAE,GAAA,EAAI;AAAA,YAEtE,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACtC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAAA,YACnC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,cAAA,EAAe,CAAE,GAAA,EAAI;AAAA,YAEnE,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,YAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,EAAE,SAAA,EAAW,QAAQ,CAAA;AAAA,YAC9C,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,OAAM,CAAE,YAAA,CAAa,MAAM,CAAA,CAAE,GAAA,EAAI;AAAA,YAEvE,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACpC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,cAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,EAAE,SAAA,EAAW,UAAU,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,OAAM,CAAE,YAAA,CAAa,QAAQ,CAAA,CAAE,GAAA,EAAI;AAAA,YAEzE,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACtC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,EAAE,SAAA,EAAW,SAAS,CAAA;AAAA,YAC/C,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,OAAM,CAAE,YAAA,CAAa,OAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YAExE,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACrC;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,YAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAAA,YACrC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAA,EAAiB,CAAE,GAAA,EAAI;AAAA,YAErE,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAChC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,iBAAA;AAAA,YACX,OAAA,EAAS,KAAA;AAAA,YACT,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,iBAAA,EAAkB,CAAE,GAAA,EAAI;AAAA,YAEtE,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAChC;AAAA,wBAEA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBAGrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,OAAA;AAAA,YAEjB,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,cAAA;AAAA,YACX,OAAA,EAAS,KAAA;AAAA,YACT,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,QAAA;AAAA,YAEjB,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAChC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,cAAA;AAAA,YACX,OAAA,EAAS,KAAA;AAAA,YACT,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,WAAA;AAAA,YAEjB,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA;AAChC;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,yBAAA,CAA0B;AAAA,EACjC,SAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,OAAA,GAAgB,kBAAY,MAAM;AACtC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,aAAA,CAAc,MAAM,EAAE,MAAM,CAAA;AACvD,IAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,KAAA,EAAO,aAAA,EAAe,WAAW,CAAA;AAEhE,IAAA,IAAI,QAAQ,IAAA,EAAM;AAElB,IAAA,IAAI,QAAQ,EAAA,EAAI;AACd,MAAA,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAgB,MAAM,CAAA,CAAE,SAAA,EAAU,CAAE,GAAA,EAAI;AAC/D,MAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,eAAA,CAAgB,MAAM,CAAA,CAAE,OAAA,CAAQ,EAAE,IAAA,EAAM,GAAA,EAAK,EAAE,GAAA,EAAI;AAAA,EAC5E,CAAA,EAAG,CAAC,MAAA,EAAQ,aAAa,CAAC,CAAA;AAE1B,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AAEpB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,8FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,YAAA,EAAW,sBAAA;AAAA,MACX,WAAA,EAAU,uBAAA;AAAA,MACV,IAAA,EAAK,SAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,MAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,UAAA,EAAW,CAAE,GAAA,EAAI;AAAA,YAE/D,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,QAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA;AAAA,YACjC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,YAAA,EAAa,CAAE,GAAA,EAAI;AAAA,YAEjE,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACjC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA;AAAA,YACpC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,eAAA,EAAgB,CAAE,GAAA,EAAI;AAAA,YAEpE,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACpC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,eAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA;AAAA,YACjC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,YAAA,EAAa,CAAE,GAAA,EAAI;AAAA,YAEjE,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACxC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,UAAA,EAAW,CAAE,GAAA,EAAI;AAAA,YAE/D,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA;AAAA,YACpC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,eAAA,EAAgB,CAAE,GAAA,EAAI;AAAA,YAEpE,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACtC;AAAA,wBACA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,aAAY,UAAA,EAAW,CAAA;AAAA,wBACrD,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA;AAAA,YAC/B,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,OAAA;AAAA,YAEjB,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA;AAC/B;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,2BAAA,CAA4B,EAAE,SAAA,EAAW,MAAA,EAAO,EAA8B;AACrF,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AAEpB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,8FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,YAAA,EAAW,kBAAA;AAAA,MACX,WAAA,EAAU,yBAAA;AAAA,MACV,IAAA,EAAK,SAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,WAAW,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAG,EAAE,GAAA,EAAI;AAAA,YAE9E,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,SAAS,MAAA,CAAO,QAAA,CAAS,WAAW,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,YAChD,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,EAAM,CAAE,KAAA,EAAM,CAAE,aAAA,CAAc,EAAE,KAAA,EAAO,CAAA,EAAG,EAAE,GAAA,EAAI;AAAA,YAE9E,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,aAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAAA,YACrC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAA,EAAiB,CAAE,GAAA,EAAI;AAAA,YAErE,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SAC/B;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,cAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,aAAa,CAAA;AAAA,YACtC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,iBAAA,EAAkB,CAAE,GAAA,EAAI;AAAA,YAEtE,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACtC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,WAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA;AAAA,YACnC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,cAAA,EAAe,CAAE,GAAA,EAAI;AAAA,YAEnE,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAW,YAAA;AAAA,YACX,OAAA,EAAS,MAAA,CAAO,QAAA,CAAS,YAAY,CAAA;AAAA,YACrC,IAAA,EAAK,IAAA;AAAA,YACL,eAAA,EAAiB,MAAM,MAAA,CAAO,KAAA,GAAQ,KAAA,EAAM,CAAE,gBAAA,EAAiB,CAAE,GAAA,EAAI;AAAA,YAErE,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA;AAChC;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,cAAc,SAAA,GAAY,kBAAA;AAAA,EAC1B,SAAA,GAAY,KAAA;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,aAAa,EAAC;AAAA,EACd,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,cAAA;AAAA,EACA,aAAA;AAAA,EACA,GAAA;AAAA,EACA,cAAA,GAAiB,IAAA;AAAA,EACjB,gBAAA,GAAmB,KAAA;AAAA,EACnB,WAAA,GAAc,IAAA;AAAA,EACd,eAAA,GAAkB,KAAA;AAAA,EAClB,GAAG;AACL,CAAA,EAAiE;AAC/D,EAAA,MAAM,SAAS,SAAA,CAAU;AAAA,IACvB,SAAA;AAAA,IACA,OAAA,EAAS,WAAW,cAAA,IAAkB,EAAA;AAAA,IACtC,QAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,UAAA,EAAY;AAAA,QACV,YAAA,EAAc,SAAA;AAAA,QACd,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,UAAA,EAAY;AAAA,MACV,WAAW,SAAA,CAAU;AAAA,QACnB,OAAA,EAAS;AAAA,UACP,QAAQ,CAAC,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC;AAAA,SAC3B;AAAA,QACA,IAAA,EAAM,KAAA;AAAA,QACN,SAAA,EAAW;AAAA,OACZ,CAAA;AAAA,MACD,YAAY,SAAA,CAAU;AAAA,QACpB;AAAA,OACD,CAAA;AAAA,MACD,KAAK,SAAA,CAAU;AAAA,QACb,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA,SACT;AAAA,QACA,WAAA,EAAa;AAAA,OACd,CAAA;AAAA,MACD,MAAM,SAAA,CAAU;AAAA,QACd,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA;AACT,OACD,CAAA;AAAA,MACD,SAAA;AAAA,MACA,UAAU,SAAA,CAAU;AAAA,QAClB,KAAA,EAAO,CAAC,SAAA,EAAW,WAAW;AAAA,OAC/B,CAAA;AAAA,MACD,UAAU,SAAA,CAAU;AAAA,QAClB,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA,SACT;AAAA,QACA,UAAA,EAAY;AAAA,OACb,CAAA;AAAA,MACD,QAAA;AAAA,MACA,SAAS,SAAA,CAAU;AAAA,QACjB,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,MACD,MAAM,SAAA,CAAU;AAAA,QACd,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA,SACT;AAAA,QACA,SAAA,EAAW;AAAA,OACZ,CAAA;AAAA,MACD,QAAA;AAAA,MACA,UAAU,SAAA,CAAU;AAAA,QAClB,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA;AACT,OACD,CAAA;AAAA,MACD,YAAY,SAAA,CAAU;AAAA,QACpB,cAAA,EAAgB;AAAA,UACd,KAAA,EAAO;AAAA;AACT,OACD,CAAA;AAAA,MACD,GAAG;AAAA,KACL;AAAA,IACA,MAAA,EAAQ,CAAC,EAAE,MAAA,EAAQ,eAAc,KAAM;AACrC,MAAA,MAAA,GAAS,EAAE,MAAA,EAAQ,aAAA,EAAe,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,EAAE,MAAA,EAAQ,eAAc,KAAM;AACtC,MAAA,OAAA,GAAU,EAAE,MAAA,EAAQ,aAAA,EAAe,CAAA;AAAA,IACrC,CAAA;AAAA,IACA,QAAA,EAAU,CAAC,EAAE,MAAA,EAAQ,eAAc,KAAM;AACvC,MAAA,QAAA,GAAW,aAAA,CAAc,SAAS,CAAA;AAClC,MAAA,QAAA,GAAW,EAAE,MAAA,EAAQ,aAAA,EAAe,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAKD,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,MAAA,IAAU,YAAY,MAAA,EAAW;AACnC,MAAA,MAAM,cAAA,GAAiB,OAAO,OAAA,EAAQ;AACtC,MAAA,MAAM,aAAa,OAAO,OAAA,KAAY,WAAW,OAAA,GAAU,IAAA,CAAK,UAAU,OAAO,CAAA;AACjF,MAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,SAAA,CAAU,cAAc,CAAA;AAEvD,MAAA,IAAI,eAAe,iBAAA,EAAmB;AACpC,QAAA,MAAA,CAAO,QAAA,CAAS,WAAW,OAAO,CAAA;AAAA,MACpC;AAAA,IACF;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA;AAGpB,EAAM,gBAAU,MAAM;AACpB,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAA,CAAO,YAAY,QAAQ,CAAA;AAAA,IAC7B;AAAA,EACF,CAAA,EAAG,CAAC,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAKrB,EAAM,KAAA,CAAA,mBAAA,CAAoB,KAAK,OAAO;AAAA,IACpC,MAAM,MAAM;AACV,MAAA,MAAA,EAAQ,SAAS,IAAA,EAAK;AAAA,IACxB,CAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAO,MAAM;AACX,MAAA,MAAA,EAAQ,SAAS,KAAA,EAAM;AAAA,IACzB,CAAA;AAAA,IACA,OAAA,EAAS,MAAM,MAAA,EAAQ,OAAA,EAAQ,IAAK,EAAA;AAAA,IACpC,OAAA,EAAS,MAAM,MAAA,EAAQ,OAAA,EAAQ,IAAK,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,EAAC,EAAE;AAAA,IAC/D,OAAA,EAAS,MAAM,MAAA,EAAQ,OAAA,EAAQ,IAAK,EAAA;AAAA,IACpC,UAAA,EAAY,CAAC,UAAA,KAAe;AAC1B,MAAA,MAAA,EAAQ,QAAA,CAAS,WAAW,UAAU,CAAA;AAAA,IACxC;AAAA,GACF,CAAE,CAAA;AAGF,EAAA,MAAM,cAAA,GAAiB,eAAe,eAAA,KAAoB,KAAA;AAC1D,EAAA,MAAM,iBAAA,GAAoB,eAAe,eAAA,KAAoB,QAAA;AAE7D,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,wDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,WAAA,EAAU,kBAAA;AAAA,MACV,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,GAAG,MAAM,KAAA,EAAM;AAAA,MACtC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,cAAA,oBACC,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,MAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAEZ,QAAA,EAAA;AAAA,UAAA,cAAA,IAAkB,MAAA,oBACjB,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,uBAAA;AAAA,cACV,MAAA;AAAA,cAEA,QAAA,kBAAA,GAAA;AAAA,gBAAC,yBAAA;AAAA,gBAAA;AAAA,kBACC,MAAA;AAAA,kBACA;AAAA;AAAA;AACF;AAAA,WACF;AAAA,UAID,oBAAoB,MAAA,oBACnB,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,yBAAA;AAAA,cACV,MAAA;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,+BAA4B,MAAA,EAAgB;AAAA;AAAA,WAC/C;AAAA,0BAGF,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,oDAAA;AAAA,gBACA,2BAAA;AAAA,gBACA,oFAAA;AAAA,gBACA,8WAAA;AAAA,gBACA,oGAAA;AAAA,gBACA,+JAAA;AAAA,gBACA;AAAA,eACF;AAAA,cACA,MAAA;AAAA,cACA,OAAO,EAAE,KAAA,EAAO,QAAQ,QAAA,EAAU,MAAA,EAAQ,UAAU,MAAA;AAAO;AAAA;AAC7D,SAAA,EACF,CAAA;AAAA,QAEC,iBAAA,oBACC,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,iDAAA;AAAA,YACV,MAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA;AAAA;AACF;AAAA;AAAA,GAEJ;AAEJ;AC/qBO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC,sFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,EAAA,EAAI,UAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACR;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,+BAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,gCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU,KAAA;AAAA,MACV,OAAA,EAAS;AAAA;AACX;AAEJ;AAKO,IAAM,6BAAA,GAAgC,GAAA;AAAA,EAC3C,0EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,GAAA,EAAK,aAAA;AAAA,QACL,MAAA,EAAQ,gCAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU,KAAA;AAAA,MACV,OAAA,EAAS;AAAA;AACX;AAEJ;AAKO,IAAM,mCAAA,GAAsC,GAAA;AAAA,EACjD,mNAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8CAAA;AAAA,QACT,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAKO,IAAM,6BAAA,GAAgC,GAAA;AAAA,EAC3C,yFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAA,EAAU;AAAA;AACZ;AAEJ;AAKO,IAAM,gCAAA,GAAmC,GAAA;AAAA,EAC9C,uFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAKO,IAAM,kCAAA,GAAqC,GAAA;AAAA,EAChD,qFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAKO,IAAM,iCAAA,GAAoC,GAAA;AAAA,EAC/C,6EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,aAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ","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"]}