@botonic/react 0.20.1-alpha.1 → 0.20.1

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 (110) hide show
  1. package/lib/components/image.js +6 -52
  2. package/lib/components/image.js.map +1 -1
  3. package/lib/constants.js +200 -0
  4. package/lib/constants.js.map +1 -0
  5. package/lib/contexts.js +57 -0
  6. package/lib/contexts.js.map +1 -0
  7. package/lib/dev-app.js +241 -0
  8. package/lib/dev-app.js.map +1 -0
  9. package/lib/index.d.ts +239 -0
  10. package/lib/index.js +131 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/message-utils.js +149 -0
  13. package/lib/message-utils.js.map +1 -0
  14. package/lib/msg-to-botonic.js +199 -0
  15. package/lib/msg-to-botonic.js.map +1 -0
  16. package/lib/node-app.js +97 -0
  17. package/lib/node-app.js.map +1 -0
  18. package/lib/react-bot.js +167 -0
  19. package/lib/react-bot.js.map +1 -0
  20. package/lib/util/dom.js +84 -0
  21. package/lib/util/dom.js.map +1 -0
  22. package/lib/util/environment.js +42 -0
  23. package/lib/util/environment.js.map +1 -0
  24. package/lib/util/error-boundary.js +105 -0
  25. package/lib/util/error-boundary.js.map +1 -0
  26. package/lib/util/index.d.ts +9 -0
  27. package/lib/util/index.js +2 -0
  28. package/lib/util/index.js.map +1 -0
  29. package/lib/util/logs.js +28 -0
  30. package/lib/util/logs.js.map +1 -0
  31. package/lib/util/objects.js +60 -0
  32. package/lib/util/objects.js.map +1 -0
  33. package/lib/util/react.js +75 -0
  34. package/lib/util/react.js.map +1 -0
  35. package/lib/util/regexs.js +31 -0
  36. package/lib/util/regexs.js.map +1 -0
  37. package/lib/util/webchat.js +92 -0
  38. package/lib/util/webchat.js.map +1 -0
  39. package/lib/webchat/actions.js +51 -0
  40. package/lib/webchat/actions.js.map +1 -0
  41. package/lib/webchat/components/attachment.js +43 -0
  42. package/lib/webchat/components/attachment.js.map +1 -0
  43. package/lib/webchat/components/common.js +33 -0
  44. package/lib/webchat/components/common.js.map +1 -0
  45. package/lib/webchat/components/emoji-picker.js +58 -0
  46. package/lib/webchat/components/emoji-picker.js.map +1 -0
  47. package/lib/webchat/components/persistent-menu.js +96 -0
  48. package/lib/webchat/components/persistent-menu.js.map +1 -0
  49. package/lib/webchat/components/send-button.js +27 -0
  50. package/lib/webchat/components/send-button.js.map +1 -0
  51. package/lib/webchat/components/styled-scrollbar.js +55 -0
  52. package/lib/webchat/components/styled-scrollbar.js.map +1 -0
  53. package/lib/webchat/components/styled-scrollbar.scss +12 -0
  54. package/lib/webchat/components/typing-indicator.js +27 -0
  55. package/lib/webchat/components/typing-indicator.js.map +1 -0
  56. package/lib/webchat/components/typing-indicator.scss +38 -0
  57. package/lib/webchat/devices/device-adapter.js +82 -0
  58. package/lib/webchat/devices/device-adapter.js.map +1 -0
  59. package/lib/webchat/devices/index.js +32 -0
  60. package/lib/webchat/devices/index.js.map +1 -0
  61. package/lib/webchat/devices/scrollbar-controller.js +152 -0
  62. package/lib/webchat/devices/scrollbar-controller.js.map +1 -0
  63. package/lib/webchat/devices/webchat-resizer.js +76 -0
  64. package/lib/webchat/devices/webchat-resizer.js.map +1 -0
  65. package/lib/webchat/header.js +116 -0
  66. package/lib/webchat/header.js.map +1 -0
  67. package/lib/webchat/hooks.js +350 -0
  68. package/lib/webchat/hooks.js.map +1 -0
  69. package/lib/webchat/index.d.ts +62 -0
  70. package/lib/webchat/index.js +32 -0
  71. package/lib/webchat/index.js.map +1 -0
  72. package/lib/webchat/message-list.js +88 -0
  73. package/lib/webchat/message-list.js.map +1 -0
  74. package/lib/webchat/messages-reducer.js +93 -0
  75. package/lib/webchat/messages-reducer.js.map +1 -0
  76. package/lib/webchat/replies.js +78 -0
  77. package/lib/webchat/replies.js.map +1 -0
  78. package/lib/webchat/session-view.js +106 -0
  79. package/lib/webchat/session-view.js.map +1 -0
  80. package/lib/webchat/use-storage-state-hook.js +29 -0
  81. package/lib/webchat/use-storage-state-hook.js.map +1 -0
  82. package/lib/webchat/webchat-dev.js +109 -0
  83. package/lib/webchat/webchat-dev.js.map +1 -0
  84. package/lib/webchat/webchat-reducer.js +102 -0
  85. package/lib/webchat/webchat-reducer.js.map +1 -0
  86. package/lib/webchat/webchat.js +1041 -0
  87. package/lib/webchat/webchat.js.map +1 -0
  88. package/lib/webchat/webview.js +122 -0
  89. package/lib/webchat/webview.js.map +1 -0
  90. package/lib/webchat-app.js +643 -0
  91. package/lib/webchat-app.js.map +1 -0
  92. package/lib/webchat.template.html +37 -0
  93. package/lib/webview.js +214 -0
  94. package/lib/webview.js.map +1 -0
  95. package/lib/webview.template.html +39 -0
  96. package/package.json +2 -2
  97. package/src/components/image.jsx +3 -37
  98. package/src/index.d.ts +0 -2
  99. package/src/index.js +0 -1
  100. package/src/webchat/actions.jsx +0 -1
  101. package/src/webchat/hooks.js +0 -8
  102. package/src/webchat/webchat-reducer.js +0 -4
  103. package/src/webchat/webchat.jsx +0 -18
  104. package/src/webchat-app.jsx +0 -8
  105. package/src/webchat/components/portal-modal/backdrop.jsx +0 -38
  106. package/src/webchat/components/portal-modal/constants.js +0 -7
  107. package/src/webchat/components/portal-modal/content.jsx +0 -10
  108. package/src/webchat/components/portal-modal/index.js +0 -5
  109. package/src/webchat/components/portal-modal/portal-modal-component.jsx +0 -72
  110. package/src/webchat/components/portal-modal/portal.jsx +0 -21
@@ -1,5 +0,0 @@
1
- export * from './backdrop'
2
- export * from './constants'
3
- export * from './content'
4
- export * from './portal'
5
- export * from './portal-modal-component'
@@ -1,72 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react'
2
-
3
- import { Backdrop } from './backdrop'
4
- import {
5
- MODAL_ACTIVE_CLASSNAME,
6
- MODAL_CONTENT_CLASSNAME,
7
- MODAL_PORTAL_CLASS_NAME,
8
- } from './constants'
9
- import { ModalContent } from './content'
10
- import { Portal } from './portal'
11
-
12
- const ESCAPE_KEY_CODE = 27
13
-
14
- export function PortalModalComponent({
15
- open,
16
- onClose,
17
- locked,
18
- children,
19
- customContent,
20
- }) {
21
- const [active, setActive] = useState(false)
22
-
23
- const backdrop = useRef(null)
24
-
25
- useEffect(() => {
26
- const { current } = backdrop
27
- const transitionEnd = () => setActive(open)
28
- const keyHandler = e =>
29
- !locked && [ESCAPE_KEY_CODE].indexOf(e.which) >= 0 && onClose()
30
- const clickHandler = e => !locked && e.target === current && onClose()
31
-
32
- if (current) {
33
- current.addEventListener('transitionend', transitionEnd)
34
- current.addEventListener('click', clickHandler)
35
- window.addEventListener('keyup', keyHandler)
36
- }
37
-
38
- if (open) {
39
- window.setTimeout(() => {
40
- document.activeElement.blur()
41
- setActive(open)
42
- }, 10)
43
- }
44
-
45
- return () => {
46
- if (current) {
47
- current.removeEventListener('transitionend', transitionEnd)
48
- current.removeEventListener('click', clickHandler)
49
- }
50
- window.removeEventListener('keyup', keyHandler)
51
- }
52
- }, [open, locked, onClose])
53
-
54
- return (
55
- (open || active) && (
56
- <Portal className={MODAL_PORTAL_CLASS_NAME}>
57
- <Backdrop
58
- ref={backdrop}
59
- className={active && open && MODAL_ACTIVE_CLASSNAME}
60
- >
61
- {customContent ? (
62
- customContent
63
- ) : (
64
- <ModalContent className={MODAL_CONTENT_CLASSNAME}>
65
- {children}
66
- </ModalContent>
67
- )}
68
- </Backdrop>
69
- </Portal>
70
- )
71
- )
72
- }
@@ -1,21 +0,0 @@
1
- import { useEffect, useMemo } from 'react'
2
- import { createPortal } from 'react-dom'
3
-
4
- import { BOTONIC_PORTAL_CLASS_LIST_NAME } from './constants'
5
-
6
- export function Portal({ children, parent, className }) {
7
- const element = useMemo(() => document.createElement('div'), [])
8
-
9
- useEffect(() => {
10
- const target = parent && parent.appendChild ? parent : document.body
11
- const classList = [BOTONIC_PORTAL_CLASS_LIST_NAME]
12
-
13
- if (className) className.split(' ').forEach(item => classList.push(item))
14
- classList.forEach(item => element.classList.add(item))
15
- target.appendChild(element)
16
-
17
- return () => target.removeChild(element)
18
- }, [element, parent, className])
19
-
20
- return createPortal(children, element)
21
- }