@nyaruka/temba-components 0.123.0 → 0.124.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 (146) hide show
  1. package/.github/copilot-instructions.md +22 -4
  2. package/CHANGELOG.md +21 -0
  3. package/TEST_OPTIMIZATION.md +158 -0
  4. package/demo/alert/example.html +65 -0
  5. package/demo/button/example.html +71 -0
  6. package/demo/chart/example.html +56 -0
  7. package/demo/checkbox/example.html +72 -0
  8. package/demo/compose/example.html +72 -0
  9. package/demo/data/images/gus.png +0 -0
  10. package/demo/data/images/purrington.jpg +0 -0
  11. package/demo/data/server/opened-tickets.json +40 -0
  12. package/demo/data/server/response-time.json +27 -0
  13. package/demo/datepicker/example.html +69 -0
  14. package/demo/dialog/example.html +107 -0
  15. package/demo/dropdown/example.html +99 -0
  16. package/demo/index.html +152 -430
  17. package/demo/misc/example.html +72 -0
  18. package/demo/progress/example.html +59 -0
  19. package/demo/select/drag-and-drop.html +142 -0
  20. package/demo/select/example.html +82 -0
  21. package/demo/select/multi.html +73 -0
  22. package/demo/slider/example.html +59 -0
  23. package/demo/sortable-list/example.html +99 -0
  24. package/demo/styles.css +183 -0
  25. package/demo/tabs/example.html +91 -0
  26. package/demo/textinput/completion.html +56 -0
  27. package/demo/textinput/example.html +61 -0
  28. package/dist/temba-components.js +323 -191
  29. package/dist/temba-components.js.map +1 -1
  30. package/out-tsc/src/chart/TembaChart.js +19 -16
  31. package/out-tsc/src/chart/TembaChart.js.map +1 -1
  32. package/out-tsc/src/fields/FieldManager.js +27 -34
  33. package/out-tsc/src/fields/FieldManager.js.map +1 -1
  34. package/out-tsc/src/flow/Editor.js +1 -1
  35. package/out-tsc/src/flow/Editor.js.map +1 -1
  36. package/out-tsc/src/list/SortableList.js +257 -60
  37. package/out-tsc/src/list/SortableList.js.map +1 -1
  38. package/out-tsc/src/omnibox/Omnibox.js +1 -1
  39. package/out-tsc/src/omnibox/Omnibox.js.map +1 -1
  40. package/out-tsc/src/select/Select.js +198 -38
  41. package/out-tsc/src/select/Select.js.map +1 -1
  42. package/out-tsc/src/thumbnail/Thumbnail.js +1 -1
  43. package/out-tsc/src/thumbnail/Thumbnail.js.map +1 -1
  44. package/out-tsc/src/webchat/WebChat.js +5 -2
  45. package/out-tsc/src/webchat/WebChat.js.map +1 -1
  46. package/out-tsc/test/temba-chart.test.js +1 -1
  47. package/out-tsc/test/temba-chart.test.js.map +1 -1
  48. package/out-tsc/test/temba-compose.test.js +6 -30
  49. package/out-tsc/test/temba-compose.test.js.map +1 -1
  50. package/out-tsc/test/temba-contact-chat.test.js +1 -2
  51. package/out-tsc/test/temba-contact-chat.test.js.map +1 -1
  52. package/out-tsc/test/temba-dropdown.test.js +1 -1
  53. package/out-tsc/test/temba-dropdown.test.js.map +1 -1
  54. package/out-tsc/test/temba-flow-editor-node.test.js +273 -0
  55. package/out-tsc/test/temba-flow-editor-node.test.js.map +1 -0
  56. package/out-tsc/test/temba-flow-editor.test.js +244 -0
  57. package/out-tsc/test/temba-flow-editor.test.js.map +1 -0
  58. package/out-tsc/test/temba-flow-plumber.test.js +145 -0
  59. package/out-tsc/test/temba-flow-plumber.test.js.map +1 -0
  60. package/out-tsc/test/temba-flow-render.test.js +171 -0
  61. package/out-tsc/test/temba-flow-render.test.js.map +1 -0
  62. package/out-tsc/test/temba-omnibox.test.js +6 -3
  63. package/out-tsc/test/temba-omnibox.test.js.map +1 -1
  64. package/out-tsc/test/temba-select.test.js +183 -53
  65. package/out-tsc/test/temba-select.test.js.map +1 -1
  66. package/out-tsc/test/temba-sortable-list.test.js +91 -15
  67. package/out-tsc/test/temba-sortable-list.test.js.map +1 -1
  68. package/out-tsc/test/temba-toast.test.js +1 -2
  69. package/out-tsc/test/temba-toast.test.js.map +1 -1
  70. package/out-tsc/test/temba-utils-index.test.js +2 -2
  71. package/out-tsc/test/temba-utils-index.test.js.map +1 -1
  72. package/out-tsc/test/temba-webchat-lightbox-fix.test.js +42 -0
  73. package/out-tsc/test/temba-webchat-lightbox-fix.test.js.map +1 -0
  74. package/out-tsc/test/utils.test.js +58 -0
  75. package/out-tsc/test/utils.test.js.map +1 -1
  76. package/package.json +2 -3
  77. package/screenshots/truth/flow/editor-basic.png +0 -0
  78. package/screenshots/truth/list/fields-dragging.png +0 -0
  79. package/screenshots/truth/list/sortable-dragging.png +0 -0
  80. package/screenshots/truth/list/sortable-dropped.png +0 -0
  81. package/screenshots/truth/list/sortable.png +0 -0
  82. package/screenshots/truth/omnibox/selected.png +0 -0
  83. package/screenshots/truth/select/disabled-multi-selection.png +0 -0
  84. package/screenshots/truth/select/disabled-selection.png +0 -0
  85. package/screenshots/truth/select/disabled.png +0 -0
  86. package/screenshots/truth/select/embedded.png +0 -0
  87. package/screenshots/truth/select/empty-options.png +0 -0
  88. package/screenshots/truth/select/expression-selected.png +0 -0
  89. package/screenshots/truth/select/expressions.png +0 -0
  90. package/screenshots/truth/select/functions.png +0 -0
  91. package/screenshots/truth/select/local-options.png +0 -0
  92. package/screenshots/truth/select/multi-reorder-final.png +0 -0
  93. package/screenshots/truth/select/multi-reorder-initial.png +0 -0
  94. package/screenshots/truth/select/multi-with-endpoint.png +0 -0
  95. package/screenshots/truth/select/multiple-initial-values.png +0 -0
  96. package/screenshots/truth/select/remote-options.png +0 -0
  97. package/screenshots/truth/select/search-enabled.png +0 -0
  98. package/screenshots/truth/select/search-multi-no-matches.png +0 -0
  99. package/screenshots/truth/select/search-selected-focus.png +0 -0
  100. package/screenshots/truth/select/search-selected.png +0 -0
  101. package/screenshots/truth/select/search-with-selected.png +0 -0
  102. package/screenshots/truth/select/searching.png +0 -0
  103. package/screenshots/truth/select/selected-multi-maxitems-reached.png +0 -0
  104. package/screenshots/truth/select/selected-multi.png +0 -0
  105. package/screenshots/truth/select/selected-single.png +0 -0
  106. package/screenshots/truth/select/selection-clearable.png +0 -0
  107. package/screenshots/truth/select/static-initial-value.png +0 -0
  108. package/screenshots/truth/select/static-initial-via-selected.png +0 -0
  109. package/screenshots/truth/select/truncated-selection.png +0 -0
  110. package/screenshots/truth/select/with-placeholder.png +0 -0
  111. package/screenshots/truth/select/without-placeholder.png +0 -0
  112. package/screenshots/truth/templates/default.png +0 -0
  113. package/screenshots/truth/templates/unapproved.png +0 -0
  114. package/screenshots/truth/webchat/connected-state.png +0 -0
  115. package/src/chart/TembaChart.ts +20 -16
  116. package/src/fields/FieldManager.ts +30 -38
  117. package/src/flow/Editor.ts +1 -1
  118. package/src/list/SortableList.ts +291 -67
  119. package/src/omnibox/Omnibox.ts +1 -1
  120. package/src/select/Select.ts +213 -42
  121. package/src/thumbnail/Thumbnail.ts +1 -1
  122. package/src/webchat/WebChat.ts +5 -2
  123. package/test/temba-chart.test.ts +1 -1
  124. package/test/temba-compose.test.ts +11 -38
  125. package/test/temba-contact-chat.test.ts +4 -6
  126. package/test/temba-dropdown.test.ts +1 -1
  127. package/test/temba-flow-editor-node.test.ts +344 -0
  128. package/test/temba-flow-editor.test.ts +301 -0
  129. package/test/temba-flow-plumber.test.ts +189 -0
  130. package/test/temba-flow-render.test.ts +220 -0
  131. package/test/temba-omnibox.test.ts +7 -3
  132. package/test/temba-select.test.ts +247 -79
  133. package/test/temba-sortable-list.test.ts +108 -15
  134. package/test/temba-toast.test.ts +2 -2
  135. package/test/temba-utils-index.test.ts +2 -2
  136. package/test/temba-webchat-lightbox-fix.test.ts +57 -0
  137. package/test/utils.test.ts +88 -0
  138. package/web-test-runner.config.mjs +4 -2
  139. package/.storybook/main.js +0 -14
  140. package/.storybook/preview-head.html +0 -1
  141. package/.storybook/preview.js +0 -17
  142. package/demo/agents.html +0 -147
  143. package/demo/old.html +0 -573
  144. package/demo/remote.html +0 -3
  145. package/screenshots/truth/compose/attachments-with-files-focused.png +0 -0
  146. package/stories/temba-checkbox.stories.md +0 -37
package/demo/old.html DELETED
@@ -1,573 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="https://unpkg.com/@webcomponents/webcomponentsjs@2.3.0/bundles/webcomponents-sd-ce.js"></script>
5
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.js"></script>
6
- <link
7
- href="/sitestatic/css/temba-components.css"
8
- rel="stylesheet"
9
- type="text/css"
10
- />
11
-
12
- <link
13
- href="/sitestatic/css/tailwind.css"
14
- rel="stylesheet"
15
- type="text/css"
16
- />
17
-
18
- <script language="javascript">
19
-
20
- function handleContactChange(event) {
21
- const ticket = event.target.value;
22
- const chat = document.querySelector("temba-contact-chat");
23
- chat.ticket = ticket;
24
- }
25
-
26
- function handleContactHistoryUpdate(event) {
27
- // tell our list to refresh since we know things happened
28
- const tickets = document.querySelector("temba-tickets");
29
- tickets.refresh();
30
- }
31
-
32
- function handleTicketsRefreshed(event) {
33
- // tell our chat to refresh since we know things are new in our list
34
- const chat = document.querySelector("temba-contact-chat");
35
- chat.refresh();
36
- }
37
-
38
- function handleFilterChanged(event) {
39
- const tickets = document.querySelector("temba-tickets");
40
- const chat = document.querySelector("temba-contact-chat");
41
-
42
- // if we have auto selecting, don't clear the chat
43
- if (!tickets.nextSelection) {
44
- chat.ticket = null;
45
- }
46
-
47
- const filter = event.target.values[0].value;
48
- if (filter === "O") {
49
- tickets.endpoint = "/contact/tickets/?_format=json&folder=open"
50
- } else {
51
- tickets.endpoint = "/contact/tickets/?_format=json&folder=closed"
52
- }
53
- }
54
-
55
- function handleTicketChanged(event) {
56
- const ticket = event.detail.ticket;
57
- const focus = event.detail.focus;
58
-
59
- const filter = document.querySelector('temba-select[name="ticket-filter"]');
60
- const tickets = document.querySelector("temba-tickets");
61
-
62
- if (focus) {
63
- tickets.setNextSelection(ticket.uuid);
64
- filter.setSelection(ticket.status);
65
- } else {
66
- // no focus, just refresh
67
- tickets.refresh();
68
- }
69
- }
70
-
71
- </script>
72
-
73
- </head>
74
- <body>
75
- <link
76
- href="https://fonts.googleapis.com/css?family=Roboto+Mono:300|Roboto:300,400,500"
77
- rel="stylesheet"
78
- />
79
-
80
- <style>
81
-
82
- temba-select[name='ticket-filter'] {
83
- margin-bottom: 0.5em;
84
- margin-top: -0.4em;
85
- }
86
-
87
- .example {
88
- padding: 20px;
89
- border: 1px solid #e6e6e6;
90
- margin: 10px;
91
- border-radius: 3px;
92
- }
93
-
94
- .example-header {
95
- padding-bottom: 10px;
96
- font-size: 12px;
97
- }
98
-
99
- html {
100
- --color-text-dark: #555;
101
- }
102
-
103
- .ticket-list {
104
- flex-basis: 300px;
105
- flex-grow: 0;
106
- flex-shrink: 0;
107
- transition: all 200ms ease-in;
108
- }
109
-
110
- @media only screen and (max-width: 1024px) {
111
- .ticket-list {
112
- flex-basis: 200px;
113
- }
114
- }
115
-
116
- @media only screen and (max-width: 768px) {
117
- .ticket-list {
118
- flex-basis: 125px;
119
- }
120
- }
121
-
122
- </style>
123
- <temba-store
124
- completions="/mr/docs/en-us/completion.json"
125
- functions="/mr/docs/en-us/functions.json"
126
- fields="/api/v2/fields.json"
127
- globals="/api/v2/globals.json"
128
- groups="/api/v2/groups.json"
129
- ></temba-store>
130
-
131
- <div class="flex-col">
132
- <div class="flex" style="height:100vh">
133
-
134
- <div class="ticket-list m-4 mr-2 flex flex-col">
135
-
136
- <temba-select name="ticket-filter" onchange="handleFilterChanged(event)">
137
- <temba-option name="Open" value="O" icon="inbox"></temba-option>
138
- <temba-option name="Closed" value="C" icon="check"></temba-option>
139
- </temba-select>
140
-
141
-
142
- <div class="flex flex-grow">
143
- <temba-tickets endpoint="/contact/tickets/?_format=json&folder=open" @temba-refreshed="handleTicketsRefreshed(event)" onchange="handleContactChange(event)"></temba-tickets>
144
- </div>
145
-
146
- </div>
147
-
148
- <div class="flex-grow flex-col h-full py-4 pb-4 pr-4">
149
- <temba-contact-chat @temba-refreshed="handleContactHistoryUpdate(event)" @temba-content-changed="handleTicketChanged(event)"></temba-contact-chat>
150
- </div>
151
-
152
- </div>
153
- </div>
154
-
155
- <!--
156
- <div class="flex-col">
157
- <div class="flex" style="height:100vh">
158
- <div style="min-width:250px; max-width:450px" class="m-4 mr-2">
159
- <temba-ticket-list endpoint="/api/v2/contacts.json" onchange="handleContactChange(event)"></temba-ticket-list>
160
- </div>
161
-
162
- <div class="flex-grow flex-col h-full py-4 pb-4 pr-4">
163
- <temba-contact-chat></temba-contact-chat>
164
- </div>
165
-
166
- </div>
167
- </div>
168
-
169
- <div class="example">
170
- <temba-completion counter="temba-charcount" value="Some sample text goes here. Let’s go!" gsm textarea></temba-completion>
171
- <temba-charcount text='count this text'></temba-charcount>
172
- </div>
173
-
174
-
175
- <div class="example">
176
- <temba-textinput value="Some sample text goes here. Let’s go!" gsm></temba-textinput>
177
- </div>
178
-
179
- <div class="example">
180
- <temba-textinput
181
- name="start"
182
- label="Start Time"
183
- help_text="This is something you should think long and hard about"
184
- placeholder="Put something down, for real"
185
- value="2020-11-28 15:03"
186
- clearable
187
- datetimepicker
188
- ></temba-textinput>
189
- </div>
190
-
191
- <div class="example">
192
- <temba-textinput
193
- name="start"
194
- label="Start Time"
195
- help_text="This is something you should think long and hard about"
196
- placeholder="Put something down, for real"
197
- clearable
198
- datetimepicker
199
- ></temba-textinput>
200
- </div>
201
-
202
- <div class="example">
203
- <temba-checkbox
204
- name="schedule"
205
- label="Schedule for later delivery"
206
- help_text="This is something you should think long and hard about"
207
- ></temba-checkbox>
208
-
209
- <temba-checkbox
210
- name="disabled"
211
- label="You can't check this one"
212
- help_text="It is disabled, don't click it"
213
- disabled
214
- ></temba-checkbox>
215
- </div>
216
-
217
- <div class="example">
218
- <temba-modax
219
- header="Save as Group"
220
- endpoint='/contactgroup/create/?search=group = "Drivers"'
221
- id="create-dynamic"
222
- >
223
- <div class="button-primary inline-block">Save as Group</div>
224
- </temba-modax>
225
- </div>
226
-
227
- <div class="example">
228
- <temba-modax
229
- header="Edit Contact"
230
- endpoint="/contact/update/10001/"
231
- id="edit-contact"
232
- >
233
- <div class="button-primary inline-block">Edit Contact</div>
234
- </temba-modax>
235
- </div>
236
-
237
- <div class="example">
238
- <temba-modax
239
- header="Edit Label"
240
- endpoint="/label/update/102/"
241
- id="update-label"
242
- >
243
- <div class="button-primary inline-block">Edit Label</div>
244
- </temba-modax>
245
- </div>
246
-
247
- <div class="example">
248
- <temba-modax
249
- id="edit-group"
250
- header="Edit Group"
251
- endpoint="/contactgroup/update/139/"
252
- >
253
- <div class="button-primary inline-block">Edit Group</div>
254
- </temba-modax>
255
- </div>
256
-
257
- <div class="example">
258
- <temba-modax
259
- id="send-message"
260
- header="Send Message"
261
- endpoint="/broadcast/send/"
262
- >
263
- <div class="button-primary inline-block">Send Message</div>
264
- </temba-modax>
265
- </div>
266
-
267
- <div class="example">
268
- <div class="example-header">Contact Search</div>
269
- <temba-contact-search
270
- name="contact_query"
271
- endpoint="/contact/search/?samples=5&search="
272
- placeholder="Enter a query"
273
- matches-text="Found ${count} for ${query}"
274
- >
275
- </temba-contact-search>
276
- </div>
277
-
278
- <div class="example">
279
- <div class="example-header">Text Inputs</div>
280
- <temba-textinput></temba-textinput>
281
- <br />
282
- <temba-textinput textarea></temba-textinput>
283
- </div>
284
-
285
- <div class="example">
286
- <div class="example-header">Side by Side</div>
287
-
288
- <div style="display: flex; align-items: center">
289
- <temba-select name="start-type" placeholder="Pick some colors" multi>
290
- <temba-option value="red" name="Red"></temba-option>
291
- <temba-option value="gree" name="Green" selected></temba-option>
292
- <temba-option value="blue" name="Blue" selected></temba-option>
293
- </temba-select>
294
-
295
- <temba-select name="start-type" placeholder="Choose how to start">
296
- <temba-option
297
- value="0"
298
- name="Choose recipients manually"
299
- ></temba-option>
300
- <temba-option
301
- value="1"
302
- name="Search for contacts to start"
303
- ></temba-option>
304
- </temba-select>
305
-
306
- <temba-select
307
- name="start-type"
308
- placeholder="Search how to start but make sure you can read this entire message"
309
- searchable
310
- >
311
- <temba-option
312
- value="0"
313
- name="Choose recipients manually"
314
- ></temba-option>
315
- <temba-option
316
- value="1"
317
- name="Search for contacts to start"
318
- ></temba-option>
319
- </temba-select>
320
-
321
- <temba-textinput></temba-textinput>
322
- <temba-textinput placeholder="Hello placeholder"></temba-textinput>
323
- </div>
324
- </div>
325
-
326
- <div class="example">
327
- <div class="example-header">Single</div>
328
- <temba-select name="start-type" placeholder="Choose how to start">
329
- <temba-option
330
- value="0"
331
- name="Choose recipients manually"
332
- ></temba-option>
333
- <temba-option
334
- value="1"
335
- name="Search for contacts to start"
336
- ></temba-option>
337
- </temba-select>
338
- </div>
339
-
340
- <div class="example">
341
- <div class="example-header">Single Initialized</div>
342
- <temba-select name="start-type" placeholder="Choose how to start">
343
- <temba-option
344
- value="0"
345
- name="Choose recipients manually"
346
- ></temba-option>
347
- <temba-option
348
- value="1"
349
- name="Search for contacts to start"
350
- selected
351
- ></temba-option>
352
- </temba-select>
353
- </div>
354
-
355
- <div class="example">
356
- <div class="example-header">Single Searchable</div>
357
- <temba-select
358
- name="start-type"
359
- placeholder="Search how to start but make sure you can read this entire message"
360
- searchable
361
- >
362
- <temba-option
363
- value="0"
364
- name="Choose recipients manually"
365
- ></temba-option>
366
- <temba-option
367
- value="1"
368
- name="Search for contacts to start"
369
- ></temba-option>
370
- </temba-select>
371
- </div>
372
-
373
- <div class="example">
374
- <div class="example-header">Single Remote</div>
375
- <temba-select
376
- endpoint="/contact/omnibox/?v=2"
377
- queryParam="search"
378
- placeholder="Contacts"
379
- searchable
380
- >
381
- </temba-select>
382
- </div>
383
-
384
- <div class="example">
385
- <div class="example-header">Single Remote Search Unfiltered</div>
386
- <temba-select
387
- endpoint="/api/v2/channels.json"
388
- placeholder="Channels"
389
- valueKey="uuid"
390
- searchable
391
- >
392
- </temba-select>
393
- </div>
394
-
395
- <div class="example">
396
- <div class="example-header">Clearable</div>
397
- <temba-select name="start-type" placeholder="Select a color" clearable>
398
- <temba-option value="red" name="Red"></temba-option>
399
- <temba-option value="gree" name="Green"></temba-option>
400
- <temba-option value="blue" name="Blue"></temba-option>
401
- </temba-select>
402
- </div>
403
-
404
- <div class="example">
405
- <div class="example-header">Multi</div>
406
- <temba-select name="start-type" placeholder="Pick some colors" multi>
407
- <temba-option value="red" name="Red"></temba-option>
408
- <temba-option value="gree" name="Green"></temba-option>
409
- <temba-option value="blue" name="Blue"></temba-option>
410
- </temba-select>
411
- </div>
412
-
413
- <div class="example">
414
- <div class="example-header">Multi Initialized</div>
415
- <temba-select label="Multi Initialized" name="start-type" placeholder="Pick some colors" multi>
416
- <temba-option value="red" name="Red"></temba-option>
417
- <temba-option value="gree" name="Green" selected></temba-option>
418
- <temba-option value="blue" name="Blue" selected></temba-option>
419
- </temba-select>
420
- </div>
421
-
422
- <div class="example">
423
- <div class="example-header">Multi Searchable</div>
424
- <temba-select
425
- name="start-type"
426
- placeholder="Pick some colors"
427
- multi
428
- searchable
429
- >
430
- <temba-option value="red" name="Red"></temba-option>
431
- <temba-option value="green" name="Green"></temba-option>
432
- <temba-option value="blue" name="Blue"></temba-option>
433
- </temba-select>
434
- </div>
435
-
436
- <div class="example">
437
- <div class="example-header">Tags with expressions</div>
438
- <temba-select
439
- name="tagged"
440
- placeholder="Pick some colors"
441
- expressions="session"
442
- multi
443
- searchable
444
- tags
445
- >
446
- </temba-select>
447
- </div>
448
-
449
-
450
-
451
-
452
- <div class="example">
453
- <div class="example-header">Tags</div>
454
- <temba-select
455
- name="tagged"
456
- placeholder="Pick some colors"
457
- multi
458
- searchable
459
- tags
460
- space_select
461
- >
462
- <temba-option value="red" name="Red"></temba-option>
463
- <temba-option value="green" name="Green"></temba-option>
464
- <temba-option value="blue" name="Blue"></temba-option>
465
- </temba-select>
466
- </div>
467
- -->
468
-
469
-
470
-
471
- <!--
472
- <div class="example">
473
- <div class="example-header">Tags Initialized</div>
474
- <temba-select
475
- name="tagged"
476
- placeholder="Pick some colors"
477
- multi
478
- searchable
479
- tags
480
- space_select
481
- >
482
- <temba-option value="red" name="Red" selected></temba-option>
483
- <temba-option value="green" name="Green" selected></temba-option>
484
- <temba-option value="blue" name="Blue"></temba-option>
485
- </temba-select>
486
- </div>
487
-
488
- <div class="example">
489
- <div class="example-header">Multi Remote</div>
490
- <temba-select
491
- id="multi-remote"
492
- endpoint="/contact/omnibox/?v=2"
493
- queryParam="search"
494
- placeholder="Contacts"
495
- searchable
496
- multi
497
- >
498
- </temba-select>
499
-
500
- <script>
501
- window.setTimeout(() => {
502
- var multiRemote = document.getElementById("multi-remote");
503
- multiRemote.createArbitraryOption = function (input, options) {
504
- var existing = options.find(function (option) {
505
- return (
506
- option.name.toLowerCase().trim() === input.toLowerCase().trim()
507
- );
508
- });
509
- if (!existing) {
510
- return {
511
- prefix: "Create: ",
512
- name: input,
513
- id: "created",
514
- };
515
- }
516
- };
517
- }, 2000);
518
- </script>
519
- </div>
520
-
521
- <div class="example">
522
- <div class="example-header">Multi Remote with Expressions</div>
523
- <temba-select
524
- endpoint="/contact/omnibox/?v=2"
525
- queryParam="search"
526
- placeholder="Contacts"
527
- expressions="session"
528
- searchable
529
- multi
530
- >
531
- </temba-select>
532
- </div>
533
-
534
- <div class="example">
535
- <div class="example-header">Omnibox</div>
536
- <temba-omnibox
537
- endpoint="/contact/omnibox/?v=2"
538
- groups
539
- contacts
540
- ></temba-omnibox>
541
- </div>
542
-
543
- <div class="example">
544
- <div class="example-header">Omnibox Initialized</div>
545
- <temba-omnibox
546
- endpoint="/contact/omnibox/?v=2"
547
- groups
548
- contacts
549
- value='[{"id": "f916ebaa-630d-450c-b72c-268822b70a42", "name": "a new", "type": "group", "count": 0}]'
550
- ></temba-omnibox>
551
- </div>
552
-
553
- <div class="example">
554
- <div class="example-header">Completion</div>
555
- <temba-completion textarea value="This is just the beginning."></temba-completion>
556
- </div>
557
-
558
- <div class="example">
559
- <div class="example-header">Completion</div>
560
- <temba-completion></temba-completion>
561
- </div>
562
- -->
563
-
564
- <!--
565
- Alias Editor - Deprecated
566
- div class="example">
567
- <div class="example-header">Alias Editor</div>
568
- <alias-editor osmid="192787" endpoint="/adminboundary"></alias-editor>
569
- </div -->
570
-
571
- <script type="module" src="../src/temba-components.js"></script>
572
- </body>
573
- </html>
package/demo/remote.html DELETED
@@ -1,3 +0,0 @@
1
- <div>
2
- This was fetched..
3
- </div>
@@ -1,37 +0,0 @@
1
- ```js script
2
- import { html } from '@open-wc/demoing-storybook';
3
- import '../dist/index.js';
4
-
5
- export default {
6
- title: 'forms/temba-checkbox',
7
- component: 'temba-checkbox',
8
- options: { selectedPanel: 'storybookjs/knobs/panel' },
9
- };
10
- ```
11
-
12
- # temba-checkbox
13
-
14
- A component for...
15
-
16
- ## Features:
17
-
18
- - a
19
- - b
20
- - ...
21
-
22
- ## How to use
23
-
24
- ```js preview-story
25
- export const Default = () =>
26
- html`<temba-checkbox label="Click me for good luck"></temba-checkbox> `;
27
- ```
28
-
29
- ## Variations
30
-
31
- ###### Custom Title
32
-
33
- ```js preview-story
34
- export const Checked = () => html`
35
- <temba-checkbox label="I started out checked" checked></temba-checkbox>
36
- `;
37
- ```