@seamly/web-ui 20.2.0 → 20.4.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.
- package/build/dist/lib/deprecated-view.css +1 -1
- package/build/dist/lib/index.debug.js +211 -200
- package/build/dist/lib/index.debug.min.js +1 -1
- package/build/dist/lib/index.debug.min.js.LICENSE.txt +40 -36
- package/build/dist/lib/index.js +1811 -1137
- package/build/dist/lib/index.min.js +1 -1
- package/build/dist/lib/index.min.js.LICENSE.txt +2 -2
- package/build/dist/lib/standalone.js +5167 -2856
- package/build/dist/lib/standalone.min.js +1 -1
- package/build/dist/lib/standalone.min.js.LICENSE.txt +1 -1
- package/build/dist/lib/style-guide.js +7427 -7243
- package/build/dist/lib/style-guide.min.js +1 -1
- package/build/dist/lib/styles.css +1 -1
- package/package.json +15 -14
- package/src/javascripts/api/index.js +5 -4
- package/src/javascripts/domains/app/actions.js +22 -10
- package/src/javascripts/domains/config/reducer.js +2 -2
- package/src/javascripts/domains/forms/reducer.js +1 -1
- package/src/javascripts/domains/i18n/reducer.js +1 -1
- package/src/javascripts/domains/interrupt/reducer.js +1 -1
- package/src/javascripts/domains/store/state-reducer.js +1 -0
- package/src/javascripts/domains/translations/components/chat-status.js +10 -9
- package/src/javascripts/domains/translations/components/options-button.js +8 -3
- package/src/javascripts/domains/translations/components/options-dialog/form.js +6 -5
- package/src/javascripts/domains/translations/components/options-dialog/index.js +5 -2
- package/src/javascripts/domains/translations/hooks.js +15 -1
- package/src/javascripts/domains/translations/middleware.js +5 -2
- package/src/javascripts/domains/translations/reducer.js +2 -2
- package/src/javascripts/domains/visibility/actions.js +1 -1
- package/src/javascripts/index.js +1 -0
- package/src/javascripts/lib/debug.js +1 -0
- package/src/javascripts/lib/external-api/index.js +29 -4
- package/src/javascripts/style-guide/components/app.js +1 -1
- package/src/javascripts/style-guide/components/static-core.js +1 -4
- package/src/javascripts/style-guide/states.js +25 -0
- package/src/javascripts/ui/components/conversation/conversation.js +11 -12
- package/src/javascripts/ui/components/conversation/event/card-component.js +4 -1
- package/src/javascripts/ui/components/conversation/event/carousel-component/index.js +1 -1
- package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +18 -10
- package/src/javascripts/ui/components/conversation/event/cta.js +1 -1
- package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +4 -9
- package/src/javascripts/ui/components/conversation/event/image.js +12 -4
- package/src/javascripts/ui/components/conversation/event/text.js +2 -2
- package/src/javascripts/ui/components/conversation/loader.js +1 -1
- package/src/javascripts/ui/components/conversation/message-container.js +1 -1
- package/src/javascripts/ui/components/core/seamly-activity-monitor.js +1 -1
- package/src/javascripts/ui/components/core/seamly-core.js +2 -2
- package/src/javascripts/ui/components/core/seamly-file-upload.js +1 -1
- package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +6 -2
- package/src/javascripts/ui/components/core/seamly-live-region.js +2 -2
- package/src/javascripts/ui/components/entry/entry-container.js +2 -2
- package/src/javascripts/ui/components/entry/text-entry/hooks.js +1 -4
- package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +7 -1
- package/src/javascripts/ui/components/form-controls/select.js +1 -1
- package/src/javascripts/ui/components/layout/agent-info.js +1 -1
- package/src/javascripts/ui/components/layout/header.js +1 -1
- package/src/javascripts/ui/components/options/options-button.js +1 -1
- package/src/javascripts/ui/components/options/options.js +1 -1
- package/src/javascripts/ui/components/options/transcript/index.js +1 -1
- package/src/javascripts/ui/components/suggestions/suggestions-item.js +1 -1
- package/src/javascripts/ui/components/view/index.js +2 -2
- package/src/javascripts/ui/components/warnings/resume-conversation-prompt.js +1 -1
- package/src/javascripts/ui/components/widgets/lightbox.js +1 -1
- package/src/javascripts/ui/hooks/file-upload-hooks.js +2 -3
- package/src/javascripts/ui/hooks/focus-helper-hooks.js +2 -2
- package/src/javascripts/ui/hooks/seamly-entry-hooks.js +1 -1
- package/src/javascripts/ui/hooks/seamly-option-hooks.js +1 -1
- package/src/javascripts/ui/hooks/seamly-state-hooks.js +3 -0
- package/src/javascripts/ui/hooks/use-seamly-chat.js +2 -2
- package/src/javascripts/ui/hooks/use-seamly-commands.js +7 -7
- package/src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js +4 -4
- package/src/javascripts/ui/hooks/use-seamly-resume-conversation-prompt.js +2 -2
- package/src/javascripts/ui/hooks/use-single-file-upload.js +1 -1
- package/src/javascripts/ui/utils/general-utils.js +1 -1
- package/src/javascripts/ui/utils/seamly-utils.js +9 -1
- package/src/stylesheets/1-settings/_animations.scss +1 -1
- package/src/stylesheets/1-settings/_config.scss +17 -2
- package/src/stylesheets/2-tools/_functions.scss +4 -4
- package/src/stylesheets/2-tools/_mixins.scss +16 -14
- package/src/stylesheets/3-chat/_chat.scss +1 -1
- package/src/stylesheets/5-components/_choice-prompt.scss +1 -1
- package/src/stylesheets/5-components/_collapse-button.scss +1 -1
- package/src/stylesheets/5-components/_input.scss +1 -1
- package/src/stylesheets/5-components/_loader.scss +2 -2
- package/src/stylesheets/5-components/_message-carousel.scss +1 -1
- package/src/stylesheets/5-components/_message-count.scss +6 -3
- package/src/stylesheets/5-components/_message.scss +1 -2
- package/src/stylesheets/5-components/_modal.scss +1 -1
- package/src/stylesheets/5-components/_options.scss +3 -3
- package/src/stylesheets/5-components/_suggestions.scss +4 -5
- package/src/stylesheets/5-components/_upload.scss +1 -1
- package/src/stylesheets/7-deprecated/1-settings/_animations.scss +1 -1
- package/src/stylesheets/7-deprecated/1-settings/_config.scss +10 -7
- package/src/stylesheets/7-deprecated/2-tools/_functions.scss +2 -2
- package/src/stylesheets/7-deprecated/2-tools/_mixins.scss +6 -4
- package/src/stylesheets/7-deprecated/3-app/_app.scss +2 -2
- package/src/stylesheets/7-deprecated/4-base/_formelements.scss +1 -0
- package/src/stylesheets/7-deprecated/5-components/_chat-status.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_collapse-button.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_disclaimer.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_input.scss +2 -1
- package/src/stylesheets/7-deprecated/5-components/_loader.scss +2 -2
- package/src/stylesheets/7-deprecated/5-components/_message-count.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_message.scss +3 -4
- package/src/stylesheets/7-deprecated/5-components/_modal.scss +1 -1
- package/src/stylesheets/7-deprecated/5-components/_options.scss +2 -2
- package/src/stylesheets/7-deprecated/5-components/_upload.scss +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { useCallback, useContext } from 'preact/hooks'
|
|
2
|
-
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
3
|
-
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
4
2
|
import SeamlyFileUploadContext from 'ui/components/core/seamly-file-upload-context'
|
|
5
|
-
|
|
6
3
|
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
4
|
+
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
5
|
+
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
7
6
|
|
|
8
7
|
const { CLEAR_ALL_UPLOADS } = seamlyActions
|
|
9
8
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useCallback, useRef } from 'preact/hooks'
|
|
2
|
-
import { useSeamlyStateContext, useSkiplink } from './seamly-state-hooks'
|
|
3
2
|
import {
|
|
4
3
|
focusElement,
|
|
5
4
|
runIfElementContainsOrHasFocus,
|
|
6
5
|
} from 'ui/utils/general-utils'
|
|
7
|
-
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
8
6
|
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
7
|
+
import { useSeamlyStateContext, useSkiplink } from './seamly-state-hooks'
|
|
8
|
+
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
9
9
|
|
|
10
10
|
const { SET_SEAMLY_CONTAINER_ELEMENT } = seamlyActions
|
|
11
11
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useRef, useCallback, useEffect } from 'preact/hooks'
|
|
2
2
|
import { seamlyActions, actionTypes } from 'ui/utils/seamly-utils'
|
|
3
|
+
import { typingTimeout } from 'config'
|
|
3
4
|
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
4
5
|
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
5
6
|
import { useSeamlyOptions } from './seamly-option-hooks'
|
|
6
7
|
import useSeamlyCommands from './use-seamly-commands'
|
|
7
|
-
import { typingTimeout } from 'config'
|
|
8
8
|
|
|
9
9
|
const {
|
|
10
10
|
SET_BLOCK_AUTO_ENTRY_SWITCH,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback } from 'preact/hooks'
|
|
2
2
|
import { useI18n } from 'domains/i18n'
|
|
3
|
+
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
3
4
|
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
4
5
|
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
5
6
|
import { useSeamlyObjectStore } from './seamly-api-hooks'
|
|
6
7
|
import { useElementFocusingById } from './focus-helper-hooks'
|
|
7
|
-
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
8
8
|
|
|
9
9
|
const {
|
|
10
10
|
SET_USER_SELECTED_OPTION,
|
|
@@ -71,6 +71,9 @@ export const useSeamlyHeaderData = () => useSeamlyStateContext().headerTitles
|
|
|
71
71
|
|
|
72
72
|
export const useSeamlyUnreadCount = () => useSeamlyStateContext().unreadEvents
|
|
73
73
|
|
|
74
|
+
export const useLoadedImageEventIds = () =>
|
|
75
|
+
useSeamlyStateContext().loadedImageEventIds
|
|
76
|
+
|
|
74
77
|
export const useSkiplink = () => useSeamlyStateContext().skiplinkTargetId
|
|
75
78
|
|
|
76
79
|
export const useSeamlyParticipant = (participantId) =>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'preact/hooks'
|
|
2
2
|
import { useI18n } from 'domains/i18n'
|
|
3
|
+
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
4
|
+
import { useVisibility, visibilityStates } from 'domains/visibility'
|
|
3
5
|
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
4
6
|
import { useEvents } from './seamly-state-hooks'
|
|
5
7
|
import useSeamlyCommands from './use-seamly-commands'
|
|
6
8
|
import { useSeamlyHasConversation } from './seamly-api-hooks'
|
|
7
9
|
import { useLiveRegion } from './live-region-hooks'
|
|
8
|
-
import { seamlyActions } from 'ui/utils/seamly-utils'
|
|
9
|
-
import { useVisibility, visibilityStates } from 'domains/visibility'
|
|
10
10
|
import { useConfig } from '../../domains/config'
|
|
11
11
|
|
|
12
12
|
const { SET_IS_LOADING } = seamlyActions
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { useCallback, useContext } from 'preact/hooks'
|
|
2
|
-
import {
|
|
3
|
-
useSeamlyApiContext,
|
|
4
|
-
useSeamlyHasConversation,
|
|
5
|
-
} from './seamly-api-hooks'
|
|
6
|
-
import { useSeamlyUnreadCount } from './seamly-state-hooks'
|
|
7
|
-
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
8
2
|
import { SeamlyEventBusContext } from 'ui/components/core/seamly-api-context'
|
|
9
3
|
import { randomId } from 'lib/id'
|
|
10
4
|
import { userParticipantId } from 'config'
|
|
11
5
|
import { actionTypes, seamlyActions } from 'ui/utils/seamly-utils'
|
|
12
|
-
import { useStableCallback } from './utility-hooks'
|
|
13
6
|
import { Actions as InterruptActions } from 'domains/interrupt'
|
|
14
7
|
import { useConfig } from 'domains/config'
|
|
15
8
|
import * as AppActions from 'domains/app/actions'
|
|
16
9
|
import { useUserHasResponded } from 'domains/app/hooks'
|
|
17
10
|
import { useVisibility } from 'domains/visibility'
|
|
11
|
+
import { useStableCallback } from './utility-hooks'
|
|
12
|
+
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
13
|
+
import { useSeamlyUnreadCount } from './seamly-state-hooks'
|
|
14
|
+
import {
|
|
15
|
+
useSeamlyApiContext,
|
|
16
|
+
useSeamlyHasConversation,
|
|
17
|
+
} from './seamly-api-hooks'
|
|
18
18
|
|
|
19
19
|
const { ADD_EVENT, SET_INITIAL_STATE } = seamlyActions
|
|
20
20
|
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { useCallback, useRef } from 'preact/hooks'
|
|
2
|
-
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
3
|
-
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
4
|
-
import useSeamlyCommands from './use-seamly-commands'
|
|
5
2
|
import { useI18n } from 'domains/i18n'
|
|
6
|
-
import { useLiveRegion } from './live-region-hooks'
|
|
7
3
|
import {
|
|
8
4
|
getTimeFromSeconds,
|
|
9
5
|
millisecondsToSeconds,
|
|
@@ -11,6 +7,10 @@ import {
|
|
|
11
7
|
import { actionTypes, seamlyActions } from 'ui/utils/seamly-utils'
|
|
12
8
|
import { screenReaderDebounceDelaySeconds } from 'config'
|
|
13
9
|
import { useVisibility } from 'domains/visibility'
|
|
10
|
+
import { useLiveRegion } from './live-region-hooks'
|
|
11
|
+
import useSeamlyCommands from './use-seamly-commands'
|
|
12
|
+
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
13
|
+
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
14
14
|
|
|
15
15
|
const {
|
|
16
16
|
CLEAR_IDLE_DETACH_COUNTDOWN,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { useI18n } from 'domains/i18n'
|
|
2
|
+
import { actionTypes, dismissTypes, seamlyActions } from 'ui/utils/seamly-utils'
|
|
1
3
|
import useSeamlyDispatchContext from './use-seamly-dispatch'
|
|
2
4
|
import { useSeamlyStateContext } from './seamly-state-hooks'
|
|
3
5
|
import useSeamlyCommands from './use-seamly-commands'
|
|
4
|
-
import { useI18n } from 'domains/i18n'
|
|
5
6
|
import { useLiveRegion } from './live-region-hooks'
|
|
6
|
-
import { actionTypes, dismissTypes, seamlyActions } from 'ui/utils/seamly-utils'
|
|
7
7
|
|
|
8
8
|
const { CLEAR_RESUME_CONVERSATION_PROMPT } = seamlyActions
|
|
9
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useFileUploads } from './seamly-hooks'
|
|
2
1
|
import { Selectors } from 'domains/forms'
|
|
3
2
|
import { useSelectorWithProps } from 'domains/redux'
|
|
3
|
+
import { useFileUploads } from './seamly-hooks'
|
|
4
4
|
|
|
5
5
|
const useSingleFileUpload = (formId, name) => {
|
|
6
6
|
const fileList = useSelectorWithProps(
|
|
@@ -103,7 +103,7 @@ export const formatBytes = (bytes, decimals = 2) => {
|
|
|
103
103
|
|
|
104
104
|
const i = Math.floor(Math.log(bytes) / Math.log(k))
|
|
105
105
|
|
|
106
|
-
return parseFloat((bytes /
|
|
106
|
+
return parseFloat((bytes / k ** i).toFixed(dm)) + ' ' + sizes[i]
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
export const getUrlParams = () => {
|
|
@@ -42,6 +42,7 @@ export const actionTypes = {
|
|
|
42
42
|
interactivityUpdate: 'interactivity_update',
|
|
43
43
|
dismiss: 'dismiss',
|
|
44
44
|
sendTranscript: 'send_transcript',
|
|
45
|
+
setTopic: 'set_topic',
|
|
45
46
|
setTranslation: 'set_translation',
|
|
46
47
|
clickCta: 'click_cta',
|
|
47
48
|
clickCard: 'click_card',
|
|
@@ -72,6 +73,7 @@ export const seamlyActions = {
|
|
|
72
73
|
CLEAR_EVENTS: 'CLEAR_EVENTS',
|
|
73
74
|
SET_HISTORY: 'SET_HISTORY',
|
|
74
75
|
SET_EVENTS_READ: 'SET_EVENTS_READ',
|
|
76
|
+
SET_LOADED_IMAGE_EVENT_IDS: 'SET_LOADED_IMAGE_EVENT_IDS',
|
|
75
77
|
ACK_EVENT: 'ACK_EVENT',
|
|
76
78
|
SET_IS_LOADING: 'SET_IS_LOADING',
|
|
77
79
|
CLEAR_PARTICIPANTS: 'CLEAR_PARTICIPANTS',
|
|
@@ -120,6 +122,7 @@ const {
|
|
|
120
122
|
CLEAR_EVENTS,
|
|
121
123
|
SET_HISTORY,
|
|
122
124
|
SET_EVENTS_READ,
|
|
125
|
+
SET_LOADED_IMAGE_EVENT_IDS,
|
|
123
126
|
ACK_EVENT,
|
|
124
127
|
SET_IS_LOADING,
|
|
125
128
|
CLEAR_PARTICIPANTS,
|
|
@@ -383,7 +386,7 @@ export const seamlyStateReducer = (state, action) => {
|
|
|
383
386
|
: state
|
|
384
387
|
|
|
385
388
|
case CLEAR_EVENTS:
|
|
386
|
-
return { ...state, unreadEvents: 0, events: [] }
|
|
389
|
+
return { ...state, unreadEvents: 0, loadedImageEventIds: [], events: [] }
|
|
387
390
|
case SET_EVENTS_READ:
|
|
388
391
|
return {
|
|
389
392
|
...state,
|
|
@@ -403,6 +406,11 @@ export const seamlyStateReducer = (state, action) => {
|
|
|
403
406
|
return event
|
|
404
407
|
}),
|
|
405
408
|
}
|
|
409
|
+
case SET_LOADED_IMAGE_EVENT_IDS:
|
|
410
|
+
return {
|
|
411
|
+
...state,
|
|
412
|
+
loadedImageEventIds: [...state.loadedImageEventIds, action.eventId],
|
|
413
|
+
}
|
|
406
414
|
case SET_HISTORY:
|
|
407
415
|
const {
|
|
408
416
|
events: history,
|
|
@@ -22,23 +22,28 @@ $brand3: #4a48c1 !default; // 'tertiary'
|
|
|
22
22
|
$interaction: $brand3 !default;
|
|
23
23
|
$interaction-dark: $brand2 !default;
|
|
24
24
|
|
|
25
|
+
// NEGATIVE
|
|
25
26
|
$negative: #db1639 !default;
|
|
26
27
|
$negative-dark: #ad001f !default;
|
|
27
28
|
|
|
29
|
+
// GREYS
|
|
28
30
|
$grey-a: #eff3f6 !default;
|
|
29
31
|
$grey-b: #dee3e5 !default;
|
|
30
32
|
$grey-c: #a3b4bf !default;
|
|
31
33
|
$grey-d: #6a7f8c !default;
|
|
32
34
|
$grey-e: #3d4166 !default;
|
|
33
35
|
|
|
36
|
+
// DISABLED
|
|
34
37
|
$disabled: #5e727b; // 5:1
|
|
35
38
|
|
|
39
|
+
// BLACK & WHITE
|
|
36
40
|
$white: #fff !default;
|
|
37
41
|
$black: #000 !default;
|
|
38
42
|
|
|
39
43
|
// BACKGROUND COLORS
|
|
40
44
|
$chat-bg: $white !default;
|
|
41
45
|
|
|
46
|
+
// THREADLIST
|
|
42
47
|
$threadlist-agent-text-bgcolor: $grey-a;
|
|
43
48
|
$threadlist-user-text-bgcolor: $brand2;
|
|
44
49
|
|
|
@@ -51,11 +56,13 @@ $fontsize-large: 18px !default;
|
|
|
51
56
|
$fontsize-xlarge: 21px !default;
|
|
52
57
|
$fontsize-xxlarge: 24px !default;
|
|
53
58
|
|
|
59
|
+
// FONT-WEIGHTS
|
|
54
60
|
$fontweight-light: 300 !default;
|
|
55
61
|
$fontweight-regular: 400 !default;
|
|
56
62
|
$fontweight-semibold: 600 !default;
|
|
57
63
|
$fontweight-bold: 700 !default;
|
|
58
64
|
|
|
65
|
+
// FONT-FAMILY
|
|
59
66
|
$fontfamily-default: arial, helvetica, sans-serif !default;
|
|
60
67
|
|
|
61
68
|
// SPACER
|
|
@@ -73,34 +80,42 @@ $borderradius-large: $borderradius * 2 !default;
|
|
|
73
80
|
$chat-window-width: $spacer * 18 !default;
|
|
74
81
|
$chat-window-height: $spacer * 36 !default;
|
|
75
82
|
|
|
83
|
+
// CHAT INLINE
|
|
76
84
|
$chat-inline-height: $spacer * 32 !default;
|
|
77
85
|
$chat-inline-maxheight: 90vh !default;
|
|
78
86
|
|
|
87
|
+
// CHAT SUGGESTION
|
|
79
88
|
$chat-suggestions-maxheight: $spacer * 16 !default;
|
|
80
89
|
|
|
90
|
+
// VIEWPORT SIZES
|
|
81
91
|
$viewport-width: 100vw !default;
|
|
82
92
|
$viewport-height: 100vh !default;
|
|
83
93
|
|
|
94
|
+
// ICON SIZES
|
|
84
95
|
$iconsize-small: 16px !default;
|
|
85
96
|
$iconsize: 24px !default;
|
|
86
97
|
$iconsize-large: 32px !default;
|
|
87
98
|
|
|
99
|
+
// BUTTON SIZED
|
|
88
100
|
$buttonsize-small: 32px !default;
|
|
89
101
|
$buttonsize: 40px !default;
|
|
90
102
|
|
|
103
|
+
// AVATAR SIZES
|
|
91
104
|
$avatarsize: 32px !default;
|
|
92
105
|
$avatarsize-large: 48px !default;
|
|
93
106
|
|
|
107
|
+
// DIVIDER
|
|
94
108
|
$dividersize: 32px !default;
|
|
95
109
|
|
|
110
|
+
// MESSAGE COUNT
|
|
96
111
|
$messagecountsize: $spacer * 1.25;
|
|
97
112
|
|
|
98
113
|
// Z-INDEX
|
|
99
114
|
$z-index: 1 !default;
|
|
100
115
|
|
|
101
116
|
// BOX SHADOWS
|
|
102
|
-
$boxshadow: 0 $spacer * 0.25 $spacer * 1.5
|
|
103
|
-
0 $spacer * 0.15 $spacer * 0.5
|
|
117
|
+
$boxshadow: 0 $spacer * 0.25 $spacer * 1.5 hsl(204deg 26% 28% / 15%),
|
|
118
|
+
0 $spacer * 0.15 $spacer * 0.5 hsl(204deg 26% 28% / 20%) !default;
|
|
104
119
|
$boxshadow-soft: 0 0 $spacer 0 rgba($black, 0.1) !default;
|
|
105
120
|
|
|
106
121
|
// TRANSITIONS
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/** SET TEXT COLOR */
|
|
2
2
|
@function set-text-color($color) {
|
|
3
|
-
@if
|
|
3
|
+
@if lightness($color) > 66.66 {
|
|
4
4
|
@return $grey-e;
|
|
5
5
|
} @else {
|
|
6
6
|
@return $white;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/** SET BORDER COLOR */
|
|
11
11
|
@function set-border-color($color) {
|
|
12
|
-
@if
|
|
12
|
+
@if lightness($color) > 66.66 {
|
|
13
13
|
@return $grey-c;
|
|
14
14
|
} @else {
|
|
15
15
|
@return $white;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* stylelint-disable selector-max-universal */
|
|
2
|
-
|
|
2
|
+
/** BOX-SIZING */
|
|
3
3
|
@mixin boxSizing($value: border-box) {
|
|
4
4
|
box-sizing: $value;
|
|
5
5
|
|
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
/** RESPONSIVE APP SIZING */
|
|
14
14
|
@mixin responsiveAppSizing() {
|
|
15
15
|
max-width: calc(#{$viewport-width} - #{$spacer * 2});
|
|
16
16
|
max-height: calc(#{$viewport-height * 0.85} - #{$spacer * 2});
|
|
17
17
|
|
|
18
18
|
@include media('>phablet-l') {
|
|
19
19
|
max-height: calc(#{$viewport-height} - #{$spacer * 2});
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
/** iOS Safari needs a bit more space */
|
|
21
22
|
@supports (-webkit-overflow-scrolling: touch) {
|
|
22
23
|
max-height: calc(#{$viewport-height * 0.9} - #{$spacer * 2});
|
|
23
24
|
}
|
|
@@ -27,39 +28,40 @@
|
|
|
27
28
|
right: $spacer;
|
|
28
29
|
bottom: $spacer;
|
|
29
30
|
max-height: calc(#{$viewport-height} - #{$spacer * 2});
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
/** iOS Safari needs a bit more space */
|
|
31
33
|
@supports (-webkit-overflow-scrolling: touch) {
|
|
32
34
|
max-height: calc(#{$viewport-height * 0.9} - #{$spacer * 2});
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
/** UNLIST */
|
|
38
40
|
@mixin unList() {
|
|
39
41
|
margin: 0;
|
|
40
42
|
padding: 0;
|
|
41
43
|
list-style: none;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
/** STYLE PLACEHOLDER */
|
|
45
47
|
@mixin stylePlaceholder() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
&::input-placeholder {
|
|
49
|
+
/** Chrome/Opera/Safari */
|
|
48
50
|
@content;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
&::placeholder {
|
|
54
|
+
/** Firefox 19+ */
|
|
53
55
|
@content;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
&:input-placeholder {
|
|
59
|
+
/** IE 10+ */
|
|
58
60
|
@content;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
&:placeholder {
|
|
64
|
+
/** Firefox 18- */
|
|
63
65
|
@content;
|
|
64
66
|
}
|
|
65
67
|
}
|
|
@@ -24,8 +24,8 @@ $loader-quarter-duration: $loader-animation-duration * 0.2;
|
|
|
24
24
|
animation-iteration-count: infinite;
|
|
25
25
|
animation-direction: normal;
|
|
26
26
|
animation-fill-mode: forwards;
|
|
27
|
-
border-radius: 50
|
|
28
|
-
background-color:
|
|
27
|
+
border-radius: 50%;
|
|
28
|
+
background-color: currentcolor;
|
|
29
29
|
|
|
30
30
|
&.#{$n}-one {
|
|
31
31
|
animation-delay: $loader-quarter-duration;
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
height: $messagecountsize;
|
|
11
11
|
transform: scale(1);
|
|
12
12
|
transform-origin: 50% 50%;
|
|
13
|
-
transition: transform 0.3s 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)
|
|
14
|
-
|
|
13
|
+
transition: transform 0.3s 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275),
|
|
14
|
+
opacity $transition;
|
|
15
|
+
border-radius: 50%;
|
|
16
|
+
opacity: 1;
|
|
15
17
|
background-color: $negative;
|
|
16
18
|
color: $white;
|
|
17
19
|
font-size: $fontsize-small;
|
|
@@ -20,6 +22,7 @@
|
|
|
20
22
|
|
|
21
23
|
&:empty {
|
|
22
24
|
transform: scale(0);
|
|
23
|
-
transition: transform $transition;
|
|
25
|
+
transition: transform $transition, opacity $transition;
|
|
26
|
+
opacity: 0;
|
|
24
27
|
}
|
|
25
28
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.#{$n}-chat__options__button .#{$n}-icon path {
|
|
37
|
-
fill:
|
|
37
|
+
fill: currentcolor;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
// CONTEXT MENU
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
.#{$n}-options__close .#{$n}-icon path {
|
|
177
|
-
fill:
|
|
177
|
+
fill: currentcolor;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
.#{$n}-options__form {
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
border: $thin-border solid $grey-b;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
@include stylePlaceholder
|
|
235
|
+
@include stylePlaceholder {
|
|
236
236
|
overflow: visible;
|
|
237
237
|
color: $grey-c;
|
|
238
238
|
line-height: $spacer;
|
|
@@ -63,26 +63,25 @@
|
|
|
63
63
|
|
|
64
64
|
.#{$n}-chat--layout-inline > .#{$n}-suggestions .#{$n}-suggestions__list {
|
|
65
65
|
flex: 1 1 100%;
|
|
66
|
-
flex-
|
|
67
|
-
flex-wrap: nowrap;
|
|
66
|
+
flex-flow: column nowrap;
|
|
68
67
|
height: 100%;
|
|
69
68
|
max-height: 100%;
|
|
70
69
|
overflow-y: auto;
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
.#{$n}-
|
|
72
|
+
.#{$n}-suggestions__item {
|
|
74
73
|
display: block;
|
|
75
74
|
flex: 0 0 auto;
|
|
76
75
|
max-width: 100%;
|
|
77
76
|
margin: 0 $spacer * 0.25 $spacer * 0.25 0;
|
|
78
77
|
}
|
|
79
78
|
|
|
80
|
-
.#{$n}-chat--layout-inline > .#{$n}-suggestions .#{$n}-
|
|
79
|
+
.#{$n}-chat--layout-inline > .#{$n}-suggestions .#{$n}-suggestions__item {
|
|
81
80
|
width: 100%;
|
|
82
81
|
margin-right: 0;
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
.#{$n}-
|
|
84
|
+
.#{$n}-suggestions__item .#{$n}-icon {
|
|
86
85
|
display: none;
|
|
87
86
|
}
|
|
88
87
|
|
|
@@ -21,22 +21,28 @@ $brand3: #4a48c1 !default; // 'tertiary'
|
|
|
21
21
|
// UI COLORS
|
|
22
22
|
$interaction: $brand3 !default;
|
|
23
23
|
|
|
24
|
+
// Highlight color
|
|
24
25
|
$highlight: #ffc700 !default;
|
|
25
26
|
|
|
27
|
+
// Positive colors
|
|
26
28
|
$positive: #00875e !default;
|
|
27
29
|
$positive-light: #19b183 !default;
|
|
28
30
|
|
|
31
|
+
// Negative colors
|
|
29
32
|
$negative: #db1639 !default;
|
|
30
33
|
$negative-dark: #ad001f !default;
|
|
31
34
|
|
|
35
|
+
// Greys
|
|
32
36
|
$grey-a: #eff3f6 !default;
|
|
33
37
|
$grey-b: #dee3e5 !default;
|
|
34
38
|
$grey-c: #a3b4bf !default;
|
|
35
39
|
$grey-d: #6a7f8c !default;
|
|
36
40
|
$grey-e: #3d4166 !default;
|
|
37
41
|
|
|
42
|
+
// Disabled color
|
|
38
43
|
$disabled: #5e727b; // 5:1
|
|
39
44
|
|
|
45
|
+
// BLACK & WHITE
|
|
40
46
|
$white: #fff !default;
|
|
41
47
|
$black: #000 !default;
|
|
42
48
|
|
|
@@ -51,8 +57,10 @@ $fontsize-default: 16px !default;
|
|
|
51
57
|
$fontsize-large: 18px !default;
|
|
52
58
|
$fontsize-xlarge: 21px !default;
|
|
53
59
|
|
|
60
|
+
// FONT-WEIGHT
|
|
54
61
|
$fontweight-bold: 700 !default;
|
|
55
62
|
|
|
63
|
+
// FONT-FAMILY
|
|
56
64
|
$fontfamily-default: arial, helvetica, sans-serif !default;
|
|
57
65
|
|
|
58
66
|
// SPACER
|
|
@@ -69,26 +77,21 @@ $borderradius-small: $borderradius * 0.5 !default;
|
|
|
69
77
|
// DIMENSIONS
|
|
70
78
|
$app-initial-width: 195px !default;
|
|
71
79
|
$app-started-width: 375px !default;
|
|
72
|
-
|
|
73
80
|
$app-full-height: 720px !default;
|
|
74
81
|
$app-collapsed-height: 54px !default;
|
|
75
|
-
|
|
76
82
|
$app-inline-height: 480px !default;
|
|
77
|
-
|
|
78
83
|
$post-full-height: 170px !default;
|
|
79
84
|
$post-collapsed-height: 65px !default;
|
|
80
|
-
|
|
81
85
|
$viewport-width: 100vw !default;
|
|
82
86
|
$viewport-height: 100vh !default;
|
|
83
|
-
|
|
84
87
|
$badge-touch-size: 32px !default;
|
|
85
88
|
|
|
86
89
|
// Z-INDEX
|
|
87
90
|
$z-index: 1 !default;
|
|
88
91
|
|
|
89
92
|
// BOX SHADOWS
|
|
90
|
-
$boxshadow: 0 $spacer * 0.25 $spacer * 1.5
|
|
91
|
-
0 $spacer * 0.15 $spacer * 0.5
|
|
93
|
+
$boxshadow: 0 $spacer * 0.25 $spacer * 1.5 hsl(204deg 26% 28% / 15%),
|
|
94
|
+
0 $spacer * 0.15 $spacer * 0.5 hsl(204deg 26% 28% / 20%) !default;
|
|
92
95
|
$boxshadow-soft: 0 0 $spacer 0 rgba($black, 0.1) !default;
|
|
93
96
|
|
|
94
97
|
// TRANSITIONS
|