@weavy/uikit-react 11.0.1 → 12.1.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/.github/workflows/publish.yml +1 -1
- package/README.md +3 -4
- package/changelog.md +30 -0
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/client/WeavyClient.d.ts +1 -1
- package/dist/cjs/types/components/Image.d.ts +2 -0
- package/dist/cjs/types/components/PdfViewer.d.ts +6 -0
- package/dist/cjs/types/components/Preview.d.ts +58 -0
- package/dist/cjs/types/contexts/MessengerContext.d.ts +1 -2
- package/dist/cjs/types/hooks/useUser.d.ts +2 -1
- package/dist/cjs/types/types/Messenger.d.ts +0 -1
- package/dist/cjs/types/types/types.d.ts +11 -6
- package/dist/cjs/types/utils/fileUtilities.d.ts +16 -1
- package/dist/css/weavy-chat.css +2684 -0
- package/dist/css/weavy-messenger.css +3039 -0
- package/dist/css/weavy.css +3039 -0
- package/dist/esm/index.js +6 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/client/WeavyClient.d.ts +1 -1
- package/dist/esm/types/components/Image.d.ts +2 -0
- package/dist/esm/types/components/PdfViewer.d.ts +6 -0
- package/dist/esm/types/components/Preview.d.ts +58 -0
- package/dist/esm/types/contexts/MessengerContext.d.ts +1 -2
- package/dist/esm/types/hooks/useUser.d.ts +2 -1
- package/dist/esm/types/types/Messenger.d.ts +0 -1
- package/dist/esm/types/types/types.d.ts +11 -6
- package/dist/esm/types/utils/fileUtilities.d.ts +16 -1
- package/dist/index.d.ts +2 -3
- package/package.json +14 -4
- package/rollup.config.js +0 -2
- package/src/client/WeavyClient.ts +3 -3
- package/src/components/Attachment.tsx +5 -6
- package/src/components/Avatar.tsx +2 -3
- package/src/components/Chat.tsx +10 -14
- package/src/components/Conversation.tsx +21 -30
- package/src/components/ConversationBadge.tsx +1 -2
- package/src/components/ConversationForm.tsx +11 -18
- package/src/components/ConversationList.tsx +4 -5
- package/src/components/ConversationListItem.tsx +13 -15
- package/src/components/FileBrowser.tsx +2 -3
- package/src/components/Image.tsx +39 -7
- package/src/components/MeetingCard.tsx +7 -8
- package/src/components/Message.tsx +12 -13
- package/src/components/Messages.tsx +19 -19
- package/src/components/Messenger.tsx +5 -6
- package/src/components/NewConversation.tsx +5 -7
- package/src/components/PdfViewer.tsx +271 -0
- package/src/components/Presence.tsx +2 -2
- package/src/components/Preview.tsx +294 -0
- package/src/components/Reactions.tsx +8 -8
- package/src/components/SearchUsers.tsx +18 -17
- package/src/components/SeenBy.tsx +1 -2
- package/src/components/Typing.tsx +4 -4
- package/src/contexts/MessengerContext.tsx +4 -12
- package/src/contexts/PreviewContext.tsx +4 -6
- package/src/contexts/WeavyContext.tsx +8 -1
- package/src/hooks/useBadge.ts +1 -1
- package/src/hooks/useChat.ts +1 -1
- package/src/hooks/useConversation.ts +1 -2
- package/src/hooks/useConversations.ts +1 -1
- package/src/hooks/useFileUploader.ts +5 -1
- package/src/hooks/useMembers.ts +1 -1
- package/src/hooks/useMessages.ts +1 -1
- package/src/hooks/useMutateChat.ts +1 -1
- package/src/hooks/useMutateConversation.ts +1 -1
- package/src/hooks/useMutateConversationName.ts +1 -1
- package/src/hooks/useMutateDeleteReaction.ts +1 -1
- package/src/hooks/useMutateExternalBlobs.ts +1 -1
- package/src/hooks/useMutateMeeting.ts +1 -1
- package/src/hooks/useMutateMembers.ts +1 -1
- package/src/hooks/useMutateMessage.ts +2 -1
- package/src/hooks/useMutatePinned.ts +1 -1
- package/src/hooks/useMutateReaction.ts +1 -1
- package/src/hooks/useMutateRead.ts +1 -1
- package/src/hooks/useMutateRemoveMembers.ts +1 -1
- package/src/hooks/useMutateTyping.ts +1 -1
- package/src/hooks/usePresence.ts +8 -5
- package/src/hooks/useReactions.ts +0 -1
- package/src/hooks/useSearchUsers.ts +1 -1
- package/src/hooks/useUser.ts +4 -3
- package/src/index.ts +2 -2
- package/src/scss/theme/_alert.scss +73 -0
- package/src/scss/theme/_appbar.scss +112 -0
- package/src/scss/theme/_attachments.scss +74 -0
- package/src/scss/theme/_avatar.scss +54 -0
- package/src/scss/theme/_badge.scss +47 -0
- package/src/scss/theme/_buttons.scss +96 -0
- package/src/scss/theme/_card.scss +7 -0
- package/src/scss/theme/_checkbox.scss +56 -0
- package/src/scss/theme/_cm-editor.scss +42 -0
- package/src/scss/theme/_code.scss +115 -0
- package/src/scss/theme/_colors.scss +520 -0
- package/src/scss/theme/_config.scss +6 -0
- package/src/scss/theme/_content.scss +15 -0
- package/src/scss/theme/_conversations.scss +91 -0
- package/src/scss/theme/_dropdown.scss +86 -0
- package/src/scss/theme/_emoji.scss +5 -0
- package/src/scss/theme/_filebrowser.scss +26 -0
- package/src/scss/theme/_files.scss +140 -0
- package/src/scss/theme/_icons.scss +62 -0
- package/src/scss/theme/_image-grid.scss +63 -0
- package/src/scss/theme/_inputs.scss +28 -0
- package/src/scss/theme/_message-editor.scss +90 -0
- package/src/scss/theme/_messages.scss +238 -0
- package/src/scss/theme/_nav.scss +52 -0
- package/src/scss/theme/_overlays.scss +157 -0
- package/src/scss/theme/_pager.scss +19 -0
- package/src/scss/theme/_palette.scss +165 -0
- package/src/scss/theme/_pane.scss +16 -0
- package/src/scss/theme/_panels.scss +137 -0
- package/src/scss/theme/_picker-list.scss +37 -0
- package/src/scss/theme/_preview-embed.scss +38 -0
- package/src/scss/theme/_preview-html.scss +7 -0
- package/src/scss/theme/_preview-icon.scss +41 -0
- package/src/scss/theme/_preview-image.scss +86 -0
- package/src/scss/theme/_preview-media.scss +28 -0
- package/src/scss/theme/_preview-pdf.scss +838 -0
- package/src/scss/theme/_preview-text.scss +5 -0
- package/src/scss/theme/_preview.scss +105 -0
- package/src/scss/theme/_reactions.scss +58 -0
- package/src/scss/theme/_reboot.scss +41 -0
- package/src/scss/theme/_root.scss +2 -0
- package/src/scss/theme/_scroll.scss +55 -0
- package/src/scss/theme/_search.scss +68 -0
- package/src/scss/theme/_spinner.scss +63 -0
- package/src/scss/theme/_tables.scss +53 -0
- package/src/scss/theme/_toasts.scss +47 -0
- package/src/scss/theme/_turbo.scss +17 -0
- package/src/scss/theme/_typing.scss +26 -0
- package/src/scss/theme/_variables.scss +139 -0
- package/src/scss/theme/bootstrap/_accordion.scss +146 -0
- package/src/scss/theme/bootstrap/_alert.scss +71 -0
- package/src/scss/theme/bootstrap/_badge.scss +38 -0
- package/src/scss/theme/bootstrap/_breadcrumb.scss +40 -0
- package/src/scss/theme/bootstrap/_button-group.scss +142 -0
- package/src/scss/theme/bootstrap/_buttons.scss +186 -0
- package/src/scss/theme/bootstrap/_card.scss +234 -0
- package/src/scss/theme/bootstrap/_carousel.scss +229 -0
- package/src/scss/theme/bootstrap/_close.scss +40 -0
- package/src/scss/theme/bootstrap/_containers.scss +41 -0
- package/src/scss/theme/bootstrap/_dropdown.scss +248 -0
- package/src/scss/theme/bootstrap/_forms.scss +9 -0
- package/src/scss/theme/bootstrap/_functions.scss +302 -0
- package/src/scss/theme/bootstrap/_grid.scss +33 -0
- package/src/scss/theme/bootstrap/_helpers.scss +10 -0
- package/src/scss/theme/bootstrap/_images.scss +42 -0
- package/src/scss/theme/bootstrap/_list-group.scss +191 -0
- package/src/scss/theme/bootstrap/_maps.scss +54 -0
- package/src/scss/theme/bootstrap/_mixins.scss +43 -0
- package/src/scss/theme/bootstrap/_modal.scss +237 -0
- package/src/scss/theme/bootstrap/_nav.scss +172 -0
- package/src/scss/theme/bootstrap/_navbar.scss +276 -0
- package/src/scss/theme/bootstrap/_offcanvas.scss +143 -0
- package/src/scss/theme/bootstrap/_pagination.scss +109 -0
- package/src/scss/theme/bootstrap/_placeholders.scss +51 -0
- package/src/scss/theme/bootstrap/_popover.scss +196 -0
- package/src/scss/theme/bootstrap/_progress.scss +59 -0
- package/src/scss/theme/bootstrap/_reboot.scss +610 -0
- package/src/scss/theme/bootstrap/_root.scss +73 -0
- package/src/scss/theme/bootstrap/_spinners.scss +85 -0
- package/src/scss/theme/bootstrap/_tables.scss +164 -0
- package/src/scss/theme/bootstrap/_toasts.scss +70 -0
- package/src/scss/theme/bootstrap/_tooltip.scss +120 -0
- package/src/scss/theme/bootstrap/_transitions.scss +27 -0
- package/src/scss/theme/bootstrap/_type.scss +106 -0
- package/src/scss/theme/bootstrap/_utilities.scss +647 -0
- package/src/scss/theme/bootstrap/_variables.scss +1633 -0
- package/src/scss/theme/bootstrap/forms/_floating-labels.scss +74 -0
- package/src/scss/theme/bootstrap/forms/_form-check.scss +175 -0
- package/src/scss/theme/bootstrap/forms/_form-control.scss +194 -0
- package/src/scss/theme/bootstrap/forms/_form-range.scss +91 -0
- package/src/scss/theme/bootstrap/forms/_form-select.scss +71 -0
- package/src/scss/theme/bootstrap/forms/_form-text.scss +11 -0
- package/src/scss/theme/bootstrap/forms/_input-group.scss +129 -0
- package/src/scss/theme/bootstrap/forms/_labels.scss +36 -0
- package/src/scss/theme/bootstrap/forms/_validation.scss +12 -0
- package/src/scss/theme/bootstrap/helpers/_clearfix.scss +3 -0
- package/src/scss/theme/bootstrap/helpers/_color-bg.scss +10 -0
- package/src/scss/theme/bootstrap/helpers/_colored-links.scss +12 -0
- package/src/scss/theme/bootstrap/helpers/_position.scss +36 -0
- package/src/scss/theme/bootstrap/helpers/_ratio.scss +26 -0
- package/src/scss/theme/bootstrap/helpers/_stacks.scss +15 -0
- package/src/scss/theme/bootstrap/helpers/_stretched-link.scss +15 -0
- package/src/scss/theme/bootstrap/helpers/_text-truncation.scss +7 -0
- package/src/scss/theme/bootstrap/helpers/_visually-hidden.scss +8 -0
- package/src/scss/theme/bootstrap/helpers/_vr.scss +8 -0
- package/src/scss/theme/bootstrap/mixins/_alert.scss +15 -0
- package/src/scss/theme/bootstrap/mixins/_backdrop.scss +14 -0
- package/src/scss/theme/bootstrap/mixins/_banner.scss +9 -0
- package/src/scss/theme/bootstrap/mixins/_border-radius.scss +78 -0
- package/src/scss/theme/bootstrap/mixins/_box-shadow.scss +18 -0
- package/src/scss/theme/bootstrap/mixins/_breakpoints.scss +127 -0
- package/src/scss/theme/bootstrap/mixins/_buttons.scss +70 -0
- package/src/scss/theme/bootstrap/mixins/_caret.scss +64 -0
- package/src/scss/theme/bootstrap/mixins/_clearfix.scss +9 -0
- package/src/scss/theme/bootstrap/mixins/_color-scheme.scss +7 -0
- package/src/scss/theme/bootstrap/mixins/_container.scss +11 -0
- package/src/scss/theme/bootstrap/mixins/_deprecate.scss +10 -0
- package/src/scss/theme/bootstrap/mixins/_forms.scss +152 -0
- package/src/scss/theme/bootstrap/mixins/_gradients.scss +47 -0
- package/src/scss/theme/bootstrap/mixins/_grid.scss +151 -0
- package/src/scss/theme/bootstrap/mixins/_image.scss +16 -0
- package/src/scss/theme/bootstrap/mixins/_list-group.scss +24 -0
- package/src/scss/theme/bootstrap/mixins/_lists.scss +7 -0
- package/src/scss/theme/bootstrap/mixins/_pagination.scss +10 -0
- package/src/scss/theme/bootstrap/mixins/_reset-text.scss +17 -0
- package/src/scss/theme/bootstrap/mixins/_resize.scss +6 -0
- package/src/scss/theme/bootstrap/mixins/_table-variants.scss +24 -0
- package/src/scss/theme/bootstrap/mixins/_text-truncate.scss +8 -0
- package/src/scss/theme/bootstrap/mixins/_transition.scss +26 -0
- package/src/scss/theme/bootstrap/mixins/_utilities.scss +97 -0
- package/src/scss/theme/bootstrap/mixins/_visually-hidden.scss +29 -0
- package/src/scss/theme/bootstrap/utilities/_api.scss +47 -0
- package/src/scss/theme/bootstrap/vendor/_rfs.scss +354 -0
- package/src/scss/theme/bs/_badge.scss +20 -0
- package/src/scss/theme/bs/_buttons.scss +185 -0
- package/src/scss/theme/bs/_dropdown.scss +86 -0
- package/src/scss/theme/bs/_forms.scss +161 -0
- package/src/scss/theme/bs/_list-group.scss +73 -0
- package/src/scss/theme/bs/_tables.scss +46 -0
- package/src/scss/theme/fonts/_fontmapping-roboto.scss +129 -0
- package/src/scss/theme/fonts/_fontmapping-segoe-ui.scss +127 -0
- package/src/scss/theme/fonts/_index.scss +2 -0
- package/src/scss/theme/mixins/_backdrop.scss +13 -0
- package/src/scss/theme/mixins/_palette.scss +165 -0
- package/src/scss/theme/mixins/_position.scss +33 -0
- package/src/scss/theme/mixins/_scrollbar.scss +110 -0
- package/src/scss/weavy-chat.scss +31 -0
- package/src/scss/weavy-messenger.scss +60 -0
- package/src/scss/weavy.scss +2 -0
- package/src/types/Messenger.ts +1 -1
- package/src/types/types.ts +14 -9
- package/src/ui/Button.tsx +3 -4
- package/src/ui/Dropdown.tsx +4 -5
- package/src/ui/Icon.tsx +75 -39
- package/src/ui/Overlay.tsx +2 -3
- package/src/utils/fileUtilities.ts +280 -72
- package/src/utils/scrollbarDetection.js +48 -0
- package/dist/cjs/types/utils/styles.d.ts +0 -17
- package/dist/esm/types/utils/styles.d.ts +0 -17
- package/src/utils/styles.ts +0 -42
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
@use "config" as *;
|
|
2
|
+
@use "mixins/backdrop";
|
|
3
|
+
@use "sass:math";
|
|
4
|
+
|
|
5
|
+
.wy-preview {
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
height: calc(100% - $appbar-height - $border-width);
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.wy-nav-prev, .wy-nav-next {
|
|
14
|
+
position: fixed;
|
|
15
|
+
top: 50%;
|
|
16
|
+
z-index: $zindex-dropdown;
|
|
17
|
+
|
|
18
|
+
.wy-button-icon {
|
|
19
|
+
background-color: $light;
|
|
20
|
+
|
|
21
|
+
.wy-dark & {
|
|
22
|
+
background-color: rgba($dark, $opacity-backdrop);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.wy-nav-prev {
|
|
28
|
+
left: .5rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.wy-nav-next {
|
|
32
|
+
right: .5rem;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.wy-document {
|
|
36
|
+
align-self: flex-start;
|
|
37
|
+
background-color: $body-bg;
|
|
38
|
+
color: color-contrast($body-bg);
|
|
39
|
+
padding: 2rem 3rem;
|
|
40
|
+
width: 100%;
|
|
41
|
+
min-height: 100%;
|
|
42
|
+
// approximate A4 dimensions (h/w = sqrt(2) = 1.4142...)
|
|
43
|
+
@include media-breakpoint-up(md) {
|
|
44
|
+
padding: 3rem 4rem;
|
|
45
|
+
margin: 2rem 3.5rem;
|
|
46
|
+
border-radius: $border-radius-sm;
|
|
47
|
+
box-shadow: $box-shadow-sm;
|
|
48
|
+
width: 120ch;
|
|
49
|
+
min-height: 170ch;
|
|
50
|
+
max-width: 100%;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// floating toolbar (mainly for pdf preview, but can be also be used for other things)
|
|
55
|
+
.wy-toolbar {
|
|
56
|
+
position: fixed;
|
|
57
|
+
z-index: $zindex-fixed;
|
|
58
|
+
bottom: math.div($appbar-height, 2);
|
|
59
|
+
left: 0;
|
|
60
|
+
right: 0;
|
|
61
|
+
height: $appbar-height;
|
|
62
|
+
display: flex;
|
|
63
|
+
justify-content: center;
|
|
64
|
+
|
|
65
|
+
span {
|
|
66
|
+
margin-left: .25rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.wy-input {
|
|
70
|
+
text-align: center;
|
|
71
|
+
border-color: transparent;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.wy-tools {
|
|
76
|
+
background-color: rgba($light, $opacity-backdrop);
|
|
77
|
+
color: color-contrast($light);
|
|
78
|
+
border-radius: $border-radius;
|
|
79
|
+
display: flex;
|
|
80
|
+
align-items: center;
|
|
81
|
+
|
|
82
|
+
@include backdrop.filter;
|
|
83
|
+
|
|
84
|
+
// dark theme
|
|
85
|
+
.wy-dark &, &.wy-dark {
|
|
86
|
+
background-color: rgba($dark, $opacity-backdrop);
|
|
87
|
+
color: $navbar-dark-color;
|
|
88
|
+
|
|
89
|
+
.wy-icon {
|
|
90
|
+
color: $navbar-dark-color;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.wy-input {
|
|
94
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
95
|
+
color: $navbar-dark-color;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
.wy-tool {
|
|
102
|
+
display: flex;
|
|
103
|
+
align-items: center;
|
|
104
|
+
margin: 0 .5rem;
|
|
105
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
@use "config" as *;
|
|
2
|
+
@use "bs/dropdown";
|
|
3
|
+
@use "tables";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
.wy-reaction-count {
|
|
7
|
+
margin: 0 .25rem;
|
|
8
|
+
line-height: 1;
|
|
9
|
+
color: $text-muted;
|
|
10
|
+
font-size: $font-size-sm;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.wy-reaction-menu {
|
|
14
|
+
padding: .5rem;
|
|
15
|
+
font-size: 1.125rem;
|
|
16
|
+
border-radius: 2.5rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.wy-reaction-picker {
|
|
20
|
+
display: flex;
|
|
21
|
+
|
|
22
|
+
.wy-reaction-button {
|
|
23
|
+
color: unset;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.wy-reactions {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
column-gap: .125rem;
|
|
31
|
+
|
|
32
|
+
// hidden when empty
|
|
33
|
+
&:empty {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.wy-table-reactions {
|
|
39
|
+
@extend %table, %table-icons;
|
|
40
|
+
|
|
41
|
+
// avatar
|
|
42
|
+
td:first-child {
|
|
43
|
+
width: 2rem;
|
|
44
|
+
padding-left: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// name
|
|
48
|
+
td:nth-child(2) {
|
|
49
|
+
width: 100%;
|
|
50
|
+
@include text-truncate();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// reaction
|
|
54
|
+
td:last-child {
|
|
55
|
+
width: 2rem;
|
|
56
|
+
padding-right: 0;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
@use "sass:selector";
|
|
2
|
+
@use "variables" as *;
|
|
3
|
+
|
|
4
|
+
// General style reboot selector for all classes starting with wy-
|
|
5
|
+
[class^="wy-"], [class*=" wy-"] {
|
|
6
|
+
// Cherry-picked and ported from bootstrap/scss/reboot
|
|
7
|
+
&, & * {
|
|
8
|
+
|
|
9
|
+
&, &::before, &::after {
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&[hidden] {
|
|
14
|
+
display: none !important;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&[role="button"] {
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#{selector.append("a", &)}, & a {
|
|
23
|
+
text-decoration: $link-decoration;
|
|
24
|
+
|
|
25
|
+
&:hover {
|
|
26
|
+
text-decoration: $link-hover-decoration;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:not([href]):not([class]) {
|
|
30
|
+
|
|
31
|
+
&, &:hover {
|
|
32
|
+
text-decoration: none;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#{selector.append("p", &)}, & p {
|
|
38
|
+
margin-top: 0;
|
|
39
|
+
margin-bottom: $paragraph-margin-bottom;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
@use "sass:selector";
|
|
2
|
+
@use "mixins/scrollbar";
|
|
3
|
+
|
|
4
|
+
.wy-scroll-y {
|
|
5
|
+
@include scrollbar.scroll-y;
|
|
6
|
+
|
|
7
|
+
&:not(.wy-scroll-x) {
|
|
8
|
+
overflow-x: hidden;
|
|
9
|
+
touch-action: pan-y;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.wy-scroll-x {
|
|
14
|
+
@include scrollbar.scroll-x;
|
|
15
|
+
|
|
16
|
+
&:not(.wy-scroll-y) {
|
|
17
|
+
overflow-y: hidden;
|
|
18
|
+
touch-action: pan-x;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.wy-scrollbars {
|
|
23
|
+
// custom scrollbar styling
|
|
24
|
+
// use overlay scrollbars if supported
|
|
25
|
+
|
|
26
|
+
&.wy-scroll-y, .wy-scroll-y {
|
|
27
|
+
@supports (overflow-y: overlay) {
|
|
28
|
+
overflow-y: overlay;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@include scrollbar.custom-scrollbar;
|
|
32
|
+
|
|
33
|
+
// scrollbar offsets
|
|
34
|
+
@include scrollbar.scrollbar-top-padding(#{'var(--wy-scrollbar-adjust-top, 0)'});
|
|
35
|
+
@include scrollbar.scrollbar-bottom-padding(#{'var(--wy-scrollbar-adjust-bottom, 0)'});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// prevent scroll when opening modals etc.
|
|
40
|
+
.wy-block-scroll {
|
|
41
|
+
overflow: hidden !important;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// element for detecting scrollbar capabilities (visibility, overlay etc.)
|
|
45
|
+
.wy-scrollbar-detection {
|
|
46
|
+
position: fixed;
|
|
47
|
+
top: 0;
|
|
48
|
+
left: 0;
|
|
49
|
+
width: 8rem;
|
|
50
|
+
height: 8rem;
|
|
51
|
+
overflow: scroll;
|
|
52
|
+
z-index: -99999;
|
|
53
|
+
pointer-events: none;
|
|
54
|
+
visibility: hidden;
|
|
55
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@use "config" as *;
|
|
2
|
+
@use "bs/forms";
|
|
3
|
+
@use "icons";
|
|
4
|
+
@use "spinner";
|
|
5
|
+
@use "tables";
|
|
6
|
+
|
|
7
|
+
input[type="search"]::-webkit-search-cancel-button {
|
|
8
|
+
// REVIEW: can we use close.svg?
|
|
9
|
+
-webkit-appearance: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.wy-search-form {
|
|
13
|
+
position: relative;
|
|
14
|
+
padding-top: .5rem;
|
|
15
|
+
padding-bottom: .5rem;
|
|
16
|
+
|
|
17
|
+
[type=reset] {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.wy-button-icon {
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: .25rem;
|
|
24
|
+
border-radius: 50%;
|
|
25
|
+
top: .5rem;
|
|
26
|
+
//left: .5rem;
|
|
27
|
+
padding: 0.25rem;
|
|
28
|
+
z-index: 4;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.wy-search-input {
|
|
33
|
+
@extend %form-control, %form-control-sm;
|
|
34
|
+
background: $light;
|
|
35
|
+
border-color: transparent;
|
|
36
|
+
padding-left: 2rem;
|
|
37
|
+
|
|
38
|
+
&:focus {
|
|
39
|
+
background: $light;
|
|
40
|
+
border-color: transparent;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.wy-searching .wy-search-form,
|
|
46
|
+
.wy-searching.wy-search-form {
|
|
47
|
+
[type=reset] {
|
|
48
|
+
display: inline;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[type=submit] {
|
|
52
|
+
display: none;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.wy-search-result-table {
|
|
57
|
+
@extend %table,
|
|
58
|
+
%table-icons;
|
|
59
|
+
|
|
60
|
+
td:nth-child(2) {
|
|
61
|
+
@include text-truncate();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.wy-search-no-result {
|
|
66
|
+
color: $text-muted;
|
|
67
|
+
text-align: center;
|
|
68
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@use "colors" as *;
|
|
2
|
+
|
|
3
|
+
$spinner-offset: 187 !default;
|
|
4
|
+
$spinner-duration: 1.4s !default;
|
|
5
|
+
|
|
6
|
+
svg.wy-spinner {
|
|
7
|
+
|
|
8
|
+
circle {
|
|
9
|
+
stroke-dasharray: 1, 100;
|
|
10
|
+
stroke-dashoffset: 0;
|
|
11
|
+
transform-origin: center;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
&.wy-spin {
|
|
15
|
+
// add class .wy-spin to animate the spinner (otherwise it will not be visible)
|
|
16
|
+
animation: wy-rotate $spinner-duration linear infinite;
|
|
17
|
+
|
|
18
|
+
circle {
|
|
19
|
+
animation: wy-dash $spinner-duration ease-in-out infinite, wy-color ($spinner-duration*2) ease-in-out infinite;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@keyframes wy-rotate {
|
|
25
|
+
100% {
|
|
26
|
+
transform: rotate(360deg);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@keyframes wy-dash {
|
|
31
|
+
0% {
|
|
32
|
+
stroke-dasharray: 1, 100;
|
|
33
|
+
stroke-dashoffset: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
50% {
|
|
37
|
+
stroke-dasharray: 44.5, 100;
|
|
38
|
+
stroke-dashoffset: -17.5;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
100% {
|
|
42
|
+
stroke-dasharray: 44.5, 100;
|
|
43
|
+
stroke-dashoffset: -62;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@keyframes wy-color {
|
|
48
|
+
0%, 100% {
|
|
49
|
+
stroke: $blue;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
25% {
|
|
53
|
+
stroke: $red;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
50% {
|
|
57
|
+
stroke: $yellow;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
75% {
|
|
61
|
+
stroke: $green;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
@use "config" as *;
|
|
2
|
+
@use "bs/tables";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// table with avatar/icon in first and last column
|
|
6
|
+
%table-icons {
|
|
7
|
+
table-layout: fixed;
|
|
8
|
+
|
|
9
|
+
th, td {
|
|
10
|
+
// cell with img or icon
|
|
11
|
+
&:first-child, &:last-child {
|
|
12
|
+
color: $icon-color !important;
|
|
13
|
+
vertical-align: middle;
|
|
14
|
+
text-align: center;
|
|
15
|
+
padding: $table-cell-padding-y-sm $table-cell-padding-x;
|
|
16
|
+
width: 2rem + $table-cell-padding-x;
|
|
17
|
+
// reset th styles (for dropdown menus in th)
|
|
18
|
+
font-size: $font-size-base;
|
|
19
|
+
font-weight: $font-weight-base;
|
|
20
|
+
text-transform: none;
|
|
21
|
+
letter-spacing: normal;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:first-child {
|
|
25
|
+
padding-right: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&:last-child {
|
|
29
|
+
padding-left: 0;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
.wy-table-trashed {
|
|
36
|
+
th, td {
|
|
37
|
+
color: $text-muted;
|
|
38
|
+
text-decoration: line-through;
|
|
39
|
+
&:not(:last-child) {
|
|
40
|
+
opacity: $btn-disabled-opacity;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
> a {
|
|
44
|
+
color: $text-muted;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:hover {
|
|
49
|
+
th, td {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "variables" as *;
|
|
3
|
+
|
|
4
|
+
.wy-toasts {
|
|
5
|
+
position: fixed;
|
|
6
|
+
left: 0;
|
|
7
|
+
bottom: 0;
|
|
8
|
+
right: 0;
|
|
9
|
+
pointer-events: none;
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
z-index: $zindex-fixed;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.wy-toast {
|
|
18
|
+
margin: 0 0 1rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.wy-toast-body {
|
|
22
|
+
padding: $toast-padding-y $toast-padding-x;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.wy-button-toast {
|
|
26
|
+
font-weight: $font-weight-normal;
|
|
27
|
+
text-decoration: $link-decoration;
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
color: $btn-link-hover-color;
|
|
31
|
+
text-decoration: $link-hover-decoration;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&:focus {
|
|
35
|
+
text-decoration: $link-hover-decoration;
|
|
36
|
+
box-shadow: none;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:disabled,
|
|
40
|
+
&.wy-disabled {
|
|
41
|
+
color: $btn-link-disabled-color;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
color: map.get($utilities-text-colors, "info");
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
font-weight: 500;
|
|
47
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.wy-typing-show {
|
|
2
|
+
font-style: italic;
|
|
3
|
+
display: none;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.wy-typing-active {
|
|
7
|
+
.wy-typing-show {
|
|
8
|
+
display: block;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.wy-typing-hide {
|
|
12
|
+
display: none;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.wy-appbar {
|
|
17
|
+
.wy-typing-hide {
|
|
18
|
+
position: relative;
|
|
19
|
+
padding: 0 1.25rem;
|
|
20
|
+
|
|
21
|
+
.wy-presence.wy-presence-active {
|
|
22
|
+
top: .375rem;
|
|
23
|
+
left: .25rem;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// 1. Introduce Weavy theme variables
|
|
2
|
+
@import "colors"; // weavy color system
|
|
3
|
+
|
|
4
|
+
$appbar-height: 3rem;
|
|
5
|
+
$footerbar-height: 3.5rem;
|
|
6
|
+
|
|
7
|
+
$opacity-backdrop: .95;
|
|
8
|
+
|
|
9
|
+
// TODO: remove the following $client- variables (used in dropin-js)
|
|
10
|
+
$client-panel-width: 24rem; // 384px, previously 375px;
|
|
11
|
+
$client-zindex: 2147483647; // max possible z-index
|
|
12
|
+
$client-border-radius: .25rem;
|
|
13
|
+
$client-icon-size: 2.5rem;
|
|
14
|
+
$client-alert-background: $primary-200;
|
|
15
|
+
$client-alert-color: $primary-800;
|
|
16
|
+
|
|
17
|
+
// Additional font sizes and weights
|
|
18
|
+
//$font-size-xxs: .625rem; // 7.5pt/10px
|
|
19
|
+
$font-size-xs: .75rem; // 9pt/12px
|
|
20
|
+
//$font-weight-thin: 100;
|
|
21
|
+
//$font-weight-extralight: 200;
|
|
22
|
+
$font-weight-medium: 500;
|
|
23
|
+
//$font-weight-extrabold: 800;
|
|
24
|
+
//$font-weight-black: 900;
|
|
25
|
+
//$font-weight-extrablack: 950;
|
|
26
|
+
|
|
27
|
+
// Material design buttons and icons
|
|
28
|
+
$btn-hover-bg: rgba(0, 0, 0, .04);
|
|
29
|
+
$btn-active-bg: rgba(0, 0, 0, .12);
|
|
30
|
+
$icon-color: rgba(0, 0, 0, .54);
|
|
31
|
+
$icon-hover-color: rgba(0, 0, 0, .87);
|
|
32
|
+
$icon-light-color: rgba(255, 255, 255, .70);
|
|
33
|
+
$icon-light-hover-color: rgba(255, 255, 255, 1);
|
|
34
|
+
$icon-color-primary: rgba($primary-700, .87);
|
|
35
|
+
$icon-hover-color-primary: rgba($primary-700, 1);
|
|
36
|
+
$icon-light-color-primary: rgba($primary-300, .87);
|
|
37
|
+
$icon-light-hover-color-primary: rgba($primary-300, 1);
|
|
38
|
+
|
|
39
|
+
// Material design animation and shadows from https://fezvrasta.github.io/bootstrap-material-design/
|
|
40
|
+
$md-animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1);
|
|
41
|
+
$md-animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1);
|
|
42
|
+
$md-animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1);
|
|
43
|
+
$md-animation-curve-default: $md-animation-curve-fast-out-slow-in;
|
|
44
|
+
$md-animation-duration: .2s;
|
|
45
|
+
$md-animation-duration-fast: .1s;
|
|
46
|
+
$md-shadow-umbra-opacity: 0.2;
|
|
47
|
+
$md-shadow-penumbra-opacity: 0.14;
|
|
48
|
+
$md-shadow-ambient-opacity: 0.12;
|
|
49
|
+
$md-shadow-focus: 0 0 .5rem rgba($black, .18), 0 .5rem 1rem rgba($black, .36);
|
|
50
|
+
$md-shadow-2dp: 0 .125rem .125rem 0 rgba($black, $md-shadow-penumbra-opacity), 0 .1875rem .0625rem -.125rem rgba($black, $md-shadow-umbra-opacity), 0 .0625rem .3125rem 0 rgba($black, $md-shadow-ambient-opacity);
|
|
51
|
+
$md-shadow-3dp: 0 .1875rem .25rem 0 rgba($black, $md-shadow-penumbra-opacity), 0 .1875rem .1875rem -.125rem rgba($black, $md-shadow-umbra-opacity), 0 .0625rem .5rem 0 rgba($black, $md-shadow-ambient-opacity);
|
|
52
|
+
$md-shadow-4dp: 0 .25rem .3125rem 0 rgba($black, $md-shadow-penumbra-opacity), 0 .0625rem .625rem 0 rgba($black, $md-shadow-ambient-opacity), 0 .125rem .25rem -.0625rem rgba($black, $md-shadow-umbra-opacity);
|
|
53
|
+
$md-shadow-6dp: 0 .375rem .625rem 0 rgba($black, $md-shadow-penumbra-opacity), 0 .0625rem 1.5rem 0 rgba($black, $md-shadow-ambient-opacity), 0 .1875rem .3125rem -.0625rem rgba($black, $md-shadow-umbra-opacity);
|
|
54
|
+
$md-shadow-8dp: 0 .5rem .625rem .0625rem rgba($black, $md-shadow-penumbra-opacity), 0 .1875rem 1.25rem .125rem rgba($black, $md-shadow-ambient-opacity), 0 .3125rem .3125rem -.1875rem rgba($black, $md-shadow-umbra-opacity);
|
|
55
|
+
$md-shadow-16dp: 0 1rem 2.25rem .125rem rgba($black, $md-shadow-penumbra-opacity), 0 .375rem 1.875rem .3125rem rgba($black, $md-shadow-ambient-opacity), 0 .5rem .625rem -.3125rem rgba($black, $md-shadow-umbra-opacity);
|
|
56
|
+
$md-shadow-24dp: 0 .5625rem 4.375rem .5rem rgba($black, $md-shadow-penumbra-opacity), 0 1.0625rem 1.3125rem -.4375rem rgba($black, $md-shadow-ambient-opacity), 0 2.25rem 3.5rem .1875rem rgba($black, $md-shadow-umbra-opacity);
|
|
57
|
+
|
|
58
|
+
// 2. Override bootstrap variables
|
|
59
|
+
|
|
60
|
+
// Options
|
|
61
|
+
$enable-shadows: true;
|
|
62
|
+
$enable-smooth-scroll: false;
|
|
63
|
+
$enable-grid-classes: false;
|
|
64
|
+
|
|
65
|
+
// Prefix for :root CSS variables
|
|
66
|
+
$prefix: wy-;
|
|
67
|
+
|
|
68
|
+
// Body
|
|
69
|
+
$body-color: $gray-950;
|
|
70
|
+
|
|
71
|
+
// Links
|
|
72
|
+
$link-decoration: none;
|
|
73
|
+
|
|
74
|
+
// Components
|
|
75
|
+
$border-color: $gray-200;
|
|
76
|
+
|
|
77
|
+
$box-shadow: $md-shadow-8dp;
|
|
78
|
+
$box-shadow-sm: $md-shadow-4dp;
|
|
79
|
+
$box-shadow-lg: $md-shadow-16dp;
|
|
80
|
+
$box-shadow-inset: 0;
|
|
81
|
+
|
|
82
|
+
$component-active-color: $gray-900; // $white
|
|
83
|
+
$component-active-bg: $gray-100; // $primary
|
|
84
|
+
|
|
85
|
+
// Tables
|
|
86
|
+
$table-hover-bg: $light;
|
|
87
|
+
$table-border-color: $gray-100;
|
|
88
|
+
|
|
89
|
+
// Buttons
|
|
90
|
+
$btn-box-shadow: unset;
|
|
91
|
+
$btn-focus-box-shadow: unset;
|
|
92
|
+
$btn-active-box-shadow: unset;
|
|
93
|
+
|
|
94
|
+
// Forms
|
|
95
|
+
$input-focus-border-color: tint-color($primary, 50%);
|
|
96
|
+
|
|
97
|
+
// Navbar
|
|
98
|
+
$navbar-padding-x: .5rem;
|
|
99
|
+
|
|
100
|
+
$navbar-dark-color: rgba($white, .62);
|
|
101
|
+
$navbar-dark-hover-color: rgba($white, .95);
|
|
102
|
+
|
|
103
|
+
$navbar-light-color: rgba($black, .69);
|
|
104
|
+
$navbar-light-hover-color: rgba($black, .88);
|
|
105
|
+
$navbar-light-active-color: $black;
|
|
106
|
+
|
|
107
|
+
// Dropdowns
|
|
108
|
+
$dropdown-padding-y: .25rem;
|
|
109
|
+
$dropdown-spacer: .25rem;
|
|
110
|
+
$dropdown-border-width: 0;
|
|
111
|
+
$dropdown-divider-margin-y: .25rem;
|
|
112
|
+
$dropdown-box-shadow: $md-shadow-2dp;
|
|
113
|
+
|
|
114
|
+
$dropdown-link-color: $body-color;
|
|
115
|
+
$dropdown-link-hover-bg: $light;
|
|
116
|
+
|
|
117
|
+
$dropdown-item-padding-y: .75rem;
|
|
118
|
+
$dropdown-item-padding-x: .75rem;
|
|
119
|
+
|
|
120
|
+
// Cards
|
|
121
|
+
$card-cap-bg: $white;
|
|
122
|
+
|
|
123
|
+
// Toasts
|
|
124
|
+
$toast-max-width: auto;
|
|
125
|
+
$toast-font-size: 1rem;
|
|
126
|
+
$toast-color: $gray-200;
|
|
127
|
+
$toast-background-color: $gray-800;
|
|
128
|
+
|
|
129
|
+
// Modals
|
|
130
|
+
$modal-header-border-width: 0;
|
|
131
|
+
|
|
132
|
+
// List group
|
|
133
|
+
$list-group-hover-bg: $light;
|
|
134
|
+
|
|
135
|
+
$list-group-action-active-color: $component-active-color;
|
|
136
|
+
$list-group-action-active-bg: $component-active-bg;
|
|
137
|
+
|
|
138
|
+
// 3. Import default bootstrap variables
|
|
139
|
+
@import "bootstrap/variables";
|