@nyaruka/temba-components 0.41.7 → 0.42.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 (119) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/demo/index.html +22 -0
  3. package/dist/{973a6cc2.js → f3b7c2f1.js} +397 -157
  4. package/dist/index.js +397 -157
  5. package/dist/sw.js +1 -1
  6. package/dist/sw.js.map +1 -1
  7. package/dist/templates/components-body.html +1 -1
  8. package/dist/templates/components-head.html +1 -1
  9. package/out-tsc/src/button/Button.js +3 -3
  10. package/out-tsc/src/button/Button.js.map +1 -1
  11. package/out-tsc/src/charcount/CharCount.js +5 -4
  12. package/out-tsc/src/charcount/CharCount.js.map +1 -1
  13. package/out-tsc/src/completion/Completion.js +5 -0
  14. package/out-tsc/src/completion/Completion.js.map +1 -1
  15. package/out-tsc/src/compose/Compose.js +531 -0
  16. package/out-tsc/src/compose/Compose.js.map +1 -0
  17. package/out-tsc/src/contacts/ContactChat.js +73 -69
  18. package/out-tsc/src/contacts/ContactChat.js.map +1 -1
  19. package/out-tsc/src/contacts/ContactHistory.js +1 -1
  20. package/out-tsc/src/contacts/ContactHistory.js.map +1 -1
  21. package/out-tsc/src/contacts/events.js +1 -0
  22. package/out-tsc/src/contacts/events.js.map +1 -1
  23. package/out-tsc/src/interfaces.js +2 -0
  24. package/out-tsc/src/interfaces.js.map +1 -1
  25. package/out-tsc/src/textinput/TextInput.js +3 -1
  26. package/out-tsc/src/textinput/TextInput.js.map +1 -1
  27. package/out-tsc/src/utils/index.js +10 -0
  28. package/out-tsc/src/utils/index.js.map +1 -1
  29. package/out-tsc/src/vectoricon/index.js +1 -0
  30. package/out-tsc/src/vectoricon/index.js.map +1 -1
  31. package/out-tsc/temba-modules.js +2 -0
  32. package/out-tsc/temba-modules.js.map +1 -1
  33. package/out-tsc/test/temba-compose.test.js +432 -0
  34. package/out-tsc/test/temba-compose.test.js.map +1 -0
  35. package/out-tsc/test/temba-contact-chat.test.js +219 -47
  36. package/out-tsc/test/temba-contact-chat.test.js.map +1 -1
  37. package/out-tsc/test/temba-contact-history.test.js +7 -3
  38. package/out-tsc/test/temba-contact-history.test.js.map +1 -1
  39. package/out-tsc/test/utils.test.js +12 -8
  40. package/out-tsc/test/utils.test.js.map +1 -1
  41. package/package.json +1 -1
  42. package/screenshots/truth/compose/attachments-and-send-button.png +0 -0
  43. package/screenshots/truth/compose/attachments-no-send-button.png +0 -0
  44. package/screenshots/truth/compose/attachments-with-all-files-and-click-send.png +0 -0
  45. package/screenshots/truth/compose/attachments-with-all-files.png +0 -0
  46. package/screenshots/truth/compose/attachments-with-failure-files.png +0 -0
  47. package/screenshots/truth/compose/attachments-with-success-files-and-click-send.png +0 -0
  48. package/screenshots/truth/compose/attachments-with-success-files.png +0 -0
  49. package/screenshots/truth/compose/chatbox-attachments-counter-and-send-button.png +0 -0
  50. package/screenshots/truth/compose/chatbox-attachments-counter-no-send-button.png +0 -0
  51. package/screenshots/truth/compose/chatbox-attachments-no-counter-and-send-button.png +0 -0
  52. package/screenshots/truth/compose/chatbox-attachments-no-counter-no-send-button.png +0 -0
  53. package/screenshots/truth/compose/chatbox-counter-and-send-button.png +0 -0
  54. package/screenshots/truth/compose/chatbox-counter-no-send-button.png +0 -0
  55. package/screenshots/truth/compose/chatbox-no-counter-and-send-button.png +0 -0
  56. package/screenshots/truth/compose/chatbox-no-counter-no-send-button.png +0 -0
  57. package/screenshots/truth/compose/chatbox-no-text-attachments-with-all-files-and-click-send.png +0 -0
  58. package/screenshots/truth/compose/chatbox-no-text-attachments-with-all-files.png +0 -0
  59. package/screenshots/truth/compose/chatbox-no-text-attachments-with-failure-files.png +0 -0
  60. package/screenshots/truth/compose/chatbox-no-text-attachments-with-success-files-and-click-send.png +0 -0
  61. package/screenshots/truth/compose/chatbox-no-text-attachments-with-success-files.png +0 -0
  62. package/screenshots/truth/compose/chatbox-with-text-and-click-send.png +0 -0
  63. package/screenshots/truth/compose/chatbox-with-text-and-hit-enter.png +0 -0
  64. package/screenshots/truth/compose/chatbox-with-text-and-spaces.png +0 -0
  65. package/screenshots/truth/compose/chatbox-with-text-and-url.png +0 -0
  66. package/screenshots/truth/compose/chatbox-with-text-attachments-no-files-and-click-send.png +0 -0
  67. package/screenshots/truth/compose/chatbox-with-text-attachments-no-files-and-hit-enter.png +0 -0
  68. package/screenshots/truth/compose/chatbox-with-text-attachments-no-files.png +0 -0
  69. package/screenshots/truth/compose/chatbox-with-text-attachments-with-all-files-and-click-send.png +0 -0
  70. package/screenshots/truth/compose/chatbox-with-text-attachments-with-all-files-and-hit-enter.png +0 -0
  71. package/screenshots/truth/compose/chatbox-with-text-attachments-with-all-files.png +0 -0
  72. package/screenshots/truth/compose/chatbox-with-text-attachments-with-failure-files.png +0 -0
  73. package/screenshots/truth/compose/chatbox-with-text-attachments-with-success-files-and-click-send.png +0 -0
  74. package/screenshots/truth/compose/chatbox-with-text-attachments-with-success-files-and-hit-enter.png +0 -0
  75. package/screenshots/truth/compose/chatbox-with-text-attachments-with-success-files.png +0 -0
  76. package/screenshots/truth/compose/chatbox-with-text-no-spaces.png +0 -0
  77. package/screenshots/truth/compose/chatbox-with-text.png +0 -0
  78. package/screenshots/truth/contacts/badges.png +0 -0
  79. package/screenshots/truth/contacts/compose-attachments-no-text-failure.png +0 -0
  80. package/screenshots/truth/contacts/compose-attachments-no-text-success.png +0 -0
  81. package/screenshots/truth/contacts/compose-text-and-attachments-failure-attachments.png +0 -0
  82. package/screenshots/truth/contacts/compose-text-and-attachments-failure-generic.png +0 -0
  83. package/screenshots/truth/contacts/compose-text-and-attachments-failure-text-and-attachments.png +0 -0
  84. package/screenshots/truth/contacts/compose-text-and-attachments-failure-text.png +0 -0
  85. package/screenshots/truth/contacts/compose-text-and-attachments-success.png +0 -0
  86. package/screenshots/truth/contacts/compose-text-no-attachments-failure.png +0 -0
  87. package/screenshots/truth/contacts/compose-text-no-attachments-success.png +0 -0
  88. package/screenshots/truth/contacts/contact-active-default.png +0 -0
  89. package/screenshots/truth/contacts/contact-active-show-chatbox.png +0 -0
  90. package/screenshots/truth/contacts/contact-active-ticket-closed-show-reopen-button.png +0 -0
  91. package/screenshots/truth/contacts/contact-active-ticket-open-show-chatbox.png +0 -0
  92. package/screenshots/truth/contacts/contact-archived-hide-chatbox.png +0 -0
  93. package/screenshots/truth/contacts/contact-archived-ticket-closed-hide-chatbox.png +0 -0
  94. package/screenshots/truth/contacts/contact-blocked-hide-chatbox.png +0 -0
  95. package/screenshots/truth/contacts/contact-stopped-hide-chatbox.png +0 -0
  96. package/screenshots/truth/contacts/history.png +0 -0
  97. package/screenshots/truth/counter/summary.png +0 -0
  98. package/screenshots/truth/counter/text.png +0 -0
  99. package/screenshots/truth/counter/unicode-variables.png +0 -0
  100. package/screenshots/truth/counter/unicode.png +0 -0
  101. package/screenshots/truth/counter/variable.png +0 -0
  102. package/src/button/Button.ts +3 -3
  103. package/src/charcount/CharCount.ts +5 -4
  104. package/src/completion/Completion.ts +4 -0
  105. package/src/compose/Compose.ts +584 -0
  106. package/src/contacts/ContactChat.ts +75 -78
  107. package/src/contacts/ContactHistory.ts +1 -1
  108. package/src/contacts/events.ts +1 -0
  109. package/src/interfaces.ts +2 -0
  110. package/src/textinput/TextInput.ts +3 -1
  111. package/src/utils/index.ts +12 -0
  112. package/src/vectoricon/index.ts +1 -0
  113. package/static/css/temba-components.css +6 -0
  114. package/temba-modules.ts +2 -0
  115. package/test/temba-compose.test.ts +633 -0
  116. package/test/temba-contact-chat.test.ts +354 -110
  117. package/test/temba-contact-history.test.ts +10 -5
  118. package/test/utils.test.ts +24 -9
  119. package/screenshots/truth/contacts/history-expanded.png +0 -0
Binary file
@@ -17,7 +17,7 @@ export class Button extends LitElement {
17
17
  background-image: var(--button-bg-img);
18
18
  color: var(--button-text);
19
19
  box-shadow: var(--button-shadow);
20
- transition: all 100ms ease-in;
20
+ transition: all calc(var(--transition-speed) / 2) ease-in;
21
21
  }
22
22
 
23
23
  .button-container {
@@ -26,7 +26,7 @@ export class Button extends LitElement {
26
26
  display: block;
27
27
  border-radius: var(--curvature);
28
28
  outline: none;
29
- transition: background ease-in 200ms;
29
+ transition: background ease-in var(--transition-speed);
30
30
  user-select: none;
31
31
  -webkit-user-select: none;
32
32
  text-align: center;
@@ -61,7 +61,7 @@ export class Button extends LitElement {
61
61
  padding: var(--button-y) var(--button-x);
62
62
  border-radius: var(--curvature);
63
63
  border: 1px solid transparent;
64
- transition: all ease-in 200ms;
64
+ transition: var(--transition-speed);
65
65
  background: var(--button-mask);
66
66
  }
67
67
 
@@ -51,10 +51,11 @@ export class CharCount extends RapidElement {
51
51
  transition: transform cubic-bezier(0.71, 0.18, 0.61, 1.33)
52
52
  var(--transition-speed);
53
53
  visibility: hidden;
54
- margin-top: 5px;
55
- right: 0px;
54
+ margin-top: var(--temba-charcount-summary-margin-top);
55
+ right: var(--temba-charcount-summary-right);
56
+ bottom: var(--temba-charcount-summary-bottom);
56
57
  text-align: left;
57
- position: absolute;
58
+ position: var(--temba-charcount-summary-position);
58
59
  z-index: 1000;
59
60
  }
60
61
 
@@ -86,7 +87,7 @@ export class CharCount extends RapidElement {
86
87
  display: inline-block;
87
88
  padding: 2px 6px;
88
89
  border-radius: var(--curvature);
89
- margin-top: 4px;
90
+ margin-top: var(--temba-charcount-counts-margin-top);
90
91
  }
91
92
 
92
93
  .segments {
@@ -115,6 +115,9 @@ export class Completion extends FormElement {
115
115
  @property({ type: String })
116
116
  counter: string;
117
117
 
118
+ @property({ type: Boolean })
119
+ autogrow = false;
120
+
118
121
  private hiddenElement: HTMLInputElement;
119
122
  private query: string;
120
123
 
@@ -258,6 +261,7 @@ export class Completion extends FormElement {
258
261
  @input=${this.handleInput}
259
262
  @blur=${this.handleOptionCanceled}
260
263
  .value=${this.value}
264
+ ?autogrow=${this.autogrow}
261
265
  ?textarea=${this.textarea}
262
266
  ?submitOnEnter=${this.submitOnEnter}
263
267
  >