@ioca/react 1.5.11 → 1.5.13

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 (47) hide show
  1. package/lib/cjs/components/affix/affix.js +38 -29
  2. package/lib/cjs/components/affix/affix.js.map +1 -1
  3. package/lib/cjs/components/affix/totop.js +1 -1
  4. package/lib/cjs/components/affix/totop.js.map +1 -1
  5. package/lib/cjs/components/editor/editor.js +5 -0
  6. package/lib/cjs/components/editor/editor.js.map +1 -1
  7. package/lib/cjs/components/editor/memtion.js +45 -3
  8. package/lib/cjs/components/editor/memtion.js.map +1 -1
  9. package/lib/cjs/components/list/list.js +3 -3
  10. package/lib/cjs/components/list/list.js.map +1 -1
  11. package/lib/cjs/components/picker/colors/index.js +7 -3
  12. package/lib/cjs/components/picker/colors/index.js.map +1 -1
  13. package/lib/cjs/components/progress/circle.js +3 -3
  14. package/lib/cjs/components/progress/circle.js.map +1 -1
  15. package/lib/cjs/components/tabs/navs.js.map +1 -1
  16. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  17. package/lib/cjs/components/upload/upload.js +8 -2
  18. package/lib/cjs/components/upload/upload.js.map +1 -1
  19. package/lib/css/index.css +1 -1
  20. package/lib/css/index.css.map +1 -1
  21. package/lib/es/components/affix/affix.js +39 -30
  22. package/lib/es/components/affix/affix.js.map +1 -1
  23. package/lib/es/components/affix/totop.js +1 -1
  24. package/lib/es/components/affix/totop.js.map +1 -1
  25. package/lib/es/components/editor/editor.js +5 -0
  26. package/lib/es/components/editor/editor.js.map +1 -1
  27. package/lib/es/components/editor/memtion.js +46 -4
  28. package/lib/es/components/editor/memtion.js.map +1 -1
  29. package/lib/es/components/list/list.js +4 -4
  30. package/lib/es/components/list/list.js.map +1 -1
  31. package/lib/es/components/picker/colors/index.js +6 -3
  32. package/lib/es/components/picker/colors/index.js.map +1 -1
  33. package/lib/es/components/progress/circle.js +3 -3
  34. package/lib/es/components/progress/circle.js.map +1 -1
  35. package/lib/es/components/tabs/navs.js.map +1 -1
  36. package/lib/es/components/tabs/tabs.js.map +1 -1
  37. package/lib/es/components/upload/upload.js +8 -2
  38. package/lib/es/components/upload/upload.js.map +1 -1
  39. package/lib/index.js +106 -44
  40. package/lib/types/components/affix/totop.d.ts +7 -2
  41. package/lib/types/components/affix/type.d.ts +1 -1
  42. package/lib/types/components/list/item.d.ts +6 -0
  43. package/lib/types/components/list/list.d.ts +3 -5
  44. package/lib/types/components/picker/type.d.ts +4 -1
  45. package/lib/types/components/tabs/type.d.ts +1 -1
  46. package/lib/types/components/upload/type.d.ts +1 -0
  47. package/package.json +97 -97
@@ -1 +1 @@
1
- {"version":3,"sources":["index.css","ripple.css","input.css"],"names":[],"mappings":"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","file":"index.css","sourcesContent":[".i-input-label-file {\n display: flex;\n width: unset;\n &:has(.i-upload-list:empty) {\n align-items: center;\n }\n}\n.i-input-file-hidden {\n display: none;\n}\n.i-upload-inner {\n flex: 1 1 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5em;\n}\n.i-upload-card {\n &:has(.i-upload-list:not(:empty)) {\n align-self: flex-start;\n }\n .i-upload-list {\n display: contents;\n }\n}\n.i-upload-list {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n gap: inherit;\n user-select: none;\n &:empty {\n display: none;\n }\n}\n.i-upload-delete {\n opacity: 0;\n margin: 0;\n z-index: 1;\n right: -0.825em;\n top: -0.825em;\n box-shadow: var(--shadow);\n}\n.i-upload-btn {\n align-self: center;\n}\n.i-upload-card-btn {\n border-style: dashed;\n width: var(--upload-card-size);\n height: var(--upload-card-size);\n opacity: 0.6;\n font-size: 1em;\n background: var(--background-opacity);\n &:hover {\n opacity: 1;\n }\n}\n.i-upload-item {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 0.25em;\n padding: 0.25em 0.4em;\n border: 2px solid var(--background-opacity-1);\n border-radius: var(--radius);\n background: var(--background-opacity);\n transition: var(--transition);\n font-size: 0.8em;\n .i-upload-delete {\n position: absolute;\n background-color: var(--error);\n color: #fff;\n &:hover {\n background-color: var(--error);\n color: #fff;\n }\n }\n &:hover {\n background-color: var(--background-opacity-1);\n .i-upload-delete {\n opacity: 1;\n }\n }\n}\n.i-upload-item-card {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.25em;\n /* width: var(--upload-card-size); */\n height: var(--upload-card-size);\n border-radius: var(--radius);\n background: var(--background-opacity);\n cursor: pointer;\n .i-image,\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .i-upload-file-name {\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 0.8em;\n }\n .i-upload-delete {\n font-size: 0.72em;\n position: absolute;\n background-color: var(--error);\n color: #fff;\n &:hover {\n background-color: var(--error);\n color: #fff;\n }\n }\n &:hover {\n .i-upload-delete {\n opacity: 1;\n }\n .i-upload-tip {\n opacity: 1;\n }\n }\n}\n.i-upload-size {\n font-size: 0.8em;\n color: var(--color-6);\n}\n.i-upload-item-dragged {\n z-index: 1000;\n}\n\n.i-upload-tip {\n position: absolute;\n left: 50%;\n top: 100%;\n transform: translate(-50%, 0.5em);\n z-index: 1;\n background: var(--background-opacity);\n border-radius: var(--radius);\n backdrop-filter: var(--blur);\n box-shadow: var(--shadow);\n font-size: 0.86em;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.12s;\n white-space: pre;\n}\n\n.i-upload-dropbox {\n width: 100%;\n border: 2px dashed var(--color-5);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5em;\n cursor: pointer;\n transition: var(--transition);\n color: var(--color-5);\n padding: 1em;\n\n &:hover {\n border-color: var(--color-main);\n color: var(--color-main);\n }\n}\n.i-upload-dropbox-active {\n border-color: var(--color-main);\n background: var(--background-opacity-1);\n color: var(--color-main);\n}\n",".i-ripple-container {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n border-radius: inherit;\n contain: strict;\n .i-ripple {\n position: absolute;\n background: var(--color);\n opacity: 0.15;\n transform: translate(-50%, -50%) scale(0.25);\n transform-origin: 50%;\n border-radius: 50%;\n }\n .i-ripple-active {\n opacity: 0;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n",".i-input-label {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n align-content: flex-start;\n gap: 0.5em;\n width: 100%;\n max-width: 100%;\n border-radius: var(--radius);\n\n &:has(.i-input-success) {\n --color: var(--green);\n }\n\n &:has(.i-input-warning) {\n --color: var(--yellow);\n }\n\n &:has(.i-input-error) {\n --color: var(--error);\n }\n}\n\n.i-input-inline {\n flex-wrap: nowrap;\n\n .i-input-item,\n .i-upload-inner,\n .i-radio-options {\n flex: 1 1 auto;\n }\n\n .i-input-message {\n position: absolute;\n right: 12%;\n top: -0.8em;\n padding: 0.2em 0.5em;\n background: var(--background-opacity);\n backdrop-filter: var(--blur);\n }\n}\n\n.i-input-label-text {\n flex: 0 0 var(--label-width);\n text-align: var(--label-align);\n border-radius: inherit;\n font-weight: 500;\n transition: all 0.12s;\n}\n\n.i-input-item {\n --input-border-width: 2px;\n --invert-input-border-width: calc(var(--input-border-width) * -1);\n flex: 1 1 100%;\n display: flex;\n align-items: baseline;\n transition: var(--transition);\n border-radius: inherit;\n border: var(--input-border-width) solid var(--background-opacity-2);\n max-width: 100%;\n\n .i-btn {\n align-self: stretch;\n }\n\n &:hover,\n &:focus-within,\n &.i-input-focus {\n border-color: var(--color-8);\n background-color: transparent;\n }\n\n &.i-input-success {\n border-color: var(--green-0);\n }\n\n &.i-input-warning {\n border-color: var(--yellow-0);\n }\n\n &.i-input-error {\n border-color: var(--error-0);\n }\n}\n\n.i-input-borderless {\n border-color: transparent;\n background: var(--background-opacity-2);\n}\n\n.i-input-underline {\n border-width: 0 0 var(--input-border-width) 0;\n border-radius: 0;\n border-color: var(--background-opacity-2);\n background: transparent;\n}\n\n.i-input {\n padding: var(--padding);\n flex: 1;\n width: 100%;\n color: inherit;\n outline: none;\n transition: var(--transition);\n background: transparent;\n border-radius: inherit;\n text-align: inherit;\n\n &[type=\"number\"]::-webkit-inner-spin-button,\n &[type=\"number\"]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n\n &[readonly] {\n caret-color: transparent;\n }\n\n &[type=\"password\"] {\n font-family: math;\n }\n\n &:disabled {\n background: var(--background-opacity-1);\n cursor: not-allowed;\n }\n}\n\n.i-input-message {\n --color: var(--color-5);\n flex: 1 1 auto;\n align-self: center;\n z-index: 1;\n font-size: 0.8em;\n color: var(--color);\n border-radius: var(--radius);\n pointer-events: none;\n}\n\n.i-input-success {\n --color: var(--green);\n}\n\n.i-input-warning {\n --color: var(--yellow);\n}\n\n.i-input-error {\n --color: var(--error);\n}\n\n.i-textarea {\n display: block;\n transition:\n var(--transition),\n width 0s,\n height 0s;\n max-width: 100%;\n min-height: 2.14em;\n}\n\n.i-input-prepend,\n.i-input-append {\n margin: var(--invert-input-border-width);\n display: flex;\n align-self: stretch;\n place-items: center;\n\n .i-btn {\n border-radius: inherit;\n height: unset;\n }\n}\n\n.i-input-prepend {\n margin-right: 0;\n border-top-left-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.i-input-append {\n margin-left: 0;\n border-top-right-radius: inherit;\n border-bottom-right-radius: inherit;\n}\n\n.i-options-block {\n & > .i-checkbox-item,\n & > .i-radio-item {\n flex: 1 1 100%;\n }\n}\n\n.i-input-number {\n text-align: center;\n padding: var(--padding);\n padding-inline: 0;\n}\n"]}
1
+ {"version":3,"sources":["index.css","ripple.css","input.css"],"names":[],"mappings":"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","file":"index.css","sourcesContent":[".i-input-label-file {\n display: flex;\n width: unset;\n &:has(.i-upload-list:empty) {\n align-items: center;\n }\n}\n.i-input-file-hidden {\n display: none;\n}\n.i-upload-inner {\n flex: 1 1 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5em;\n}\n.i-upload-card {\n &:has(.i-upload-list:not(:empty)) {\n align-self: flex-start;\n }\n .i-upload-list {\n display: contents;\n }\n}\n.i-upload-list {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n gap: inherit;\n user-select: none;\n &:empty {\n display: none;\n }\n}\n.i-upload-delete {\n opacity: 0;\n margin: 0;\n z-index: 1;\n right: -0.825em;\n top: -0.825em;\n box-shadow: var(--shadow);\n}\n.i-upload-btn {\n align-self: center;\n}\n.i-upload-card-btn {\n border-style: dashed;\n width: var(--upload-card-size);\n height: var(--upload-card-size);\n opacity: 0.6;\n font-size: 1em;\n background: var(--background-opacity);\n &:hover {\n opacity: 1;\n }\n}\n.i-upload-item {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 0.25em;\n padding: 0.25em 0.4em;\n border: 2px solid var(--background-opacity-1);\n border-radius: var(--radius);\n background: var(--background-opacity);\n transition: var(--transition);\n font-size: 0.8em;\n .i-upload-delete {\n position: absolute;\n background-color: var(--error);\n color: #fff;\n &:hover {\n background-color: var(--error);\n color: #fff;\n }\n }\n &:hover {\n background-color: var(--background-opacity-1);\n .i-upload-delete {\n opacity: 1;\n }\n }\n}\n.i-upload-item-card {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.25em;\n /* width: var(--upload-card-size); */\n height: var(--upload-card-size);\n border-radius: var(--radius);\n background: var(--background-opacity);\n cursor: pointer;\n .i-image,\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .i-upload-file-name {\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 0.8em;\n }\n .i-upload-delete {\n font-size: 0.72em;\n position: absolute;\n background-color: var(--error);\n color: #fff;\n &:hover {\n background-color: var(--error);\n color: #fff;\n }\n }\n &:hover {\n .i-upload-delete {\n opacity: 1;\n }\n .i-upload-tip {\n opacity: 1;\n }\n }\n}\n.i-upload-size {\n font-size: 0.8em;\n color: var(--color-6);\n}\n.i-upload-item-dragged {\n z-index: 1000;\n}\n\n.i-upload-tip {\n position: absolute;\n left: 50%;\n top: 100%;\n transform: translate(-50%, 0.5em);\n z-index: 1;\n background: var(--background-opacity);\n border-radius: var(--radius);\n backdrop-filter: var(--blur);\n box-shadow: var(--shadow);\n font-size: 0.86em;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.12s;\n white-space: pre;\n}\n\n.i-upload-dropbox {\n width: 100%;\n border: 2px dashed var(--color-5);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5em;\n cursor: pointer;\n transition: var(--transition);\n color: var(--color-5);\n padding: 1em;\n\n &:hover {\n border-color: var(--color-main);\n color: var(--color-main);\n }\n}\n.i-upload-dropbox-active {\n border-color: var(--color-main);\n background: var(--background-opacity-1);\n color: var(--color-main);\n}\n",".i-ripple-container {\n position: absolute;\n inset: 0;\n overflow: hidden;\n pointer-events: none;\n border-radius: inherit;\n contain: strict;\n .i-ripple {\n position: absolute;\n background: var(--color);\n opacity: 0.15;\n transform: translate(-50%, -50%) scale(0.25);\n transform-origin: 50%;\n border-radius: 50%;\n }\n .i-ripple-active {\n opacity: 0;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n",".i-input-label {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n align-content: flex-start;\n gap: 0.5em;\n width: 100%;\n max-width: 100%;\n border-radius: var(--radius);\n\n &:has(.i-input-success) {\n --color: var(--green);\n }\n\n &:has(.i-input-warning) {\n --color: var(--yellow);\n }\n\n &:has(.i-input-error) {\n --color: var(--error);\n }\n}\n\n.i-input-inline {\n flex-wrap: nowrap;\n\n .i-input-item,\n .i-upload-inner,\n .i-radio-options {\n flex: 1 1 auto;\n }\n\n .i-input-message {\n position: absolute;\n right: 12%;\n top: -0.8em;\n padding: 0.2em 0.5em;\n background: var(--background-opacity);\n backdrop-filter: var(--blur);\n }\n}\n\n.i-input-label-text {\n flex: 0 0 var(--label-width);\n text-align: var(--label-align);\n border-radius: inherit;\n font-weight: 500;\n transition: all 0.12s;\n}\n\n.i-input-item {\n --input-border-width: 2px;\n --invert-input-border-width: calc(var(--input-border-width) * -1);\n flex: 1 1 100%;\n display: flex;\n align-items: baseline;\n transition: var(--transition);\n border-radius: inherit;\n border: var(--input-border-width) solid var(--background-opacity-2);\n max-width: 100%;\n\n .i-btn {\n align-self: stretch;\n }\n\n &:hover,\n &:focus-within,\n &.i-input-focus {\n border-color: var(--color-8);\n background-color: transparent;\n }\n\n &.i-input-success {\n border-color: var(--green-0);\n }\n\n &.i-input-warning {\n border-color: var(--yellow-0);\n }\n\n &.i-input-error {\n border-color: var(--error-0);\n }\n}\n\n.i-input-borderless {\n border-color: transparent;\n background: var(--background-opacity-2);\n}\n\n.i-input-underline {\n border-width: 0 0 var(--input-border-width) 0;\n border-radius: 0;\n border-color: var(--background-opacity-2);\n background: transparent;\n}\n\n.i-input {\n padding: var(--padding);\n flex: 1;\n width: 100%;\n color: inherit;\n outline: none;\n transition: var(--transition);\n background: transparent;\n border-radius: inherit;\n text-align: inherit;\n\n &[type=\"number\"]::-webkit-inner-spin-button,\n &[type=\"number\"]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n\n &[readonly] {\n caret-color: transparent;\n }\n\n &[type=\"password\"] {\n font-family: math;\n }\n\n &:disabled {\n background: var(--background-opacity-1);\n cursor: not-allowed;\n }\n}\n\n.i-input-message {\n --color: var(--color-5);\n flex: 1 1 auto;\n align-self: center;\n z-index: 1;\n font-size: 0.8em;\n color: var(--color);\n border-radius: var(--radius);\n pointer-events: none;\n}\n\n.i-input-success {\n --color: var(--green);\n}\n\n.i-input-warning {\n --color: var(--yellow);\n}\n\n.i-input-error {\n --color: var(--error);\n}\n\n.i-textarea {\n display: block;\n transition:\n var(--transition),\n width 0s,\n height 0s;\n max-width: 100%;\n min-height: 2.14em;\n}\n\n.i-input-prepend,\n.i-input-append {\n margin: var(--invert-input-border-width);\n display: flex;\n align-self: stretch;\n place-items: center;\n\n .i-btn {\n border-radius: inherit;\n height: unset;\n }\n}\n\n.i-input-prepend {\n margin-right: 0;\n border-top-left-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n\n.i-input-append {\n margin-left: 0;\n border-top-right-radius: inherit;\n border-bottom-right-radius: inherit;\n}\n\n.i-options-block {\n & > .i-checkbox-item,\n & > .i-radio-item {\n flex: 1 1 100%;\n }\n}\n\n.i-input-number {\n text-align: center;\n padding: var(--padding);\n padding-inline: 0;\n}\n"]}
@@ -1,53 +1,62 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import classNames from 'classnames';
3
3
  import { debounce } from 'radash';
4
- import { useState, useMemo, Children, cloneElement, useEffect } from 'react';
4
+ import { useState, useRef, useMemo, Children, cloneElement, useEffect } from 'react';
5
5
  import ToTop from './totop.js';
6
6
 
7
+ const defaultGetContainer = () => {
8
+ if (typeof window === "undefined")
9
+ return null;
10
+ return window;
11
+ };
7
12
  const Affix = (props) => {
8
- const { position = "fixed", left, top, right, bottom, offset, style, className, children, getContainer = () => {
9
- if (typeof document === "undefined")
10
- return null;
11
- return document.body;
12
- }, } = props;
13
- const [hidden, setHidden] = useState(false);
13
+ const { position = "fixed", left, top, right, bottom, offset, style, className, children, getContainer = defaultGetContainer, } = props;
14
+ const [hidden, setHidden] = useState(() => {
15
+ if (!offset)
16
+ return false;
17
+ if (typeof window === "undefined")
18
+ return false;
19
+ return (window.scrollY ?? 0) < offset;
20
+ });
21
+ const getContainerRef = useRef(getContainer);
22
+ getContainerRef.current = getContainer;
14
23
  const hijackChildren = useMemo(() => {
15
24
  return Children.map(children, (node) => {
16
- if (node.type === ToTop) {
17
- const { onClick } = node.props;
18
- return cloneElement(node, {
19
- key: node.key,
20
- ...node.props,
21
- onClick: (e) => {
22
- const container = getContainer();
23
- onClick?.(e);
24
- container?.scrollTo({
25
- top: 0,
26
- left: 0,
27
- behavior: "smooth",
28
- });
29
- },
30
- });
31
- }
32
- return node;
25
+ if (node.type !== ToTop)
26
+ return node;
27
+ const { onClick } = node.props;
28
+ return cloneElement(node, {
29
+ onClick: (e) => {
30
+ const container = getContainerRef.current();
31
+ onClick?.(e);
32
+ container?.scrollTo({
33
+ top: 0,
34
+ left: 0,
35
+ behavior: "smooth",
36
+ });
37
+ },
38
+ });
33
39
  });
34
- }, [children, getContainer]);
40
+ }, [children]);
35
41
  useEffect(() => {
36
- const container = getContainer();
42
+ const container = getContainerRef.current();
37
43
  if (!offset || !container)
38
44
  return;
45
+ const getScrollTop = () => container instanceof Window
46
+ ? container.scrollY
47
+ : container.scrollTop;
39
48
  const listener = debounce({ delay: 160 }, () => {
40
- const top = container.scrollTop;
41
- setHidden(top < offset);
49
+ setHidden(getScrollTop() < offset);
42
50
  });
43
51
  listener();
44
52
  container.addEventListener("scroll", listener);
45
53
  return () => {
54
+ listener.cancel();
46
55
  container.removeEventListener("scroll", listener);
47
56
  };
48
- }, [offset, getContainer]);
57
+ }, [offset]);
49
58
  return (jsx("div", { className: classNames("i-affix", className, {
50
- "i-affix-hidden": hidden,
59
+ "i-affix-visible": !hidden,
51
60
  }), style: {
52
61
  ...style,
53
62
  position,
@@ -1 +1 @@
1
- {"version":3,"file":"affix.js","sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst Affix = (props: IAffix) => {\n\tconst {\n\t\tposition = \"fixed\",\n\t\tleft,\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\toffset,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t\tgetContainer = () => {\n\t\t\tif (typeof document === \"undefined\") return null;\n\t\t\treturn document.body;\n\t\t},\n\t} = props;\n\n\tconst [hidden, setHidden] = useState<boolean>(false);\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node: any) => {\n\t\t\tif (node.type === ToTop) {\n\t\t\t\tconst { onClick } = node.props;\n\n\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\tkey: node.key,\n\t\t\t\t\t...node.props,\n\t\t\t\t\tonClick: (e: MouseEvent) => {\n\t\t\t\t\t\tconst container = getContainer();\n\n\t\t\t\t\t\tonClick?.(e);\n\t\t\t\t\t\tcontainer?.scrollTo({\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn node;\n\t\t});\n\t}, [children, getContainer]);\n\n\tuseEffect(() => {\n\t\tconst container = getContainer();\n\t\tif (!offset || !container) return;\n\n\t\tconst listener = debounce({ delay: 160 }, () => {\n\t\t\tconst top = container.scrollTop;\n\n\t\t\tsetHidden(top < offset);\n\t\t});\n\n\t\tlistener();\n\t\tcontainer.addEventListener(\"scroll\", listener);\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener(\"scroll\", listener);\n\t\t};\n\t}, [offset, getContainer]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-affix\", className, {\n\t\t\t\t\"i-affix-hidden\": hidden,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tposition,\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t}}\n\t\t>\n\t\t\t{hijackChildren}\n\t\t</div>\n\t);\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"names":["_jsx"],"mappings":";;;;;;AAcA,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;IAC/B,MAAM,EACL,QAAQ,GAAG,OAAO,EAClB,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,MAAK;QACnB,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,IAAI;QAChD,OAAO,QAAQ,CAAC,IAAI;IACrB,CAAC,GACD,GAAG,KAAK;IAET,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;AAEpD,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;QACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAS,KAAI;AAC3C,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACxB,gBAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK;gBAE9B,OAAO,YAAY,CAAC,IAAI,EAAE;oBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,IAAI,CAAC,KAAK;AACb,oBAAA,OAAO,EAAE,CAAC,CAAa,KAAI;AAC1B,wBAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,wBAAA,OAAO,GAAG,CAAC,CAAC;wBACZ,SAAS,EAAE,QAAQ,CAAC;AACnB,4BAAA,GAAG,EAAE,CAAC;AACN,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,QAAQ,EAAE,QAAQ;AAClB,yBAAA,CAAC;oBACH,CAAC;AACD,iBAAA,CAAC;YACH;AAEA,YAAA,OAAO,IAAI;AACZ,QAAA,CAAC,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE5B,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAChC,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;YAAE;QAE3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAK;AAC9C,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS;AAE/B,YAAA,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,EAAE;AACV,QAAA,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAE9C,QAAA,OAAO,MAAK;AACX,YAAA,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAClD,QAAA,CAAC;AACF,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1B,QACCA,aACC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE;AAC3C,YAAA,gBAAgB,EAAE,MAAM;SACxB,CAAC,EACF,KAAK,EAAE;AACN,YAAA,GAAG,KAAK;YACR,QAAQ;YACR,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;SACN,EAAA,QAAA,EAEA,cAAc,EAAA,CACV;AAER;AAEA,KAAK,CAAC,KAAK,GAAG,KAAK;;;;"}
1
+ {"version":3,"file":"affix.js","sources":["../../../../packages/components/affix/affix.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { debounce } from \"radash\";\nimport {\n Children,\n cloneElement,\n MouseEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport \"./index.css\";\nimport ToTop from \"./totop\";\nimport { IAffix } from \"./type\";\n\nconst defaultGetContainer = () => {\n if (typeof window === \"undefined\") return null;\n return window;\n};\n\nconst Affix = (props: IAffix) => {\n const {\n position = \"fixed\",\n left,\n top,\n right,\n bottom,\n offset,\n style,\n className,\n children,\n getContainer = defaultGetContainer,\n } = props;\n\n const [hidden, setHidden] = useState<boolean>(() => {\n if (!offset) return false;\n if (typeof window === \"undefined\") return false;\n return (window.scrollY ?? 0) < offset;\n });\n const getContainerRef = useRef(getContainer);\n getContainerRef.current = getContainer;\n\n const hijackChildren = useMemo(() => {\n return Children.map(children, (node: any) => {\n if (node.type !== ToTop) return node;\n\n const { onClick } = node.props;\n\n return cloneElement(node, {\n onClick: (e: MouseEvent) => {\n const container = getContainerRef.current();\n\n onClick?.(e);\n container?.scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n },\n });\n });\n }, [children]);\n\n useEffect(() => {\n const container = getContainerRef.current();\n if (!offset || !container) return;\n\n const getScrollTop = () =>\n container instanceof Window\n ? container.scrollY\n : container.scrollTop;\n\n const listener = debounce({ delay: 160 }, () => {\n setHidden(getScrollTop() < offset);\n });\n\n listener();\n container.addEventListener(\"scroll\", listener);\n\n return () => {\n listener.cancel();\n container.removeEventListener(\"scroll\", listener);\n };\n }, [offset]);\n\n return (\n <div\n className={classNames(\"i-affix\", className, {\n \"i-affix-visible\": !hidden,\n })}\n style={{\n ...style,\n position,\n left,\n top,\n right,\n bottom,\n }}\n >\n {hijackChildren}\n </div>\n );\n};\n\nAffix.ToTop = ToTop;\n\nexport default Affix;\n"],"names":["_jsx"],"mappings":";;;;;;AAeA,MAAM,mBAAmB,GAAG,MAAK;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW;AAAE,QAAA,OAAO,IAAI;AAC9C,IAAA,OAAO,MAAM;AACjB,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;IAC5B,MAAM,EACF,QAAQ,GAAG,OAAO,EAClB,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,mBAAmB,GACrC,GAAG,KAAK;IAET,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAU,MAAK;AAC/C,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW;AAAE,YAAA,OAAO,KAAK;QAC/C,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM;AACzC,IAAA,CAAC,CAAC;AACF,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC;AAC5C,IAAA,eAAe,CAAC,OAAO,GAAG,YAAY;AAEtC,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;QAChC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAS,KAAI;AACxC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;AAAE,gBAAA,OAAO,IAAI;AAEpC,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK;YAE9B,OAAO,YAAY,CAAC,IAAI,EAAE;AACtB,gBAAA,OAAO,EAAE,CAAC,CAAa,KAAI;AACvB,oBAAA,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE;AAE3C,oBAAA,OAAO,GAAG,CAAC,CAAC;oBACZ,SAAS,EAAE,QAAQ,CAAC;AAChB,wBAAA,GAAG,EAAE,CAAC;AACN,wBAAA,IAAI,EAAE,CAAC;AACP,wBAAA,QAAQ,EAAE,QAAQ;AACrB,qBAAA,CAAC;gBACN,CAAC;AACJ,aAAA,CAAC;AACN,QAAA,CAAC,CAAC;AACN,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEd,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE;AAC3C,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;YAAE;AAE3B,QAAA,MAAM,YAAY,GAAG,MACjB,SAAS,YAAY;cACf,SAAS,CAAC;AACZ,cAAE,SAAS,CAAC,SAAS;QAE7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAK;AAC3C,YAAA,SAAS,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC;AACtC,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,EAAE;AACV,QAAA,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAE9C,QAAA,OAAO,MAAK;YACR,QAAQ,CAAC,MAAM,EAAE;AACjB,YAAA,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACrD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,QACIA,aACI,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE;YACxC,iBAAiB,EAAE,CAAC,MAAM;SAC7B,CAAC,EACF,KAAK,EAAE;AACH,YAAA,GAAG,KAAK;YACR,QAAQ;YACR,IAAI;YACJ,GAAG;YACH,KAAK;YACL,MAAM;SACT,EAAA,QAAA,EAEA,cAAc,EAAA,CACb;AAEd;AAEA,KAAK,CAAC,KAAK,GAAG,KAAK;;;;"}
@@ -6,7 +6,7 @@ import Icon from '../icon/icon.js';
6
6
 
7
7
  function ToTop(props) {
8
8
  const { style, className, onClick } = props;
9
- return (jsx(Button, { square: true, className: classNames("i-affix-totop", className), style: { ...style }, onClick: onClick, children: jsx(Icon, { icon: jsx(SkipPreviousRound, {}), rotate: 90 }) }));
9
+ return (jsx(Button, { square: true, className: classNames("i-affix-totop", "i-affix-target", className), style: { ...style }, onClick: onClick, children: jsx(Icon, { icon: jsx(SkipPreviousRound, {}), rotate: 90 }) }));
10
10
  }
11
11
 
12
12
  export { ToTop as default };
@@ -1 +1 @@
1
- {"version":3,"file":"totop.js","sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import { SkipPreviousRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport { IAffix } from \"./type\";\n\nfunction ToTop(props: IAffix) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"names":["_jsx"],"mappings":";;;;;;AAMA,SAAS,KAAK,CAAC,KAAa,EAAA;IAC3B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK;AAE3C,IAAA,QACCA,GAAA,CAAC,MAAM,IACN,MAAM,EAAA,IAAA,EACN,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,EACjD,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EACnB,OAAO,EAAE,OAAO,YAEhBA,GAAA,CAAC,IAAI,IAAC,IAAI,EAAEA,IAAC,iBAAiB,EAAA,EAAA,CAAG,EAAE,MAAM,EAAE,EAAE,EAAA,CAAI,EAAA,CACzC;AAEX;;;;"}
1
+ {"version":3,"file":"totop.js","sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import { SkipPreviousRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { CSSProperties, MouseEventHandler } from \"react\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\n\ninterface IToTopProps {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tonClick?: MouseEventHandler<HTMLElement>;\n}\n\nfunction ToTop(props: IToTopProps) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", \"i-affix-target\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"names":["_jsx"],"mappings":";;;;;;AAYA,SAAS,KAAK,CAAC,KAAkB,EAAA;IAChC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK;AAE3C,IAAA,QACCA,GAAA,CAAC,MAAM,IACN,MAAM,EAAA,IAAA,EACN,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,gBAAgB,EAAE,SAAS,CAAC,EACnE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EACnB,OAAO,EAAE,OAAO,YAEhBA,GAAA,CAAC,IAAI,IAAC,IAAI,EAAEA,IAAC,iBAAiB,EAAA,EAAA,CAAG,EAAE,MAAM,EAAE,EAAE,EAAA,CAAI,EAAA,CACzC;AAEX;;;;"}
@@ -115,6 +115,8 @@ const Editor = (props) => {
115
115
  };
116
116
  const handleKeyDown = (e) => {
117
117
  onKeyDown?.(e);
118
+ if (e.defaultPrevented)
119
+ return;
118
120
  if (!isPlaintextMode &&
119
121
  (e.key === "Backspace" || e.key === "Delete") &&
120
122
  removeAdjacentMemtionTag(editorRef.current, e.key)) {
@@ -155,6 +157,9 @@ const Editor = (props) => {
155
157
  exec(isRichMode ? "insertHTML" : "insertText", false, isRichMode ? "&#09;" : "\t");
156
158
  break;
157
159
  case "Enter":
160
+ if (e.shiftKey) {
161
+ break;
162
+ }
158
163
  if (!onEnter)
159
164
  break;
160
165
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport xss from \"xss\";\nimport { IButton } from \"../button/type\";\nimport getControls, { exec, xssOptions } from \"./controls\";\nimport \"./index.css\";\nimport Memtion, {\n filterMemtionOptions,\n getMemtionReplaceRange,\n getMemtionText,\n getSelectionRect,\n insertMemtionOption,\n removeAdjacentMemtionTag,\n sanitizePlaintextOnMemtionHtml,\n} from \"./memtion\";\nimport { IEditor, IEditorMemtionOption } from \"./type\";\n\nconst controlBtnProps: IButton = {\n square: true,\n flat: true,\n size: \"small\",\n};\n\nconst Editor = (props: IEditor) => {\n const {\n ref,\n value = \"\",\n width,\n height = \"10em\",\n placeholder,\n autosize,\n border = true,\n mode = \"rich\",\n hideControl,\n addtionControls,\n memtion,\n className,\n style,\n onChange,\n onEnter,\n onFocus,\n onBlur,\n onPaste,\n onMouseUp,\n onKeyUp,\n onKeyDown,\n ...restProps\n } = props;\n const editorRef = useRef<HTMLDivElement>(null);\n const selectionRef = useRef<Range | null>(null);\n const memtionTriggerRangeRef = useRef<Range | null>(null);\n const pendingMemtionRef = useRef(false);\n const isPlaintextMode = mode === \"plaintext\";\n const isRichMode = mode === \"rich\";\n const isPlaintextOnMemtionMode = mode === \"plaintextOnMemtion\";\n const [memtionVisible, setMemtionVisible] = useState(false);\n const [memtionRect, setMemtionRect] = useState<DOMRect | null>(null);\n const [memtionKeyword, setMemtionKeyword] = useState(\"\");\n const [memtionActiveIndex, setMemtionActiveIndex] = useState(0);\n const memtionOptions = useMemo(\n () => filterMemtionOptions(memtion?.options ?? [], memtionKeyword),\n [memtion?.options, memtionKeyword],\n );\n\n const sanitizeValue = (nextValue: string) => {\n if (isPlaintextMode) {\n return nextValue === \"\\n\" ? \"\" : nextValue;\n }\n\n const safeHtml = isPlaintextOnMemtionMode\n ? sanitizePlaintextOnMemtionHtml(xss(nextValue, xssOptions))\n : xss(nextValue, xssOptions);\n\n return safeHtml === \"<br>\" ? \"\" : safeHtml;\n };\n\n const syncHeight = () => {\n if (autosize && editorRef.current) {\n editorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\n }\n };\n\n const rememberSelection = () => {\n if (!editorRef.current) return;\n\n const selection = window.getSelection();\n if (!selection?.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const container = range.commonAncestorContainer;\n const parent =\n container.nodeType === Node.ELEMENT_NODE\n ? (container as Element)\n : container.parentElement;\n\n if (!parent || !editorRef.current.contains(parent)) return;\n\n selectionRef.current = range.cloneRange();\n };\n\n const setEditorValue = (nextValue: string) => {\n if (!editorRef.current) return;\n\n const safeValue = sanitizeValue(nextValue);\n\n if (isPlaintextMode) {\n editorRef.current.textContent = safeValue;\n return;\n }\n\n editorRef.current.innerHTML = safeValue;\n };\n\n const getEditorValue = (sanitize = false) => {\n const nextValue = !editorRef.current\n ? \"\"\n : isPlaintextMode\n ? (editorRef.current.textContent ?? \"\")\n : editorRef.current.innerHTML;\n\n return sanitize ? sanitizeValue(nextValue) : nextValue;\n };\n\n const hideMemtion = () => {\n pendingMemtionRef.current = false;\n memtionTriggerRangeRef.current = null;\n setMemtionVisible(false);\n setMemtionRect(null);\n setMemtionKeyword(\"\");\n setMemtionActiveIndex(0);\n };\n\n const syncEditorState = () => {\n selectionRef.current = null;\n hideMemtion();\n };\n\n const insertMemtion = (option: IEditorMemtionOption) => {\n const replaceRange = getMemtionReplaceRange(\n memtionTriggerRangeRef.current,\n selectionRef.current,\n );\n\n const range = insertMemtionOption({\n editor: editorRef.current,\n range: replaceRange,\n mode,\n memtion,\n option,\n sanitizeValue,\n });\n\n if (!range || !editorRef.current) return;\n\n selectionRef.current = range.cloneRange();\n hideMemtion();\n editorRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n };\n\n const handlePaste = (e) => {\n onPaste?.(e);\n\n if (e.defaultPrevented) return;\n\n e.preventDefault();\n\n const html = e.clipboardData.getData(\"text/html\");\n const text = e.clipboardData.getData(\"text/plain\");\n const pasteValue = isPlaintextMode\n ? text\n : html\n ? sanitizeValue(html)\n : text;\n\n exec(isPlaintextMode ? \"insertText\" : \"insertHTML\", false, pasteValue);\n };\n\n const handleKeyDown = (e) => {\n onKeyDown?.(e);\n\n if (\n !isPlaintextMode &&\n (e.key === \"Backspace\" || e.key === \"Delete\") &&\n removeAdjacentMemtionTag(editorRef.current, e.key)\n ) {\n e.preventDefault();\n rememberSelection();\n editorRef.current?.dispatchEvent(\n new Event(\"input\", { bubbles: true }),\n );\n return;\n }\n\n const memtionKey = memtion?.key ?? \"@\";\n if (memtionVisible && e.key === \" \") {\n hideMemtion();\n }\n\n if (memtionVisible && memtionOptions.length) {\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n setMemtionActiveIndex((index) =>\n index + 1 >= memtionOptions.length ? 0 : index + 1,\n );\n return;\n case \"ArrowUp\":\n e.preventDefault();\n setMemtionActiveIndex((index) =>\n index - 1 < 0 ? memtionOptions.length - 1 : index - 1,\n );\n return;\n case \"Enter\":\n e.preventDefault();\n insertMemtion(memtionOptions[memtionActiveIndex]);\n return;\n default:\n break;\n }\n }\n\n if (memtion && e.key === memtionKey) {\n rememberSelection();\n memtionTriggerRangeRef.current =\n selectionRef.current?.cloneRange() ?? null;\n pendingMemtionRef.current = true;\n }\n\n switch (e.key) {\n case \"Tab\":\n e.preventDefault();\n exec(\n isRichMode ? \"insertHTML\" : \"insertText\",\n false,\n isRichMode ? \"&#09;\" : \"\\t\",\n );\n break;\n case \"Enter\":\n if (!onEnter) break;\n e.preventDefault();\n onEnter(e);\n break;\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (!editorRef.current) return;\n const nextValue = sanitizeValue(value);\n if (getEditorValue(true) === nextValue) return;\n\n setEditorValue(nextValue);\n syncEditorState();\n syncHeight();\n }, [autosize, mode, value]);\n\n useEffect(() => {\n if (!memtionOptions.length) {\n setMemtionActiveIndex(0);\n return;\n }\n\n setMemtionActiveIndex((index) =>\n index >= memtionOptions.length ? 0 : index,\n );\n }, [memtionOptions]);\n\n const handleInput = (e) => {\n const rawValue = getEditorValue();\n let nextValue = sanitizeValue(rawValue);\n\n if (\n isPlaintextOnMemtionMode &&\n rawValue !== nextValue &&\n editorRef.current\n ) {\n setEditorValue(nextValue);\n }\n\n if (!nextValue && rawValue && editorRef.current) {\n nextValue = \"\";\n setEditorValue(nextValue);\n }\n\n rememberSelection();\n\n if (memtion && (pendingMemtionRef.current || memtionVisible)) {\n const memtionKey = memtion?.key ?? \"@\";\n const memtionText = getMemtionText(\n memtionTriggerRangeRef.current,\n selectionRef.current,\n );\n\n if (!memtionText.startsWith(memtionKey) || /\\s/.test(memtionText)) {\n hideMemtion();\n } else {\n const keyword = memtionText.slice(memtionKey.length);\n pendingMemtionRef.current = false;\n setMemtionRect(getSelectionRect(selectionRef.current));\n setMemtionKeyword(keyword);\n setMemtionActiveIndex(0);\n setMemtionVisible(true);\n }\n }\n\n syncHeight();\n\n onChange?.(nextValue, e);\n };\n\n const handleFocus = (e) => {\n rememberSelection();\n onFocus?.(e);\n };\n\n const handleBlur = (e) => {\n hideMemtion();\n onBlur?.(e);\n };\n\n const handleMouseUp = (e) => {\n rememberSelection();\n onMouseUp?.(e);\n };\n\n const handleKeyUp = (e) => {\n rememberSelection();\n onKeyUp?.(e);\n };\n\n const handleRef = (node: HTMLDivElement | null) => {\n editorRef.current = node;\n\n if (typeof ref === \"function\") {\n ref(node);\n return;\n }\n\n if (ref) {\n ref.current = node;\n }\n };\n\n const getSelection = useCallback(\n () => selectionRef.current?.cloneRange() ?? null,\n [],\n );\n\n const controls = useMemo(\n () =>\n getControls({\n controlBtnProps,\n addtionControls,\n getSelection,\n }),\n [addtionControls, getSelection],\n );\n\n return (\n <div\n className={classNames(\"i-editor\", className, {\n \"i-editor-borderless\": !border,\n })}\n style={{\n ...style,\n [autosize ? \"minHeight\" : \"height\"]: height,\n width,\n }}\n >\n {!hideControl && (\n <div className=\"i-editor-controls\">{controls}</div>\n )}\n\n {memtion && (\n <Memtion\n visible={memtionVisible}\n rect={memtionRect}\n options={memtionOptions}\n activeIndex={memtionActiveIndex}\n onActiveChange={setMemtionActiveIndex}\n onSelect={insertMemtion}\n />\n )}\n\n <div\n ref={handleRef}\n className=\"i-editor-content\"\n data-placeholder={placeholder}\n contentEditable={isPlaintextMode ? \"plaintext-only\" : true}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onPaste={handlePaste}\n onInput={handleInput}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n {...restProps}\n />\n </div>\n );\n};\n\nexport default Editor;\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAiBA,MAAM,eAAe,GAAY;AAC7B,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,IAAI,EAAE,OAAO;CAChB;AAED,MAAM,MAAM,GAAG,CAAC,KAAc,KAAI;IAC9B,MAAM,EACF,GAAG,EACH,KAAK,GAAG,EAAE,EACV,KAAK,EACL,MAAM,GAAG,MAAM,EACf,WAAW,EACX,QAAQ,EACR,MAAM,GAAG,IAAI,EACb,IAAI,GAAG,MAAM,EACb,WAAW,EACX,eAAe,EACf,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,EACT,GAAG,SAAS,EACf,GAAG,KAAK;AACT,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC9C,IAAA,MAAM,YAAY,GAAG,MAAM,CAAe,IAAI,CAAC;AAC/C,IAAA,MAAM,sBAAsB,GAAG,MAAM,CAAe,IAAI,CAAC;AACzD,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC;AACvC,IAAA,MAAM,eAAe,GAAG,IAAI,KAAK,WAAW;AAC5C,IAAA,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM;AAClC,IAAA,MAAM,wBAAwB,GAAG,IAAI,KAAK,oBAAoB;IAC9D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC;IACpE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IACxD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,OAAO,CAC1B,MAAM,oBAAoB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,cAAc,CAAC,EAClE,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CACrC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,SAAiB,KAAI;QACxC,IAAI,eAAe,EAAE;YACjB,OAAO,SAAS,KAAK,IAAI,GAAG,EAAE,GAAG,SAAS;QAC9C;QAEA,MAAM,QAAQ,GAAG;cACX,8BAA8B,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC;AAC3D,cAAE,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC;QAEhC,OAAO,QAAQ,KAAK,MAAM,GAAG,EAAE,GAAG,QAAQ;AAC9C,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACpB,QAAA,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;AAC/B,YAAA,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI;QAC1E;AACJ,IAAA,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAK;QAC3B,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE;AAExB,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE;QACvC,IAAI,CAAC,SAAS,EAAE,UAAU;YAAE;QAE5B,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,uBAAuB;QAC/C,MAAM,MAAM,GACR,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC;AACxB,cAAG;AACH,cAAE,SAAS,CAAC,aAAa;QAEjC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE;AAEpD,QAAA,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE;AAC7C,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,SAAiB,KAAI;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE;AAExB,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QAE1C,IAAI,eAAe,EAAE;AACjB,YAAA,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS;YACzC;QACJ;AAEA,QAAA,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS;AAC3C,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,KAAK,KAAI;AACxC,QAAA,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC;AACzB,cAAE;AACF,cAAE;mBACG,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;AACtC,kBAAE,SAAS,CAAC,OAAO,CAAC,SAAS;AAEnC,QAAA,OAAO,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS;AAC1D,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACrB,QAAA,iBAAiB,CAAC,OAAO,GAAG,KAAK;AACjC,QAAA,sBAAsB,CAAC,OAAO,GAAG,IAAI;QACrC,iBAAiB,CAAC,KAAK,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC;QACpB,iBAAiB,CAAC,EAAE,CAAC;QACrB,qBAAqB,CAAC,CAAC,CAAC;AAC5B,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AACzB,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAA,WAAW,EAAE;AACjB,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,MAA4B,KAAI;AACnD,QAAA,MAAM,YAAY,GAAG,sBAAsB,CACvC,sBAAsB,CAAC,OAAO,EAC9B,YAAY,CAAC,OAAO,CACvB;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC;YAC9B,MAAM,EAAE,SAAS,CAAC,OAAO;AACzB,YAAA,KAAK,EAAE,YAAY;YACnB,IAAI;YACJ,OAAO;YACP,MAAM;YACN,aAAa;AAChB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE;AAElC,QAAA,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE;AACzC,QAAA,WAAW,EAAE;AACb,QAAA,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAI;AACtB,QAAA,OAAO,GAAG,CAAC,CAAC;QAEZ,IAAI,CAAC,CAAC,gBAAgB;YAAE;QAExB,CAAC,CAAC,cAAc,EAAE;QAElB,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;QAClD,MAAM,UAAU,GAAG;AACf,cAAE;AACF,cAAE;AACA,kBAAE,aAAa,CAAC,IAAI;kBAClB,IAAI;AAEZ,QAAA,IAAI,CAAC,eAAe,GAAG,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC;AAC1E,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,SAAS,GAAG,CAAC,CAAC;AAEd,QAAA,IACI,CAAC,eAAe;aACf,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC;YAC7C,wBAAwB,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EACpD;YACE,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,iBAAiB,EAAE;AACnB,YAAA,SAAS,CAAC,OAAO,EAAE,aAAa,CAC5B,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CACxC;YACD;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG;QACtC,IAAI,cAAc,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;AACjC,YAAA,WAAW,EAAE;QACjB;AAEA,QAAA,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;AACzC,YAAA,QAAQ,CAAC,CAAC,GAAG;AACT,gBAAA,KAAK,WAAW;oBACZ,CAAC,CAAC,cAAc,EAAE;oBAClB,qBAAqB,CAAC,CAAC,KAAK,KACxB,KAAK,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CACrD;oBACD;AACJ,gBAAA,KAAK,SAAS;oBACV,CAAC,CAAC,cAAc,EAAE;oBAClB,qBAAqB,CAAC,CAAC,KAAK,KACxB,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CACxD;oBACD;AACJ,gBAAA,KAAK,OAAO;oBACR,CAAC,CAAC,cAAc,EAAE;AAClB,oBAAA,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;oBACjD;;QAIZ;QAEA,IAAI,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,EAAE;AACjC,YAAA,iBAAiB,EAAE;AACnB,YAAA,sBAAsB,CAAC,OAAO;AAC1B,gBAAA,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI;AAC9C,YAAA,iBAAiB,CAAC,OAAO,GAAG,IAAI;QACpC;AAEA,QAAA,QAAQ,CAAC,CAAC,GAAG;AACT,YAAA,KAAK,KAAK;gBACN,CAAC,CAAC,cAAc,EAAE;gBAClB,IAAI,CACA,UAAU,GAAG,YAAY,GAAG,YAAY,EACxC,KAAK,EACL,UAAU,GAAG,OAAO,GAAG,IAAI,CAC9B;gBACD;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,OAAO;oBAAE;gBACd,CAAC,CAAC,cAAc,EAAE;gBAClB,OAAO,CAAC,CAAC,CAAC;gBACV;;AAIZ,IAAA,CAAC;IAED,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE;AACxB,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE;QAExC,cAAc,CAAC,SAAS,CAAC;AACzB,QAAA,eAAe,EAAE;AACjB,QAAA,UAAU,EAAE;IAChB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE3B,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YACxB,qBAAqB,CAAC,CAAC,CAAC;YACxB;QACJ;QAEA,qBAAqB,CAAC,CAAC,KAAK,KACxB,KAAK,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAC7C;AACL,IAAA,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAI;AACtB,QAAA,MAAM,QAAQ,GAAG,cAAc,EAAE;AACjC,QAAA,IAAI,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC;AAEvC,QAAA,IACI,wBAAwB;AACxB,YAAA,QAAQ,KAAK,SAAS;YACtB,SAAS,CAAC,OAAO,EACnB;YACE,cAAc,CAAC,SAAS,CAAC;QAC7B;QAEA,IAAI,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;YAC7C,SAAS,GAAG,EAAE;YACd,cAAc,CAAC,SAAS,CAAC;QAC7B;AAEA,QAAA,iBAAiB,EAAE;QAEnB,IAAI,OAAO,KAAK,iBAAiB,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE;AAC1D,YAAA,MAAM,UAAU,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG;AACtC,YAAA,MAAM,WAAW,GAAG,cAAc,CAC9B,sBAAsB,CAAC,OAAO,EAC9B,YAAY,CAAC,OAAO,CACvB;AAED,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC/D,gBAAA,WAAW,EAAE;YACjB;iBAAO;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;AACpD,gBAAA,iBAAiB,CAAC,OAAO,GAAG,KAAK;gBACjC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtD,iBAAiB,CAAC,OAAO,CAAC;gBAC1B,qBAAqB,CAAC,CAAC,CAAC;gBACxB,iBAAiB,CAAC,IAAI,CAAC;YAC3B;QACJ;AAEA,QAAA,UAAU,EAAE;AAEZ,QAAA,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;AAC5B,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAI;AACtB,QAAA,iBAAiB,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAI;AACrB,QAAA,WAAW,EAAE;AACb,QAAA,MAAM,GAAG,CAAC,CAAC;AACf,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,iBAAiB,EAAE;AACnB,QAAA,SAAS,GAAG,CAAC,CAAC;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAI;AACtB,QAAA,iBAAiB,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,IAA2B,KAAI;AAC9C,QAAA,SAAS,CAAC,OAAO,GAAG,IAAI;AAExB,QAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC;YACT;QACJ;QAEA,IAAI,GAAG,EAAE;AACL,YAAA,GAAG,CAAC,OAAO,GAAG,IAAI;QACtB;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,MAAM,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI,EAChD,EAAE,CACL;IAED,MAAM,QAAQ,GAAG,OAAO,CACpB,MACI,WAAW,CAAC;QACR,eAAe;QACf,eAAe;QACf,YAAY;AACf,KAAA,CAAC,EACN,CAAC,eAAe,EAAE,YAAY,CAAC,CAClC;IAED,QACIA,cACI,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE;YACzC,qBAAqB,EAAE,CAAC,MAAM;SACjC,CAAC,EACF,KAAK,EAAE;AACH,YAAA,GAAG,KAAK;YACR,CAAC,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM;YAC3C,KAAK;SACR,EAAA,QAAA,EAAA,CAEA,CAAC,WAAW,KACTC,aAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,CACtD,EAEA,OAAO,KACJA,GAAA,CAAC,OAAO,EAAA,EACJ,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,kBAAkB,EAC/B,cAAc,EAAE,qBAAqB,EACrC,QAAQ,EAAE,aAAa,EAAA,CACzB,CACL,EAEDA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,kBAAkB,sBACV,WAAW,EAC7B,eAAe,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,EAC1D,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,KACpB,SAAS,EAAA,CACf,CAAA,EAAA,CACA;AAEd;;;;"}
1
+ {"version":3,"file":"editor.js","sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport xss from \"xss\";\nimport { IButton } from \"../button/type\";\nimport getControls, { exec, xssOptions } from \"./controls\";\nimport \"./index.css\";\nimport Memtion, {\n filterMemtionOptions,\n getMemtionReplaceRange,\n getMemtionText,\n getSelectionRect,\n insertMemtionOption,\n removeAdjacentMemtionTag,\n sanitizePlaintextOnMemtionHtml,\n} from \"./memtion\";\nimport { IEditor, IEditorMemtionOption } from \"./type\";\n\nconst controlBtnProps: IButton = {\n square: true,\n flat: true,\n size: \"small\",\n};\n\nconst Editor = (props: IEditor) => {\n const {\n ref,\n value = \"\",\n width,\n height = \"10em\",\n placeholder,\n autosize,\n border = true,\n mode = \"rich\",\n hideControl,\n addtionControls,\n memtion,\n className,\n style,\n onChange,\n onEnter,\n onFocus,\n onBlur,\n onPaste,\n onMouseUp,\n onKeyUp,\n onKeyDown,\n ...restProps\n } = props;\n const editorRef = useRef<HTMLDivElement>(null);\n const selectionRef = useRef<Range | null>(null);\n const memtionTriggerRangeRef = useRef<Range | null>(null);\n const pendingMemtionRef = useRef(false);\n const isPlaintextMode = mode === \"plaintext\";\n const isRichMode = mode === \"rich\";\n const isPlaintextOnMemtionMode = mode === \"plaintextOnMemtion\";\n const [memtionVisible, setMemtionVisible] = useState(false);\n const [memtionRect, setMemtionRect] = useState<DOMRect | null>(null);\n const [memtionKeyword, setMemtionKeyword] = useState(\"\");\n const [memtionActiveIndex, setMemtionActiveIndex] = useState(0);\n const memtionOptions = useMemo(\n () => filterMemtionOptions(memtion?.options ?? [], memtionKeyword),\n [memtion?.options, memtionKeyword],\n );\n\n const sanitizeValue = (nextValue: string) => {\n if (isPlaintextMode) {\n return nextValue === \"\\n\" ? \"\" : nextValue;\n }\n\n const safeHtml = isPlaintextOnMemtionMode\n ? sanitizePlaintextOnMemtionHtml(xss(nextValue, xssOptions))\n : xss(nextValue, xssOptions);\n\n return safeHtml === \"<br>\" ? \"\" : safeHtml;\n };\n\n const syncHeight = () => {\n if (autosize && editorRef.current) {\n editorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\n }\n };\n\n const rememberSelection = () => {\n if (!editorRef.current) return;\n\n const selection = window.getSelection();\n if (!selection?.rangeCount) return;\n\n const range = selection.getRangeAt(0);\n const container = range.commonAncestorContainer;\n const parent =\n container.nodeType === Node.ELEMENT_NODE\n ? (container as Element)\n : container.parentElement;\n\n if (!parent || !editorRef.current.contains(parent)) return;\n\n selectionRef.current = range.cloneRange();\n };\n\n const setEditorValue = (nextValue: string) => {\n if (!editorRef.current) return;\n\n const safeValue = sanitizeValue(nextValue);\n\n if (isPlaintextMode) {\n editorRef.current.textContent = safeValue;\n return;\n }\n\n editorRef.current.innerHTML = safeValue;\n };\n\n const getEditorValue = (sanitize = false) => {\n const nextValue = !editorRef.current\n ? \"\"\n : isPlaintextMode\n ? (editorRef.current.textContent ?? \"\")\n : editorRef.current.innerHTML;\n\n return sanitize ? sanitizeValue(nextValue) : nextValue;\n };\n\n const hideMemtion = () => {\n pendingMemtionRef.current = false;\n memtionTriggerRangeRef.current = null;\n setMemtionVisible(false);\n setMemtionRect(null);\n setMemtionKeyword(\"\");\n setMemtionActiveIndex(0);\n };\n\n const syncEditorState = () => {\n selectionRef.current = null;\n hideMemtion();\n };\n\n const insertMemtion = (option: IEditorMemtionOption) => {\n const replaceRange = getMemtionReplaceRange(\n memtionTriggerRangeRef.current,\n selectionRef.current,\n );\n\n const range = insertMemtionOption({\n editor: editorRef.current,\n range: replaceRange,\n mode,\n memtion,\n option,\n sanitizeValue,\n });\n\n if (!range || !editorRef.current) return;\n\n selectionRef.current = range.cloneRange();\n hideMemtion();\n editorRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n };\n\n const handlePaste = (e) => {\n onPaste?.(e);\n\n if (e.defaultPrevented) return;\n\n e.preventDefault();\n\n const html = e.clipboardData.getData(\"text/html\");\n const text = e.clipboardData.getData(\"text/plain\");\n const pasteValue = isPlaintextMode\n ? text\n : html\n ? sanitizeValue(html)\n : text;\n\n exec(isPlaintextMode ? \"insertText\" : \"insertHTML\", false, pasteValue);\n };\n\n const handleKeyDown = (e) => {\n onKeyDown?.(e);\n\n if (e.defaultPrevented) return;\n\n if (\n !isPlaintextMode &&\n (e.key === \"Backspace\" || e.key === \"Delete\") &&\n removeAdjacentMemtionTag(editorRef.current, e.key)\n ) {\n e.preventDefault();\n rememberSelection();\n editorRef.current?.dispatchEvent(\n new Event(\"input\", { bubbles: true }),\n );\n return;\n }\n\n const memtionKey = memtion?.key ?? \"@\";\n if (memtionVisible && e.key === \" \") {\n hideMemtion();\n }\n\n if (memtionVisible && memtionOptions.length) {\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n setMemtionActiveIndex((index) =>\n index + 1 >= memtionOptions.length ? 0 : index + 1,\n );\n return;\n case \"ArrowUp\":\n e.preventDefault();\n setMemtionActiveIndex((index) =>\n index - 1 < 0 ? memtionOptions.length - 1 : index - 1,\n );\n return;\n case \"Enter\":\n e.preventDefault();\n insertMemtion(memtionOptions[memtionActiveIndex]);\n return;\n default:\n break;\n }\n }\n\n if (memtion && e.key === memtionKey) {\n rememberSelection();\n memtionTriggerRangeRef.current =\n selectionRef.current?.cloneRange() ?? null;\n pendingMemtionRef.current = true;\n }\n\n switch (e.key) {\n case \"Tab\":\n e.preventDefault();\n exec(\n isRichMode ? \"insertHTML\" : \"insertText\",\n false,\n isRichMode ? \"&#09;\" : \"\\t\",\n );\n break;\n case \"Enter\":\n if (e.shiftKey) {\n break;\n }\n if (!onEnter) break;\n e.preventDefault();\n onEnter(e);\n break;\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (!editorRef.current) return;\n const nextValue = sanitizeValue(value);\n if (getEditorValue(true) === nextValue) return;\n\n setEditorValue(nextValue);\n syncEditorState();\n syncHeight();\n }, [autosize, mode, value]);\n\n useEffect(() => {\n if (!memtionOptions.length) {\n setMemtionActiveIndex(0);\n return;\n }\n\n setMemtionActiveIndex((index) =>\n index >= memtionOptions.length ? 0 : index,\n );\n }, [memtionOptions]);\n\n const handleInput = (e) => {\n const rawValue = getEditorValue();\n let nextValue = sanitizeValue(rawValue);\n\n if (\n isPlaintextOnMemtionMode &&\n rawValue !== nextValue &&\n editorRef.current\n ) {\n setEditorValue(nextValue);\n }\n\n if (!nextValue && rawValue && editorRef.current) {\n nextValue = \"\";\n setEditorValue(nextValue);\n }\n\n rememberSelection();\n\n if (memtion && (pendingMemtionRef.current || memtionVisible)) {\n const memtionKey = memtion?.key ?? \"@\";\n const memtionText = getMemtionText(\n memtionTriggerRangeRef.current,\n selectionRef.current,\n );\n\n if (!memtionText.startsWith(memtionKey) || /\\s/.test(memtionText)) {\n hideMemtion();\n } else {\n const keyword = memtionText.slice(memtionKey.length);\n pendingMemtionRef.current = false;\n setMemtionRect(getSelectionRect(selectionRef.current));\n setMemtionKeyword(keyword);\n setMemtionActiveIndex(0);\n setMemtionVisible(true);\n }\n }\n\n syncHeight();\n\n onChange?.(nextValue, e);\n };\n\n const handleFocus = (e) => {\n rememberSelection();\n onFocus?.(e);\n };\n\n const handleBlur = (e) => {\n hideMemtion();\n onBlur?.(e);\n };\n\n const handleMouseUp = (e) => {\n rememberSelection();\n onMouseUp?.(e);\n };\n\n const handleKeyUp = (e) => {\n rememberSelection();\n onKeyUp?.(e);\n };\n\n const handleRef = (node: HTMLDivElement | null) => {\n editorRef.current = node;\n\n if (typeof ref === \"function\") {\n ref(node);\n return;\n }\n\n if (ref) {\n ref.current = node;\n }\n };\n\n const getSelection = useCallback(\n () => selectionRef.current?.cloneRange() ?? null,\n [],\n );\n\n const controls = useMemo(\n () =>\n getControls({\n controlBtnProps,\n addtionControls,\n getSelection,\n }),\n [addtionControls, getSelection],\n );\n\n return (\n <div\n className={classNames(\"i-editor\", className, {\n \"i-editor-borderless\": !border,\n })}\n style={{\n ...style,\n [autosize ? \"minHeight\" : \"height\"]: height,\n width,\n }}\n >\n {!hideControl && (\n <div className=\"i-editor-controls\">{controls}</div>\n )}\n\n {memtion && (\n <Memtion\n visible={memtionVisible}\n rect={memtionRect}\n options={memtionOptions}\n activeIndex={memtionActiveIndex}\n onActiveChange={setMemtionActiveIndex}\n onSelect={insertMemtion}\n />\n )}\n\n <div\n ref={handleRef}\n className=\"i-editor-content\"\n data-placeholder={placeholder}\n contentEditable={isPlaintextMode ? \"plaintext-only\" : true}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onPaste={handlePaste}\n onInput={handleInput}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n {...restProps}\n />\n </div>\n );\n};\n\nexport default Editor;\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
- import { memo } from 'react';
2
+ import { memo, useRef, useState, useLayoutEffect } from 'react';
3
3
  import { createPortal } from 'react-dom';
4
4
  import { renderToStaticMarkup } from 'react-dom/server';
5
+ import { getPosition } from '../../js/utils.js';
5
6
  import List from '../list/list.js';
6
7
 
7
8
  const MEMTION_TAG_CLASS_NAME = "i-memtion-tag";
@@ -227,15 +228,56 @@ const removeAdjacentMemtionTag = (editor, key) => {
227
228
  editor.focus();
228
229
  return true;
229
230
  };
231
+ const makeRectSource = (rect) => {
232
+ const { left, top, width, height } = rect;
233
+ return {
234
+ offsetParent: null,
235
+ offsetLeft: left,
236
+ offsetTop: top,
237
+ getBoundingClientRect: () => ({
238
+ left,
239
+ top,
240
+ right: left + width,
241
+ bottom: top + height,
242
+ width,
243
+ height,
244
+ x: left,
245
+ y: top,
246
+ toJSON: () => ({}),
247
+ }),
248
+ };
249
+ };
230
250
  const Memtion = (props) => {
231
251
  const { visible, rect, options, activeIndex, onActiveChange, onSelect } = props;
252
+ const containerRef = useRef(null);
253
+ const [pos, setPos] = useState({ left: 0, top: 0 });
254
+ const [ready, setReady] = useState(false);
255
+ useLayoutEffect(() => {
256
+ if (!visible || !rect || !options?.length) {
257
+ setReady(false);
258
+ return;
259
+ }
260
+ const el = containerRef.current;
261
+ if (!el)
262
+ return;
263
+ const [left, top] = getPosition(makeRectSource(rect), el, {
264
+ position: "bottom",
265
+ gap: 4,
266
+ offset: 0,
267
+ align: "start",
268
+ refWindow: true,
269
+ });
270
+ setPos({ left, top });
271
+ setReady(true);
272
+ }, [visible, rect, options]);
232
273
  if (!visible || !rect || !options?.length) {
233
274
  return null;
234
275
  }
235
- const content = (jsx(List, { className: "i-editor-memtion", type: "option", style: {
276
+ const content = (jsx(List, { ref: containerRef, className: "i-editor-memtion", type: "option", style: {
236
277
  position: "fixed",
237
- top: rect.bottom,
238
- left: rect.left,
278
+ left: pos.left,
279
+ top: pos.top,
280
+ opacity: ready ? 1 : 0,
239
281
  }, children: options.map((option, i) => (jsx(List.Item, { type: "option", active: i === activeIndex, onMouseDown: (e) => e.preventDefault(), onMouseEnter: () => onActiveChange?.(i), onClick: () => onSelect?.(option), children: option.label }, `${option.value}-${i}`))) }));
240
282
  if (typeof document === "undefined") {
241
283
  return content;
@@ -1 +1 @@
1
- {"version":3,"file":"memtion.js","sources":["../../../../packages/components/editor/memtion.tsx"],"sourcesContent":["import { memo, ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { renderToStaticMarkup } from \"react-dom/server\";\nimport List from \"../list\";\nimport { IEditorMemtion, IEditorMemtionOption } from \"./type\";\n\nexport const MEMTION_TAG_CLASS_NAME = \"i-memtion-tag\";\n\nconst blockTags = new Set([\n \"ADDRESS\",\n \"ARTICLE\",\n \"ASIDE\",\n \"BLOCKQUOTE\",\n \"DIV\",\n \"DL\",\n \"FIELDSET\",\n \"FIGCAPTION\",\n \"FIGURE\",\n \"FOOTER\",\n \"FORM\",\n \"H1\",\n \"H2\",\n \"H3\",\n \"H4\",\n \"H5\",\n \"H6\",\n \"HEADER\",\n \"LI\",\n \"MAIN\",\n \"NAV\",\n \"OL\",\n \"P\",\n \"PRE\",\n \"SECTION\",\n \"TABLE\",\n \"TD\",\n \"TH\",\n \"TR\",\n \"UL\",\n]);\n\nconst escapeHtmlAttr = (value: string) =>\n value\n .replaceAll(\"&\", \"&amp;\")\n .replaceAll('\"', \"&quot;\")\n .replaceAll(\"<\", \"&lt;\")\n .replaceAll(\">\", \"&gt;\");\n\ninterface IMemtionProps {\n visible?: boolean;\n rect?: DOMRect | null;\n options?: IEditorMemtionOption[];\n activeIndex?: number;\n onActiveChange?: (index: number) => void;\n onSelect?: (option: IEditorMemtionOption) => void;\n}\n\ninterface IInsertMemtionOptionParams {\n editor: HTMLDivElement | null;\n range: Range | null;\n mode: \"rich\" | \"plaintext\" | \"plaintextOnMemtion\";\n memtion?: IEditorMemtion;\n option: IEditorMemtionOption;\n sanitizeValue: (value: string) => string;\n}\n\nconst getInsertNode = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n) => memtion?.insert?.(option) ?? option.value;\n\nconst getInsertText = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n) => {\n const nextNode = getInsertNode(memtion, option);\n\n if (typeof nextNode === \"string\" || typeof nextNode === \"number\") {\n return `${String(nextNode)} `;\n }\n\n return `${String(option.value)} `;\n};\n\nconst getInsertHtml = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n sanitizeValue: (value: string) => string,\n) => {\n const nextNode = getInsertNode(memtion, option);\n\n if (nextNode === null || nextNode === undefined || nextNode === false) {\n return \"\";\n }\n\n const content = sanitizeValue(\n renderToStaticMarkup(<>{nextNode as ReactNode}</>),\n );\n\n return `<span class=\"${MEMTION_TAG_CLASS_NAME}\" contenteditable=\"false\" data-memtion-value=\"${escapeHtmlAttr(String(option.value))}\">${content}</span>`;\n};\n\nexport const getSelectionRect = (range: Range | null) => {\n if (!range) return null;\n\n const rect = range.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n return rect;\n }\n\n return range.getClientRects()[0] ?? rect;\n};\n\nexport const insertMemtionOption = ({\n editor,\n range,\n mode,\n memtion,\n option,\n sanitizeValue,\n}: IInsertMemtionOptionParams) => {\n if (!editor || !range) return null;\n\n const browserSelection = window.getSelection();\n if (!browserSelection) return null;\n\n const nextRange = range.cloneRange();\n browserSelection.removeAllRanges();\n browserSelection.addRange(nextRange);\n editor.focus();\n nextRange.deleteContents();\n\n if (mode === \"plaintext\") {\n const text = document.createTextNode(getInsertText(memtion, option));\n nextRange.insertNode(text);\n nextRange.setStartAfter(text);\n } else {\n const html = getInsertHtml(memtion, option, sanitizeValue);\n const fragment = nextRange.createContextualFragment(html);\n const lastNode = fragment.lastChild;\n\n nextRange.insertNode(fragment);\n\n if (lastNode) {\n nextRange.setStartAfter(lastNode);\n nextRange.collapse(true);\n }\n }\n\n nextRange.collapse(true);\n browserSelection.removeAllRanges();\n browserSelection.addRange(nextRange);\n\n return nextRange;\n};\n\nexport const getMemtionText = (\n triggerRange: Range | null,\n selectionRange: Range | null,\n) => {\n if (!triggerRange || !selectionRange) return \"\";\n\n const range = triggerRange.cloneRange();\n range.setEnd(selectionRange.endContainer, selectionRange.endOffset);\n\n return range.toString();\n};\n\nexport const getMemtionReplaceRange = (\n triggerRange: Range | null,\n selectionRange: Range | null,\n) => {\n if (!triggerRange || !selectionRange) return null;\n\n const range = triggerRange.cloneRange();\n range.setEnd(selectionRange.endContainer, selectionRange.endOffset);\n\n return range;\n};\n\nexport const filterMemtionOptions = (\n options: IEditorMemtionOption[],\n keyword: string,\n) => {\n const normalizedKeyword = keyword.trim().toLowerCase();\n\n if (!normalizedKeyword) {\n return options;\n }\n\n return options.filter((option) =>\n String(option.value).toLowerCase().includes(normalizedKeyword),\n );\n};\n\nconst isMemtionTag = (node: Node | null) =>\n node instanceof HTMLElement &&\n node.classList.contains(MEMTION_TAG_CLASS_NAME);\n\nconst appendBreak = (container: HTMLElement) => {\n if (!container.lastChild || container.lastChild.nodeName === \"BR\") {\n return;\n }\n\n container.appendChild(document.createElement(\"br\"));\n};\n\nconst appendPlaintextOnMemtionNode = (\n container: HTMLElement,\n node: Node | null,\n) => {\n if (!node) return;\n\n if (node.nodeType === Node.TEXT_NODE) {\n container.appendChild(\n document.createTextNode(\n (node.textContent ?? \"\").replaceAll(\"\\r\", \"\"),\n ),\n );\n return;\n }\n\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n if (isMemtionTag(node)) {\n const tag = document.createElement(\"span\");\n const memtionValue = node.getAttribute(\"data-memtion-value\");\n\n tag.className = MEMTION_TAG_CLASS_NAME;\n tag.setAttribute(\"contenteditable\", \"false\");\n\n if (memtionValue !== null) {\n tag.setAttribute(\"data-memtion-value\", memtionValue);\n }\n\n tag.innerHTML = node.innerHTML;\n container.appendChild(tag);\n return;\n }\n\n if (node.tagName === \"BR\") {\n appendBreak(container);\n return;\n }\n\n Array.from(node.childNodes).forEach((child) => {\n appendPlaintextOnMemtionNode(container, child);\n });\n\n if (blockTags.has(node.tagName)) {\n appendBreak(container);\n }\n};\n\nexport const sanitizePlaintextOnMemtionHtml = (value: string) => {\n if (typeof document === \"undefined\") {\n return value;\n }\n\n const source = document.createElement(\"div\");\n const result = document.createElement(\"div\");\n\n source.innerHTML = value;\n\n Array.from(source.childNodes).forEach((child) => {\n appendPlaintextOnMemtionNode(result, child);\n });\n\n while (result.lastChild?.nodeName === \"BR\") {\n result.lastChild.remove();\n }\n\n return result.innerHTML;\n};\n\nconst getAdjacentMemtionTag = (\n range: Range,\n direction: \"backward\" | \"forward\",\n) => {\n const { startContainer, startOffset } = range;\n\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const textNode = startContainer as Text;\n\n if (direction === \"backward\" && startOffset === 0) {\n return isMemtionTag(textNode.previousSibling)\n ? (textNode.previousSibling as HTMLElement)\n : null;\n }\n\n if (direction === \"forward\" && startOffset === textNode.data.length) {\n return isMemtionTag(textNode.nextSibling)\n ? (textNode.nextSibling as HTMLElement)\n : null;\n }\n\n return null;\n }\n\n const element = startContainer as Element;\n const targetIndex =\n direction === \"backward\" ? startOffset - 1 : startOffset;\n const targetNode = element.childNodes.item(targetIndex);\n\n return isMemtionTag(targetNode) ? (targetNode as HTMLElement) : null;\n};\n\nexport const removeAdjacentMemtionTag = (\n editor: HTMLDivElement | null,\n key: \"Backspace\" | \"Delete\",\n) => {\n if (!editor) return false;\n\n const selection = window.getSelection();\n if (!selection?.rangeCount || !selection.isCollapsed) return false;\n\n const activeRange = selection.getRangeAt(0);\n const tag = getAdjacentMemtionTag(\n activeRange,\n key === \"Backspace\" ? \"backward\" : \"forward\",\n );\n\n if (!tag || !tag.parentNode) return false;\n\n const parent = tag.parentNode;\n const nextSibling = tag.nextSibling;\n const index = Array.prototype.indexOf.call(parent.childNodes, tag);\n\n if (nextSibling?.nodeType === Node.TEXT_NODE) {\n const textNode = nextSibling as Text;\n\n if (textNode.data.startsWith(\" \")) {\n textNode.deleteData(0, 1);\n\n if (!textNode.data.length) {\n nextSibling.remove();\n }\n }\n }\n\n tag.remove();\n\n const range = document.createRange();\n range.setStart(parent, Math.min(index, parent.childNodes.length));\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n editor.focus();\n\n return true;\n};\n\nconst Memtion = (props: IMemtionProps) => {\n const { visible, rect, options, activeIndex, onActiveChange, onSelect } =\n props;\n\n if (!visible || !rect || !options?.length) {\n return null;\n }\n\n const content = (\n <List\n className=\"i-editor-memtion\"\n type=\"option\"\n style={{\n position: \"fixed\",\n top: rect.bottom,\n left: rect.left,\n }}\n >\n {options.map((option, i) => (\n <List.Item\n key={`${option.value}-${i}`}\n type=\"option\"\n active={i === activeIndex}\n onMouseDown={(e) => e.preventDefault()}\n onMouseEnter={() => onActiveChange?.(i)}\n onClick={() => onSelect?.(option)}\n >\n {option.label}\n </List.Item>\n ))}\n </List>\n );\n\n if (typeof document === \"undefined\") {\n return content;\n }\n\n return createPortal(content, document.body);\n};\n\nexport default memo(Memtion);\n"],"names":["_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"memtion.js","sources":["../../../../packages/components/editor/memtion.tsx"],"sourcesContent":["import { memo, ReactNode, useLayoutEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { renderToStaticMarkup } from \"react-dom/server\";\nimport { getPosition } from \"../../js/utils\";\nimport List from \"../list\";\nimport { IEditorMemtion, IEditorMemtionOption } from \"./type\";\n\nexport const MEMTION_TAG_CLASS_NAME = \"i-memtion-tag\";\n\nconst blockTags = new Set([\n \"ADDRESS\",\n \"ARTICLE\",\n \"ASIDE\",\n \"BLOCKQUOTE\",\n \"DIV\",\n \"DL\",\n \"FIELDSET\",\n \"FIGCAPTION\",\n \"FIGURE\",\n \"FOOTER\",\n \"FORM\",\n \"H1\",\n \"H2\",\n \"H3\",\n \"H4\",\n \"H5\",\n \"H6\",\n \"HEADER\",\n \"LI\",\n \"MAIN\",\n \"NAV\",\n \"OL\",\n \"P\",\n \"PRE\",\n \"SECTION\",\n \"TABLE\",\n \"TD\",\n \"TH\",\n \"TR\",\n \"UL\",\n]);\n\nconst escapeHtmlAttr = (value: string) =>\n value\n .replaceAll(\"&\", \"&amp;\")\n .replaceAll('\"', \"&quot;\")\n .replaceAll(\"<\", \"&lt;\")\n .replaceAll(\">\", \"&gt;\");\n\ninterface IMemtionProps {\n visible?: boolean;\n rect?: DOMRect | null;\n options?: IEditorMemtionOption[];\n activeIndex?: number;\n onActiveChange?: (index: number) => void;\n onSelect?: (option: IEditorMemtionOption) => void;\n}\n\ninterface IInsertMemtionOptionParams {\n editor: HTMLDivElement | null;\n range: Range | null;\n mode: \"rich\" | \"plaintext\" | \"plaintextOnMemtion\";\n memtion?: IEditorMemtion;\n option: IEditorMemtionOption;\n sanitizeValue: (value: string) => string;\n}\n\nconst getInsertNode = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n) => memtion?.insert?.(option) ?? option.value;\n\nconst getInsertText = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n) => {\n const nextNode = getInsertNode(memtion, option);\n\n if (typeof nextNode === \"string\" || typeof nextNode === \"number\") {\n return `${String(nextNode)} `;\n }\n\n return `${String(option.value)} `;\n};\n\nconst getInsertHtml = (\n memtion: IEditorMemtion | undefined,\n option: IEditorMemtionOption,\n sanitizeValue: (value: string) => string,\n) => {\n const nextNode = getInsertNode(memtion, option);\n\n if (nextNode === null || nextNode === undefined || nextNode === false) {\n return \"\";\n }\n\n const content = sanitizeValue(\n renderToStaticMarkup(<>{nextNode as ReactNode}</>),\n );\n\n return `<span class=\"${MEMTION_TAG_CLASS_NAME}\" contenteditable=\"false\" data-memtion-value=\"${escapeHtmlAttr(String(option.value))}\">${content}</span>`;\n};\n\nexport const getSelectionRect = (range: Range | null) => {\n if (!range) return null;\n\n const rect = range.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n return rect;\n }\n\n return range.getClientRects()[0] ?? rect;\n};\n\nexport const insertMemtionOption = ({\n editor,\n range,\n mode,\n memtion,\n option,\n sanitizeValue,\n}: IInsertMemtionOptionParams) => {\n if (!editor || !range) return null;\n\n const browserSelection = window.getSelection();\n if (!browserSelection) return null;\n\n const nextRange = range.cloneRange();\n browserSelection.removeAllRanges();\n browserSelection.addRange(nextRange);\n editor.focus();\n nextRange.deleteContents();\n\n if (mode === \"plaintext\") {\n const text = document.createTextNode(getInsertText(memtion, option));\n nextRange.insertNode(text);\n nextRange.setStartAfter(text);\n } else {\n const html = getInsertHtml(memtion, option, sanitizeValue);\n const fragment = nextRange.createContextualFragment(html);\n const lastNode = fragment.lastChild;\n\n nextRange.insertNode(fragment);\n\n if (lastNode) {\n nextRange.setStartAfter(lastNode);\n nextRange.collapse(true);\n }\n }\n\n nextRange.collapse(true);\n browserSelection.removeAllRanges();\n browserSelection.addRange(nextRange);\n\n return nextRange;\n};\n\nexport const getMemtionText = (\n triggerRange: Range | null,\n selectionRange: Range | null,\n) => {\n if (!triggerRange || !selectionRange) return \"\";\n\n const range = triggerRange.cloneRange();\n range.setEnd(selectionRange.endContainer, selectionRange.endOffset);\n\n return range.toString();\n};\n\nexport const getMemtionReplaceRange = (\n triggerRange: Range | null,\n selectionRange: Range | null,\n) => {\n if (!triggerRange || !selectionRange) return null;\n\n const range = triggerRange.cloneRange();\n range.setEnd(selectionRange.endContainer, selectionRange.endOffset);\n\n return range;\n};\n\nexport const filterMemtionOptions = (\n options: IEditorMemtionOption[],\n keyword: string,\n) => {\n const normalizedKeyword = keyword.trim().toLowerCase();\n\n if (!normalizedKeyword) {\n return options;\n }\n\n return options.filter((option) =>\n String(option.value).toLowerCase().includes(normalizedKeyword),\n );\n};\n\nconst isMemtionTag = (node: Node | null) =>\n node instanceof HTMLElement &&\n node.classList.contains(MEMTION_TAG_CLASS_NAME);\n\nconst appendBreak = (container: HTMLElement) => {\n if (!container.lastChild || container.lastChild.nodeName === \"BR\") {\n return;\n }\n\n container.appendChild(document.createElement(\"br\"));\n};\n\nconst appendPlaintextOnMemtionNode = (\n container: HTMLElement,\n node: Node | null,\n) => {\n if (!node) return;\n\n if (node.nodeType === Node.TEXT_NODE) {\n container.appendChild(\n document.createTextNode(\n (node.textContent ?? \"\").replaceAll(\"\\r\", \"\"),\n ),\n );\n return;\n }\n\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n if (isMemtionTag(node)) {\n const tag = document.createElement(\"span\");\n const memtionValue = node.getAttribute(\"data-memtion-value\");\n\n tag.className = MEMTION_TAG_CLASS_NAME;\n tag.setAttribute(\"contenteditable\", \"false\");\n\n if (memtionValue !== null) {\n tag.setAttribute(\"data-memtion-value\", memtionValue);\n }\n\n tag.innerHTML = node.innerHTML;\n container.appendChild(tag);\n return;\n }\n\n if (node.tagName === \"BR\") {\n appendBreak(container);\n return;\n }\n\n Array.from(node.childNodes).forEach((child) => {\n appendPlaintextOnMemtionNode(container, child);\n });\n\n if (blockTags.has(node.tagName)) {\n appendBreak(container);\n }\n};\n\nexport const sanitizePlaintextOnMemtionHtml = (value: string) => {\n if (typeof document === \"undefined\") {\n return value;\n }\n\n const source = document.createElement(\"div\");\n const result = document.createElement(\"div\");\n\n source.innerHTML = value;\n\n Array.from(source.childNodes).forEach((child) => {\n appendPlaintextOnMemtionNode(result, child);\n });\n\n while (result.lastChild?.nodeName === \"BR\") {\n result.lastChild.remove();\n }\n\n return result.innerHTML;\n};\n\nconst getAdjacentMemtionTag = (\n range: Range,\n direction: \"backward\" | \"forward\",\n) => {\n const { startContainer, startOffset } = range;\n\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const textNode = startContainer as Text;\n\n if (direction === \"backward\" && startOffset === 0) {\n return isMemtionTag(textNode.previousSibling)\n ? (textNode.previousSibling as HTMLElement)\n : null;\n }\n\n if (direction === \"forward\" && startOffset === textNode.data.length) {\n return isMemtionTag(textNode.nextSibling)\n ? (textNode.nextSibling as HTMLElement)\n : null;\n }\n\n return null;\n }\n\n const element = startContainer as Element;\n const targetIndex =\n direction === \"backward\" ? startOffset - 1 : startOffset;\n const targetNode = element.childNodes.item(targetIndex);\n\n return isMemtionTag(targetNode) ? (targetNode as HTMLElement) : null;\n};\n\nexport const removeAdjacentMemtionTag = (\n editor: HTMLDivElement | null,\n key: \"Backspace\" | \"Delete\",\n) => {\n if (!editor) return false;\n\n const selection = window.getSelection();\n if (!selection?.rangeCount || !selection.isCollapsed) return false;\n\n const activeRange = selection.getRangeAt(0);\n const tag = getAdjacentMemtionTag(\n activeRange,\n key === \"Backspace\" ? \"backward\" : \"forward\",\n );\n\n if (!tag || !tag.parentNode) return false;\n\n const parent = tag.parentNode;\n const nextSibling = tag.nextSibling;\n const index = Array.prototype.indexOf.call(parent.childNodes, tag);\n\n if (nextSibling?.nodeType === Node.TEXT_NODE) {\n const textNode = nextSibling as Text;\n\n if (textNode.data.startsWith(\" \")) {\n textNode.deleteData(0, 1);\n\n if (!textNode.data.length) {\n nextSibling.remove();\n }\n }\n }\n\n tag.remove();\n\n const range = document.createRange();\n range.setStart(parent, Math.min(index, parent.childNodes.length));\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n editor.focus();\n\n return true;\n};\n\nconst makeRectSource = (rect: DOMRect): HTMLElement => {\n const { left, top, width, height } = rect;\n\n return {\n offsetParent: null,\n offsetLeft: left,\n offsetTop: top,\n getBoundingClientRect: () => ({\n left,\n top,\n right: left + width,\n bottom: top + height,\n width,\n height,\n x: left,\n y: top,\n toJSON: () => ({}),\n }),\n } as HTMLElement;\n};\n\nconst Memtion = (props: IMemtionProps) => {\n const { visible, rect, options, activeIndex, onActiveChange, onSelect } =\n props;\n\n const containerRef = useRef<HTMLUListElement | null>(null);\n const [pos, setPos] = useState({ left: 0, top: 0 });\n const [ready, setReady] = useState(false);\n\n useLayoutEffect(() => {\n if (!visible || !rect || !options?.length) {\n setReady(false);\n return;\n }\n\n const el = containerRef.current;\n if (!el) return;\n\n const [left, top] = getPosition(makeRectSource(rect), el, {\n position: \"bottom\",\n gap: 4,\n offset: 0,\n align: \"start\",\n refWindow: true,\n });\n\n setPos({ left, top });\n setReady(true);\n }, [visible, rect, options]);\n\n if (!visible || !rect || !options?.length) {\n return null;\n }\n\n const content = (\n <List\n ref={containerRef}\n className=\"i-editor-memtion\"\n type=\"option\"\n style={{\n position: \"fixed\",\n left: pos.left,\n top: pos.top,\n opacity: ready ? 1 : 0,\n }}\n >\n {options.map((option, i) => (\n <List.Item\n key={`${option.value}-${i}`}\n type=\"option\"\n active={i === activeIndex}\n onMouseDown={(e) => e.preventDefault()}\n onMouseEnter={() => onActiveChange?.(i)}\n onClick={() => onSelect?.(option)}\n >\n {option.label}\n </List.Item>\n ))}\n </List>\n );\n\n if (typeof document === \"undefined\") {\n return content;\n }\n\n return createPortal(content, document.body);\n};\n\nexport default memo(Memtion);\n"],"names":["_jsx","_Fragment"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import classNames from 'classnames';
3
- import { Children, cloneElement } from 'react';
3
+ import { forwardRef, Children, cloneElement } from 'react';
4
4
  import Item from './item.js';
5
5
 
6
- const List = (props) => {
6
+ const List = forwardRef((props, ref) => {
7
7
  const { label, type, border, className, children, ...restProps } = props;
8
- return (jsx("ul", { className: classNames("i-list", className), ...restProps, children: Children.map(children, (node, i) => {
8
+ return (jsx("ul", { ref: ref, className: classNames("i-list", className), ...restProps, children: Children.map(children, (node, i) => {
9
9
  const renderLabel = typeof label === "function" ? label(i) : label;
10
10
  const { type, props: nodeProps } = node;
11
11
  if (type === Item) {
@@ -18,7 +18,7 @@ const List = (props) => {
18
18
  }
19
19
  return node;
20
20
  }) }));
21
- };
21
+ });
22
22
  List.Item = Item;
23
23
 
24
24
  export { List as default };