@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.
Files changed (242) hide show
  1. package/.github/workflows/publish.yml +1 -1
  2. package/README.md +3 -4
  3. package/changelog.md +30 -0
  4. package/dist/cjs/index.js +6 -6
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/types/client/WeavyClient.d.ts +1 -1
  7. package/dist/cjs/types/components/Image.d.ts +2 -0
  8. package/dist/cjs/types/components/PdfViewer.d.ts +6 -0
  9. package/dist/cjs/types/components/Preview.d.ts +58 -0
  10. package/dist/cjs/types/contexts/MessengerContext.d.ts +1 -2
  11. package/dist/cjs/types/hooks/useUser.d.ts +2 -1
  12. package/dist/cjs/types/types/Messenger.d.ts +0 -1
  13. package/dist/cjs/types/types/types.d.ts +11 -6
  14. package/dist/cjs/types/utils/fileUtilities.d.ts +16 -1
  15. package/dist/css/weavy-chat.css +2684 -0
  16. package/dist/css/weavy-messenger.css +3039 -0
  17. package/dist/css/weavy.css +3039 -0
  18. package/dist/esm/index.js +6 -6
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/types/client/WeavyClient.d.ts +1 -1
  21. package/dist/esm/types/components/Image.d.ts +2 -0
  22. package/dist/esm/types/components/PdfViewer.d.ts +6 -0
  23. package/dist/esm/types/components/Preview.d.ts +58 -0
  24. package/dist/esm/types/contexts/MessengerContext.d.ts +1 -2
  25. package/dist/esm/types/hooks/useUser.d.ts +2 -1
  26. package/dist/esm/types/types/Messenger.d.ts +0 -1
  27. package/dist/esm/types/types/types.d.ts +11 -6
  28. package/dist/esm/types/utils/fileUtilities.d.ts +16 -1
  29. package/dist/index.d.ts +2 -3
  30. package/package.json +14 -4
  31. package/rollup.config.js +0 -2
  32. package/src/client/WeavyClient.ts +3 -3
  33. package/src/components/Attachment.tsx +5 -6
  34. package/src/components/Avatar.tsx +2 -3
  35. package/src/components/Chat.tsx +10 -14
  36. package/src/components/Conversation.tsx +21 -30
  37. package/src/components/ConversationBadge.tsx +1 -2
  38. package/src/components/ConversationForm.tsx +11 -18
  39. package/src/components/ConversationList.tsx +4 -5
  40. package/src/components/ConversationListItem.tsx +13 -15
  41. package/src/components/FileBrowser.tsx +2 -3
  42. package/src/components/Image.tsx +39 -7
  43. package/src/components/MeetingCard.tsx +7 -8
  44. package/src/components/Message.tsx +12 -13
  45. package/src/components/Messages.tsx +19 -19
  46. package/src/components/Messenger.tsx +5 -6
  47. package/src/components/NewConversation.tsx +5 -7
  48. package/src/components/PdfViewer.tsx +271 -0
  49. package/src/components/Presence.tsx +2 -2
  50. package/src/components/Preview.tsx +294 -0
  51. package/src/components/Reactions.tsx +8 -8
  52. package/src/components/SearchUsers.tsx +18 -17
  53. package/src/components/SeenBy.tsx +1 -2
  54. package/src/components/Typing.tsx +4 -4
  55. package/src/contexts/MessengerContext.tsx +4 -12
  56. package/src/contexts/PreviewContext.tsx +4 -6
  57. package/src/contexts/WeavyContext.tsx +8 -1
  58. package/src/hooks/useBadge.ts +1 -1
  59. package/src/hooks/useChat.ts +1 -1
  60. package/src/hooks/useConversation.ts +1 -2
  61. package/src/hooks/useConversations.ts +1 -1
  62. package/src/hooks/useFileUploader.ts +5 -1
  63. package/src/hooks/useMembers.ts +1 -1
  64. package/src/hooks/useMessages.ts +1 -1
  65. package/src/hooks/useMutateChat.ts +1 -1
  66. package/src/hooks/useMutateConversation.ts +1 -1
  67. package/src/hooks/useMutateConversationName.ts +1 -1
  68. package/src/hooks/useMutateDeleteReaction.ts +1 -1
  69. package/src/hooks/useMutateExternalBlobs.ts +1 -1
  70. package/src/hooks/useMutateMeeting.ts +1 -1
  71. package/src/hooks/useMutateMembers.ts +1 -1
  72. package/src/hooks/useMutateMessage.ts +2 -1
  73. package/src/hooks/useMutatePinned.ts +1 -1
  74. package/src/hooks/useMutateReaction.ts +1 -1
  75. package/src/hooks/useMutateRead.ts +1 -1
  76. package/src/hooks/useMutateRemoveMembers.ts +1 -1
  77. package/src/hooks/useMutateTyping.ts +1 -1
  78. package/src/hooks/usePresence.ts +8 -5
  79. package/src/hooks/useReactions.ts +0 -1
  80. package/src/hooks/useSearchUsers.ts +1 -1
  81. package/src/hooks/useUser.ts +4 -3
  82. package/src/index.ts +2 -2
  83. package/src/scss/theme/_alert.scss +73 -0
  84. package/src/scss/theme/_appbar.scss +112 -0
  85. package/src/scss/theme/_attachments.scss +74 -0
  86. package/src/scss/theme/_avatar.scss +54 -0
  87. package/src/scss/theme/_badge.scss +47 -0
  88. package/src/scss/theme/_buttons.scss +96 -0
  89. package/src/scss/theme/_card.scss +7 -0
  90. package/src/scss/theme/_checkbox.scss +56 -0
  91. package/src/scss/theme/_cm-editor.scss +42 -0
  92. package/src/scss/theme/_code.scss +115 -0
  93. package/src/scss/theme/_colors.scss +520 -0
  94. package/src/scss/theme/_config.scss +6 -0
  95. package/src/scss/theme/_content.scss +15 -0
  96. package/src/scss/theme/_conversations.scss +91 -0
  97. package/src/scss/theme/_dropdown.scss +86 -0
  98. package/src/scss/theme/_emoji.scss +5 -0
  99. package/src/scss/theme/_filebrowser.scss +26 -0
  100. package/src/scss/theme/_files.scss +140 -0
  101. package/src/scss/theme/_icons.scss +62 -0
  102. package/src/scss/theme/_image-grid.scss +63 -0
  103. package/src/scss/theme/_inputs.scss +28 -0
  104. package/src/scss/theme/_message-editor.scss +90 -0
  105. package/src/scss/theme/_messages.scss +238 -0
  106. package/src/scss/theme/_nav.scss +52 -0
  107. package/src/scss/theme/_overlays.scss +157 -0
  108. package/src/scss/theme/_pager.scss +19 -0
  109. package/src/scss/theme/_palette.scss +165 -0
  110. package/src/scss/theme/_pane.scss +16 -0
  111. package/src/scss/theme/_panels.scss +137 -0
  112. package/src/scss/theme/_picker-list.scss +37 -0
  113. package/src/scss/theme/_preview-embed.scss +38 -0
  114. package/src/scss/theme/_preview-html.scss +7 -0
  115. package/src/scss/theme/_preview-icon.scss +41 -0
  116. package/src/scss/theme/_preview-image.scss +86 -0
  117. package/src/scss/theme/_preview-media.scss +28 -0
  118. package/src/scss/theme/_preview-pdf.scss +838 -0
  119. package/src/scss/theme/_preview-text.scss +5 -0
  120. package/src/scss/theme/_preview.scss +105 -0
  121. package/src/scss/theme/_reactions.scss +58 -0
  122. package/src/scss/theme/_reboot.scss +41 -0
  123. package/src/scss/theme/_root.scss +2 -0
  124. package/src/scss/theme/_scroll.scss +55 -0
  125. package/src/scss/theme/_search.scss +68 -0
  126. package/src/scss/theme/_spinner.scss +63 -0
  127. package/src/scss/theme/_tables.scss +53 -0
  128. package/src/scss/theme/_toasts.scss +47 -0
  129. package/src/scss/theme/_turbo.scss +17 -0
  130. package/src/scss/theme/_typing.scss +26 -0
  131. package/src/scss/theme/_variables.scss +139 -0
  132. package/src/scss/theme/bootstrap/_accordion.scss +146 -0
  133. package/src/scss/theme/bootstrap/_alert.scss +71 -0
  134. package/src/scss/theme/bootstrap/_badge.scss +38 -0
  135. package/src/scss/theme/bootstrap/_breadcrumb.scss +40 -0
  136. package/src/scss/theme/bootstrap/_button-group.scss +142 -0
  137. package/src/scss/theme/bootstrap/_buttons.scss +186 -0
  138. package/src/scss/theme/bootstrap/_card.scss +234 -0
  139. package/src/scss/theme/bootstrap/_carousel.scss +229 -0
  140. package/src/scss/theme/bootstrap/_close.scss +40 -0
  141. package/src/scss/theme/bootstrap/_containers.scss +41 -0
  142. package/src/scss/theme/bootstrap/_dropdown.scss +248 -0
  143. package/src/scss/theme/bootstrap/_forms.scss +9 -0
  144. package/src/scss/theme/bootstrap/_functions.scss +302 -0
  145. package/src/scss/theme/bootstrap/_grid.scss +33 -0
  146. package/src/scss/theme/bootstrap/_helpers.scss +10 -0
  147. package/src/scss/theme/bootstrap/_images.scss +42 -0
  148. package/src/scss/theme/bootstrap/_list-group.scss +191 -0
  149. package/src/scss/theme/bootstrap/_maps.scss +54 -0
  150. package/src/scss/theme/bootstrap/_mixins.scss +43 -0
  151. package/src/scss/theme/bootstrap/_modal.scss +237 -0
  152. package/src/scss/theme/bootstrap/_nav.scss +172 -0
  153. package/src/scss/theme/bootstrap/_navbar.scss +276 -0
  154. package/src/scss/theme/bootstrap/_offcanvas.scss +143 -0
  155. package/src/scss/theme/bootstrap/_pagination.scss +109 -0
  156. package/src/scss/theme/bootstrap/_placeholders.scss +51 -0
  157. package/src/scss/theme/bootstrap/_popover.scss +196 -0
  158. package/src/scss/theme/bootstrap/_progress.scss +59 -0
  159. package/src/scss/theme/bootstrap/_reboot.scss +610 -0
  160. package/src/scss/theme/bootstrap/_root.scss +73 -0
  161. package/src/scss/theme/bootstrap/_spinners.scss +85 -0
  162. package/src/scss/theme/bootstrap/_tables.scss +164 -0
  163. package/src/scss/theme/bootstrap/_toasts.scss +70 -0
  164. package/src/scss/theme/bootstrap/_tooltip.scss +120 -0
  165. package/src/scss/theme/bootstrap/_transitions.scss +27 -0
  166. package/src/scss/theme/bootstrap/_type.scss +106 -0
  167. package/src/scss/theme/bootstrap/_utilities.scss +647 -0
  168. package/src/scss/theme/bootstrap/_variables.scss +1633 -0
  169. package/src/scss/theme/bootstrap/forms/_floating-labels.scss +74 -0
  170. package/src/scss/theme/bootstrap/forms/_form-check.scss +175 -0
  171. package/src/scss/theme/bootstrap/forms/_form-control.scss +194 -0
  172. package/src/scss/theme/bootstrap/forms/_form-range.scss +91 -0
  173. package/src/scss/theme/bootstrap/forms/_form-select.scss +71 -0
  174. package/src/scss/theme/bootstrap/forms/_form-text.scss +11 -0
  175. package/src/scss/theme/bootstrap/forms/_input-group.scss +129 -0
  176. package/src/scss/theme/bootstrap/forms/_labels.scss +36 -0
  177. package/src/scss/theme/bootstrap/forms/_validation.scss +12 -0
  178. package/src/scss/theme/bootstrap/helpers/_clearfix.scss +3 -0
  179. package/src/scss/theme/bootstrap/helpers/_color-bg.scss +10 -0
  180. package/src/scss/theme/bootstrap/helpers/_colored-links.scss +12 -0
  181. package/src/scss/theme/bootstrap/helpers/_position.scss +36 -0
  182. package/src/scss/theme/bootstrap/helpers/_ratio.scss +26 -0
  183. package/src/scss/theme/bootstrap/helpers/_stacks.scss +15 -0
  184. package/src/scss/theme/bootstrap/helpers/_stretched-link.scss +15 -0
  185. package/src/scss/theme/bootstrap/helpers/_text-truncation.scss +7 -0
  186. package/src/scss/theme/bootstrap/helpers/_visually-hidden.scss +8 -0
  187. package/src/scss/theme/bootstrap/helpers/_vr.scss +8 -0
  188. package/src/scss/theme/bootstrap/mixins/_alert.scss +15 -0
  189. package/src/scss/theme/bootstrap/mixins/_backdrop.scss +14 -0
  190. package/src/scss/theme/bootstrap/mixins/_banner.scss +9 -0
  191. package/src/scss/theme/bootstrap/mixins/_border-radius.scss +78 -0
  192. package/src/scss/theme/bootstrap/mixins/_box-shadow.scss +18 -0
  193. package/src/scss/theme/bootstrap/mixins/_breakpoints.scss +127 -0
  194. package/src/scss/theme/bootstrap/mixins/_buttons.scss +70 -0
  195. package/src/scss/theme/bootstrap/mixins/_caret.scss +64 -0
  196. package/src/scss/theme/bootstrap/mixins/_clearfix.scss +9 -0
  197. package/src/scss/theme/bootstrap/mixins/_color-scheme.scss +7 -0
  198. package/src/scss/theme/bootstrap/mixins/_container.scss +11 -0
  199. package/src/scss/theme/bootstrap/mixins/_deprecate.scss +10 -0
  200. package/src/scss/theme/bootstrap/mixins/_forms.scss +152 -0
  201. package/src/scss/theme/bootstrap/mixins/_gradients.scss +47 -0
  202. package/src/scss/theme/bootstrap/mixins/_grid.scss +151 -0
  203. package/src/scss/theme/bootstrap/mixins/_image.scss +16 -0
  204. package/src/scss/theme/bootstrap/mixins/_list-group.scss +24 -0
  205. package/src/scss/theme/bootstrap/mixins/_lists.scss +7 -0
  206. package/src/scss/theme/bootstrap/mixins/_pagination.scss +10 -0
  207. package/src/scss/theme/bootstrap/mixins/_reset-text.scss +17 -0
  208. package/src/scss/theme/bootstrap/mixins/_resize.scss +6 -0
  209. package/src/scss/theme/bootstrap/mixins/_table-variants.scss +24 -0
  210. package/src/scss/theme/bootstrap/mixins/_text-truncate.scss +8 -0
  211. package/src/scss/theme/bootstrap/mixins/_transition.scss +26 -0
  212. package/src/scss/theme/bootstrap/mixins/_utilities.scss +97 -0
  213. package/src/scss/theme/bootstrap/mixins/_visually-hidden.scss +29 -0
  214. package/src/scss/theme/bootstrap/utilities/_api.scss +47 -0
  215. package/src/scss/theme/bootstrap/vendor/_rfs.scss +354 -0
  216. package/src/scss/theme/bs/_badge.scss +20 -0
  217. package/src/scss/theme/bs/_buttons.scss +185 -0
  218. package/src/scss/theme/bs/_dropdown.scss +86 -0
  219. package/src/scss/theme/bs/_forms.scss +161 -0
  220. package/src/scss/theme/bs/_list-group.scss +73 -0
  221. package/src/scss/theme/bs/_tables.scss +46 -0
  222. package/src/scss/theme/fonts/_fontmapping-roboto.scss +129 -0
  223. package/src/scss/theme/fonts/_fontmapping-segoe-ui.scss +127 -0
  224. package/src/scss/theme/fonts/_index.scss +2 -0
  225. package/src/scss/theme/mixins/_backdrop.scss +13 -0
  226. package/src/scss/theme/mixins/_palette.scss +165 -0
  227. package/src/scss/theme/mixins/_position.scss +33 -0
  228. package/src/scss/theme/mixins/_scrollbar.scss +110 -0
  229. package/src/scss/weavy-chat.scss +31 -0
  230. package/src/scss/weavy-messenger.scss +60 -0
  231. package/src/scss/weavy.scss +2 -0
  232. package/src/types/Messenger.ts +1 -1
  233. package/src/types/types.ts +14 -9
  234. package/src/ui/Button.tsx +3 -4
  235. package/src/ui/Dropdown.tsx +4 -5
  236. package/src/ui/Icon.tsx +75 -39
  237. package/src/ui/Overlay.tsx +2 -3
  238. package/src/utils/fileUtilities.ts +280 -72
  239. package/src/utils/scrollbarDetection.js +48 -0
  240. package/dist/cjs/types/utils/styles.d.ts +0 -17
  241. package/dist/esm/types/utils/styles.d.ts +0 -17
  242. package/src/utils/styles.ts +0 -42
@@ -0,0 +1,5 @@
1
+ // plain text
2
+ .wy-content-text {
3
+ word-break: break-word;
4
+ white-space: pre-wrap;
5
+ }
@@ -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,2 @@
1
+ @import "config";
2
+ @import "bootstrap/root";
@@ -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,17 @@
1
+ @use "colors" as *;
2
+
3
+ .turbo-progress-bar {
4
+ background-color: $primary;
5
+ height: .25rem;
6
+ }
7
+
8
+ [data-turbo-link] {
9
+ cursor: pointer;
10
+ }
11
+
12
+
13
+ html[data-turbo-preview] {
14
+ main {
15
+ opacity: .6;
16
+ }
17
+ }
@@ -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";