@nectary/components 2.8.7 → 2.9.0

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 (448) hide show
  1. package/package.json +1 -1
  2. package/types.d.ts +1 -1
  3. package/accordion/index.d.ts +0 -11
  4. package/accordion/index.js +0 -86
  5. package/accordion/types.d.ts +0 -21
  6. package/accordion/types.js +0 -1
  7. package/accordion-item/index.d.ts +0 -14
  8. package/accordion-item/index.js +0 -95
  9. package/accordion-item/types.d.ts +0 -36
  10. package/accordion-item/types.js +0 -1
  11. package/accordion-item/utils.d.ts +0 -2
  12. package/accordion-item/utils.js +0 -1
  13. package/action-menu/index.d.ts +0 -11
  14. package/action-menu/index.js +0 -195
  15. package/action-menu/types.d.ts +0 -13
  16. package/action-menu/types.js +0 -1
  17. package/action-menu-option/index.d.ts +0 -12
  18. package/action-menu-option/index.js +0 -82
  19. package/action-menu-option/types.d.ts +0 -23
  20. package/action-menu-option/types.js +0 -1
  21. package/action-menu-option/utils.d.ts +0 -2
  22. package/action-menu-option/utils.js +0 -3
  23. package/alert/index.d.ts +0 -14
  24. package/alert/index.js +0 -48
  25. package/alert/types.d.ts +0 -18
  26. package/alert/types.js +0 -1
  27. package/alert/utils.d.ts +0 -2
  28. package/alert/utils.js +0 -1
  29. package/avatar/index.d.ts +0 -11
  30. package/avatar/index.js +0 -94
  31. package/avatar/types.d.ts +0 -37
  32. package/avatar/types.js +0 -1
  33. package/avatar/utils.d.ts +0 -4
  34. package/avatar/utils.js +0 -7
  35. package/badge/index.d.ts +0 -11
  36. package/badge/index.js +0 -114
  37. package/badge/types.d.ts +0 -34
  38. package/badge/types.js +0 -1
  39. package/badge/utils.d.ts +0 -2
  40. package/badge/utils.js +0 -1
  41. package/button/index.d.ts +0 -11
  42. package/button/index.js +0 -182
  43. package/button/types.d.ts +0 -53
  44. package/button/types.js +0 -1
  45. package/button/utils.d.ts +0 -2
  46. package/button/utils.js +0 -1
  47. package/card/index.d.ts +0 -13
  48. package/card/index.js +0 -133
  49. package/card/types.d.ts +0 -28
  50. package/card/types.js +0 -1
  51. package/card-container/index.d.ts +0 -11
  52. package/card-container/index.js +0 -11
  53. package/card-container/types.d.ts +0 -3
  54. package/card-container/types.js +0 -1
  55. package/chat/index.d.ts +0 -11
  56. package/chat/index.js +0 -11
  57. package/chat/types.d.ts +0 -3
  58. package/chat/types.js +0 -1
  59. package/chat-block/index.d.ts +0 -11
  60. package/chat-block/index.js +0 -86
  61. package/chat-block/types.d.ts +0 -30
  62. package/chat-block/types.js +0 -1
  63. package/chat-bubble/index.d.ts +0 -11
  64. package/chat-bubble/index.js +0 -41
  65. package/chat-bubble/types.d.ts +0 -20
  66. package/chat-bubble/types.js +0 -1
  67. package/chat-bubble/utils.d.ts +0 -3
  68. package/chat-bubble/utils.js +0 -2
  69. package/checkbox/index.d.ts +0 -11
  70. package/checkbox/index.js +0 -126
  71. package/checkbox/types.d.ts +0 -49
  72. package/checkbox/types.js +0 -1
  73. package/chip/index.d.ts +0 -13
  74. package/chip/index.js +0 -144
  75. package/chip/types.d.ts +0 -37
  76. package/chip/types.js +0 -1
  77. package/chip/utils.d.ts +0 -2
  78. package/chip/utils.js +0 -6
  79. package/code-tag/index.d.ts +0 -11
  80. package/code-tag/index.js +0 -31
  81. package/code-tag/types.d.ts +0 -11
  82. package/code-tag/types.js +0 -1
  83. package/color-menu/index.d.ts +0 -11
  84. package/color-menu/index.js +0 -308
  85. package/color-menu/types.d.ts +0 -32
  86. package/color-menu/types.js +0 -1
  87. package/color-menu/utils.d.ts +0 -1
  88. package/color-menu/utils.js +0 -11
  89. package/color-menu-option/index.d.ts +0 -13
  90. package/color-menu-option/index.js +0 -48
  91. package/color-menu-option/types.d.ts +0 -11
  92. package/color-menu-option/types.js +0 -1
  93. package/color-menu-option/utils.d.ts +0 -1
  94. package/color-menu-option/utils.js +0 -11
  95. package/color-swatch/index.d.ts +0 -12
  96. package/color-swatch/index.js +0 -54
  97. package/color-swatch/types.d.ts +0 -11
  98. package/color-swatch/types.js +0 -1
  99. package/color-swatch/utils.d.ts +0 -2
  100. package/color-swatch/utils.js +0 -6
  101. package/date-picker/index.d.ts +0 -14
  102. package/date-picker/index.js +0 -381
  103. package/date-picker/types.d.ts +0 -70
  104. package/date-picker/types.js +0 -1
  105. package/date-picker/utils.d.ts +0 -28
  106. package/date-picker/utils.js +0 -142
  107. package/dialog/index.d.ts +0 -15
  108. package/dialog/index.js +0 -144
  109. package/dialog/types.d.ts +0 -28
  110. package/dialog/types.js +0 -1
  111. package/dialog/utils.d.ts +0 -2
  112. package/dialog/utils.js +0 -18
  113. package/emoji/index.d.ts +0 -11
  114. package/emoji/index.js +0 -46
  115. package/emoji/types.d.ts +0 -11
  116. package/emoji/types.js +0 -1
  117. package/emoji/utils.d.ts +0 -3
  118. package/emoji/utils.js +0 -47
  119. package/emoji-picker/index.d.ts +0 -22
  120. package/emoji-picker/index.js +0 -308
  121. package/emoji-picker/types.d.ts +0 -26
  122. package/emoji-picker/types.js +0 -1
  123. package/field/index.d.ts +0 -11
  124. package/field/index.js +0 -120
  125. package/field/types.d.ts +0 -35
  126. package/field/types.js +0 -1
  127. package/file-drop/index.d.ts +0 -13
  128. package/file-drop/index.js +0 -205
  129. package/file-drop/types.d.ts +0 -50
  130. package/file-drop/types.js +0 -1
  131. package/file-drop/utils.d.ts +0 -2
  132. package/file-drop/utils.js +0 -31
  133. package/file-picker/index.d.ts +0 -11
  134. package/file-picker/index.js +0 -103
  135. package/file-picker/types.d.ts +0 -32
  136. package/file-picker/types.js +0 -1
  137. package/file-picker/utils.d.ts +0 -1
  138. package/file-picker/utils.js +0 -8
  139. package/file-status/index.d.ts +0 -14
  140. package/file-status/index.js +0 -61
  141. package/file-status/types.d.ts +0 -18
  142. package/file-status/types.js +0 -1
  143. package/file-status/utils.d.ts +0 -2
  144. package/file-status/utils.js +0 -1
  145. package/flag/index.d.ts +0 -11
  146. package/flag/index.js +0 -46
  147. package/flag/types.d.ts +0 -11
  148. package/flag/types.js +0 -1
  149. package/flag/utils.d.ts +0 -1
  150. package/flag/utils.js +0 -17
  151. package/grid/index.d.ts +0 -11
  152. package/grid/index.js +0 -11
  153. package/grid/types.d.ts +0 -3
  154. package/grid/types.js +0 -1
  155. package/grid-item/index.d.ts +0 -11
  156. package/grid-item/index.js +0 -35
  157. package/grid-item/types.d.ts +0 -17
  158. package/grid-item/types.js +0 -1
  159. package/help-tooltip/index.d.ts +0 -13
  160. package/help-tooltip/index.js +0 -74
  161. package/help-tooltip/types.d.ts +0 -3
  162. package/help-tooltip/types.js +0 -1
  163. package/horizontal-stepper/index.d.ts +0 -11
  164. package/horizontal-stepper/index.js +0 -61
  165. package/horizontal-stepper/types.d.ts +0 -13
  166. package/horizontal-stepper/types.js +0 -1
  167. package/horizontal-stepper-item/index.d.ts +0 -14
  168. package/horizontal-stepper-item/index.js +0 -61
  169. package/horizontal-stepper-item/types.d.ts +0 -24
  170. package/horizontal-stepper-item/types.js +0 -1
  171. package/horizontal-stepper-item/utils.d.ts +0 -2
  172. package/horizontal-stepper-item/utils.js +0 -1
  173. package/icon/index.d.ts +0 -11
  174. package/icon/index.js +0 -32
  175. package/icon/types.d.ts +0 -11
  176. package/icon/types.js +0 -1
  177. package/icon-button/index.d.ts +0 -12
  178. package/icon-button/index.js +0 -175
  179. package/icon-button/types.d.ts +0 -44
  180. package/icon-button/types.js +0 -1
  181. package/icon-button/utils.d.ts +0 -2
  182. package/icon-button/utils.js +0 -1
  183. package/inline-alert/index.d.ts +0 -15
  184. package/inline-alert/index.js +0 -83
  185. package/inline-alert/types.d.ts +0 -15
  186. package/inline-alert/types.js +0 -1
  187. package/inline-alert/utils.d.ts +0 -2
  188. package/inline-alert/utils.js +0 -1
  189. package/input/index.d.ts +0 -11
  190. package/input/index.js +0 -637
  191. package/input/types.d.ts +0 -86
  192. package/input/types.js +0 -1
  193. package/input/utils.d.ts +0 -26
  194. package/input/utils.js +0 -302
  195. package/link/index.d.ts +0 -12
  196. package/link/index.js +0 -150
  197. package/link/types.d.ts +0 -59
  198. package/link/types.js +0 -1
  199. package/list/index.d.ts +0 -11
  200. package/list/index.js +0 -14
  201. package/list/types.d.ts +0 -3
  202. package/list/types.js +0 -1
  203. package/list-item/index.d.ts +0 -11
  204. package/list-item/index.js +0 -14
  205. package/list-item/types.d.ts +0 -3
  206. package/list-item/types.js +0 -1
  207. package/pagination/index.d.ts +0 -12
  208. package/pagination/index.js +0 -147
  209. package/pagination/types.d.ts +0 -16
  210. package/pagination/types.js +0 -1
  211. package/pop/index.d.ts +0 -11
  212. package/pop/index.js +0 -425
  213. package/pop/types.d.ts +0 -35
  214. package/pop/types.js +0 -1
  215. package/pop/utils.d.ts +0 -4
  216. package/pop/utils.js +0 -16
  217. package/popover/index.d.ts +0 -12
  218. package/popover/index.js +0 -146
  219. package/popover/types.d.ts +0 -40
  220. package/popover/types.js +0 -1
  221. package/popover/utils.d.ts +0 -4
  222. package/popover/utils.js +0 -10
  223. package/progress/index.d.ts +0 -12
  224. package/progress/index.js +0 -58
  225. package/progress/types.d.ts +0 -12
  226. package/progress/types.js +0 -1
  227. package/progress-stepper/index.d.ts +0 -11
  228. package/progress-stepper/index.js +0 -206
  229. package/progress-stepper/types.d.ts +0 -22
  230. package/progress-stepper/types.js +0 -1
  231. package/progress-stepper-item/index.d.ts +0 -12
  232. package/progress-stepper-item/index.js +0 -82
  233. package/progress-stepper-item/types.d.ts +0 -23
  234. package/progress-stepper-item/types.js +0 -1
  235. package/progress-stepper-item/utils.d.ts +0 -11
  236. package/progress-stepper-item/utils.js +0 -13
  237. package/radio/index.d.ts +0 -11
  238. package/radio/index.js +0 -154
  239. package/radio/types.d.ts +0 -14
  240. package/radio/types.js +0 -1
  241. package/radio-option/index.d.ts +0 -11
  242. package/radio-option/index.js +0 -79
  243. package/radio-option/types.d.ts +0 -18
  244. package/radio-option/types.js +0 -1
  245. package/rich-text/index.d.ts +0 -14
  246. package/rich-text/index.js +0 -75
  247. package/rich-text/types.d.ts +0 -12
  248. package/rich-text/types.js +0 -1
  249. package/rich-text/utils.d.ts +0 -7
  250. package/rich-text/utils.js +0 -107
  251. package/rich-textarea/index.d.ts +0 -11
  252. package/rich-textarea/index.js +0 -464
  253. package/rich-textarea/types.d.ts +0 -48
  254. package/rich-textarea/types.js +0 -1
  255. package/rich-textarea/utils.d.ts +0 -39
  256. package/rich-textarea/utils.js +0 -1730
  257. package/segment/index.d.ts +0 -12
  258. package/segment/index.js +0 -109
  259. package/segment/types.d.ts +0 -16
  260. package/segment/types.js +0 -1
  261. package/segment/utils.d.ts +0 -3
  262. package/segment/utils.js +0 -16
  263. package/segment-collapse/index.d.ts +0 -13
  264. package/segment-collapse/index.js +0 -60
  265. package/segment-collapse/types.d.ts +0 -11
  266. package/segment-collapse/types.js +0 -1
  267. package/segmented-control/index.d.ts +0 -11
  268. package/segmented-control/index.js +0 -85
  269. package/segmented-control/types.d.ts +0 -11
  270. package/segmented-control/types.js +0 -1
  271. package/segmented-control-option/index.d.ts +0 -11
  272. package/segmented-control-option/index.js +0 -95
  273. package/segmented-control-option/types.d.ts +0 -19
  274. package/segmented-control-option/types.js +0 -1
  275. package/segmented-icon-control/index.d.ts +0 -11
  276. package/segmented-icon-control/index.js +0 -101
  277. package/segmented-icon-control/types.d.ts +0 -14
  278. package/segmented-icon-control/types.js +0 -1
  279. package/segmented-icon-control-option/index.d.ts +0 -11
  280. package/segmented-icon-control-option/index.js +0 -82
  281. package/segmented-icon-control-option/types.d.ts +0 -16
  282. package/segmented-icon-control-option/types.js +0 -1
  283. package/select-button/index.d.ts +0 -13
  284. package/select-button/index.js +0 -202
  285. package/select-button/types.d.ts +0 -50
  286. package/select-button/types.js +0 -1
  287. package/select-menu/index.d.ts +0 -15
  288. package/select-menu/index.js +0 -332
  289. package/select-menu/types.d.ts +0 -41
  290. package/select-menu/types.js +0 -1
  291. package/select-menu-option/index.d.ts +0 -28
  292. package/select-menu-option/index.js +0 -65
  293. package/select-menu-option/types.d.ts +0 -26
  294. package/select-menu-option/types.js +0 -1
  295. package/skeleton/index.d.ts +0 -11
  296. package/skeleton/index.js +0 -108
  297. package/skeleton/types.d.ts +0 -9
  298. package/skeleton/types.js +0 -1
  299. package/skeleton-item/index.d.ts +0 -11
  300. package/skeleton-item/index.js +0 -11
  301. package/skeleton-item/types.d.ts +0 -13
  302. package/skeleton-item/types.js +0 -1
  303. package/spinner/index.d.ts +0 -11
  304. package/spinner/index.js +0 -58
  305. package/spinner/types.d.ts +0 -12
  306. package/spinner/types.js +0 -1
  307. package/standalone.d.ts +0 -85
  308. package/standalone.js +0 -87
  309. package/stop-events/index.d.ts +0 -1
  310. package/stop-events/index.js +0 -27
  311. package/table/index.d.ts +0 -11
  312. package/table/index.js +0 -14
  313. package/table/types.d.ts +0 -3
  314. package/table/types.js +0 -1
  315. package/table-body/index.d.ts +0 -11
  316. package/table-body/index.js +0 -14
  317. package/table-body/types.d.ts +0 -3
  318. package/table-body/types.js +0 -1
  319. package/table-cell/index.d.ts +0 -11
  320. package/table-cell/index.js +0 -21
  321. package/table-cell/types.d.ts +0 -9
  322. package/table-cell/types.js +0 -1
  323. package/table-cell/utils.d.ts +0 -2
  324. package/table-cell/utils.js +0 -1
  325. package/table-head/index.d.ts +0 -11
  326. package/table-head/index.js +0 -14
  327. package/table-head/types.d.ts +0 -3
  328. package/table-head/types.js +0 -1
  329. package/table-head-cell/index.d.ts +0 -12
  330. package/table-head-cell/index.js +0 -57
  331. package/table-head-cell/types.d.ts +0 -15
  332. package/table-head-cell/types.js +0 -1
  333. package/table-row/index.d.ts +0 -11
  334. package/table-row/index.js +0 -42
  335. package/table-row/types.d.ts +0 -11
  336. package/table-row/types.js +0 -1
  337. package/tabs/index.d.ts +0 -11
  338. package/tabs/index.js +0 -80
  339. package/tabs/types.d.ts +0 -18
  340. package/tabs/types.js +0 -1
  341. package/tabs-icon-option/index.d.ts +0 -11
  342. package/tabs-icon-option/index.js +0 -79
  343. package/tabs-icon-option/types.d.ts +0 -19
  344. package/tabs-icon-option/types.js +0 -1
  345. package/tabs-option/index.d.ts +0 -12
  346. package/tabs-option/index.js +0 -86
  347. package/tabs-option/types.d.ts +0 -25
  348. package/tabs-option/types.js +0 -1
  349. package/tag/index.d.ts +0 -12
  350. package/tag/index.js +0 -84
  351. package/tag/types.d.ts +0 -23
  352. package/tag/types.js +0 -1
  353. package/tag/utils.d.ts +0 -2
  354. package/tag/utils.js +0 -6
  355. package/text/index.d.ts +0 -11
  356. package/text/index.js +0 -64
  357. package/text/types.d.ts +0 -30
  358. package/text/types.js +0 -1
  359. package/text/utils.d.ts +0 -2
  360. package/text/utils.js +0 -1
  361. package/textarea/index.d.ts +0 -11
  362. package/textarea/index.js +0 -322
  363. package/textarea/types.d.ts +0 -60
  364. package/textarea/types.js +0 -1
  365. package/tile-control/index.d.ts +0 -11
  366. package/tile-control/index.js +0 -110
  367. package/tile-control/types.d.ts +0 -37
  368. package/tile-control/types.js +0 -1
  369. package/tile-control-option/index.d.ts +0 -11
  370. package/tile-control-option/index.js +0 -98
  371. package/tile-control-option/types.d.ts +0 -37
  372. package/tile-control-option/types.js +0 -1
  373. package/time-picker/index.d.ts +0 -15
  374. package/time-picker/index.js +0 -337
  375. package/time-picker/types.d.ts +0 -34
  376. package/time-picker/types.js +0 -1
  377. package/time-picker/utils.d.ts +0 -11
  378. package/time-picker/utils.js +0 -75
  379. package/title/index.d.ts +0 -11
  380. package/title/index.js +0 -60
  381. package/title/types.d.ts +0 -31
  382. package/title/types.js +0 -1
  383. package/title/utils.d.ts +0 -3
  384. package/title/utils.js +0 -17
  385. package/toast/index.d.ts +0 -13
  386. package/toast/index.js +0 -86
  387. package/toast/types.d.ts +0 -28
  388. package/toast/types.js +0 -1
  389. package/toast/utils.d.ts +0 -2
  390. package/toast/utils.js +0 -1
  391. package/toast-manager/index.d.ts +0 -13
  392. package/toast-manager/index.js +0 -170
  393. package/toast-manager/types.d.ts +0 -13
  394. package/toast-manager/types.js +0 -1
  395. package/toast-manager/utils.d.ts +0 -2
  396. package/toast-manager/utils.js +0 -1
  397. package/toggle/index.d.ts +0 -11
  398. package/toggle/index.js +0 -141
  399. package/toggle/types.d.ts +0 -23
  400. package/toggle/types.js +0 -1
  401. package/tooltip/index.d.ts +0 -13
  402. package/tooltip/index.js +0 -264
  403. package/tooltip/tooltip-state.d.ts +0 -19
  404. package/tooltip/tooltip-state.js +0 -126
  405. package/tooltip/types.d.ts +0 -35
  406. package/tooltip/types.js +0 -1
  407. package/tooltip/utils.d.ts +0 -5
  408. package/tooltip/utils.js +0 -17
  409. package/utils/context.d.ts +0 -20
  410. package/utils/context.js +0 -84
  411. package/utils/countries.d.ts +0 -6
  412. package/utils/countries.js +0 -2
  413. package/utils/csv.d.ts +0 -5
  414. package/utils/csv.js +0 -22
  415. package/utils/debounce.d.ts +0 -8
  416. package/utils/debounce.js +0 -22
  417. package/utils/dom.d.ts +0 -34
  418. package/utils/dom.js +0 -154
  419. package/utils/element.d.ts +0 -16
  420. package/utils/element.js +0 -48
  421. package/utils/event-target.d.ts +0 -4
  422. package/utils/event-target.js +0 -26
  423. package/utils/get-react-event-handler.d.ts +0 -1
  424. package/utils/get-react-event-handler.js +0 -8
  425. package/utils/index.d.ts +0 -12
  426. package/utils/index.js +0 -12
  427. package/utils/markdown.d.ts +0 -19
  428. package/utils/markdown.js +0 -143
  429. package/utils/rect.d.ts +0 -4
  430. package/utils/rect.js +0 -28
  431. package/utils/size.d.ts +0 -5
  432. package/utils/size.js +0 -3
  433. package/utils/slot.d.ts +0 -4
  434. package/utils/slot.js +0 -38
  435. package/utils/throttle.d.ts +0 -4
  436. package/utils/throttle.js +0 -20
  437. package/utils/uid.d.ts +0 -1
  438. package/utils/uid.js +0 -13
  439. package/vertical-stepper/index.d.ts +0 -11
  440. package/vertical-stepper/index.js +0 -57
  441. package/vertical-stepper/types.d.ts +0 -13
  442. package/vertical-stepper/types.js +0 -1
  443. package/vertical-stepper-item/index.d.ts +0 -14
  444. package/vertical-stepper-item/index.js +0 -61
  445. package/vertical-stepper-item/types.d.ts +0 -24
  446. package/vertical-stepper-item/types.js +0 -1
  447. package/vertical-stepper-item/utils.d.ts +0 -2
  448. package/vertical-stepper-item/utils.js +0 -1
@@ -1,107 +0,0 @@
1
- import { setEmojiBaseUrl } from '../emoji/utils';
2
- export const sizeValues = ['m', 's', 'xs', 'xxs'];
3
- export const createParseVisitor = doc => {
4
- let emojiBaseUrl = null;
5
- return {
6
- updateEmojiBaseUrl(url) {
7
- emojiBaseUrl = url;
8
- },
9
- createVisitor() {
10
- const $root = doc.createDocumentFragment();
11
- let $p = null;
12
- let $li = null;
13
- const $lists = [];
14
- return {
15
- emoji(emojiChar) {
16
- const $emoji = doc.createElement('sinch-emoji');
17
- setEmojiBaseUrl($emoji, emojiBaseUrl);
18
- $emoji.setAttribute('char', emojiChar);
19
- $emoji.className = 'emoji';
20
- $p.appendChild($emoji);
21
- },
22
- codetag(text) {
23
- const $codeTag = doc.createElement('sinch-code-tag');
24
- $codeTag.text = text;
25
- $p.appendChild($codeTag);
26
- },
27
- inline(text, _ref) {
28
- let {
29
- isBold,
30
- isItalic,
31
- isStrikethrough
32
- } = _ref;
33
- const $inline = doc.createElement('SPAN');
34
- $inline.append(doc.createTextNode(text));
35
- if (isItalic === true) {
36
- $inline.classList.add('em1');
37
- }
38
- if (isBold === true) {
39
- $inline.classList.add('em2');
40
- }
41
- if (isStrikethrough === true) {
42
- $inline.classList.add('strikethrough');
43
- }
44
- $p.appendChild($inline);
45
- },
46
- linebreak() {
47
- const $br = doc.createElement('br');
48
- $p.appendChild($br);
49
- },
50
- link(text, href, attributes) {
51
- const $link = doc.createElement('sinch-link');
52
- $link.text = text;
53
- $link.href = href;
54
- if (attributes != null) {
55
- attributes.forEach(attr => {
56
- switch (attr) {
57
- case 'use-history':
58
- $link['use-history'] = true;
59
- break;
60
- default:
61
- break;
62
- }
63
- });
64
- }
65
- $p.appendChild($link);
66
- },
67
- list(isOrdered) {
68
- const $list = doc.createElement(isOrdered ? 'ol' : 'ul');
69
- $list.classList.add(isOrdered ? 'ol' : 'ul');
70
- if ($li !== null) {
71
- $li.appendChild($list);
72
- $li = null;
73
- } else {
74
- $root.appendChild($list);
75
- }
76
- $lists.push($list);
77
- },
78
- endList() {
79
- $p = null;
80
- $li = null;
81
- $lists.length = $lists.length - 1;
82
- if ($lists.length > 0) {
83
- $li = $lists.at(-1).lastChild;
84
- }
85
- },
86
- listItem() {
87
- $p = null;
88
- $li = doc.createElement('li');
89
- $li.classList.add('li');
90
- $lists.at(-1).appendChild($li);
91
- },
92
- paragraph() {
93
- $p = doc.createElement('p');
94
- $p.classList.add('p');
95
- if ($li !== null) {
96
- $li.appendChild($p);
97
- } else {
98
- $root.appendChild($p);
99
- }
100
- },
101
- end() {
102
- return $root;
103
- }
104
- };
105
- }
106
- };
107
- };
@@ -1,11 +0,0 @@
1
- import type { TSinchRichTextareaElement, TSinchRichTextareaReact } from './types';
2
- declare global {
3
- namespace JSX {
4
- interface IntrinsicElements {
5
- 'sinch-rich-textarea': TSinchRichTextareaReact;
6
- }
7
- }
8
- interface HTMLElementTagNameMap {
9
- 'sinch-rich-textarea': TSinchRichTextareaElement;
10
- }
11
- }
@@ -1,464 +0,0 @@
1
- import { getEmojiBaseUrl } from '../emoji/utils';
2
- import { defineCustomElement, getAttribute, getBooleanAttribute, getIntegerAttribute, getReactEventHandler, isElementFocused, NectaryElement, parseMarkdown, setClass, updateAttribute, updateBooleanAttribute } from '../utils';
3
- const templateHTML = '<style>:host{display:block}#wrapper{display:flex;flex-direction:column;position:relative;width:100%;box-sizing:border-box;background-color:var(--sinch-comp-textarea-color-default-background-initial);border-radius:var(--sinch-local-shape-radius);overflow:hidden;--sinch-local-shape-radius:var(--sinch-comp-textarea-shape-radius)}#input-wrapper{position:relative;padding:8px 10px 8px 12px;box-sizing:border-box}#input{font:var(--sinch-comp-textarea-font-input);color:var(--sinch-comp-textarea-color-default-text-initial);white-space:pre-wrap;overflow-wrap:break-word;border:none;outline:0}#placeholder{display:none;position:absolute;left:0;top:0;font:var(--sinch-comp-textarea-font-input);color:var(--sinch-comp-textarea-color-default-text-placeholder);padding:8px 10px 8px 12px;pointer-events:none;user-select:none}#input.empty+#placeholder{display:block}#border{position:absolute;border:1px solid var(--sinch-comp-textarea-color-default-border-initial);border-radius:var(--sinch-local-shape-radius);inset:0;pointer-events:none}:host([invalid]) #border{border-color:var(--sinch-comp-textarea-color-invalid-border-initial)}:host([disabled]){color:var(--sinch-comp-textarea-color-disabled-text-initial);-webkit-text-fill-color:var(--sinch-comp-textarea-color-disabled-text-initial)}:host([disabled]) #border{border-color:var(--sinch-comp-textarea-color-disabled-border-initial)}:host(:not([disabled])) #input-wrapper:focus-within~#border{border-color:var(--sinch-comp-textarea-color-default-border-focus);border-width:2px}.oli,.p,.uli{margin:0}.oli.l0,.uli.l0{margin-left:6px}.oli.l1,.uli.l1{margin-left:36px}.oli.l2,.uli.l2{margin-left:64px}.oli.l3,.uli.l3{margin-left:92px}.oli.l4,.uli.l4{margin-left:120px}.uli.l0{counter-reset:list-0 list-1 list-2 list-3 list-4}.uli.l1{counter-reset:list-1 list-2 list-3 list-4}.uli.l2{counter-reset:list-2 list-3 list-4}.uli.l3{counter-reset:list-3 list-4}.uli.l4{counter-reset:list-4}.oli.l0{counter-reset:list-1 list-2 list-3 list-4}.oli.l1{counter-reset:list-2 list-3 list-4}.oli.l2{counter-reset:list-3 list-4}.oli.l3{counter-reset:list-4}.oli.l0::before{counter-increment:list-0;content:counter(list-0,decimal) ". "}.oli.l1::before{counter-increment:list-1;content:counter(list-1,lower-alpha) ". "}.oli.l2::before{counter-increment:list-2;content:counter(list-2,lower-roman) ". "}.oli.l3::before{counter-increment:list-3;content:counter(list-3,decimal) ". "}.oli.l4::before{counter-increment:list-4;content:counter(list-4,lower-alpha) ". "}.oli.block,.oli:first-of-type,.p+.oli{counter-reset:list-0 list-1 list-2 list-3 list-4}.uli::before{content:"\\25CF";display:inline-block;width:16px}.oli+.p,.oli.block,.p+.oli,.p+.uli,.uli+.p,.uli.block{margin-top:.5em}.c{font:var(--sinch-comp-code-tag-font-text);font-size:inherit;line-height:inherit;color:var(--sinch-comp-code-tag-color-default-text-initial);border:1px solid var(--sinch-comp-code-tag-color-default-border-initial);background-color:var(--sinch-comp-code-tag-color-default-background-initial);padding:0 .25em;border-radius:var(--sinch-comp-code-tag-shape-radius)}.l{font:var(--sinch-comp-link-default-font-initial);color:var(--sinch-comp-link-color-default-text-initial);text-decoration:underline}.i{font-style:italic}.b{font-weight:700}.s{text-decoration:line-through}.e{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;width:1em;height:1em;vertical-align:-.2em}#top-wrapper{display:flex;flex-direction:row;align-items:center;gap:8px;padding:4px 4px 0}#top-wrapper.empty{display:none}#bottom-wrapper{display:flex;flex-direction:row;align-items:center;gap:8px;padding:0 4px 4px}#bottom-wrapper.empty{display:none}</style><div id="wrapper"><div id="top-wrapper"><slot id="top" name="top"></slot></div><div id="input-wrapper"><div id="input" contenteditable suppresscontenteditablewarning autocapitalize="false" autocorrect="false" autosave="false" spellcheck="false"></div><div id="placeholder"></div></div><div id="border"></div><div id="bottom-wrapper"><slot id="bottom" name="bottom"></slot></div></div>';
4
- import { createParseVisitor, deleteContentBackward, formatIndent, formatInline, formatList, formatOutdent, getEndRange, getSelectionInfo, handleEmojiMousedown, insertFromPaste, insertLineBreak, insertLink, insertText, isEditorEmpty, isSelectionEqual, serializeMarkdown, setBrowserCaret } from './utils';
5
- const template = document.createElement('template');
6
- template.innerHTML = templateHTML;
7
- const SUPPORTS_SHADOW_SELECTION = typeof window.ShadowRoot.prototype.getSelection === 'function';
8
- defineCustomElement('sinch-rich-textarea', class extends NectaryElement {
9
- #$input;
10
- #$placeholder;
11
- #controller = null;
12
- #sh;
13
- #pendingRangePolyfill = false;
14
- #$bottomSlot;
15
- #$bottomWrapper;
16
- #$topSlot;
17
- #$topWrapper;
18
- #rangePolyfill = null;
19
- #cachedRange = null;
20
- #lastSelectionInfo = null;
21
- #prevDispatchedValue = null;
22
- #parseVisitor;
23
- constructor() {
24
- super();
25
- const shadowRoot = this.attachShadow({
26
- delegatesFocus: true
27
- });
28
- shadowRoot.appendChild(template.content.cloneNode(true));
29
- this.#sh = shadowRoot;
30
- this.#$input = shadowRoot.querySelector('#input');
31
- this.#$placeholder = shadowRoot.querySelector('#placeholder');
32
- this.#$topSlot = shadowRoot.querySelector('#top');
33
- this.#$topWrapper = shadowRoot.querySelector('#top-wrapper');
34
- this.#$bottomSlot = shadowRoot.querySelector('#bottom');
35
- this.#$bottomWrapper = shadowRoot.querySelector('#bottom-wrapper');
36
- Object.defineProperty(this.#$input, 'ownerDocument', {
37
- value: shadowRoot
38
- });
39
- if (typeof shadowRoot.createElement !== 'function') {
40
- Object.defineProperty(shadowRoot, 'createElement', {
41
- value: document.createElement.bind(shadowRoot.ownerDocument)
42
- });
43
- }
44
- Object.defineProperty(shadowRoot, 'createTextNode', {
45
- value: document.createTextNode.bind(shadowRoot.ownerDocument)
46
- });
47
- Object.defineProperty(shadowRoot, 'createElementNS', {
48
- value: document.createElementNS.bind(shadowRoot.ownerDocument)
49
- });
50
- Object.defineProperty(shadowRoot, 'createDocumentFragment', {
51
- value: document.createDocumentFragment.bind(shadowRoot.ownerDocument)
52
- });
53
- this.#parseVisitor = createParseVisitor(shadowRoot);
54
- }
55
- connectedCallback() {
56
- super.connectedCallback();
57
- this.#controller = new AbortController();
58
- const options = {
59
- signal: this.#controller.signal
60
- };
61
- this.role = 'textbox';
62
- this.ariaMultiLine = 'true';
63
- this.#$input.addEventListener('beforeinput', this.#onBeforeInput, options);
64
- this.#$input.addEventListener('keydown', this.#onKeydown, options);
65
- this.#$input.addEventListener('mousedown', this.#onMouseDown, options);
66
- this.#$input.addEventListener('focus', this.#onInputFocus, options);
67
- this.#$input.addEventListener('blur', this.#onInputBlur, options);
68
- this.#$input.addEventListener('dragstart', this.#onDragStart, options);
69
- this.#$input.addEventListener('cut', this.#onCut, options);
70
- this.#$input.addEventListener('copy', this.#onCopy, options);
71
- this.#$input.addEventListener('paste', this.#onPaste, options);
72
- this.#$bottomSlot.addEventListener('slotchange', this.#onBottomSlotChange, options);
73
- this.#$topSlot.addEventListener('slotchange', this.#onTopSlotChange, options);
74
- this.addEventListener('-change', this.#onChangeReactHandler, options);
75
- this.addEventListener('-focus', this.#onFocusReactHandler, options);
76
- this.addEventListener('-blur', this.#onBlurReactHandler, options);
77
- this.addEventListener('-selection', this.#onSelectionReactHandler, options);
78
- document.addEventListener('selectionchange', this.#onSelectionChange, options);
79
- this.#parseVisitor.updateEmojiBaseUrl(getEmojiBaseUrl(this));
80
- this.#onTopSlotChange();
81
- this.#onBottomSlotChange();
82
- this.#onValueChange(this.value);
83
- this.#cachedRange = getEndRange(this.#$input);
84
- this.#updateEditorEmptyClass();
85
- }
86
- disconnectedCallback() {
87
- super.disconnectedCallback();
88
- this.#controller.abort();
89
- this.#controller = null;
90
- }
91
- static get observedAttributes() {
92
- return ['value', 'placeholder'];
93
- }
94
- attributeChangedCallback(name, oldVal, newVal) {
95
- switch (name) {
96
- case 'value':
97
- {
98
- if (this.isConnected) {
99
- this.#onValueChange(newVal);
100
- }
101
- break;
102
- }
103
- case 'placeholder':
104
- {
105
- this.#$placeholder.textContent = newVal;
106
- updateAttribute(this, 'aria-placeholder', newVal);
107
- break;
108
- }
109
- }
110
- }
111
- set value(value) {
112
- updateAttribute(this, 'value', value);
113
- }
114
- get value() {
115
- return getAttribute(this, 'value', '');
116
- }
117
- set placeholder(value) {
118
- updateAttribute(this, 'placeholder', value);
119
- }
120
- get placeholder() {
121
- return getAttribute(this, 'placeholder');
122
- }
123
- set disabled(isDisabled) {
124
- updateBooleanAttribute(this, 'disabled', isDisabled);
125
- }
126
- get disabled() {
127
- return getBooleanAttribute(this, 'disabled');
128
- }
129
- set rows(value) {
130
- updateAttribute(this, 'rows', value);
131
- }
132
- get rows() {
133
- return getIntegerAttribute(this, 'rows', 0);
134
- }
135
- get focusable() {
136
- return true;
137
- }
138
- focus() {
139
- this.#$input.focus();
140
- }
141
- blur() {
142
- this.#$input.blur();
143
- }
144
- insertText(value) {
145
- const res = this.#handleInput('insertText', this.#getCurrentRange(), value);
146
- this.#handleActionResult(res);
147
- }
148
- insertLink(text, href) {
149
- const res = this.#handleInput('insertLink', this.#getCurrentRange(), text, href);
150
- this.#handleActionResult(res);
151
- }
152
- formatItalic() {
153
- const res = this.#handleInput('formatItalic', this.#getCurrentRange());
154
- this.#handleActionResult(res);
155
- }
156
- formatBold() {
157
- const res = this.#handleInput('formatBold', this.#getCurrentRange());
158
- this.#handleActionResult(res);
159
- }
160
- formatStrikethrough() {
161
- const res = this.#handleInput('formatStrikeThrough', this.#getCurrentRange());
162
- this.#handleActionResult(res);
163
- }
164
- formatCodeTag() {
165
- const res = this.#handleInput('formatCodeTag', this.#getCurrentRange());
166
- this.#handleActionResult(res);
167
- }
168
- formatOrderedList() {
169
- const res = formatList(true, this.#getCurrentRange());
170
- this.#handleActionResult(res);
171
- }
172
- formatUnorderedList() {
173
- const res = formatList(false, this.#getCurrentRange());
174
- this.#handleActionResult(res);
175
- }
176
- #getSelectionRange() {
177
- if (SUPPORTS_SHADOW_SELECTION) {
178
- const selection = this.#sh.getSelection();
179
- if (selection === null || selection.rangeCount === 0) {
180
- return null;
181
- }
182
- return selection.getRangeAt(0);
183
- }
184
- {
185
- const selection = document.getSelection();
186
- if (selection === null || selection.rangeCount === 0) {
187
- return null;
188
- }
189
- const range = selection.getRangeAt(0);
190
- if (this.#$input.contains(range.startContainer)) {
191
- return range;
192
- }
193
- }
194
- this.#pendingRangePolyfill = true;
195
- this.#rangePolyfill = null;
196
- document.execCommand('indent');
197
- this.#pendingRangePolyfill = false;
198
- return this.#rangePolyfill;
199
- }
200
- #onMouseDown = e => {
201
- this.#handleActionResult(handleEmojiMousedown(e.target));
202
- };
203
- #onKeydown = e => {
204
- if (e.shiftKey) {
205
- switch (e.key) {
206
- case 'Tab':
207
- {
208
- const res = this.#handleInput('formatOutdent', this.#getSelectionRange());
209
- if (res.prevent) {
210
- e.preventDefault();
211
- }
212
- this.#handleActionResult(res);
213
- break;
214
- }
215
- }
216
- } else {
217
- switch (e.key) {
218
- case 'Tab':
219
- {
220
- const res = this.#handleInput('formatIndent', this.#getSelectionRange());
221
- if (res.prevent) {
222
- e.preventDefault();
223
- }
224
- this.#handleActionResult(res);
225
- break;
226
- }
227
- }
228
- }
229
- if (e.metaKey || e.ctrlKey) {
230
- switch (e.key) {
231
- case 'b':
232
- {
233
- const res = this.#handleInput('formatBold', this.#getSelectionRange());
234
- if (res.prevent) {
235
- e.preventDefault();
236
- }
237
- this.#handleActionResult(res);
238
- break;
239
- }
240
- case 'i':
241
- {
242
- const res = this.#handleInput('formatItalic', this.#getSelectionRange());
243
- if (res.prevent) {
244
- e.preventDefault();
245
- }
246
- this.#handleActionResult(res);
247
- break;
248
- }
249
- }
250
- if (e.shiftKey) {
251
- switch (e.key) {
252
- case 'x':
253
- {
254
- const res = this.#handleInput('formatStrikeThrough', this.#getSelectionRange());
255
- if (res.prevent) {
256
- e.preventDefault();
257
- }
258
- this.#handleActionResult(res);
259
- break;
260
- }
261
- case 'c':
262
- {
263
- const res = this.#handleInput('formatCodeTag', this.#getSelectionRange());
264
- if (res.prevent) {
265
- e.preventDefault();
266
- }
267
- this.#handleActionResult(res);
268
- break;
269
- }
270
- }
271
- }
272
- }
273
- };
274
- #onBeforeInput = e => {
275
- const [range] = e.getTargetRanges();
276
- if (this.#pendingRangePolyfill) {
277
- this.#pendingRangePolyfill = false;
278
- this.#rangePolyfill = range;
279
- e.preventDefault();
280
- e.stopImmediatePropagation();
281
- return;
282
- }
283
- const handleResult = this.#handleInput(e.inputType, range, e.data);
284
- if (handleResult.prevent) {
285
- e.preventDefault();
286
- }
287
- this.#handleActionResult(handleResult);
288
- };
289
- #handleInput(inputType, range, text, href) {
290
- if (range === null) {
291
- return {
292
- prevent: true,
293
- range: null
294
- };
295
- }
296
- switch (inputType) {
297
- case 'deleteContent':
298
- case 'deleteContentForward':
299
- case 'deleteWordForward':
300
- case 'deleteContentBackward':
301
- case 'deleteWordBackward':
302
- {
303
- return deleteContentBackward(this.#$input, range);
304
- }
305
- case 'insertLineBreak':
306
- case 'insertParagraph':
307
- {
308
- return insertLineBreak(range);
309
- }
310
- case 'insertReplacementText':
311
- case 'insertText':
312
- {
313
- return insertText(this.#$input, text, range);
314
- }
315
- case 'insertLink':
316
- {
317
- return insertLink(this.#$input, text, href, range);
318
- }
319
- case 'formatItalic':
320
- case 'formatBold':
321
- case 'formatStrikeThrough':
322
- case 'formatCodeTag':
323
- {
324
- return formatInline(inputType, range);
325
- }
326
- case 'formatIndent':
327
- {
328
- return formatIndent(range);
329
- }
330
- case 'formatOutdent':
331
- {
332
- return formatOutdent(range);
333
- }
334
- default:
335
- {
336
- return {
337
- prevent: true,
338
- range: null
339
- };
340
- }
341
- }
342
- }
343
- #handleActionResult(result) {
344
- if (result.prevent) {
345
- this.#cachedRange = result.range;
346
- if (result.range !== null) {
347
- setBrowserCaret(result.range);
348
- }
349
- }
350
- this.#updateEditorEmptyClass();
351
- }
352
- #onInputFocus = () => {
353
- if (this.#cachedRange !== null) {
354
- setBrowserCaret(this.#cachedRange);
355
- }
356
- this.dispatchEvent(new CustomEvent('-focus'));
357
- };
358
- #onInputBlur = () => {
359
- this.dispatchEvent(new CustomEvent('-blur'));
360
- this.#dispatchChangeEvent();
361
- };
362
- #dispatchChangeEvent() {
363
- const value = serializeMarkdown(this.#$input, null);
364
- this.#prevDispatchedValue = value;
365
- if (value !== this.value) {
366
- this.dispatchEvent(new CustomEvent('-change', {
367
- detail: value
368
- }));
369
- }
370
- }
371
- #getCurrentRange = () => {
372
- if (isElementFocused(this.#$input)) {
373
- this.#cachedRange = this.#getSelectionRange();
374
- }
375
- if (this.#cachedRange === null) {
376
- this.#cachedRange = getEndRange(this.#$input);
377
- }
378
- return this.#cachedRange;
379
- };
380
- #onSelectionChange = () => {
381
- if (isElementFocused(this.#$input)) {
382
- this.#cachedRange = this.#getSelectionRange();
383
- }
384
- if (this.#cachedRange === null) {
385
- return;
386
- }
387
- const selectionInfo = getSelectionInfo(this.#cachedRange);
388
- if (!isSelectionEqual(this.#lastSelectionInfo, selectionInfo)) {
389
- this.#lastSelectionInfo = selectionInfo;
390
- this.dispatchEvent(new CustomEvent('-selection', {
391
- detail: selectionInfo
392
- }));
393
- }
394
- };
395
- #onValueChange(value) {
396
- if (value === this.#prevDispatchedValue) {
397
- return;
398
- }
399
- if (value === null || value.length === 0) {
400
- this.#$input.innerHTML = '';
401
- this.#cachedRange = getEndRange(this.#$input);
402
- this.#prevDispatchedValue = value;
403
- this.#updateEditorEmptyClass();
404
- return;
405
- }
406
- this.#cachedRange = null;
407
- this.#prevDispatchedValue = value;
408
- this.#$input.replaceChildren(parseMarkdown(value, this.#parseVisitor.createVisitor()));
409
- this.#updateEditorEmptyClass();
410
- }
411
- #onCopy = e => {
412
- e.preventDefault();
413
- if (this.#cachedRange === null) {
414
- return;
415
- }
416
- if (e.clipboardData != null) {
417
- e.clipboardData.setData('text/plain', serializeMarkdown(this.#$input, this.#cachedRange));
418
- }
419
- };
420
- #onCut = e => {
421
- e.preventDefault();
422
- if (this.#cachedRange === null) {
423
- return;
424
- }
425
- if (e.clipboardData != null) {
426
- e.clipboardData.setData('text/plain', serializeMarkdown(this.#$input, this.#cachedRange));
427
- }
428
- this.#handleActionResult(deleteContentBackward(this.#$input, this.#cachedRange));
429
- };
430
- #onPaste = e => {
431
- e.preventDefault();
432
- const pasteValue = e.clipboardData?.getData('text/plain') ?? '';
433
- if (pasteValue.length === 0 || this.#cachedRange === null) {
434
- return;
435
- }
436
- this.#handleActionResult(insertFromPaste(pasteValue, this.#cachedRange, this.#parseVisitor.createVisitor()));
437
- };
438
- #updateEditorEmptyClass() {
439
- setClass(this.#$input, 'empty', isEditorEmpty(this.#$input));
440
- }
441
- #onBottomSlotChange = () => {
442
- const isEmpty = this.#$bottomSlot.assignedElements().length === 0;
443
- setClass(this.#$bottomWrapper, 'empty', isEmpty);
444
- };
445
- #onTopSlotChange = () => {
446
- const isEmpty = this.#$topSlot.assignedElements().length === 0;
447
- setClass(this.#$topWrapper, 'empty', isEmpty);
448
- };
449
- #onDragStart = e => {
450
- e.preventDefault();
451
- };
452
- #onChangeReactHandler = e => {
453
- getReactEventHandler(this, 'on-change')?.(e);
454
- };
455
- #onFocusReactHandler = () => {
456
- getReactEventHandler(this, 'on-focus')?.();
457
- };
458
- #onBlurReactHandler = () => {
459
- getReactEventHandler(this, 'on-blur')?.();
460
- };
461
- #onSelectionReactHandler = e => {
462
- getReactEventHandler(this, 'on-selection')?.(e);
463
- };
464
- });
@@ -1,48 +0,0 @@
1
- import type { TSinchElementReact } from '../types';
2
- export type TRichTextareaSelection = {
3
- italic: boolean;
4
- bold: boolean;
5
- strikethrough: boolean;
6
- codetag: boolean;
7
- link: boolean;
8
- ulist: boolean;
9
- olist: boolean;
10
- };
11
- export type TSinchRichTextareaElement = HTMLElement & {
12
- /** Value */
13
- value: string;
14
- /** Text that appears in the text field when it has no value set */
15
- placeholder: string | null;
16
- insertText(value: string): void;
17
- insertLink(text: string, href: string): void;
18
- formatItalic(): void;
19
- formatBold(): void;
20
- formatStrikethrough(): void;
21
- formatCodeTag(): void;
22
- formatOrderedList(): void;
23
- formatUnorderedList(): void;
24
- /** Change value event */
25
- addEventListener(type: '-change', listener: (e: CustomEvent<string>) => void): void;
26
- /** Focus event */
27
- addEventListener(type: '-focus', listener: (e: CustomEvent<void>) => void): void;
28
- /** Blur event */
29
- addEventListener(type: '-blur', listener: (e: CustomEvent<void>) => void): void;
30
- addEventListener(type: '-selection', listener: (e: CustomEvent<TRichTextareaSelection>) => void): void;
31
- /** Value */
32
- setAttribute(name: 'value', value: string): void;
33
- /** Text that appears in the text field when it has no value set */
34
- setAttribute(name: 'placeholder', value: string): void;
35
- };
36
- export type TSinchRichTextareaReact = TSinchElementReact<TSinchRichTextareaElement> & {
37
- /** Value */
38
- value: string;
39
- /** Text that appears in the text field when it has no value set */
40
- placeholder?: string;
41
- 'aria-label': string;
42
- /** Change value handler */
43
- 'on-change'?: (e: CustomEvent<string>) => void;
44
- /** Focus handler */
45
- 'on-focus'?: (e: CustomEvent<void>) => void;
46
- /** Blur handler */
47
- 'on-blur'?: (e: CustomEvent<void>) => void;
48
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,39 +0,0 @@
1
- import type { TRichTextareaSelection } from './types';
2
- import type { TMarkdownParseVisitor } from '../utils';
3
- export interface TRichTextareaRoot extends HTMLElement {
4
- nodeName: 'DIV';
5
- }
6
- export type TRange = {
7
- endContainer: Node;
8
- endOffset: number;
9
- startContainer: Node;
10
- startOffset: number;
11
- };
12
- export type TRichTextareaFormatInputType = 'formatItalic' | 'formatBold' | 'formatStrikeThrough' | 'formatCodeTag';
13
- export declare const formatInline: (formatType: TRichTextareaFormatInputType, range: TRange) => TActionResult;
14
- export declare const formatIndent: (range: TRange) => TActionResult;
15
- export declare const formatOutdent: (range: TRange) => TActionResult;
16
- export declare const formatList: (isOrdered: boolean, range: TRange) => TActionResult;
17
- export type TActionResult = {
18
- prevent: false;
19
- } | {
20
- range: TRange | null;
21
- prevent: true;
22
- };
23
- export declare const deleteContentBackward: ($root: TRichTextareaRoot, range: TRange) => TActionResult;
24
- export declare const insertLink: ($root: TRichTextareaRoot, text: string, href: string, range: TRange) => TActionResult;
25
- export declare const insertLineBreak: (range: TRange) => TActionResult;
26
- export declare const insertText: ($root: TRichTextareaRoot, data: string | null, range: TRange) => TActionResult;
27
- export declare const insertFromPaste: (data: string, range: Readonly<TRange>, visitor: TMarkdownParseVisitor) => TActionResult;
28
- export declare const handleEmojiMousedown: ($n: Node) => TActionResult;
29
- export declare const getBeginRange: ($root: TRichTextareaRoot) => TRange;
30
- export declare const getEndRange: ($root: TRichTextareaRoot) => TRange;
31
- export declare const getSelectionInfo: (range: TRange) => TRichTextareaSelection;
32
- export declare const isSelectionEqual: (a: TRichTextareaSelection | null, b: TRichTextareaSelection | null) => boolean;
33
- export declare const isEditorEmpty: ($root: TRichTextareaRoot) => boolean;
34
- export declare const serializeMarkdown: ($root: TRichTextareaRoot, range: Readonly<TRange> | null) => string;
35
- export declare const createParseVisitor: (doc: Document) => {
36
- updateEmojiBaseUrl(url: string | null): void;
37
- createVisitor(): TMarkdownParseVisitor;
38
- };
39
- export declare const setBrowserCaret: ({ startContainer, startOffset, endContainer, endOffset }: TRange) => void;