sdaia-ui 1.0.1 → 1.0.2

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 (1014) hide show
  1. package/dist/icons/AIIcon.d.ts +11 -0
  2. package/dist/icons/AaIcon.d.ts +11 -0
  3. package/dist/icons/AlertCircle02Icon.d.ts +8 -0
  4. package/dist/icons/AlertCircleIcon.d.ts +9 -0
  5. package/dist/icons/AlertCircleSVG.d.ts +3 -0
  6. package/dist/icons/AlertCircleWarningIcon.d.ts +9 -0
  7. package/dist/icons/AlertTriangleIcon.d.ts +9 -0
  8. package/dist/icons/AlignCenterIcon.d.ts +10 -0
  9. package/dist/icons/AlignLeftIcon.d.ts +10 -0
  10. package/dist/icons/AlignRightIcon.d.ts +10 -0
  11. package/dist/icons/ArrowDownIcon.d.ts +9 -0
  12. package/dist/icons/ArrowDownLeft01Icon.d.ts +14 -0
  13. package/dist/icons/ArrowDownSVG.d.ts +3 -0
  14. package/{src/icons/ArrowIcon.tsx → dist/icons/ArrowIcon.d.ts} +3 -23
  15. package/dist/icons/ArrowLeft01Icon.d.ts +4 -0
  16. package/dist/icons/ArrowLeft02SVG.d.ts +3 -0
  17. package/dist/icons/ArrowLeftIcon.d.ts +4 -0
  18. package/dist/icons/ArrowRight01Icon.d.ts +4 -0
  19. package/dist/icons/ArrowRight01SVG.d.ts +3 -0
  20. package/dist/icons/ArrowRightIcon.d.ts +4 -0
  21. package/dist/icons/ArrowUpIcon.d.ts +9 -0
  22. package/dist/icons/ArrowUpRight01Icon.d.ts +11 -0
  23. package/dist/icons/ArrowUpSVG.d.ts +3 -0
  24. package/dist/icons/AtIcon.d.ts +10 -0
  25. package/dist/icons/BeakBottom.d.ts +4 -0
  26. package/{src/icons/BeakDown.tsx → dist/icons/BeakDown.d.ts} +1 -17
  27. package/dist/icons/BeakLeft.d.ts +4 -0
  28. package/dist/icons/BeakRight.d.ts +3 -0
  29. package/dist/icons/BeakTop.d.ts +4 -0
  30. package/{src/icons/BeakUp.tsx → dist/icons/BeakUp.d.ts} +1 -16
  31. package/dist/icons/BellCircleIcon.d.ts +9 -0
  32. package/dist/icons/BellIcon.d.ts +9 -0
  33. package/dist/icons/BoldIcon.d.ts +10 -0
  34. package/dist/icons/CalendarIcon.d.ts +3 -0
  35. package/dist/icons/ChartsIcon.d.ts +3 -0
  36. package/dist/icons/CheckCircleIcon.d.ts +9 -0
  37. package/dist/icons/ChevronDownIcon.d.ts +9 -0
  38. package/dist/icons/ChevronDownSmIcon.d.ts +10 -0
  39. package/dist/icons/ChevronLeftIcon.d.ts +2 -0
  40. package/dist/icons/ChevronRightIcon.d.ts +3 -0
  41. package/{src/icons/ClearIcon.tsx → dist/icons/ClearIcon.d.ts} +1 -23
  42. package/dist/icons/ClockIcon.d.ts +12 -0
  43. package/dist/icons/CloseIcon.d.ts +9 -0
  44. package/dist/icons/CloudUploadIcon.d.ts +3 -0
  45. package/dist/icons/CodeSnippetChevronDownIcon.d.ts +3 -0
  46. package/dist/icons/CodeSnippetCopyIcon.d.ts +4 -0
  47. package/dist/icons/CodeSnippetStarIcon.d.ts +3 -0
  48. package/dist/icons/ColorSquareIcon.d.ts +6 -0
  49. package/dist/icons/ComponentsIcon.d.ts +3 -0
  50. package/dist/icons/DGALogoSVG.d.ts +3 -0
  51. package/dist/icons/DeleteIcon.d.ts +3 -0
  52. package/dist/icons/DownloadIcon.d.ts +6 -0
  53. package/dist/icons/DragHandleVerticalIcon.d.ts +3 -0
  54. package/dist/icons/FeedbackEmojiDislikeIcon.d.ts +2 -0
  55. package/dist/icons/FeedbackEmojiLikeIcon.d.ts +2 -0
  56. package/dist/icons/FeedbackEmojiNeutralIcon.d.ts +2 -0
  57. package/dist/icons/FeedbackThumbDislikeFilledIcon.d.ts +2 -0
  58. package/dist/icons/FeedbackThumbDislikeIcon.d.ts +2 -0
  59. package/dist/icons/FeedbackThumbLikeFilledIcon.d.ts +2 -0
  60. package/dist/icons/FeedbackThumbLikeIcon.d.ts +2 -0
  61. package/dist/icons/FileUploadItemCloseIcon.d.ts +6 -0
  62. package/dist/icons/FileUploadItemEmptyFileIcon.d.ts +5 -0
  63. package/dist/icons/FileUploadItemPdfIcon.d.ts +6 -0
  64. package/dist/icons/FilterFunnelIcon.d.ts +12 -0
  65. package/dist/icons/FilterIcon.d.ts +9 -0
  66. package/dist/icons/FitIcon.d.ts +6 -0
  67. package/dist/icons/FolderFilledIcon.d.ts +3 -0
  68. package/dist/icons/FolderIcon.d.ts +4 -0
  69. package/dist/icons/FoundationsIcon.d.ts +3 -0
  70. package/dist/icons/FullscreenExitIcon.d.ts +11 -0
  71. package/dist/icons/FullscreenIcon.d.ts +10 -0
  72. package/dist/icons/GoBackward10Icon.d.ts +3 -0
  73. package/dist/icons/GoForward10Icon.d.ts +3 -0
  74. package/dist/icons/GridSquaresIcon.d.ts +12 -0
  75. package/dist/icons/HamburgerIcon.d.ts +7 -0
  76. package/dist/icons/HelpCircleIcon.d.ts +7 -0
  77. package/dist/icons/HomeIcon.d.ts +2 -0
  78. package/dist/icons/HomeSVG.d.ts +3 -0
  79. package/{src/icons/IconFactory.ts → dist/icons/IconFactory.d.ts} +0 -15
  80. package/dist/icons/Image01SVG.d.ts +3 -0
  81. package/dist/icons/ImageIcon.d.ts +10 -0
  82. package/dist/icons/InfoCircleIcon.d.ts +10 -0
  83. package/dist/icons/InfoCircleSVG.d.ts +3 -0
  84. package/dist/icons/InfoIcon.d.ts +9 -0
  85. package/dist/icons/ItalicIcon.d.ts +10 -0
  86. package/dist/icons/LearnMoreArrowIcon.d.ts +4 -0
  87. package/dist/icons/LinkCircleSVG.d.ts +3 -0
  88. package/dist/icons/LinkIcon.d.ts +10 -0
  89. package/dist/icons/ListLinesIcon.d.ts +12 -0
  90. package/dist/icons/LockCircleSVG.d.ts +3 -0
  91. package/dist/icons/LockIcon.d.ts +13 -0
  92. package/dist/icons/Logout02Icon.d.ts +3 -0
  93. package/dist/icons/MicrophoneIcon.d.ts +2 -0
  94. package/{src/icons/MinusIcon.tsx → dist/icons/MinusIcon.d.ts} +3 -24
  95. package/dist/icons/MoreHorizontalIcon.d.ts +7 -0
  96. package/dist/icons/MoreVerticalIcon.d.ts +9 -0
  97. package/dist/icons/NextIcon.d.ts +10 -0
  98. package/dist/icons/PDFSvg.d.ts +12 -0
  99. package/dist/icons/PatternsIcon.d.ts +2 -0
  100. package/dist/icons/PauseIcon.d.ts +6 -0
  101. package/dist/icons/PencilIcon.d.ts +8 -0
  102. package/dist/icons/PlayButtonCardIcon.d.ts +14 -0
  103. package/dist/icons/PlayCenterIcon.d.ts +13 -0
  104. package/dist/icons/PlayIcon.d.ts +3 -0
  105. package/dist/icons/PlayIconSolid.d.ts +6 -0
  106. package/dist/icons/PlayIconStroke.d.ts +2 -0
  107. package/dist/icons/PlayIconTwotone.d.ts +6 -0
  108. package/dist/icons/PlayVideoIcon.d.ts +14 -0
  109. package/dist/icons/PlusCircleIcon.d.ts +9 -0
  110. package/{src/icons/PlusIcon.tsx → dist/icons/PlusIcon.d.ts} +3 -24
  111. package/dist/icons/PreviousIcon.d.ts +10 -0
  112. package/dist/icons/PrintIcon.d.ts +4 -0
  113. package/dist/icons/QuestionMarkGrayBgIcon.d.ts +22 -0
  114. package/dist/icons/QuestionMarkIcon.d.ts +11 -0
  115. package/dist/icons/RedoIcon.d.ts +10 -0
  116. package/dist/icons/SaudiFlagSVG.d.ts +3 -0
  117. package/dist/icons/SdaiaNavLogo.d.ts +2 -0
  118. package/dist/icons/SearchIcon.d.ts +12 -0
  119. package/dist/icons/SettingsIcon.d.ts +2 -0
  120. package/dist/icons/ShareIcon.d.ts +4 -0
  121. package/dist/icons/SidebarCollapseIcon.d.ts +3 -0
  122. package/dist/icons/SmileIcon.d.ts +11 -0
  123. package/dist/icons/SortIcon.d.ts +2 -0
  124. package/dist/icons/StarIcon.d.ts +11 -0
  125. package/dist/icons/StatusBadgeIcon.d.ts +2 -0
  126. package/dist/icons/TextTIcon.d.ts +10 -0
  127. package/dist/icons/Tick02Icon.d.ts +8 -0
  128. package/dist/icons/TickIcon.d.ts +12 -0
  129. package/dist/icons/TrashIcon.d.ts +14 -0
  130. package/dist/icons/UnderlineIcon.d.ts +10 -0
  131. package/dist/icons/UndoIcon.d.ts +10 -0
  132. package/dist/icons/UploadArrowIcon.d.ts +10 -0
  133. package/dist/icons/UserIcon.d.ts +2 -0
  134. package/dist/icons/VolumeHighIcon.d.ts +3 -0
  135. package/dist/icons/VolumeMuteIcon.d.ts +11 -0
  136. package/dist/icons/XCircleIcon.d.ts +8 -0
  137. package/dist/icons/XIcon.d.ts +8 -0
  138. package/dist/icons/XIconSVG.d.ts +3 -0
  139. package/dist/icons/XSmallIcon.d.ts +7 -0
  140. package/dist/icons/XSvg.d.ts +3 -0
  141. package/dist/icons/ZoomInIcon.d.ts +4 -0
  142. package/dist/icons.cjs +1248 -810
  143. package/dist/icons.js +1223 -665
  144. package/dist/index.js +479 -43363
  145. package/package.json +27 -47
  146. package/README.md +0 -89
  147. package/dist/PlayVideoIcon-BM-4pwUd.d.cts +0 -7
  148. package/dist/PlayVideoIcon-BM-4pwUd.d.ts +0 -7
  149. package/dist/dga-icons.cjs +0 -14
  150. package/dist/dga-icons.cjs.map +0 -1
  151. package/dist/dga-icons.d.cts +0 -1
  152. package/dist/dga-icons.d.ts +0 -1
  153. package/dist/dga-icons.js +0 -3
  154. package/dist/dga-icons.js.map +0 -1
  155. package/dist/icons.cjs.map +0 -1
  156. package/dist/icons.d.cts +0 -756
  157. package/dist/icons.d.ts +0 -756
  158. package/dist/icons.js.map +0 -1
  159. package/dist/index.cjs +0 -43620
  160. package/dist/index.cjs.map +0 -1
  161. package/dist/index.d.cts +0 -9407
  162. package/dist/index.d.ts +0 -9407
  163. package/dist/index.js.map +0 -1
  164. package/dist/styles.css +0 -242
  165. package/src/components/Accordion/Accordion.tsx +0 -207
  166. package/src/components/Accordion/Accordion.types.ts +0 -36
  167. package/src/components/Accordion/Accordion.variants.ts +0 -283
  168. package/src/components/Accordion/index.ts +0 -9
  169. package/src/components/ActionBar/ActionBar.tsx +0 -192
  170. package/src/components/ActionBar/ActionBar.types.ts +0 -67
  171. package/src/components/ActionBar/ActionBar.variants.ts +0 -95
  172. package/src/components/ActionBar/index.ts +0 -8
  173. package/src/components/Activity/Activity.tsx +0 -52
  174. package/src/components/Activity/Activity.types.ts +0 -19
  175. package/src/components/Activity/Activity.variants.ts +0 -15
  176. package/src/components/Activity/index.ts +0 -2
  177. package/src/components/ActivityItem/ActivityItem.tsx +0 -298
  178. package/src/components/ActivityItem/ActivityItem.types.ts +0 -76
  179. package/src/components/ActivityItem/ActivityItem.variants.ts +0 -117
  180. package/src/components/ActivityItem/index.ts +0 -8
  181. package/src/components/Alert/Alert.tsx +0 -183
  182. package/src/components/Alert/Alert.types.ts +0 -34
  183. package/src/components/Alert/Alert.variants.ts +0 -168
  184. package/src/components/Alert/index.ts +0 -2
  185. package/src/components/AreaChart/AreaChart.tsx +0 -454
  186. package/src/components/AreaChart/AreaChart.types.ts +0 -117
  187. package/src/components/AreaChart/AreaChart.variants.ts +0 -202
  188. package/src/components/AreaChart/index.ts +0 -2
  189. package/src/components/AspectRatio/AspectRatio.tsx +0 -36
  190. package/src/components/AspectRatio/AspectRatio.types.ts +0 -33
  191. package/src/components/AspectRatio/AspectRatio.variants.ts +0 -42
  192. package/src/components/AspectRatio/index.ts +0 -2
  193. package/src/components/AudioPlayer/AudioPlayer.tsx +0 -294
  194. package/src/components/AudioPlayer/AudioPlayer.types.ts +0 -64
  195. package/src/components/AudioPlayer/AudioPlayer.variants.ts +0 -225
  196. package/src/components/AudioPlayer/index.ts +0 -2
  197. package/src/components/Autocomplete/Autocomplete.tsx +0 -353
  198. package/src/components/Autocomplete/Autocomplete.types.ts +0 -93
  199. package/src/components/Autocomplete/Autocomplete.variants.ts +0 -149
  200. package/src/components/Autocomplete/index.ts +0 -6
  201. package/src/components/Avatar/Avatar.tsx +0 -168
  202. package/src/components/Avatar/Avatar.types.ts +0 -36
  203. package/src/components/Avatar/Avatar.variants.ts +0 -102
  204. package/src/components/Avatar/index.ts +0 -7
  205. package/src/components/AvatarGroup/AvatarGroup.tsx +0 -87
  206. package/src/components/AvatarGroup/AvatarGroup.types.ts +0 -44
  207. package/src/components/AvatarGroup/AvatarGroup.variants.ts +0 -17
  208. package/src/components/AvatarGroup/index.ts +0 -6
  209. package/src/components/Badge/Badge.tsx +0 -74
  210. package/src/components/Badge/Badge.types.ts +0 -31
  211. package/src/components/Badge/Badge.variants.ts +0 -83
  212. package/src/components/Badge/index.ts +0 -2
  213. package/src/components/Bar/Bar.tsx +0 -57
  214. package/src/components/Bar/Bar.types.ts +0 -18
  215. package/src/components/Bar/Bar.variants.ts +0 -20
  216. package/src/components/Bar/index.ts +0 -2
  217. package/src/components/BarChart/BarChart.tsx +0 -179
  218. package/src/components/BarChart/BarChart.types.ts +0 -72
  219. package/src/components/BarChart/BarChart.variants.ts +0 -134
  220. package/src/components/BarChart/index.ts +0 -2
  221. package/src/components/BarGroup/BarGroup.tsx +0 -119
  222. package/src/components/BarGroup/BarGroup.types.ts +0 -50
  223. package/src/components/BarGroup/BarGroup.variants.ts +0 -76
  224. package/src/components/BarGroup/index.ts +0 -2
  225. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -137
  226. package/src/components/Breadcrumb/Breadcrumb.types.ts +0 -21
  227. package/src/components/Breadcrumb/BreadcrumbItem.tsx +0 -267
  228. package/src/components/Breadcrumb/BreadcrumbItem.types.ts +0 -66
  229. package/src/components/Breadcrumb/BreadcrumbItem.variants.ts +0 -102
  230. package/src/components/Breadcrumb/index.ts +0 -12
  231. package/src/components/Button/Button.tsx +0 -100
  232. package/src/components/Button/Button.types.ts +0 -44
  233. package/src/components/Button/Button.variants.ts +0 -183
  234. package/src/components/Button/index.ts +0 -2
  235. package/src/components/ButtonClose/ButtonClose.tsx +0 -57
  236. package/src/components/ButtonClose/ButtonClose.types.ts +0 -18
  237. package/src/components/ButtonClose/ButtonClose.variants.ts +0 -72
  238. package/src/components/ButtonClose/index.ts +0 -2
  239. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -127
  240. package/src/components/ButtonGroup/ButtonGroup.types.ts +0 -51
  241. package/src/components/ButtonGroup/ButtonGroup.variants.ts +0 -65
  242. package/src/components/ButtonGroup/index.ts +0 -2
  243. package/src/components/ButtonMenu/ButtonMenu.tsx +0 -73
  244. package/src/components/ButtonMenu/ButtonMenu.types.ts +0 -43
  245. package/src/components/ButtonMenu/ButtonMenu.variants.ts +0 -18
  246. package/src/components/ButtonMenu/index.ts +0 -2
  247. package/src/components/ButtonSplit/ButtonSplit.tsx +0 -344
  248. package/src/components/ButtonSplit/ButtonSplit.types.ts +0 -95
  249. package/src/components/ButtonSplit/ButtonSplit.variants.ts +0 -165
  250. package/src/components/ButtonSplit/index.ts +0 -7
  251. package/src/components/ButtonsWithSdaiaTouch/ButtonHoverPattern.tsx +0 -69
  252. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.tsx +0 -130
  253. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.types.ts +0 -4
  254. package/src/components/ButtonsWithSdaiaTouch/ButtonsWithSdaiaTouch.variants.ts +0 -19
  255. package/src/components/ButtonsWithSdaiaTouch/index.ts +0 -6
  256. package/src/components/CLAUDE.md +0 -212
  257. package/src/components/CalendarHeader/CalendarHeader.tsx +0 -224
  258. package/src/components/CalendarHeader/CalendarHeader.types.ts +0 -51
  259. package/src/components/CalendarHeader/CalendarHeader.variants.ts +0 -65
  260. package/src/components/CalendarHeader/index.ts +0 -2
  261. package/src/components/Card/Card.tsx +0 -76
  262. package/src/components/Card/Card.types.ts +0 -11
  263. package/src/components/Card/Card.variants.ts +0 -30
  264. package/src/components/Card/index.ts +0 -2
  265. package/src/components/CardContent/CardContent.tsx +0 -178
  266. package/src/components/CardContent/CardContent.types.ts +0 -70
  267. package/src/components/CardContent/CardContent.variants.ts +0 -90
  268. package/src/components/CardContent/index.ts +0 -6
  269. package/src/components/CardFooter/CardFooter.tsx +0 -196
  270. package/src/components/CardFooter/CardFooter.types.ts +0 -59
  271. package/src/components/CardFooter/CardFooter.variants.ts +0 -127
  272. package/src/components/CardFooter/index.ts +0 -8
  273. package/src/components/CardHeader/CardHeader.tsx +0 -150
  274. package/src/components/CardHeader/CardHeader.types.ts +0 -42
  275. package/src/components/CardHeader/CardHeader.variants.ts +0 -72
  276. package/src/components/CardHeader/index.ts +0 -5
  277. package/src/components/CardLeadingItem/CardLeadingItem.tsx +0 -166
  278. package/src/components/CardLeadingItem/CardLeadingItem.types.ts +0 -75
  279. package/src/components/CardLeadingItem/CardLeadingItem.variants.ts +0 -66
  280. package/src/components/CardLeadingItem/index.ts +0 -6
  281. package/src/components/CardMedia/CardMedia.tsx +0 -324
  282. package/src/components/CardMedia/CardMedia.types.ts +0 -114
  283. package/src/components/CardMedia/CardMedia.variants.ts +0 -139
  284. package/src/components/CardMedia/index.ts +0 -2
  285. package/src/components/Carousel/Carousel.tsx +0 -182
  286. package/src/components/Carousel/Carousel.types.ts +0 -38
  287. package/src/components/Carousel/Carousel.variants.ts +0 -17
  288. package/src/components/Carousel/index.ts +0 -2
  289. package/src/components/CarouselArrow/CarouselArrow.tsx +0 -66
  290. package/src/components/CarouselArrow/CarouselArrow.types.ts +0 -26
  291. package/src/components/CarouselArrow/CarouselArrow.variants.ts +0 -83
  292. package/src/components/CarouselArrow/index.ts +0 -7
  293. package/src/components/CarouselControlsGroup/CarouselControlsGroup.tsx +0 -81
  294. package/src/components/CarouselControlsGroup/CarouselControlsGroup.types.ts +0 -24
  295. package/src/components/CarouselControlsGroup/CarouselControlsGroup.variants.ts +0 -60
  296. package/src/components/CarouselControlsGroup/index.ts +0 -6
  297. package/src/components/CarouselImage/CarouselImage.tsx +0 -253
  298. package/src/components/CarouselImage/CarouselImage.types.ts +0 -72
  299. package/src/components/CarouselImage/CarouselImage.variants.ts +0 -43
  300. package/src/components/CarouselImage/index.ts +0 -6
  301. package/src/components/Chart/Chart.tsx +0 -3
  302. package/src/components/Chart/Chart.types.ts +0 -2
  303. package/src/components/Chart/Chart.variants.ts +0 -2
  304. package/src/components/Chart/index.ts +0 -2
  305. package/src/components/ChartBadge/ChartBadge.tsx +0 -62
  306. package/src/components/ChartBadge/ChartBadge.types.ts +0 -27
  307. package/src/components/ChartBadge/ChartBadge.variants.ts +0 -62
  308. package/src/components/ChartBadge/index.ts +0 -2
  309. package/src/components/Checkbox/Checkbox.tsx +0 -243
  310. package/src/components/Checkbox/Checkbox.types.ts +0 -20
  311. package/src/components/Checkbox/index.ts +0 -2
  312. package/src/components/CheckboxLabel/CheckboxLabel.tsx +0 -148
  313. package/src/components/CheckboxLabel/CheckboxLabel.types.ts +0 -55
  314. package/src/components/CheckboxLabel/CheckboxLabel.variants.ts +0 -35
  315. package/src/components/CheckboxLabel/index.ts +0 -2
  316. package/src/components/Chip/Chip.tsx +0 -245
  317. package/src/components/Chip/Chip.types.ts +0 -83
  318. package/src/components/Chip/Chip.variants.ts +0 -143
  319. package/src/components/Chip/index.ts +0 -2
  320. package/src/components/CircularItem/CircularItem.tsx +0 -133
  321. package/src/components/CircularItem/CircularItem.types.ts +0 -45
  322. package/src/components/CircularItem/CircularItem.variants.ts +0 -128
  323. package/src/components/CircularItem/index.ts +0 -7
  324. package/src/components/CodeSnippet/CodeSnippet.tsx +0 -421
  325. package/src/components/CodeSnippet/CodeSnippet.types.ts +0 -99
  326. package/src/components/CodeSnippet/CodeSnippet.variants.ts +0 -76
  327. package/src/components/CodeSnippet/index.ts +0 -9
  328. package/src/components/ColumnChart/ColumnChart.tsx +0 -943
  329. package/src/components/ColumnChart/ColumnChart.types.ts +0 -98
  330. package/src/components/ColumnChart/ColumnChart.variants.ts +0 -117
  331. package/src/components/ColumnChart/index.ts +0 -9
  332. package/src/components/ComplexComposition/ComplexComposition.tsx +0 -82
  333. package/src/components/ComplexComposition/ComplexComposition.types.ts +0 -3
  334. package/src/components/ComplexComposition/ComplexComposition.variants.ts +0 -14
  335. package/src/components/ComplexComposition/index.ts +0 -2
  336. package/src/components/ContentSwitcher/ContentSwitcher.tsx +0 -104
  337. package/src/components/ContentSwitcher/ContentSwitcher.types.ts +0 -28
  338. package/src/components/ContentSwitcher/ContentSwitcher.variants.ts +0 -70
  339. package/src/components/ContentSwitcher/index.ts +0 -6
  340. package/src/components/ContentSwitcherItem/ContentSwitcherItem.tsx +0 -56
  341. package/src/components/ContentSwitcherItem/ContentSwitcherItem.types.ts +0 -14
  342. package/src/components/ContentSwitcherItem/ContentSwitcherItem.variants.ts +0 -65
  343. package/src/components/ContentSwitcherItem/index.ts +0 -6
  344. package/src/components/ContextMenu/ContextMenu.tsx +0 -101
  345. package/src/components/ContextMenu/ContextMenu.types.ts +0 -64
  346. package/src/components/ContextMenu/ContextMenu.variants.ts +0 -36
  347. package/src/components/ContextMenu/index.ts +0 -7
  348. package/src/components/ContextMenuDropdown/ContextMenuDropdown.tsx +0 -370
  349. package/src/components/ContextMenuDropdown/ContextMenuDropdown.types.ts +0 -89
  350. package/src/components/ContextMenuDropdown/ContextMenuDropdown.variants.ts +0 -88
  351. package/src/components/ContextMenuDropdown/index.ts +0 -5
  352. package/src/components/DateCell/DateCell.tsx +0 -181
  353. package/src/components/DateCell/DateCell.types.ts +0 -53
  354. package/src/components/DateCell/DateCell.variants.ts +0 -217
  355. package/src/components/DateCell/index.ts +0 -2
  356. package/src/components/DatePicker/DatePicker.tsx +0 -923
  357. package/src/components/DatePicker/DatePicker.types.ts +0 -102
  358. package/src/components/DatePicker/DatePicker.variants.ts +0 -274
  359. package/src/components/DatePicker/index.ts +0 -9
  360. package/src/components/DateTab/DateTab.tsx +0 -91
  361. package/src/components/DateTab/DateTab.types.ts +0 -9
  362. package/src/components/DateTab/DateTab.variants.ts +0 -98
  363. package/src/components/DateTab/index.ts +0 -2
  364. package/src/components/DgaIcon/DgaIcon.tsx +0 -68
  365. package/src/components/DgaIcon/DgaIcon.types.ts +0 -57
  366. package/src/components/DgaIcon/DgaIcon.variants.ts +0 -41
  367. package/src/components/DgaIcon/DgaIconByName.tsx +0 -76
  368. package/src/components/DgaIcon/generated/icon-names.ts +0 -4388
  369. package/src/components/DgaIcon/index.ts +0 -12
  370. package/src/components/DgaIcon/lib/decodeDataUrl.ts +0 -46
  371. package/src/components/DigitalStamp/DigitalStamp.tsx +0 -236
  372. package/src/components/DigitalStamp/DigitalStamp.types.ts +0 -38
  373. package/src/components/DigitalStamp/DigitalStamp.variants.ts +0 -185
  374. package/src/components/DigitalStamp/index.ts +0 -2
  375. package/src/components/Divider/Divider.tsx +0 -83
  376. package/src/components/Divider/Divider.types.ts +0 -49
  377. package/src/components/Divider/Divider.variants.ts +0 -55
  378. package/src/components/Divider/index.ts +0 -8
  379. package/src/components/DonutChart/DonutChart.tsx +0 -251
  380. package/src/components/DonutChart/DonutChart.types.ts +0 -97
  381. package/src/components/DonutChart/DonutChart.variants.ts +0 -203
  382. package/src/components/DonutChart/index.ts +0 -7
  383. package/src/components/DonutChartPanel/DonutChartPanel.tsx +0 -778
  384. package/src/components/DonutChartPanel/DonutChartPanel.types.ts +0 -143
  385. package/src/components/DonutChartPanel/DonutChartPanel.variants.ts +0 -154
  386. package/src/components/DonutChartPanel/index.ts +0 -9
  387. package/src/components/DraggableItem/DraggableItem.tsx +0 -228
  388. package/src/components/DraggableItem/DraggableItem.types.ts +0 -72
  389. package/src/components/DraggableItem/DraggableItem.variants.ts +0 -149
  390. package/src/components/DraggableItem/index.ts +0 -3
  391. package/src/components/DraggableList/DraggableList.tsx +0 -20
  392. package/src/components/DraggableList/DraggableList.types.ts +0 -16
  393. package/src/components/DraggableList/DraggableList.variants.ts +0 -13
  394. package/src/components/DraggableList/index.ts +0 -3
  395. package/src/components/Dropdown/Dropdown.tsx +0 -331
  396. package/src/components/Dropdown/Dropdown.types.ts +0 -108
  397. package/src/components/Dropdown/Dropdown.variants.ts +0 -73
  398. package/src/components/Dropdown/index.ts +0 -9
  399. package/src/components/DropdownListHeader/DropdownListHeader.tsx +0 -79
  400. package/src/components/DropdownListHeader/DropdownListHeader.types.ts +0 -24
  401. package/src/components/DropdownListHeader/DropdownListHeader.variants.ts +0 -65
  402. package/src/components/DropdownListHeader/index.ts +0 -2
  403. package/src/components/EmptyState/EmptyState.tsx +0 -221
  404. package/src/components/EmptyState/EmptyState.types.ts +0 -48
  405. package/src/components/EmptyState/EmptyState.variants.ts +0 -122
  406. package/src/components/EmptyState/index.ts +0 -3
  407. package/src/components/Extension/Extension.tsx +0 -240
  408. package/src/components/Extension/Extension.types.ts +0 -40
  409. package/src/components/Extension/Extension.variants.ts +0 -27
  410. package/src/components/Extension/index.ts +0 -6
  411. package/src/components/Feedback/Feedback.tsx +0 -55
  412. package/src/components/Feedback/Feedback.types.ts +0 -15
  413. package/src/components/Feedback/Feedback.variants.ts +0 -9
  414. package/src/components/Feedback/index.ts +0 -2
  415. package/src/components/FeedbackOverview/FeedbackOverview.tsx +0 -70
  416. package/src/components/FeedbackOverview/FeedbackOverview.types.ts +0 -11
  417. package/src/components/FeedbackOverview/FeedbackOverview.variants.ts +0 -17
  418. package/src/components/FeedbackOverview/index.ts +0 -2
  419. package/src/components/FeedbackReaction/FeedbackReaction.tsx +0 -81
  420. package/src/components/FeedbackReaction/FeedbackReaction.types.ts +0 -14
  421. package/src/components/FeedbackReaction/FeedbackReaction.variants.ts +0 -39
  422. package/src/components/FeedbackReaction/index.ts +0 -2
  423. package/src/components/FileUploadBase/FileUploadBase.tsx +0 -104
  424. package/src/components/FileUploadBase/FileUploadBase.types.ts +0 -48
  425. package/src/components/FileUploadBase/FileUploadBase.variants.ts +0 -51
  426. package/src/components/FileUploadBase/index.ts +0 -2
  427. package/src/components/FileUploadItemBase/FileUploadItemBase.tsx +0 -197
  428. package/src/components/FileUploadItemBase/FileUploadItemBase.types.ts +0 -58
  429. package/src/components/FileUploadItemBase/FileUploadItemBase.variants.ts +0 -67
  430. package/src/components/FileUploadItemBase/index.ts +0 -6
  431. package/src/components/FileUploader/FileUploader.tsx +0 -164
  432. package/src/components/FileUploader/FileUploader.types.ts +0 -46
  433. package/src/components/FileUploader/FileUploader.variants.ts +0 -9
  434. package/src/components/FileUploader/index.ts +0 -2
  435. package/src/components/Filtration/Filtration.tsx +0 -260
  436. package/src/components/Filtration/Filtration.types.ts +0 -95
  437. package/src/components/Filtration/Filtration.variants.ts +0 -70
  438. package/src/components/Filtration/index.ts +0 -6
  439. package/src/components/FiltrationItem/FiltrationItem.tsx +0 -200
  440. package/src/components/FiltrationItem/FiltrationItem.types.ts +0 -57
  441. package/src/components/FiltrationItem/FiltrationItem.variants.ts +0 -81
  442. package/src/components/FiltrationItem/index.ts +0 -2
  443. package/src/components/FiltrationList/FiltrationList.tsx +0 -611
  444. package/src/components/FiltrationList/FiltrationList.types.ts +0 -191
  445. package/src/components/FiltrationList/FiltrationList.variants.ts +0 -283
  446. package/src/components/FiltrationList/index.ts +0 -16
  447. package/src/components/FloatingButton/FloatingButton.tsx +0 -89
  448. package/src/components/FloatingButton/FloatingButton.types.ts +0 -29
  449. package/src/components/FloatingButton/FloatingButton.variants.ts +0 -79
  450. package/src/components/FloatingButton/index.ts +0 -6
  451. package/src/components/Footer/Footer.tsx +0 -353
  452. package/src/components/Footer/Footer.types.ts +0 -142
  453. package/src/components/Footer/Footer.variants.ts +0 -137
  454. package/src/components/Footer/index.ts +0 -11
  455. package/src/components/FooterItem/FooterItem.tsx +0 -211
  456. package/src/components/FooterItem/FooterItem.types.ts +0 -45
  457. package/src/components/FooterItem/FooterItem.variants.ts +0 -139
  458. package/src/components/FooterItem/index.ts +0 -2
  459. package/src/components/FooterLinkList/FooterLinkList.tsx +0 -140
  460. package/src/components/FooterLinkList/FooterLinkList.types.ts +0 -46
  461. package/src/components/FooterLinkList/FooterLinkList.variants.ts +0 -64
  462. package/src/components/FooterLinkList/index.ts +0 -2
  463. package/src/components/GraphBase/GraphBase.tsx +0 -598
  464. package/src/components/GraphBase/GraphBase.types.ts +0 -101
  465. package/src/components/GraphBase/GraphBase.variants.ts +0 -126
  466. package/src/components/GraphBase/index.ts +0 -7
  467. package/src/components/HeaderItem/HeaderItem.tsx +0 -206
  468. package/src/components/HeaderItem/HeaderItem.types.ts +0 -73
  469. package/src/components/HeaderItem/HeaderItem.variants.ts +0 -139
  470. package/src/components/HeaderItem/index.ts +0 -2
  471. package/src/components/HelpIcon/HelpIcon.tsx +0 -173
  472. package/src/components/HelpIcon/HelpIcon.types.ts +0 -54
  473. package/src/components/HelpIcon/HelpIcon.variants.ts +0 -79
  474. package/src/components/HelpIcon/index.ts +0 -2
  475. package/src/components/HorizontalTabs/HorizontalTabs.tsx +0 -87
  476. package/src/components/HorizontalTabs/HorizontalTabs.types.ts +0 -41
  477. package/src/components/HorizontalTabs/HorizontalTabs.variants.ts +0 -54
  478. package/src/components/HorizontalTabs/index.ts +0 -6
  479. package/src/components/IllustrationInstance/IllustrationInstance.tsx +0 -46
  480. package/src/components/IllustrationInstance/IllustrationInstance.types.ts +0 -25
  481. package/src/components/IllustrationInstance/IllustrationInstance.variants.ts +0 -19
  482. package/src/components/IllustrationInstance/index.ts +0 -3
  483. package/src/components/ImagePreview/ImagePreview.tsx +0 -170
  484. package/src/components/ImagePreview/ImagePreview.types.ts +0 -54
  485. package/src/components/ImagePreview/ImagePreview.variants.ts +0 -39
  486. package/src/components/ImagePreview/index.ts +0 -2
  487. package/src/components/Input/Input.tsx +0 -113
  488. package/src/components/Input/Input.types.ts +0 -22
  489. package/src/components/Input/index.ts +0 -2
  490. package/src/components/InputPrefixSuffix/InputPrefixSuffix.tsx +0 -91
  491. package/src/components/InputPrefixSuffix/InputPrefixSuffix.types.ts +0 -81
  492. package/src/components/InputPrefixSuffix/InputPrefixSuffix.variants.ts +0 -128
  493. package/src/components/InputPrefixSuffix/index.ts +0 -8
  494. package/src/components/InputsActions/InputsActions.tsx +0 -53
  495. package/src/components/InputsActions/InputsActions.types.ts +0 -13
  496. package/src/components/InputsActions/InputsActions.variants.ts +0 -18
  497. package/src/components/InputsActions/index.ts +0 -2
  498. package/src/components/InstanceColumn/InstanceColumn.tsx +0 -43
  499. package/src/components/InstanceColumn/InstanceColumn.types.ts +0 -18
  500. package/src/components/InstanceColumn/InstanceColumn.variants.ts +0 -11
  501. package/src/components/InstanceColumn/index.ts +0 -2
  502. package/src/components/InstanceItem/InstanceItem.tsx +0 -33
  503. package/src/components/InstanceItem/InstanceItem.types.ts +0 -11
  504. package/src/components/InstanceItem/InstanceItem.variants.ts +0 -31
  505. package/src/components/InstanceItem/index.ts +0 -2
  506. package/src/components/InstanceRows/InstanceRows.tsx +0 -41
  507. package/src/components/InstanceRows/InstanceRows.types.ts +0 -17
  508. package/src/components/InstanceRows/InstanceRows.variants.ts +0 -10
  509. package/src/components/InstanceRows/index.ts +0 -2
  510. package/src/components/InstanceSlot/InstanceSlot.tsx +0 -25
  511. package/src/components/InstanceSlot/InstanceSlot.types.ts +0 -10
  512. package/src/components/InstanceSlot/InstanceSlot.variants.ts +0 -2
  513. package/src/components/InstanceSlot/index.ts +0 -2
  514. package/src/components/LineChart/LineChart.tsx +0 -592
  515. package/src/components/LineChart/LineChart.types.ts +0 -78
  516. package/src/components/LineChart/LineChart.variants.ts +0 -324
  517. package/src/components/LineChart/index.ts +0 -7
  518. package/src/components/Link/Link.tsx +0 -81
  519. package/src/components/Link/Link.types.ts +0 -23
  520. package/src/components/Link/Link.variants.ts +0 -69
  521. package/src/components/Link/index.ts +0 -2
  522. package/src/components/List/List.tsx +0 -260
  523. package/src/components/List/List.types.ts +0 -70
  524. package/src/components/List/List.variants.ts +0 -94
  525. package/src/components/List/index.ts +0 -5
  526. package/src/components/ListGroup/ListGroup.tsx +0 -37
  527. package/src/components/ListGroup/ListGroup.types.ts +0 -14
  528. package/src/components/ListGroup/ListGroup.variants.ts +0 -17
  529. package/src/components/ListGroup/index.ts +0 -3
  530. package/src/components/LoadingIndicator/LoadingIndicator.tsx +0 -208
  531. package/src/components/LoadingIndicator/LoadingIndicator.types.ts +0 -51
  532. package/src/components/LoadingIndicator/LoadingIndicator.variants.ts +0 -108
  533. package/src/components/LoadingIndicator/index.ts +0 -7
  534. package/src/components/MediaGallery/MediaGallery.tsx +0 -600
  535. package/src/components/MediaGallery/MediaGallery.types.ts +0 -124
  536. package/src/components/MediaGallery/MediaGallery.variants.ts +0 -116
  537. package/src/components/MediaGallery/index.ts +0 -2
  538. package/src/components/MediaGrids/MediaGrids.tsx +0 -48
  539. package/src/components/MediaGrids/MediaGrids.types.ts +0 -14
  540. package/src/components/MediaGrids/MediaGrids.variants.ts +0 -16
  541. package/src/components/MediaGrids/index.ts +0 -2
  542. package/src/components/MediaViewer/MediaViewer.tsx +0 -345
  543. package/src/components/MediaViewer/MediaViewer.types.ts +0 -59
  544. package/src/components/MediaViewer/MediaViewer.variants.ts +0 -168
  545. package/src/components/MediaViewer/index.ts +0 -2
  546. package/src/components/Menu/Menu.tsx +0 -109
  547. package/src/components/Menu/Menu.types.ts +0 -37
  548. package/src/components/Menu/Menu.variants.ts +0 -29
  549. package/src/components/Menu/index.ts +0 -2
  550. package/src/components/MenuButtonItem/MenuButtonItem.tsx +0 -280
  551. package/src/components/MenuButtonItem/MenuButtonItem.types.ts +0 -91
  552. package/src/components/MenuButtonItem/MenuButtonItem.variants.ts +0 -223
  553. package/src/components/MenuButtonItem/index.ts +0 -8
  554. package/src/components/MenuItem/MenuItem.tsx +0 -211
  555. package/src/components/MenuItem/MenuItem.types.ts +0 -40
  556. package/src/components/MenuItem/MenuItem.variants.ts +0 -48
  557. package/src/components/MenuItem/index.ts +0 -2
  558. package/src/components/MenuItemGroup/MenuItemGroup.tsx +0 -91
  559. package/src/components/MenuItemGroup/MenuItemGroup.types.ts +0 -82
  560. package/src/components/MenuItemGroup/MenuItemGroup.variants.ts +0 -33
  561. package/src/components/MenuItemGroup/index.ts +0 -2
  562. package/src/components/MenuList/MenuList.tsx +0 -44
  563. package/src/components/MenuList/MenuList.types.ts +0 -28
  564. package/src/components/MenuList/MenuList.variants.ts +0 -2
  565. package/src/components/MenuList/index.ts +0 -2
  566. package/src/components/Metric/Metric.tsx +0 -584
  567. package/src/components/Metric/Metric.types.ts +0 -77
  568. package/src/components/Metric/Metric.variants.ts +0 -175
  569. package/src/components/Metric/index.ts +0 -8
  570. package/src/components/Modal/Modal.tsx +0 -139
  571. package/src/components/Modal/Modal.types.ts +0 -55
  572. package/src/components/Modal/index.ts +0 -2
  573. package/src/components/ModalActions/ModalActions.tsx +0 -176
  574. package/src/components/ModalActions/ModalActions.types.ts +0 -31
  575. package/src/components/ModalActions/index.ts +0 -2
  576. package/src/components/ModalHeader/ModalHeader.tsx +0 -207
  577. package/src/components/ModalHeader/ModalHeader.types.ts +0 -24
  578. package/src/components/ModalHeader/index.ts +0 -2
  579. package/src/components/NavBar/NavBar.tsx +0 -326
  580. package/src/components/NavBar/NavBar.types.ts +0 -78
  581. package/src/components/NavBar/NavBar.variants.ts +0 -139
  582. package/src/components/NavBar/index.ts +0 -2
  583. package/src/components/NavHeader/NavHeader.tsx +0 -292
  584. package/src/components/NavHeader/NavHeader.types.ts +0 -145
  585. package/src/components/NavHeader/NavHeader.variants.ts +0 -178
  586. package/src/components/NavHeader/index.ts +0 -2
  587. package/src/components/NavHeaderActions/NavHeaderActions.tsx +0 -161
  588. package/src/components/NavHeaderActions/NavHeaderActions.types.ts +0 -61
  589. package/src/components/NavHeaderActions/NavHeaderActions.variants.ts +0 -58
  590. package/src/components/NavHeaderActions/index.ts +0 -2
  591. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.tsx +0 -243
  592. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.types.ts +0 -76
  593. package/src/components/NavHeaderDropdownItem/NavHeaderDropdownItem.variants.ts +0 -133
  594. package/src/components/NavHeaderDropdownItem/index.ts +0 -5
  595. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.tsx +0 -64
  596. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.types.ts +0 -55
  597. package/src/components/NavHeaderDropdownItemList/NavHeaderDropdownItemList.variants.ts +0 -47
  598. package/src/components/NavHeaderDropdownItemList/index.ts +0 -5
  599. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.tsx +0 -52
  600. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.types.ts +0 -17
  601. package/src/components/NavHeaderMenuButton/NavHeaderMenuButton.variants.ts +0 -73
  602. package/src/components/NavHeaderMenuButton/index.ts +0 -2
  603. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.tsx +0 -126
  604. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.types.ts +0 -74
  605. package/src/components/NavHeaderMenuCard/NavHeaderMenuCard.variants.ts +0 -169
  606. package/src/components/NavHeaderMenuCard/index.ts +0 -6
  607. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.tsx +0 -164
  608. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.types.ts +0 -64
  609. package/src/components/NavHeaderMenuItem/NavHeaderMenuItem.variants.ts +0 -175
  610. package/src/components/NavHeaderMenuItem/index.ts +0 -2
  611. package/src/components/NavItem/NavItem.tsx +0 -210
  612. package/src/components/NavItem/NavItem.types.ts +0 -71
  613. package/src/components/NavItem/NavItem.variants.ts +0 -61
  614. package/src/components/NavItem/index.ts +0 -2
  615. package/src/components/NavLabel/NavLabel.tsx +0 -84
  616. package/src/components/NavLabel/NavLabel.types.ts +0 -55
  617. package/src/components/NavLabel/NavLabel.variants.ts +0 -68
  618. package/src/components/NavLabel/index.ts +0 -2
  619. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.tsx +0 -101
  620. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.types.ts +0 -27
  621. package/src/components/NavLogoPlaceholder/NavLogoPlaceholder.variants.ts +0 -42
  622. package/src/components/NavLogoPlaceholder/index.ts +0 -6
  623. package/src/components/NotificationBanner/NotificationBanner.tsx +0 -256
  624. package/src/components/NotificationBanner/NotificationBanner.types.ts +0 -77
  625. package/src/components/NotificationBanner/NotificationBanner.variants.ts +0 -109
  626. package/src/components/NotificationBanner/index.ts +0 -7
  627. package/src/components/NotificationPopup/NotificationPopup.tsx +0 -147
  628. package/src/components/NotificationPopup/NotificationPopup.types.ts +0 -51
  629. package/src/components/NotificationPopup/NotificationPopup.variants.ts +0 -145
  630. package/src/components/NotificationPopup/index.ts +0 -5
  631. package/src/components/Notifications/Notifications.tsx +0 -209
  632. package/src/components/Notifications/Notifications.types.ts +0 -68
  633. package/src/components/Notifications/Notifications.variants.ts +0 -89
  634. package/src/components/Notifications/index.ts +0 -2
  635. package/src/components/Number/Number.tsx +0 -497
  636. package/src/components/Number/Number.types.ts +0 -58
  637. package/src/components/Number/Number.variants.ts +0 -94
  638. package/src/components/Number/index.ts +0 -2
  639. package/src/components/NumberInput/NumberInput.tsx +0 -265
  640. package/src/components/NumberInput/NumberInput.types.ts +0 -110
  641. package/src/components/NumberInput/NumberInput.variants.ts +0 -205
  642. package/src/components/NumberInput/index.ts +0 -6
  643. package/src/components/Pagination/Pagination.tsx +0 -393
  644. package/src/components/Pagination/Pagination.types.ts +0 -26
  645. package/src/components/Pagination/Pagination.variants.ts +0 -88
  646. package/src/components/Pagination/index.ts +0 -3
  647. package/src/components/PaginationButtonGroup/PaginationButtonGroup.tsx +0 -132
  648. package/src/components/PaginationButtonGroup/PaginationButtonGroup.types.ts +0 -20
  649. package/src/components/PaginationButtonGroup/PaginationButtonGroup.variants.ts +0 -45
  650. package/src/components/PaginationButtonGroup/index.ts +0 -8
  651. package/src/components/PaginationCells/PaginationCells.tsx +0 -105
  652. package/src/components/PaginationCells/PaginationCells.types.ts +0 -31
  653. package/src/components/PaginationCells/PaginationCells.variants.ts +0 -96
  654. package/src/components/PaginationCells/index.ts +0 -9
  655. package/src/components/PdfViewer/PdfViewer.tsx +0 -265
  656. package/src/components/PdfViewer/PdfViewer.types.ts +0 -79
  657. package/src/components/PdfViewer/PdfViewer.variants.ts +0 -105
  658. package/src/components/PdfViewer/index.ts +0 -3
  659. package/src/components/PieChartPanel/PieChartPanel.tsx +0 -889
  660. package/src/components/PieChartPanel/PieChartPanel.types.ts +0 -130
  661. package/src/components/PieChartPanel/PieChartPanel.variants.ts +0 -156
  662. package/src/components/PieChartPanel/index.ts +0 -8
  663. package/src/components/Popover/Popover.tsx +0 -398
  664. package/src/components/Popover/Popover.types.ts +0 -155
  665. package/src/components/Popover/Popover.variants.ts +0 -147
  666. package/src/components/Popover/index.ts +0 -7
  667. package/src/components/ProgressBar/ProgressBar.tsx +0 -241
  668. package/src/components/ProgressBar/ProgressBar.types.ts +0 -22
  669. package/src/components/ProgressBar/ProgressBar.variants.ts +0 -54
  670. package/src/components/ProgressBar/index.ts +0 -2
  671. package/src/components/ProgressCircle/ProgressCircle.tsx +0 -369
  672. package/src/components/ProgressCircle/ProgressCircle.types.ts +0 -26
  673. package/src/components/ProgressCircle/ProgressCircle.variants.ts +0 -88
  674. package/src/components/ProgressCircle/index.ts +0 -7
  675. package/src/components/Quote/Quote.tsx +0 -210
  676. package/src/components/Quote/Quote.types.ts +0 -73
  677. package/src/components/Quote/Quote.variants.ts +0 -106
  678. package/src/components/Quote/index.ts +0 -2
  679. package/src/components/RadialStepper/RadialStepper.tsx +0 -166
  680. package/src/components/RadialStepper/RadialStepper.types.ts +0 -77
  681. package/src/components/RadialStepper/RadialStepper.variants.ts +0 -122
  682. package/src/components/RadialStepper/index.ts +0 -7
  683. package/src/components/RadioButton/RadioButton.tsx +0 -237
  684. package/src/components/RadioButton/RadioButton.types.ts +0 -18
  685. package/src/components/RadioButton/index.ts +0 -2
  686. package/src/components/RadioLabel/RadioLabel.tsx +0 -157
  687. package/src/components/RadioLabel/RadioLabel.types.ts +0 -53
  688. package/src/components/RadioLabel/RadioLabel.variants.ts +0 -36
  689. package/src/components/RadioLabel/index.ts +0 -2
  690. package/src/components/RangeSlider/RangeSlider.tsx +0 -389
  691. package/src/components/RangeSlider/RangeSlider.types.ts +0 -38
  692. package/src/components/RangeSlider/RangeSlider.variants.ts +0 -27
  693. package/src/components/RangeSlider/index.ts +0 -2
  694. package/src/components/Rating/Rating.tsx +0 -246
  695. package/src/components/Rating/Rating.types.ts +0 -37
  696. package/src/components/Rating/Rating.variants.ts +0 -52
  697. package/src/components/Rating/index.ts +0 -8
  698. package/src/components/RatingOverview/RatingOverview.tsx +0 -170
  699. package/src/components/RatingOverview/RatingOverview.types.ts +0 -37
  700. package/src/components/RatingOverview/RatingOverview.variants.ts +0 -50
  701. package/src/components/RatingOverview/index.ts +0 -2
  702. package/src/components/RatingStar/RatingStar.tsx +0 -76
  703. package/src/components/RatingStar/RatingStar.types.ts +0 -18
  704. package/src/components/RatingStar/RatingStar.variants.ts +0 -34
  705. package/src/components/RatingStar/index.ts +0 -7
  706. package/src/components/RichTextEditor/RichTextEditor.tsx +0 -1341
  707. package/src/components/RichTextEditor/RichTextEditor.types.ts +0 -127
  708. package/src/components/RichTextEditor/RichTextEditor.variants.ts +0 -231
  709. package/src/components/RichTextEditor/index.ts +0 -6
  710. package/src/components/ScatterChart/ScatterChart.tsx +0 -164
  711. package/src/components/ScatterChart/ScatterChart.types.ts +0 -42
  712. package/src/components/ScatterChart/ScatterChart.variants.ts +0 -162
  713. package/src/components/ScatterChart/index.ts +0 -2
  714. package/src/components/SdaiaLogoAnimation/BGSVG.tsx +0 -216
  715. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.tsx +0 -120
  716. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.types.ts +0 -13
  717. package/src/components/SdaiaLogoAnimation/SdaiaLogoAnimation.variants.ts +0 -22
  718. package/src/components/SdaiaLogoAnimation/index.ts +0 -2
  719. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.tsx +0 -55
  720. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.types.ts +0 -12
  721. package/src/components/SdaiaTouch2dAnimation/SdaiaTouch2dAnimation.variants.ts +0 -28
  722. package/src/components/SdaiaTouch2dAnimation/Star.tsx +0 -82
  723. package/src/components/SdaiaTouch2dAnimation/StarShape.tsx +0 -78
  724. package/src/components/SdaiaTouch2dAnimation/index.ts +0 -6
  725. package/src/components/SecondNavHeader/SecondNavHeader.tsx +0 -80
  726. package/src/components/SecondNavHeader/SecondNavHeader.types.ts +0 -41
  727. package/src/components/SecondNavHeader/SecondNavHeader.variants.ts +0 -42
  728. package/src/components/SecondNavHeader/index.ts +0 -2
  729. package/src/components/Select/Select.tsx +0 -351
  730. package/src/components/Select/Select.types.ts +0 -102
  731. package/src/components/Select/Select.variants.ts +0 -111
  732. package/src/components/Select/index.ts +0 -2
  733. package/src/components/SelectMenuItem/SelectMenuItem.tsx +0 -132
  734. package/src/components/SelectMenuItem/SelectMenuItem.types.ts +0 -47
  735. package/src/components/SelectMenuItem/SelectMenuItem.variants.ts +0 -56
  736. package/src/components/SelectMenuItem/index.ts +0 -2
  737. package/src/components/SeriesLabel/SeriesLabel.tsx +0 -76
  738. package/src/components/SeriesLabel/SeriesLabel.types.ts +0 -27
  739. package/src/components/SeriesLabel/SeriesLabel.variants.ts +0 -84
  740. package/src/components/SeriesLabel/index.ts +0 -2
  741. package/src/components/Signature/Signature.tsx +0 -905
  742. package/src/components/Signature/Signature.types.ts +0 -68
  743. package/src/components/Signature/Signature.variants.ts +0 -115
  744. package/src/components/Signature/index.ts +0 -2
  745. package/src/components/Skeleton/Skeleton.tsx +0 -21
  746. package/src/components/Skeleton/Skeleton.types.ts +0 -15
  747. package/src/components/Skeleton/Skeleton.variants.ts +0 -14
  748. package/src/components/Skeleton/index.ts +0 -2
  749. package/src/components/SkeletonAvatar/SkeletonAvatar.tsx +0 -21
  750. package/src/components/SkeletonAvatar/SkeletonAvatar.types.ts +0 -15
  751. package/src/components/SkeletonAvatar/SkeletonAvatar.variants.ts +0 -14
  752. package/src/components/SkeletonAvatar/index.ts +0 -2
  753. package/src/components/SlideoutMenu/SlideoutMenu.tsx +0 -225
  754. package/src/components/SlideoutMenu/SlideoutMenu.types.ts +0 -39
  755. package/src/components/SlideoutMenu/SlideoutMenuDivider.tsx +0 -10
  756. package/src/components/SlideoutMenu/SlideoutMenuSection.tsx +0 -39
  757. package/src/components/SlideoutMenu/index.ts +0 -5
  758. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.tsx +0 -96
  759. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.types.ts +0 -28
  760. package/src/components/SlideoutMenuFooter/SlideoutMenuFooter.variants.ts +0 -49
  761. package/src/components/SlideoutMenuFooter/index.ts +0 -6
  762. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.tsx +0 -83
  763. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.types.ts +0 -19
  764. package/src/components/SlideoutMenuHeader/SlideoutMenuHeader.variants.ts +0 -78
  765. package/src/components/SlideoutMenuHeader/index.ts +0 -2
  766. package/src/components/Slider/Slider.tsx +0 -259
  767. package/src/components/Slider/Slider.types.ts +0 -22
  768. package/src/components/Slider/Slider.variants.ts +0 -23
  769. package/src/components/Slider/index.ts +0 -2
  770. package/src/components/Sparkline/Sparkline.tsx +0 -130
  771. package/src/components/Sparkline/Sparkline.types.ts +0 -36
  772. package/src/components/Sparkline/Sparkline.variants.ts +0 -118
  773. package/src/components/Sparkline/index.ts +0 -2
  774. package/src/components/StatusDot/StatusDot.tsx +0 -82
  775. package/src/components/StatusDot/StatusDot.types.ts +0 -35
  776. package/src/components/StatusDot/StatusDot.variants.ts +0 -66
  777. package/src/components/StatusDot/index.ts +0 -8
  778. package/src/components/StructuredList/StructuredList.tsx +0 -79
  779. package/src/components/StructuredList/StructuredList.types.ts +0 -27
  780. package/src/components/StructuredList/index.ts +0 -2
  781. package/src/components/StructuredListGroup/StructuredListGroup.tsx +0 -76
  782. package/src/components/StructuredListGroup/StructuredListGroup.types.ts +0 -27
  783. package/src/components/StructuredListGroup/StructuredListGroup.variants.ts +0 -14
  784. package/src/components/StructuredListGroup/index.ts +0 -5
  785. package/src/components/StructuredListHeader/StructuredListHeader.tsx +0 -98
  786. package/src/components/StructuredListHeader/StructuredListHeader.types.ts +0 -26
  787. package/src/components/StructuredListHeader/StructuredListHeader.variants.ts +0 -24
  788. package/src/components/StructuredListHeader/index.ts +0 -5
  789. package/src/components/StructuredListRow/StructuredListRow.tsx +0 -144
  790. package/src/components/StructuredListRow/StructuredListRow.types.ts +0 -37
  791. package/src/components/StructuredListRow/StructuredListRow.variants.ts +0 -53
  792. package/src/components/StructuredListRow/index.ts +0 -6
  793. package/src/components/SubHeaderItem/SubHeaderItem.tsx +0 -37
  794. package/src/components/SubHeaderItem/SubHeaderItem.types.ts +0 -20
  795. package/src/components/SubHeaderItem/SubHeaderItem.variants.ts +0 -23
  796. package/src/components/SubHeaderItem/index.ts +0 -2
  797. package/src/components/Switch/Switch.tsx +0 -138
  798. package/src/components/Switch/Switch.types.ts +0 -18
  799. package/src/components/Switch/Switch.variants.ts +0 -49
  800. package/src/components/Switch/index.ts +0 -2
  801. package/src/components/SwitchLabel/SwitchLabel.tsx +0 -114
  802. package/src/components/SwitchLabel/SwitchLabel.types.ts +0 -27
  803. package/src/components/SwitchLabel/SwitchLabel.variants.ts +0 -28
  804. package/src/components/SwitchLabel/index.ts +0 -2
  805. package/src/components/Tab/Tab.tsx +0 -92
  806. package/src/components/Tab/Tab.types.ts +0 -34
  807. package/src/components/Tab/Tab.variants.ts +0 -79
  808. package/src/components/Tab/index.ts +0 -2
  809. package/src/components/Table/Table.tsx +0 -353
  810. package/src/components/Table/Table.types.ts +0 -80
  811. package/src/components/Table/Table.variants.ts +0 -110
  812. package/src/components/Table/index.ts +0 -10
  813. package/src/components/TableOfContent/TableOfContent.tsx +0 -33
  814. package/src/components/TableOfContent/TableOfContent.types.ts +0 -15
  815. package/src/components/TableOfContent/TableOfContent.variants.ts +0 -27
  816. package/src/components/TableOfContent/index.ts +0 -2
  817. package/src/components/TableOfContentItem/TableOfContentItem.tsx +0 -85
  818. package/src/components/TableOfContentItem/TableOfContentItem.types.ts +0 -23
  819. package/src/components/TableOfContentItem/TableOfContentItem.variants.ts +0 -109
  820. package/src/components/TableOfContentItem/index.ts +0 -2
  821. package/src/components/TableOfContentList/TableOfContentList.tsx +0 -60
  822. package/src/components/TableOfContentList/TableOfContentList.types.ts +0 -39
  823. package/src/components/TableOfContentList/TableOfContentList.variants.ts +0 -6
  824. package/src/components/TableOfContentList/index.ts +0 -2
  825. package/src/components/Tabs/Tabs.tsx +0 -80
  826. package/src/components/Tabs/Tabs.types.ts +0 -36
  827. package/src/components/Tabs/Tabs.variants.ts +0 -23
  828. package/src/components/Tabs/index.ts +0 -2
  829. package/src/components/Tag/Tag.tsx +0 -114
  830. package/src/components/Tag/Tag.types.ts +0 -32
  831. package/src/components/Tag/Tag.variants.ts +0 -57
  832. package/src/components/Tag/index.ts +0 -2
  833. package/src/components/TagCount/TagCount.tsx +0 -45
  834. package/src/components/TagCount/TagCount.types.ts +0 -21
  835. package/src/components/TagCount/TagCount.variants.ts +0 -26
  836. package/src/components/TagCount/index.ts +0 -7
  837. package/src/components/TextArea/TextArea.tsx +0 -130
  838. package/src/components/TextArea/TextArea.types.ts +0 -20
  839. package/src/components/TextArea/index.ts +0 -2
  840. package/src/components/TextInput/TextInput.tsx +0 -568
  841. package/src/components/TextInput/TextInput.types.ts +0 -87
  842. package/src/components/TextInput/TextInput.variants.ts +0 -89
  843. package/src/components/TextInput/TextInputTag.tsx +0 -43
  844. package/src/components/TextInput/TextInputTag.types.ts +0 -14
  845. package/src/components/TextInput/index.ts +0 -4
  846. package/src/components/Tooltip/Tooltip.tsx +0 -229
  847. package/src/components/Tooltip/Tooltip.types.ts +0 -48
  848. package/src/components/Tooltip/Tooltip.variants.ts +0 -141
  849. package/src/components/Tooltip/index.ts +0 -10
  850. package/src/components/TreeView/TreeView.tsx +0 -130
  851. package/src/components/TreeView/TreeView.types.ts +0 -42
  852. package/src/components/TreeView/TreeView.variants.ts +0 -6
  853. package/src/components/TreeView/index.ts +0 -3
  854. package/src/components/TreeViewItem/TreeViewItem.tsx +0 -108
  855. package/src/components/TreeViewItem/TreeViewItem.types.ts +0 -34
  856. package/src/components/TreeViewItem/TreeViewItem.variants.ts +0 -40
  857. package/src/components/TreeViewItem/index.ts +0 -3
  858. package/src/components/VerticalTabs/VerticalTabs.tsx +0 -84
  859. package/src/components/VerticalTabs/VerticalTabs.types.ts +0 -37
  860. package/src/components/VerticalTabs/VerticalTabs.variants.ts +0 -43
  861. package/src/components/VerticalTabs/index.ts +0 -6
  862. package/src/components/VideoPlayer/VideoPlayer.tsx +0 -470
  863. package/src/components/VideoPlayer/VideoPlayer.types.ts +0 -59
  864. package/src/components/VideoPlayer/VideoPlayer.variants.ts +0 -134
  865. package/src/components/VideoPlayer/index.ts +0 -2
  866. package/src/components/XAxis/XAxis.tsx +0 -67
  867. package/src/components/XAxis/XAxis.types.ts +0 -30
  868. package/src/components/XAxis/XAxis.variants.ts +0 -77
  869. package/src/components/XAxis/index.ts +0 -2
  870. package/src/components/YAxis/YAxis.tsx +0 -78
  871. package/src/components/YAxis/YAxis.types.ts +0 -41
  872. package/src/components/YAxis/YAxis.variants.ts +0 -94
  873. package/src/components/YAxis/index.ts +0 -2
  874. package/src/dga-icons.ts +0 -18
  875. package/src/hooks/usePresence.ts +0 -73
  876. package/src/icons/AIIcon.tsx +0 -34
  877. package/src/icons/AaIcon.tsx +0 -34
  878. package/src/icons/AlertCircle02Icon.tsx +0 -28
  879. package/src/icons/AlertCircleIcon.tsx +0 -29
  880. package/src/icons/AlertCircleSVG.tsx +0 -19
  881. package/src/icons/AlertCircleWarningIcon.tsx +0 -37
  882. package/src/icons/AlertTriangleIcon.tsx +0 -27
  883. package/src/icons/AlignCenterIcon.tsx +0 -31
  884. package/src/icons/AlignLeftIcon.tsx +0 -31
  885. package/src/icons/AlignRightIcon.tsx +0 -31
  886. package/src/icons/ArrowDownIcon.tsx +0 -27
  887. package/src/icons/ArrowDownLeft01Icon.tsx +0 -32
  888. package/src/icons/ArrowDownSVG.tsx +0 -16
  889. package/src/icons/ArrowLeft01Icon.tsx +0 -23
  890. package/src/icons/ArrowLeft02SVG.tsx +0 -19
  891. package/src/icons/ArrowLeftIcon.tsx +0 -28
  892. package/src/icons/ArrowRight01Icon.tsx +0 -23
  893. package/src/icons/ArrowRight01SVG.tsx +0 -16
  894. package/src/icons/ArrowRightIcon.tsx +0 -28
  895. package/src/icons/ArrowUpIcon.tsx +0 -27
  896. package/src/icons/ArrowUpRight01Icon.tsx +0 -31
  897. package/src/icons/ArrowUpSVG.tsx +0 -16
  898. package/src/icons/AtIcon.tsx +0 -33
  899. package/src/icons/BeakBottom.tsx +0 -13
  900. package/src/icons/BeakLeft.tsx +0 -13
  901. package/src/icons/BeakRight.tsx +0 -11
  902. package/src/icons/BeakTop.tsx +0 -13
  903. package/src/icons/BellCircleIcon.tsx +0 -33
  904. package/src/icons/BellIcon.tsx +0 -27
  905. package/src/icons/BoldIcon.tsx +0 -33
  906. package/src/icons/CalendarIcon.tsx +0 -35
  907. package/src/icons/ChartsIcon.tsx +0 -25
  908. package/src/icons/CheckCircleIcon.tsx +0 -29
  909. package/src/icons/ChevronDownIcon.tsx +0 -30
  910. package/src/icons/ChevronDownSmIcon.tsx +0 -34
  911. package/src/icons/ChevronLeftIcon.tsx +0 -20
  912. package/src/icons/ChevronRightIcon.tsx +0 -36
  913. package/src/icons/ClockIcon.tsx +0 -34
  914. package/src/icons/CloseIcon.tsx +0 -29
  915. package/src/icons/CloudUploadIcon.tsx +0 -21
  916. package/src/icons/CodeSnippetChevronDownIcon.tsx +0 -25
  917. package/src/icons/CodeSnippetCopyIcon.tsx +0 -24
  918. package/src/icons/CodeSnippetStarIcon.tsx +0 -25
  919. package/src/icons/ColorSquareIcon.tsx +0 -42
  920. package/src/icons/ComponentsIcon.tsx +0 -25
  921. package/src/icons/DGALogoSVG.tsx +0 -133
  922. package/src/icons/DeleteIcon.tsx +0 -24
  923. package/src/icons/DownloadIcon.tsx +0 -29
  924. package/src/icons/DragHandleVerticalIcon.tsx +0 -23
  925. package/src/icons/FeedbackEmojiDislikeIcon.tsx +0 -20
  926. package/src/icons/FeedbackEmojiLikeIcon.tsx +0 -20
  927. package/src/icons/FeedbackEmojiNeutralIcon.tsx +0 -20
  928. package/src/icons/FeedbackThumbDislikeFilledIcon.tsx +0 -26
  929. package/src/icons/FeedbackThumbDislikeIcon.tsx +0 -20
  930. package/src/icons/FeedbackThumbLikeFilledIcon.tsx +0 -20
  931. package/src/icons/FeedbackThumbLikeIcon.tsx +0 -20
  932. package/src/icons/FileUploadItemCloseIcon.tsx +0 -30
  933. package/src/icons/FileUploadItemEmptyFileIcon.tsx +0 -27
  934. package/src/icons/FileUploadItemPdfIcon.tsx +0 -52
  935. package/src/icons/FilterFunnelIcon.tsx +0 -34
  936. package/src/icons/FilterIcon.tsx +0 -31
  937. package/src/icons/FitIcon.tsx +0 -22
  938. package/src/icons/FolderFilledIcon.tsx +0 -25
  939. package/src/icons/FolderIcon.tsx +0 -28
  940. package/src/icons/FoundationsIcon.tsx +0 -25
  941. package/src/icons/FullscreenExitIcon.tsx +0 -71
  942. package/src/icons/FullscreenIcon.tsx +0 -70
  943. package/src/icons/GoBackward10Icon.tsx +0 -27
  944. package/src/icons/GoForward10Icon.tsx +0 -27
  945. package/src/icons/GridSquaresIcon.tsx +0 -40
  946. package/src/icons/HamburgerIcon.tsx +0 -28
  947. package/src/icons/HelpCircleIcon.tsx +0 -28
  948. package/src/icons/HomeIcon.tsx +0 -22
  949. package/src/icons/HomeSVG.tsx +0 -32
  950. package/src/icons/Image01SVG.tsx +0 -18
  951. package/src/icons/ImageIcon.tsx +0 -31
  952. package/src/icons/InfoCircleIcon.tsx +0 -31
  953. package/src/icons/InfoCircleSVG.tsx +0 -20
  954. package/src/icons/InfoIcon.tsx +0 -27
  955. package/src/icons/ItalicIcon.tsx +0 -31
  956. package/src/icons/LearnMoreArrowIcon.tsx +0 -22
  957. package/src/icons/LinkCircleSVG.tsx +0 -58
  958. package/src/icons/LinkIcon.tsx +0 -33
  959. package/src/icons/ListLinesIcon.tsx +0 -40
  960. package/src/icons/LockCircleSVG.tsx +0 -60
  961. package/src/icons/LockIcon.tsx +0 -36
  962. package/src/icons/Logout02Icon.tsx +0 -19
  963. package/src/icons/MicrophoneIcon.tsx +0 -20
  964. package/src/icons/MoreHorizontalIcon.tsx +0 -24
  965. package/src/icons/MoreVerticalIcon.tsx +0 -40
  966. package/src/icons/NextIcon.tsx +0 -44
  967. package/src/icons/PDFSvg.tsx +0 -39
  968. package/src/icons/PatternsIcon.tsx +0 -21
  969. package/src/icons/PauseIcon.tsx +0 -30
  970. package/src/icons/PencilIcon.tsx +0 -36
  971. package/src/icons/PlayButtonCardIcon.tsx +0 -41
  972. package/src/icons/PlayCenterIcon.tsx +0 -45
  973. package/src/icons/PlayIcon.tsx +0 -27
  974. package/src/icons/PlayIconSolid.tsx +0 -33
  975. package/src/icons/PlayIconStroke.tsx +0 -22
  976. package/src/icons/PlayIconTwotone.tsx +0 -36
  977. package/src/icons/PlayVideoIcon.tsx +0 -31
  978. package/src/icons/PlusCircleIcon.tsx +0 -41
  979. package/src/icons/PreviousIcon.tsx +0 -44
  980. package/src/icons/PrintIcon.tsx +0 -25
  981. package/src/icons/QuestionMarkGrayBgIcon.tsx +0 -52
  982. package/src/icons/QuestionMarkIcon.tsx +0 -47
  983. package/src/icons/RedoIcon.tsx +0 -41
  984. package/src/icons/SaudiFlagSVG.tsx +0 -31
  985. package/src/icons/SdaiaNavLogo.tsx +0 -345
  986. package/src/icons/SearchIcon.tsx +0 -34
  987. package/src/icons/SettingsIcon.tsx +0 -25
  988. package/src/icons/ShareIcon.tsx +0 -26
  989. package/src/icons/SidebarCollapseIcon.tsx +0 -25
  990. package/src/icons/SmileIcon.tsx +0 -34
  991. package/src/icons/SortIcon.tsx +0 -20
  992. package/src/icons/StarIcon.tsx +0 -38
  993. package/src/icons/StatusBadgeIcon.tsx +0 -19
  994. package/src/icons/TextTIcon.tsx +0 -33
  995. package/src/icons/Tick02Icon.tsx +0 -32
  996. package/src/icons/TickIcon.tsx +0 -33
  997. package/src/icons/TrashIcon.tsx +0 -44
  998. package/src/icons/UnderlineIcon.tsx +0 -31
  999. package/src/icons/UndoIcon.tsx +0 -31
  1000. package/src/icons/UploadArrowIcon.tsx +0 -40
  1001. package/src/icons/UserIcon.tsx +0 -21
  1002. package/src/icons/VolumeHighIcon.tsx +0 -27
  1003. package/src/icons/VolumeMuteIcon.tsx +0 -53
  1004. package/src/icons/XCircleIcon.tsx +0 -32
  1005. package/src/icons/XIcon.tsx +0 -27
  1006. package/src/icons/XIconSVG.tsx +0 -16
  1007. package/src/icons/XSmallIcon.tsx +0 -29
  1008. package/src/icons/XSvg.tsx +0 -18
  1009. package/src/icons/ZoomInIcon.tsx +0 -25
  1010. package/src/icons/index.ts +0 -5
  1011. package/src/index.ts +0 -699
  1012. package/src/lib/cn.ts +0 -42
  1013. package/src/styles/motion.css +0 -120
  1014. package/src/styles.css +0 -242
@@ -1,1341 +0,0 @@
1
- 'use client';
2
-
3
- import {
4
- forwardRef,
5
- useRef,
6
- useState,
7
- useCallback,
8
- useEffect,
9
- } from 'react';
10
- import { cn } from '../../lib/cn';
11
- import type { RichTextEditorProps, TextAlignment } from './RichTextEditor.types';
12
- import {
13
- TOOLBAR_DESKTOP,
14
- TOOLBAR_MOBILE,
15
- TOOLBAR_MOBILE_ROW,
16
- TOOLBAR_GROUP_SM,
17
- TOOLBAR_GROUP_MD,
18
- TOOLBAR_GROUP_XS,
19
- TOOLBAR_DIVIDER,
20
- TOOLBAR_BTN_BASE,
21
- TOOLBAR_BTN_ACTIVE,
22
- STYLE_SELECT,
23
- STYLE_SELECT_TEXT,
24
- STYLE_SELECT_CHEVRON,
25
- FLOATING_TOOLBAR,
26
- INPUT_CONTAINER,
27
- EXPAND_TOOLBAR,
28
- INPUT_TEXTAREA,
29
- INPUT_BOTTOM_BAR,
30
- INPUT_ADD_BTN,
31
- INPUT_ACTION_BTN,
32
- INPUT_DIVIDER,
33
- MOBILE_GROUP_BTN,
34
- PANEL_WRAP,
35
- EMOJI_GRID,
36
- EMOJI_BTN,
37
- FONT_OPTION_BTN,
38
- LINK_INPUT,
39
- LINK_INSERT_BTN,
40
- PANEL_CLOSE_BTN,
41
- EDITOR_CONTAINER,
42
- EDITOR_PANEL_WRAP,
43
- } from './RichTextEditor.variants';
44
- import {
45
- UndoIcon,
46
- RedoIcon,
47
- BoldIcon,
48
- ItalicIcon,
49
- UnderlineIcon,
50
- ColorSquareIcon,
51
- AlignLeftIcon,
52
- AlignCenterIcon,
53
- AlignRightIcon,
54
- LinkIcon,
55
- ImageIcon,
56
- AIIcon,
57
- TextTIcon,
58
- ChevronDownSmIcon,
59
- ChevronDownIcon,
60
- PlusIcon,
61
- AaIcon,
62
- SmileIcon,
63
- AtIcon,
64
- } from '../../icons/IconFactory';
65
-
66
- /* ── execCommand helpers ─────────────────────────────────────── */
67
-
68
- const ALIGN_COMMANDS: Record<TextAlignment, string> = {
69
- left: 'justifyLeft',
70
- center: 'justifyCenter',
71
- right: 'justifyRight',
72
- };
73
-
74
- function applyExecCommand(command: string, value?: string) {
75
- document.execCommand(command, false, value ?? '');
76
- }
77
-
78
- /* ── Inline close (×) icon ───────────────────────────────────── */
79
- function CloseIcon() {
80
- return (
81
- <svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" className="size-4">
82
- <path d="M12 4L4 12M4 4L12 12" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
83
- </svg>
84
- );
85
- }
86
-
87
- /* ── Emoji panel ─────────────────────────────────────────────── */
88
-
89
- const EMOJIS = [
90
- '😀', '😂', '🤣', '😍', '🥰', '😎', '🤔', '😢',
91
- '😡', '🥳', '🤩', '😴', '🤗', '🫡', '🥹', '😅',
92
- '👍', '👎', '👏', '🙌', '🤝', '💪', '🫶', '✌️',
93
- '❤️', '💙', '💚', '💛', '🧡', '💜', '🖤', '🤍',
94
- '🎉', '🔥', '⭐', '✨', '💡', '🚀', '🎯', '✅',
95
- '❌', '💬', '🔔', '📌', '🔗', '🎈', '🌟', '💯',
96
- ];
97
-
98
- function EmojiPanel({
99
- onInsert,
100
- onClose,
101
- }: {
102
- onInsert: (emoji: string) => void;
103
- onClose: () => void;
104
- }) {
105
- return (
106
- <div className={PANEL_WRAP} data-slot="rte-panel-emoji">
107
- <div className="flex items-center justify-between mb-spacing-xs">
108
- <span className="text-text-xs font-[500] text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)]">
109
- Emoji
110
- </span>
111
- <button
112
- type="button"
113
- aria-label="Close emoji panel"
114
- onMouseDown={(e) => e.preventDefault()}
115
- onClick={onClose}
116
- className={PANEL_CLOSE_BTN}
117
- >
118
- <CloseIcon />
119
- </button>
120
- </div>
121
- <div className={EMOJI_GRID}>
122
- {EMOJIS.map((emoji) => (
123
- <button
124
- key={emoji}
125
- type="button"
126
- aria-label={emoji}
127
- onMouseDown={(e) => e.preventDefault()}
128
- onClick={() => onInsert(emoji)}
129
- className={EMOJI_BTN}
130
- >
131
- {emoji}
132
- </button>
133
- ))}
134
- </div>
135
- </div>
136
- );
137
- }
138
-
139
- /* ── Font style data ─────────────────────────────────────────── */
140
-
141
- const FONT_STYLES = [
142
- { label: 'Normal', tag: 'p', preview: 'text-sm' },
143
- { label: 'Heading 1', tag: 'h1', preview: 'text-xl font-bold' },
144
- { label: 'Heading 2', tag: 'h2', preview: 'text-lg font-bold' },
145
- { label: 'Heading 3', tag: 'h3', preview: 'text-base font-semibold' },
146
- ];
147
-
148
- /* ── Font style panel (shared) ───────────────────────────────── */
149
-
150
- function FontPanel({
151
- onApply,
152
- onClose,
153
- panelClassName,
154
- }: {
155
- onApply: (tag: string, label: string) => void;
156
- onClose: () => void;
157
- panelClassName?: string;
158
- }) {
159
- return (
160
- <div className={cn(panelClassName ?? PANEL_WRAP)} data-slot="rte-panel-font">
161
- <div className="flex items-center justify-between mb-spacing-xs">
162
- <span className="text-text-xs font-[500] text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)]">
163
- Text style
164
- </span>
165
- <button
166
- type="button"
167
- aria-label="Close font panel"
168
- onMouseDown={(e) => e.preventDefault()}
169
- onClick={onClose}
170
- className={PANEL_CLOSE_BTN}
171
- >
172
- <CloseIcon />
173
- </button>
174
- </div>
175
- {FONT_STYLES.map(({ label, tag, preview }) => (
176
- <button
177
- key={tag}
178
- type="button"
179
- onMouseDown={(e) => e.preventDefault()}
180
- onClick={() => onApply(tag, label)}
181
- className={cn(FONT_OPTION_BTN, preview)}
182
- >
183
- {label}
184
- </button>
185
- ))}
186
- </div>
187
- );
188
- }
189
-
190
- /* ── Font size panel ─────────────────────────────────────────── */
191
-
192
- const FONT_SIZES = ['10', '12', '14', '16', '18', '20', '24', '32'];
193
-
194
- function FontSizePanel({
195
- current,
196
- onApply,
197
- onClose,
198
- panelClassName,
199
- }: {
200
- current: string;
201
- onApply: (size: string) => void;
202
- onClose: () => void;
203
- panelClassName?: string;
204
- }) {
205
- return (
206
- <div className={cn(panelClassName ?? PANEL_WRAP)} data-slot="rte-panel-font-size">
207
- <div className="flex items-center justify-between mb-spacing-xs">
208
- <span className="text-text-xs font-[500] text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)]">
209
- Font size
210
- </span>
211
- <button
212
- type="button"
213
- aria-label="Close font size panel"
214
- onMouseDown={(e) => e.preventDefault()}
215
- onClick={onClose}
216
- className={PANEL_CLOSE_BTN}
217
- >
218
- <CloseIcon />
219
- </button>
220
- </div>
221
- <div className="flex flex-wrap gap-spacing-xs">
222
- {FONT_SIZES.map((size) => (
223
- <button
224
- key={size}
225
- type="button"
226
- onMouseDown={(e) => e.preventDefault()}
227
- onClick={() => onApply(size)}
228
- className={cn(
229
- 'min-w-[36px] px-spacing-md py-spacing-xs rounded-[4px] text-text-sm',
230
- 'text-[rgba(22,22,22,1)] dark:text-[rgba(229,231,235,1)]',
231
- 'hover:bg-[rgba(243,244,246,1)] dark:hover:bg-[rgba(31,42,55,1)]',
232
- 'motion-feedback cursor-pointer',
233
- current === size && TOOLBAR_BTN_ACTIVE,
234
- )}
235
- >
236
- {size}
237
- </button>
238
- ))}
239
- </div>
240
- </div>
241
- );
242
- }
243
-
244
- /* ── Link panel ──────────────────────────────────────────────── */
245
-
246
- function LinkPanel({
247
- inputRef,
248
- url,
249
- onChange,
250
- onInsert,
251
- onClose,
252
- panelClassName,
253
- }: {
254
- inputRef: React.RefObject<HTMLInputElement | null>;
255
- url: string;
256
- onChange: (v: string) => void;
257
- onInsert: () => void;
258
- onClose: () => void;
259
- panelClassName?: string;
260
- }) {
261
- return (
262
- <div className={cn(panelClassName ?? PANEL_WRAP)} data-slot="rte-panel-link">
263
- <div className="flex items-center gap-spacing-sm">
264
- <input
265
- ref={inputRef}
266
- type="url"
267
- value={url}
268
- onChange={(e) => onChange(e.target.value)}
269
- placeholder="https://example.com"
270
- onKeyDown={(e) => {
271
- if (e.key === 'Enter') { e.preventDefault(); onInsert(); }
272
- if (e.key === 'Escape') onClose();
273
- }}
274
- className={LINK_INPUT}
275
- aria-label="URL"
276
- />
277
- <button
278
- type="button"
279
- onMouseDown={(e) => e.preventDefault()}
280
- onClick={onInsert}
281
- className={LINK_INSERT_BTN}
282
- >
283
- Insert
284
- </button>
285
- <button
286
- type="button"
287
- aria-label="Cancel link"
288
- onMouseDown={(e) => e.preventDefault()}
289
- onClick={onClose}
290
- className={PANEL_CLOSE_BTN}
291
- >
292
- <CloseIcon />
293
- </button>
294
- </div>
295
- </div>
296
- );
297
- }
298
-
299
- /* ── ToolbarBtn ──────────────────────────────────────────────── */
300
-
301
- function ToolbarBtn({
302
- active = false,
303
- onClick,
304
- label,
305
- children,
306
- className,
307
- }: {
308
- active?: boolean;
309
- onClick?: () => void;
310
- label: string;
311
- children: React.ReactNode;
312
- className?: string;
313
- }) {
314
- return (
315
- <button
316
- type="button"
317
- aria-label={label}
318
- aria-pressed={active || undefined}
319
- onMouseDown={(e) => e.preventDefault()}
320
- onClick={onClick}
321
- className={cn(TOOLBAR_BTN_BASE, active && TOOLBAR_BTN_ACTIVE, className)}
322
- >
323
- {children}
324
- </button>
325
- );
326
- }
327
-
328
- function VDivider({ className }: { className?: string }) {
329
- return <span aria-hidden="true" className={cn(TOOLBAR_DIVIDER, className)} />;
330
- }
331
-
332
- function StyleSelector({
333
- icon,
334
- value,
335
- onClick,
336
- label,
337
- active,
338
- }: {
339
- icon?: React.ReactNode;
340
- value: string;
341
- onClick?: () => void;
342
- label: string;
343
- active?: boolean;
344
- }) {
345
- return (
346
- <button
347
- type="button"
348
- aria-label={label}
349
- aria-haspopup="listbox"
350
- aria-expanded={active}
351
- onMouseDown={(e) => e.preventDefault()}
352
- onClick={onClick}
353
- className={cn(STYLE_SELECT, active && 'border-[rgba(27,131,84,0.5)] dark:border-[rgba(110,231,160,0.4)]')}
354
- >
355
- {icon}
356
- <span className={STYLE_SELECT_TEXT}>{value}</span>
357
- <ChevronDownSmIcon className={STYLE_SELECT_CHEVRON} />
358
- </button>
359
- );
360
- }
361
-
362
- /* ── Shared sub-toolbar fragments ───────────────────────────────── */
363
-
364
- function UndoRedoGroup({ onUndo, onRedo }: Pick<RichTextEditorProps, 'onUndo' | 'onRedo'>) {
365
- return (
366
- <div className={TOOLBAR_GROUP_SM} data-slot="rte-undo-redo">
367
- <ToolbarBtn onClick={onUndo} label="Undo"><UndoIcon className="size-6" /></ToolbarBtn>
368
- <ToolbarBtn onClick={onRedo} label="Redo"><RedoIcon className="size-6" /></ToolbarBtn>
369
- </div>
370
- );
371
- }
372
-
373
- function TextFormatGroup({
374
- isBold, isItalic, isUnderline, onBold, onItalic, onUnderline,
375
- }: Pick<RichTextEditorProps, 'isBold' | 'isItalic' | 'isUnderline' | 'onBold' | 'onItalic' | 'onUnderline'>) {
376
- return (
377
- <div className={TOOLBAR_GROUP_MD} data-slot="rte-text-format">
378
- <ToolbarBtn active={isBold} onClick={onBold} label="Bold"><BoldIcon className="size-6" /></ToolbarBtn>
379
- <ToolbarBtn active={isItalic} onClick={onItalic} label="Italic"><ItalicIcon className="size-6" /></ToolbarBtn>
380
- <ToolbarBtn active={isUnderline} onClick={onUnderline} label="Underline"><UnderlineIcon className="size-6" /></ToolbarBtn>
381
- </div>
382
- );
383
- }
384
-
385
- function AlignGroup({ alignment, onAlign }: Pick<RichTextEditorProps, 'alignment' | 'onAlign'>) {
386
- return (
387
- <div className={TOOLBAR_GROUP_MD} data-slot="rte-alignment">
388
- <ToolbarBtn active={alignment === 'left'} onClick={() => onAlign?.('left')} label="Align left">
389
- <AlignLeftIcon className="size-6" />
390
- </ToolbarBtn>
391
- <ToolbarBtn active={alignment === 'center'} onClick={() => onAlign?.('center')} label="Align center">
392
- <AlignCenterIcon className="size-6" />
393
- </ToolbarBtn>
394
- <ToolbarBtn active={alignment === 'right'} onClick={() => onAlign?.('right')} label="Align right">
395
- <AlignRightIcon className="size-6" />
396
- </ToolbarBtn>
397
- </div>
398
- );
399
- }
400
-
401
- /* ── size map for execCommand('fontSize') ────────────────────── */
402
- const FONT_SIZE_MAP: Record<string, string> = {
403
- '10': '1', '12': '2', '14': '3', '16': '4',
404
- '18': '5', '20': '5', '24': '6', '32': '7',
405
- };
406
-
407
- /* ─────────────────────────────────────────────────────────────────
408
- DefaultEditor — self-contained full editor (type="default")
409
- ───────────────────────────────────────────────────────────────── */
410
-
411
- type DefaultPanelType = 'font' | 'fontSize' | 'link' | null;
412
-
413
- interface DefaultEditorProps extends Pick<RichTextEditorProps,
414
- | 'mobile' | 'isBold' | 'isItalic' | 'isUnderline' | 'alignment'
415
- | 'textStyle' | 'fontSize'
416
- | 'onTextStyleChange' | 'onFontSizeChange'
417
- | 'onUndo' | 'onRedo' | 'onBold' | 'onItalic' | 'onUnderline'
418
- | 'onAlign' | 'onColor' | 'onLink' | 'onImage' | 'onAI'
419
- | 'value' | 'placeholder' | 'onChange'
420
- | 'className'
421
- > {
422
- containerRef?: React.Ref<HTMLDivElement>;
423
- rest?: Record<string, unknown>;
424
- }
425
-
426
- function DefaultEditor({
427
- mobile = false,
428
- isBold: propIsBold,
429
- isItalic: propIsItalic,
430
- isUnderline: propIsUnderline,
431
- alignment: propAlignment,
432
- textStyle: propTextStyle,
433
- fontSize: propFontSize,
434
- onTextStyleChange,
435
- onFontSizeChange,
436
- onUndo: propOnUndo,
437
- onRedo: propOnRedo,
438
- onBold: propOnBold,
439
- onItalic: propOnItalic,
440
- onUnderline: propOnUnderline,
441
- onAlign: propOnAlign,
442
- onColor: propOnColor,
443
- onLink: propOnLink,
444
- onImage: propOnImage,
445
- onAI,
446
- value,
447
- placeholder,
448
- onChange,
449
- className,
450
- containerRef,
451
- rest = {},
452
- }: DefaultEditorProps) {
453
- const editorRef = useRef<HTMLDivElement>(null);
454
- const fileInputRef = useRef<HTMLInputElement>(null);
455
- const colorInputRef = useRef<HTMLInputElement | null>(null);
456
- const linkInputRef = useRef<HTMLInputElement | null>(null);
457
- const savedRangeRef = useRef<Range | null>(null);
458
-
459
- /* Format state — tracked internally from execCommand */
460
- const [activeBold, setActiveBold] = useState(propIsBold ?? false);
461
- const [activeItalic, setActiveItalic] = useState(propIsItalic ?? false);
462
- const [activeUnderline, setActiveUnderline] = useState(propIsUnderline ?? false);
463
- const [activeAlignment, setActiveAlignment] = useState<TextAlignment>(propAlignment ?? 'left');
464
- const [activeTextStyle, setActiveTextStyle] = useState(propTextStyle ?? 'Normal');
465
- const [activeFontSize, setActiveFontSize] = useState(propFontSize ?? '16');
466
- const [isEmpty, setIsEmpty] = useState(true);
467
- const [openPanel, setOpenPanel] = useState<DefaultPanelType>(null);
468
- const [linkUrl, setLinkUrl] = useState('');
469
-
470
- /* Set initial HTML content */
471
- useEffect(() => {
472
- if (editorRef.current && value !== undefined) {
473
- editorRef.current.innerHTML = value;
474
- setIsEmpty(!(editorRef.current.textContent?.trim()));
475
- }
476
- // eslint-disable-next-line react-hooks/exhaustive-deps
477
- }, []);
478
-
479
- /* Sync format indicators from the document selection */
480
- const syncFormatState = useCallback(() => {
481
- setActiveBold(document.queryCommandState('bold'));
482
- setActiveItalic(document.queryCommandState('italic'));
483
- setActiveUnderline(document.queryCommandState('underline'));
484
- }, []);
485
-
486
- /* Save / restore editor selection around panel interactions */
487
- const saveSelection = useCallback(() => {
488
- const sel = window.getSelection();
489
- if (sel && sel.rangeCount > 0) {
490
- savedRangeRef.current = sel.getRangeAt(0).cloneRange();
491
- }
492
- }, []);
493
-
494
- const restoreSelection = useCallback(() => {
495
- if (!savedRangeRef.current) return;
496
- editorRef.current?.focus();
497
- const sel = window.getSelection();
498
- if (sel) {
499
- sel.removeAllRanges();
500
- sel.addRange(savedRangeRef.current);
501
- }
502
- }, []);
503
-
504
- /* Apply a format command inside the editor */
505
- const execInEditor = useCallback((command: string, callback?: () => void) => {
506
- editorRef.current?.focus();
507
- document.execCommand(command, false);
508
- syncFormatState();
509
- callback?.();
510
- }, [syncFormatState]);
511
-
512
- /* Apply alignment */
513
- const applyAlignInEditor = useCallback((align: TextAlignment) => {
514
- editorRef.current?.focus();
515
- document.execCommand(ALIGN_COMMANDS[align], false);
516
- setActiveAlignment(align);
517
- propOnAlign?.(align);
518
- }, [propOnAlign]);
519
-
520
- /* Track content changes */
521
- const handleInput = useCallback(() => {
522
- const el = editorRef.current;
523
- if (!el) return;
524
- setIsEmpty(!(el.textContent?.trim()));
525
- syncFormatState();
526
- onChange?.(el.innerHTML);
527
- }, [onChange, syncFormatState]);
528
-
529
- /* Open / close panels — save selection first */
530
- const togglePanel = useCallback((panel: DefaultPanelType) => {
531
- saveSelection();
532
- setOpenPanel((prev) => (prev === panel ? null : panel));
533
- if (panel === 'link') setLinkUrl('');
534
- }, [saveSelection]);
535
-
536
- /* Auto-focus link URL input when panel opens */
537
- useEffect(() => {
538
- if (openPanel === 'link') {
539
- setTimeout(() => linkInputRef.current?.focus(), 0);
540
- }
541
- }, [openPanel]);
542
-
543
- /* Apply font style (formatBlock) */
544
- const applyFontStyle = useCallback((tag: string, label: string) => {
545
- restoreSelection();
546
- document.execCommand('formatBlock', false, tag);
547
- syncFormatState();
548
- setActiveTextStyle(label);
549
- onTextStyleChange?.(label);
550
- setOpenPanel(null);
551
- editorRef.current?.focus();
552
- }, [restoreSelection, syncFormatState, onTextStyleChange]);
553
-
554
- /* Apply font size */
555
- const applyFontSize = useCallback((size: string) => {
556
- restoreSelection();
557
- document.execCommand('fontSize', false, FONT_SIZE_MAP[size] ?? '4');
558
- setActiveFontSize(size);
559
- onFontSizeChange?.(size);
560
- setOpenPanel(null);
561
- editorRef.current?.focus();
562
- }, [restoreSelection, onFontSizeChange]);
563
-
564
- /* Insert link */
565
- const insertLink = useCallback(() => {
566
- const raw = linkUrl.trim();
567
- if (!raw) return;
568
- const url = /^https?:\/\//i.test(raw) ? raw : `https://${raw}`;
569
- restoreSelection();
570
- document.execCommand('createLink', false, url);
571
- handleInput();
572
- setLinkUrl('');
573
- setOpenPanel(null);
574
- propOnLink?.();
575
- }, [linkUrl, restoreSelection, handleInput, propOnLink]);
576
-
577
- /* Image file upload */
578
- const handleImageFile = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
579
- const file = e.target.files?.[0];
580
- if (!file) return;
581
- const reader = new FileReader();
582
- reader.onload = () => {
583
- restoreSelection();
584
- document.execCommand(
585
- 'insertHTML',
586
- false,
587
- `<img src="${reader.result as string}" alt="${file.name}" style="max-width:100%;height:auto;border-radius:4px;display:block;margin:4px 0;" />`,
588
- );
589
- handleInput();
590
- };
591
- reader.readAsDataURL(file);
592
- e.target.value = '';
593
- }, [restoreSelection, handleInput]);
594
-
595
- const handleImageClick = useCallback(() => {
596
- saveSelection();
597
- fileInputRef.current?.click();
598
- }, [saveSelection]);
599
-
600
- /* Text color via native color picker */
601
- const handleColorChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
602
- restoreSelection();
603
- document.execCommand('foreColor', false, e.target.value);
604
- handleInput();
605
- propOnColor?.();
606
- }, [restoreSelection, handleInput, propOnColor]);
607
-
608
- const handleColorClick = useCallback(() => {
609
- saveSelection();
610
- colorInputRef.current?.click();
611
- }, [saveSelection]);
612
-
613
- /* Undo / Redo */
614
- const handleUndo = useCallback(() => { execInEditor('undo'); propOnUndo?.(); }, [execInEditor, propOnUndo]);
615
- const handleRedo = useCallback(() => { execInEditor('redo'); propOnRedo?.(); }, [execInEditor, propOnRedo]);
616
-
617
- /* Current align icon for mobile */
618
- const AlignCurrentIcon =
619
- activeAlignment === 'center' ? AlignCenterIcon
620
- : activeAlignment === 'right' ? AlignRightIcon
621
- : AlignLeftIcon;
622
-
623
- /* ── Toolbar (desktop vs mobile) ──────────────────────────── */
624
- const toolbar = mobile ? (
625
- <div
626
- className={cn(TOOLBAR_MOBILE, 'border-b border-[rgba(210,214,219,1)] dark:border-[rgba(44,57,79,1)]')}
627
- role="toolbar"
628
- aria-label="Text formatting"
629
- >
630
- <div className={TOOLBAR_MOBILE_ROW}>
631
- <UndoRedoGroup onUndo={handleUndo} onRedo={handleRedo} />
632
- <div className={TOOLBAR_GROUP_SM}>
633
- <StyleSelector
634
- icon={<TextTIcon className="size-4 text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)] shrink-0" />}
635
- value={activeTextStyle}
636
- active={openPanel === 'font'}
637
- onClick={() => togglePanel('font')}
638
- label="Text style"
639
- />
640
- <StyleSelector
641
- value={activeFontSize}
642
- active={openPanel === 'fontSize'}
643
- onClick={() => togglePanel('fontSize')}
644
- label="Font size"
645
- />
646
- </div>
647
- </div>
648
- <div className={TOOLBAR_MOBILE_ROW}>
649
- <button
650
- type="button"
651
- aria-label="Bold"
652
- onMouseDown={(e) => e.preventDefault()}
653
- onClick={() => execInEditor('bold', propOnBold)}
654
- className={cn(MOBILE_GROUP_BTN, activeBold && TOOLBAR_BTN_ACTIVE)}
655
- >
656
- <BoldIcon className="size-6" />
657
- <ChevronDownIcon className="size-4" />
658
- </button>
659
- <VDivider />
660
- <button
661
- type="button"
662
- aria-label="Text color"
663
- onMouseDown={(e) => e.preventDefault()}
664
- onClick={handleColorClick}
665
- className={MOBILE_GROUP_BTN}
666
- >
667
- <ColorSquareIcon className="size-6" />
668
- <ChevronDownIcon className="size-4" />
669
- </button>
670
- <VDivider />
671
- <button
672
- type="button"
673
- aria-label="Alignment"
674
- onMouseDown={(e) => e.preventDefault()}
675
- onClick={() => {
676
- const next: TextAlignment =
677
- activeAlignment === 'left' ? 'center'
678
- : activeAlignment === 'center' ? 'right' : 'left';
679
- applyAlignInEditor(next);
680
- }}
681
- className={MOBILE_GROUP_BTN}
682
- >
683
- <AlignCurrentIcon className="size-6" />
684
- <ChevronDownIcon className="size-4" />
685
- </button>
686
- <VDivider />
687
- <div className={TOOLBAR_GROUP_SM}>
688
- <ToolbarBtn
689
- active={openPanel === 'link'}
690
- onClick={() => togglePanel('link')}
691
- label="Insert link"
692
- >
693
- <LinkIcon className="size-6" />
694
- </ToolbarBtn>
695
- <ToolbarBtn onClick={handleImageClick} label="Insert image">
696
- <ImageIcon className="size-6" />
697
- </ToolbarBtn>
698
- </div>
699
- </div>
700
- </div>
701
- ) : (
702
- <div
703
- className={cn(TOOLBAR_DESKTOP, 'border-b border-[rgba(210,214,219,1)] dark:border-[rgba(44,57,79,1)]')}
704
- role="toolbar"
705
- aria-label="Text formatting"
706
- >
707
- <UndoRedoGroup onUndo={handleUndo} onRedo={handleRedo} />
708
- <VDivider />
709
- <div className={TOOLBAR_GROUP_SM} data-slot="rte-style-selectors">
710
- <StyleSelector
711
- icon={<TextTIcon className="size-4 text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)] shrink-0" />}
712
- value={activeTextStyle}
713
- active={openPanel === 'font'}
714
- onClick={() => togglePanel('font')}
715
- label="Text style"
716
- />
717
- <StyleSelector
718
- value={activeFontSize}
719
- active={openPanel === 'fontSize'}
720
- onClick={() => togglePanel('fontSize')}
721
- label="Font size"
722
- />
723
- </div>
724
- <VDivider />
725
- <TextFormatGroup
726
- isBold={activeBold}
727
- isItalic={activeItalic}
728
- isUnderline={activeUnderline}
729
- onBold={() => execInEditor('bold', propOnBold)}
730
- onItalic={() => execInEditor('italic', propOnItalic)}
731
- onUnderline={() => execInEditor('underline', propOnUnderline)}
732
- />
733
- <VDivider />
734
- <div className={TOOLBAR_GROUP_XS} data-slot="rte-color">
735
- <ToolbarBtn onClick={handleColorClick} label="Text color">
736
- <ColorSquareIcon className="size-6" />
737
- </ToolbarBtn>
738
- <button
739
- type="button"
740
- aria-hidden="true"
741
- tabIndex={-1}
742
- onMouseDown={(e) => e.preventDefault()}
743
- onClick={handleColorClick}
744
- className="cursor-pointer text-[rgba(108,115,127,1)] dark:text-[rgba(156,163,175,1)]"
745
- >
746
- <ChevronDownIcon className="size-4" />
747
- </button>
748
- </div>
749
- <VDivider />
750
- <AlignGroup alignment={activeAlignment} onAlign={applyAlignInEditor} />
751
- <VDivider />
752
- <div className={TOOLBAR_GROUP_MD} data-slot="rte-media">
753
- <ToolbarBtn
754
- active={openPanel === 'link'}
755
- onClick={() => togglePanel('link')}
756
- label="Insert link"
757
- >
758
- <LinkIcon className="size-6" />
759
- </ToolbarBtn>
760
- <ToolbarBtn onClick={handleImageClick} label="Insert image">
761
- <ImageIcon className="size-6" />
762
- </ToolbarBtn>
763
- <ToolbarBtn onClick={onAI} label="AI assist">
764
- <AIIcon className="size-6" />
765
- </ToolbarBtn>
766
- </div>
767
- </div>
768
- );
769
-
770
- return (
771
- <div
772
- ref={containerRef}
773
- data-slot="rich-text-editor"
774
- data-type="default"
775
- className={cn(EDITOR_CONTAINER, className)}
776
- {...rest}
777
- >
778
- {toolbar}
779
-
780
- {/* Inline panels — between toolbar and content area */}
781
- {openPanel === 'font' && (
782
- <FontPanel
783
- panelClassName={EDITOR_PANEL_WRAP}
784
- onApply={applyFontStyle}
785
- onClose={() => setOpenPanel(null)}
786
- />
787
- )}
788
- {openPanel === 'fontSize' && (
789
- <FontSizePanel
790
- panelClassName={EDITOR_PANEL_WRAP}
791
- current={activeFontSize}
792
- onApply={applyFontSize}
793
- onClose={() => setOpenPanel(null)}
794
- />
795
- )}
796
- {openPanel === 'link' && (
797
- <LinkPanel
798
- panelClassName={EDITOR_PANEL_WRAP}
799
- inputRef={linkInputRef}
800
- url={linkUrl}
801
- onChange={setLinkUrl}
802
- onInsert={insertLink}
803
- onClose={() => setOpenPanel(null)}
804
- />
805
- )}
806
-
807
- {/* Content area */}
808
- <div className="relative flex-1 px-spacing-xl py-spacing-md">
809
- {isEmpty && (
810
- <span
811
- aria-hidden="true"
812
- className="absolute top-spacing-md start-spacing-xl pointer-events-none text-text-md font-[400] leading-[24px] text-[rgba(108,115,127,1)] dark:text-[rgba(107,114,128,1)]"
813
- >
814
- {placeholder ?? 'Type here…'}
815
- </span>
816
- )}
817
- <div
818
- ref={editorRef}
819
- contentEditable
820
- suppressContentEditableWarning
821
- data-slot="rte-content"
822
- role="textbox"
823
- aria-multiline="true"
824
- onInput={handleInput}
825
- onKeyUp={syncFormatState}
826
- onMouseUp={syncFormatState}
827
- onSelect={syncFormatState}
828
- className="w-full min-h-[120px] outline-none text-text-md font-[400] leading-relaxed text-[rgba(22,22,22,1)] dark:text-[rgba(229,231,235,1)]"
829
- />
830
- </div>
831
-
832
- {/* Hidden native color picker */}
833
- <input
834
- ref={colorInputRef}
835
- type="color"
836
- defaultValue="#161616"
837
- className="sr-only"
838
- aria-hidden="true"
839
- onChange={handleColorChange}
840
- />
841
- {/* Hidden file input for image upload */}
842
- <input
843
- ref={fileInputRef}
844
- type="file"
845
- accept="image/*"
846
- className="hidden"
847
- aria-hidden="true"
848
- onChange={handleImageFile}
849
- />
850
- </div>
851
- );
852
- }
853
-
854
- /* ── InputEditor — self-contained contentEditable editor ────────── */
855
-
856
- type PanelType = 'emoji' | 'font' | 'link' | null;
857
-
858
- interface InputEditorProps extends Pick<RichTextEditorProps,
859
- | 'expand' | 'onBold' | 'onItalic' | 'onUnderline' | 'onAlign'
860
- | 'onLink' | 'onImage' | 'onAI'
861
- | 'value' | 'placeholder' | 'onChange'
862
- | 'onAddContent' | 'onFormatText' | 'onEmoji' | 'onMention'
863
- | 'className'
864
- > {
865
- containerRef?: React.Ref<HTMLDivElement>;
866
- rest?: Record<string, unknown>;
867
- }
868
-
869
- function InputEditor({
870
- expand = false,
871
- onBold: propOnBold,
872
- onItalic: propOnItalic,
873
- onUnderline: propOnUnderline,
874
- onAlign: propOnAlign,
875
- onLink: propOnLink,
876
- onImage: propOnImage,
877
- onAI,
878
- value,
879
- placeholder = 'You can write here…',
880
- onChange,
881
- onAddContent,
882
- onFormatText,
883
- onEmoji: propOnEmoji,
884
- onMention,
885
- className,
886
- containerRef,
887
- rest = {},
888
- }: InputEditorProps) {
889
- const editorRef = useRef<HTMLDivElement>(null);
890
- const fileInputRef = useRef<HTMLInputElement>(null);
891
- const linkInputRef = useRef<HTMLInputElement | null>(null);
892
- const savedRangeRef = useRef<Range | null>(null);
893
-
894
- /* Format state */
895
- const [activeBold, setActiveBold] = useState(false);
896
- const [activeItalic, setActiveItalic] = useState(false);
897
- const [activeUnderline, setActiveUnderline] = useState(false);
898
- const [activeAlignment, setActiveAlignment] = useState<TextAlignment>('left');
899
- const [isEmpty, setIsEmpty] = useState(true);
900
-
901
- /* Panel state */
902
- const [openPanel, setOpenPanel] = useState<PanelType>(null);
903
- const [linkUrl, setLinkUrl] = useState('');
904
-
905
- /* Set initial HTML content on mount */
906
- useEffect(() => {
907
- if (editorRef.current && value !== undefined) {
908
- editorRef.current.innerHTML = value;
909
- setIsEmpty(!(editorRef.current.textContent?.trim()));
910
- }
911
- // eslint-disable-next-line react-hooks/exhaustive-deps
912
- }, []);
913
-
914
- /* Read format state from the current document selection */
915
- const syncFormatState = useCallback(() => {
916
- setActiveBold(document.queryCommandState('bold'));
917
- setActiveItalic(document.queryCommandState('italic'));
918
- setActiveUnderline(document.queryCommandState('underline'));
919
- }, []);
920
-
921
- /* Save/restore the editor's text selection (needed when focus leaves the editor) */
922
- const saveSelection = useCallback(() => {
923
- const sel = window.getSelection();
924
- if (sel && sel.rangeCount > 0) {
925
- savedRangeRef.current = sel.getRangeAt(0).cloneRange();
926
- }
927
- }, []);
928
-
929
- const restoreSelection = useCallback(() => {
930
- if (!savedRangeRef.current) return;
931
- editorRef.current?.focus();
932
- const sel = window.getSelection();
933
- if (sel) {
934
- sel.removeAllRanges();
935
- sel.addRange(savedRangeRef.current);
936
- }
937
- }, []);
938
-
939
- /* Apply format command inside the editor */
940
- const execInEditor = useCallback((command: string, callback?: () => void) => {
941
- editorRef.current?.focus();
942
- document.execCommand(command, false);
943
- syncFormatState();
944
- callback?.();
945
- }, [syncFormatState]);
946
-
947
- /* Apply alignment inside the editor */
948
- const applyAlignInEditor = useCallback((align: TextAlignment) => {
949
- editorRef.current?.focus();
950
- document.execCommand(ALIGN_COMMANDS[align], false);
951
- setActiveAlignment(align);
952
- propOnAlign?.(align);
953
- }, [propOnAlign]);
954
-
955
- /* Track content changes */
956
- const handleInput = useCallback(() => {
957
- const el = editorRef.current;
958
- if (!el) return;
959
- setIsEmpty(!(el.textContent?.trim()));
960
- syncFormatState();
961
- onChange?.(el.innerHTML);
962
- }, [onChange, syncFormatState]);
963
-
964
- /* Open/close panels — save selection before opening so it can be restored */
965
- const togglePanel = useCallback((panel: PanelType) => {
966
- saveSelection();
967
- setOpenPanel((prev) => (prev === panel ? null : panel));
968
- if (panel === 'link') setLinkUrl('');
969
- }, [saveSelection]);
970
-
971
- /* Auto-focus the link URL input when that panel opens */
972
- useEffect(() => {
973
- if (openPanel === 'link') {
974
- setTimeout(() => linkInputRef.current?.focus(), 0);
975
- }
976
- }, [openPanel]);
977
-
978
- /* ── Panel actions ─────────────────────────────────────────── */
979
-
980
- const insertEmoji = useCallback((emoji: string) => {
981
- restoreSelection();
982
- document.execCommand('insertText', false, emoji);
983
- handleInput();
984
- setOpenPanel(null);
985
- }, [restoreSelection, handleInput]);
986
-
987
- const insertLink = useCallback(() => {
988
- const raw = linkUrl.trim();
989
- if (!raw) return;
990
- const url = /^https?:\/\//i.test(raw) ? raw : `https://${raw}`;
991
- restoreSelection();
992
- document.execCommand('createLink', false, url);
993
- handleInput();
994
- setLinkUrl('');
995
- setOpenPanel(null);
996
- propOnLink?.();
997
- }, [linkUrl, restoreSelection, handleInput, propOnLink]);
998
-
999
- const applyFontStyle = useCallback((tag: string, _label?: string) => {
1000
- restoreSelection();
1001
- document.execCommand('formatBlock', false, tag);
1002
- syncFormatState();
1003
- setOpenPanel(null);
1004
- editorRef.current?.focus();
1005
- onFormatText?.();
1006
- }, [restoreSelection, syncFormatState, onFormatText]);
1007
-
1008
- /* ── Image file upload ────────────────────────────────────── */
1009
-
1010
- const handleImageFile = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
1011
- const file = e.target.files?.[0];
1012
- if (!file) return;
1013
- const reader = new FileReader();
1014
- reader.onload = () => {
1015
- restoreSelection();
1016
- document.execCommand(
1017
- 'insertHTML',
1018
- false,
1019
- `<img src="${reader.result as string}" alt="${file.name}" style="max-width:100%;height:auto;border-radius:4px;display:block;margin:4px 0;" />`,
1020
- );
1021
- handleInput();
1022
- };
1023
- reader.readAsDataURL(file);
1024
- e.target.value = '';
1025
- }, [restoreSelection, handleInput]);
1026
-
1027
- /* Capture selection BEFORE file picker steals focus */
1028
- const handleImageClick = useCallback(() => {
1029
- saveSelection();
1030
- fileInputRef.current?.click();
1031
- }, [saveSelection]);
1032
-
1033
- return (
1034
- <div
1035
- ref={containerRef}
1036
- data-slot="rich-text-editor"
1037
- data-type="input"
1038
- data-expanded={expand || undefined}
1039
- className={cn(INPUT_CONTAINER, className)}
1040
- {...rest}
1041
- >
1042
- {/* Optional expand toolbar above content area */}
1043
- {expand && (
1044
- <div
1045
- data-slot="rte-expand-toolbar"
1046
- role="toolbar"
1047
- aria-label="Text formatting"
1048
- className={EXPAND_TOOLBAR}
1049
- >
1050
- <TextFormatGroup
1051
- isBold={activeBold}
1052
- isItalic={activeItalic}
1053
- isUnderline={activeUnderline}
1054
- onBold={() => execInEditor('bold', propOnBold)}
1055
- onItalic={() => execInEditor('italic', propOnItalic)}
1056
- onUnderline={() => execInEditor('underline', propOnUnderline)}
1057
- />
1058
- <VDivider />
1059
- <AlignGroup alignment={activeAlignment} onAlign={applyAlignInEditor} />
1060
- <VDivider />
1061
- {/* Link: saves selection, opens link panel */}
1062
- <ToolbarBtn
1063
- active={openPanel === 'link'}
1064
- onClick={() => togglePanel('link')}
1065
- label="Insert link"
1066
- >
1067
- <LinkIcon className="size-6" />
1068
- </ToolbarBtn>
1069
- {/* Image: saves selection, triggers file picker */}
1070
- <ToolbarBtn onClick={handleImageClick} label="Insert image">
1071
- <ImageIcon className="size-6" />
1072
- </ToolbarBtn>
1073
- <ToolbarBtn onClick={onAI} label="AI assist">
1074
- <AIIcon className="size-6" />
1075
- </ToolbarBtn>
1076
- </div>
1077
- )}
1078
-
1079
- {/* Content area */}
1080
- <div className="relative pt-spacing-sm">
1081
- {isEmpty && (
1082
- <span
1083
- aria-hidden="true"
1084
- className="absolute top-spacing-sm start-0 pointer-events-none text-text-md font-[400] leading-[24px] text-[rgba(108,115,127,1)] dark:text-[rgba(107,114,128,1)]"
1085
- >
1086
- {placeholder}
1087
- </span>
1088
- )}
1089
- <div
1090
- ref={editorRef}
1091
- contentEditable
1092
- suppressContentEditableWarning
1093
- data-slot="rte-content"
1094
- role="textbox"
1095
- aria-multiline="true"
1096
- aria-label="Rich text input"
1097
- onInput={handleInput}
1098
- onKeyUp={syncFormatState}
1099
- onMouseUp={syncFormatState}
1100
- onSelect={syncFormatState}
1101
- className={INPUT_TEXTAREA}
1102
- />
1103
- </div>
1104
-
1105
- {/* Inline panels — rendered between content and bottom bar */}
1106
- {openPanel === 'emoji' && (
1107
- <EmojiPanel
1108
- onInsert={insertEmoji}
1109
- onClose={() => setOpenPanel(null)}
1110
- />
1111
- )}
1112
- {openPanel === 'font' && (
1113
- <FontPanel
1114
- onApply={applyFontStyle}
1115
- onClose={() => setOpenPanel(null)}
1116
- />
1117
- )}
1118
- {openPanel === 'link' && (
1119
- <LinkPanel
1120
- inputRef={linkInputRef}
1121
- url={linkUrl}
1122
- onChange={setLinkUrl}
1123
- onInsert={insertLink}
1124
- onClose={() => setOpenPanel(null)}
1125
- />
1126
- )}
1127
-
1128
- {/* Bottom action bar */}
1129
- <div data-slot="rte-bottom-bar" className={INPUT_BOTTOM_BAR}>
1130
- <button
1131
- type="button"
1132
- aria-label="Add content"
1133
- onMouseDown={(e) => e.preventDefault()}
1134
- onClick={onAddContent}
1135
- className={INPUT_ADD_BTN}
1136
- >
1137
- <PlusIcon className="size-4" />
1138
- </button>
1139
-
1140
- <span aria-hidden="true" className={INPUT_DIVIDER} />
1141
-
1142
- {/* Aa — toggles font-style panel */}
1143
- <button
1144
- type="button"
1145
- aria-label="Text style"
1146
- onMouseDown={(e) => e.preventDefault()}
1147
- onClick={() => togglePanel('font')}
1148
- className={cn(INPUT_ACTION_BTN, openPanel === 'font' && TOOLBAR_BTN_ACTIVE)}
1149
- >
1150
- <AaIcon className="size-5" />
1151
- </button>
1152
-
1153
- {/* Emoji — toggles emoji picker panel */}
1154
- <button
1155
- type="button"
1156
- aria-label="Insert emoji"
1157
- onMouseDown={(e) => e.preventDefault()}
1158
- onClick={() => togglePanel('emoji')}
1159
- className={cn(INPUT_ACTION_BTN, openPanel === 'emoji' && TOOLBAR_BTN_ACTIVE)}
1160
- >
1161
- <SmileIcon className="size-5" />
1162
- </button>
1163
-
1164
- {/* @ — mention (external) */}
1165
- <button
1166
- type="button"
1167
- aria-label="Mention someone"
1168
- onMouseDown={(e) => e.preventDefault()}
1169
- onClick={onMention}
1170
- className={INPUT_ACTION_BTN}
1171
- >
1172
- <AtIcon className="size-5" />
1173
- </button>
1174
- </div>
1175
-
1176
- {/* Hidden file input for image upload */}
1177
- <input
1178
- ref={fileInputRef}
1179
- type="file"
1180
- accept="image/*"
1181
- className="hidden"
1182
- aria-hidden="true"
1183
- onChange={handleImageFile}
1184
- />
1185
- </div>
1186
- );
1187
- }
1188
-
1189
- /* ─────────────────────────────────────────────────────────────────
1190
- Main component
1191
- ───────────────────────────────────────────────────────────────── */
1192
-
1193
- /**
1194
- * RichTextEditor — a fully interactive, self-contained formatting component.
1195
- *
1196
- * ### Types
1197
- * `default` — full standalone editor with toolbar + contentEditable area.
1198
- * Every button is interactive: bold/italic/underline apply via execCommand,
1199
- * style selector and font-size selector open inline panels, link inserts an
1200
- * anchor, image triggers a file picker, color opens a native color chooser.
1201
- *
1202
- * `text-selected` — compact floating toolbar shown when text is selected.
1203
- *
1204
- * `input` — compact rich-text input with bottom quick-action bar (emoji,
1205
- * font-style, mention). Set `expand` to reveal the full formatting toolbar.
1206
- *
1207
- * ### RTL
1208
- * No extra configuration — logical CSS properties mirror automatically when
1209
- * an ancestor sets `dir="rtl"`.
1210
- *
1211
- * Figma source: node 6259:88649 (Rich Text Editor)
1212
- */
1213
- export const RichTextEditor = forwardRef<HTMLDivElement, RichTextEditorProps>(
1214
- function RichTextEditor(
1215
- {
1216
- type = 'default',
1217
- mobile = false,
1218
- expand = false,
1219
- isBold = false,
1220
- isItalic = false,
1221
- isUnderline = false,
1222
- alignment,
1223
- textStyle,
1224
- fontSize,
1225
- onTextStyleChange,
1226
- onFontSizeChange,
1227
- onUndo,
1228
- onRedo,
1229
- onBold,
1230
- onItalic,
1231
- onUnderline,
1232
- onAlign,
1233
- onColor,
1234
- onLink,
1235
- onImage,
1236
- onAI,
1237
- value,
1238
- placeholder,
1239
- onChange,
1240
- onAddContent,
1241
- onFormatText,
1242
- onEmoji,
1243
- onMention,
1244
- className,
1245
- ...rest
1246
- },
1247
- ref,
1248
- ) {
1249
- /* ── type="default" — delegate to self-contained DefaultEditor ── */
1250
- if (type === 'default') {
1251
- return (
1252
- <DefaultEditor
1253
- containerRef={ref}
1254
- mobile={mobile}
1255
- isBold={isBold}
1256
- isItalic={isItalic}
1257
- isUnderline={isUnderline}
1258
- alignment={alignment}
1259
- textStyle={textStyle}
1260
- fontSize={fontSize}
1261
- onTextStyleChange={onTextStyleChange}
1262
- onFontSizeChange={onFontSizeChange}
1263
- onUndo={onUndo}
1264
- onRedo={onRedo}
1265
- onBold={onBold}
1266
- onItalic={onItalic}
1267
- onUnderline={onUnderline}
1268
- onAlign={onAlign}
1269
- onColor={onColor}
1270
- onLink={onLink}
1271
- onImage={onImage}
1272
- onAI={onAI}
1273
- value={value}
1274
- placeholder={placeholder}
1275
- onChange={onChange}
1276
- className={className}
1277
- rest={rest as Record<string, unknown>}
1278
- />
1279
- );
1280
- }
1281
-
1282
- /* ── type="input" — delegate to InputEditor ─────────────────── */
1283
- if (type === 'input') {
1284
- return (
1285
- <InputEditor
1286
- containerRef={ref}
1287
- expand={expand}
1288
- onBold={onBold}
1289
- onItalic={onItalic}
1290
- onUnderline={onUnderline}
1291
- onAlign={onAlign}
1292
- onLink={onLink}
1293
- onImage={onImage}
1294
- onAI={onAI}
1295
- value={value}
1296
- placeholder={placeholder}
1297
- onChange={onChange}
1298
- onAddContent={onAddContent}
1299
- onFormatText={onFormatText}
1300
- onEmoji={onEmoji}
1301
- onMention={onMention}
1302
- className={className}
1303
- rest={rest as Record<string, unknown>}
1304
- />
1305
- );
1306
- }
1307
-
1308
- /* ── type="text-selected" — compact floating toolbar ─────────── */
1309
- const handleBold = () => { applyExecCommand('bold'); onBold?.(); };
1310
- const handleItalic = () => { applyExecCommand('italic'); onItalic?.(); };
1311
- const handleUnderline = () => { applyExecCommand('underline'); onUnderline?.(); };
1312
- const handleAlign = (a: TextAlignment) => { applyExecCommand(ALIGN_COMMANDS[a]); onAlign?.(a); };
1313
-
1314
- return (
1315
- <div
1316
- ref={ref}
1317
- data-slot="rich-text-editor"
1318
- data-type="text-selected"
1319
- role="toolbar"
1320
- aria-label="Text formatting"
1321
- className={cn(FLOATING_TOOLBAR, className)}
1322
- {...rest}
1323
- >
1324
- <TextFormatGroup
1325
- isBold={isBold}
1326
- isItalic={isItalic}
1327
- isUnderline={isUnderline}
1328
- onBold={handleBold}
1329
- onItalic={handleItalic}
1330
- onUnderline={handleUnderline}
1331
- />
1332
- <VDivider />
1333
- <AlignGroup alignment={alignment} onAlign={handleAlign} />
1334
- <VDivider />
1335
- <ToolbarBtn onClick={onLink} label="Insert link">
1336
- <LinkIcon className="size-6" />
1337
- </ToolbarBtn>
1338
- </div>
1339
- );
1340
- },
1341
- );