@progress/kendo-theme-default 5.2.1-dev.4 → 5.3.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 (36) hide show
  1. package/dist/all.css +148 -20
  2. package/dist/all.scss +108 -23
  3. package/dist/default-ocean-blue.scss +44 -0
  4. package/lib/swatches/default-blue.json +1 -1
  5. package/lib/swatches/default-dataviz-v4.json +1 -1
  6. package/lib/swatches/default-green.json +1 -1
  7. package/lib/swatches/default-main-dark.json +1 -1
  8. package/lib/swatches/default-main.json +1 -1
  9. package/lib/swatches/default-nordic.json +1 -1
  10. package/lib/swatches/default-ocean-blue.json +272 -0
  11. package/lib/swatches/default-orange.json +1 -1
  12. package/lib/swatches/default-purple.json +1 -1
  13. package/lib/swatches/default-turquoise.json +1 -1
  14. package/lib/swatches/default-urban.json +1 -1
  15. package/lib/swatches/index.js +1 -0
  16. package/package.json +2 -2
  17. package/scss/action-sheet/_layout.scss +0 -1
  18. package/scss/action-sheet/_theme.scss +6 -0
  19. package/scss/action-sheet/_variables.scss +2 -1
  20. package/scss/button/_layout.scss +0 -1
  21. package/scss/button/_variables.scss +1 -1
  22. package/scss/chat/_layout.scss +1 -0
  23. package/scss/colorgradient/_variables.scss +1 -1
  24. package/scss/colorpalette/_theme.scss +3 -1
  25. package/scss/dropzone/_variables.scss +1 -1
  26. package/scss/expansion-panel/_theme.scss +1 -1
  27. package/scss/expansion-panel/_variables.scss +1 -1
  28. package/scss/floating-label/_layout.scss +10 -5
  29. package/scss/grid/_layout.scss +5 -4
  30. package/scss/pager/_layout.scss +1 -0
  31. package/scss/scheduler/_theme.scss +3 -0
  32. package/scss/scheduler/_variables.scss +2 -0
  33. package/scss/taskboard/_variables.scss +1 -1
  34. package/scss/utils/_aspect-ratio.scss +27 -0
  35. package/scss/utils/_index.scss +1 -0
  36. package/scss/utils/_text.scss +39 -4
@@ -0,0 +1,44 @@
1
+ $primary: #1274AC;
2
+ $secondary: #757575;
3
+ $tertiary: #007F84;
4
+ $info: #0058E9;
5
+ $success: #278200;
6
+ $warning: #F5A600;
7
+ $error: #D51923;
8
+ $light: #757575;
9
+ $body-text: #424242;
10
+ $body-bg: #ffffff;
11
+ $heading-text: #272727;
12
+ $subtle-text: #666666;
13
+ $disabled-text: #8f8f8f;
14
+ $component-text: #424242;
15
+ $component-bg: #ffffff;
16
+ $base-text: #424242;
17
+ $base-bg: #fafafa;
18
+ $hovered-text: #424242;
19
+ $hovered-bg: #ececec;
20
+ $selected-text: #ffffff;
21
+ $selected-bg: #1274AC;
22
+ $kendo-button-text: #424242;
23
+ $kendo-button-bg: #f5f5f5;
24
+ $kendo-flat-button-hover-opacity: 4%;
25
+ $kendo-flat-button-active-opacity: 6%;
26
+ $kendo-flat-button-selected-opacity: 8%;
27
+ $link-text: #1274AC;
28
+ $link-hover-text: #0f6190;
29
+ $kendo-input-clear-value-opacity: 80%;
30
+ $series-a: #1274AC;
31
+ $series-b: #FFE162;
32
+ $series-c: #4CD180;
33
+ $series-d: #0074e6;
34
+ $series-e: #9B4FE6;
35
+ $series-f: #FF80AC;
36
+ $scheduler-event-bg: #1274AC;
37
+ $scheduler-event-selected-bg: #0f6190;
38
+ $pager-number-text: #424242;
39
+ $pager-number-hover-bg: #ececec;
40
+ $pager-number-hover-text: #424242;
41
+ $pager-number-selected-bg: #1274AC;
42
+ $pager-number-selected-text: #ffffff;
43
+
44
+ @import "all.scss";
@@ -3,7 +3,7 @@
3
3
  "name": "Default Blue",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Dataviz v4",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ff6358",
9
9
  "#ffd246",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Green",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Main Dark",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#000000",
9
9
  "#151515",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Main",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Nordic",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#50686e",
@@ -0,0 +1,272 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@progress/kendo-theme-tasks@1.14.0/lib/schemas/kendo-swatch.json",
3
+ "name": "Default Ocean Blue",
4
+ "product": "kendo",
5
+ "base": "@progress/kendo-theme-default",
6
+ "version": "5.3.0",
7
+ "previewColors": [
8
+ "#ffffff",
9
+ "#f5f5f5",
10
+ "#1274AC",
11
+ "#0f6190",
12
+ "#424242"
13
+ ],
14
+ "components": [],
15
+ "groups": [
16
+ {
17
+ "name": "Theme colors",
18
+ "variables": {
19
+ "primary": {
20
+ "name": "Primary",
21
+ "type": "color",
22
+ "value": "#1274AC"
23
+ },
24
+ "secondary": {
25
+ "name": "Secondary",
26
+ "type": "color",
27
+ "value": "#757575"
28
+ },
29
+ "tertiary": {
30
+ "name": "Tertiary",
31
+ "type": "color",
32
+ "value": "#007F84"
33
+ },
34
+ "info": {
35
+ "name": "Info",
36
+ "type": "color",
37
+ "value": "#0058E9"
38
+ },
39
+ "success": {
40
+ "name": "Success",
41
+ "type": "color",
42
+ "value": "#278200"
43
+ },
44
+ "warning": {
45
+ "name": "Warning",
46
+ "type": "color",
47
+ "value": "#F5A600"
48
+ },
49
+ "error": {
50
+ "name": "Error",
51
+ "type": "color",
52
+ "value": "#D51923"
53
+ },
54
+ "light": {
55
+ "name": "Light",
56
+ "type": "color",
57
+ "value": "#757575"
58
+ }
59
+ }
60
+ },
61
+ {
62
+ "name": "Body",
63
+ "variables": {
64
+ "body-text": {
65
+ "name": "Body text color",
66
+ "type": "color",
67
+ "value": "#424242"
68
+ },
69
+ "body-bg": {
70
+ "name": "Body background",
71
+ "type": "color",
72
+ "value": "#ffffff"
73
+ },
74
+ "heading-text": {
75
+ "name": "Headings text color",
76
+ "type": "color",
77
+ "value": "#272727"
78
+ },
79
+ "subtle-text": {
80
+ "name": "Subtle text color",
81
+ "type": "color",
82
+ "value": "#666666"
83
+ },
84
+ "disabled-text": {
85
+ "name": "Disabled text color",
86
+ "type": "color",
87
+ "value": "#8f8f8f"
88
+ }
89
+ }
90
+ },
91
+ {
92
+ "name": "Components",
93
+ "variables": {
94
+ "component-text": {
95
+ "name": "Component text color",
96
+ "type": "color",
97
+ "value": "#424242"
98
+ },
99
+ "component-bg": {
100
+ "name": "Component background",
101
+ "type": "color",
102
+ "value": "#ffffff"
103
+ },
104
+ "base-text": {
105
+ "name": "Header text color",
106
+ "type": "color",
107
+ "value": "#424242"
108
+ },
109
+ "base-bg": {
110
+ "name": "Header background",
111
+ "type": "color",
112
+ "value": "#fafafa"
113
+ },
114
+ "hovered-text": {
115
+ "name": "Hover text color",
116
+ "type": "color",
117
+ "value": "#424242"
118
+ },
119
+ "hovered-bg": {
120
+ "name": "Hover background",
121
+ "type": "color",
122
+ "value": "#ececec"
123
+ },
124
+ "selected-text": {
125
+ "name": "Selected text color",
126
+ "type": "color",
127
+ "value": "#ffffff"
128
+ },
129
+ "selected-bg": {
130
+ "name": "Selected background",
131
+ "type": "color",
132
+ "value": "#1274AC"
133
+ }
134
+ }
135
+ },
136
+ {
137
+ "name": "Button",
138
+ "variables": {
139
+ "kendo-button-text": {
140
+ "name": "Button text color",
141
+ "type": "color",
142
+ "value": "#424242"
143
+ },
144
+ "kendo-button-bg": {
145
+ "name": "Button background",
146
+ "type": "color",
147
+ "value": "#f5f5f5"
148
+ },
149
+ "kendo-flat-button-hover-opacity": {
150
+ "name": "Flat Button hover opacity",
151
+ "type": "number",
152
+ "value": "4%"
153
+ },
154
+ "kendo-flat-button-active-opacity": {
155
+ "name": "Flat Button active opacity",
156
+ "type": "number",
157
+ "value": "6%"
158
+ },
159
+ "kendo-flat-button-selected-opacity": {
160
+ "name": "Flat Button selected opacity",
161
+ "type": "number",
162
+ "value": "8%"
163
+ }
164
+ }
165
+ },
166
+ {
167
+ "name": "Link",
168
+ "variables": {
169
+ "link-text": {
170
+ "name": "Link text color",
171
+ "type": "color",
172
+ "value": "#1274AC"
173
+ },
174
+ "link-hover-text": {
175
+ "name": "Link hover text color",
176
+ "type": "color",
177
+ "value": "#0f6190"
178
+ }
179
+ }
180
+ },
181
+ {
182
+ "name": "Inputs",
183
+ "variables": {
184
+ "kendo-input-clear-value-opacity": {
185
+ "name": "Input clear value button opacity",
186
+ "type": "number",
187
+ "value": "80%"
188
+ }
189
+ }
190
+ },
191
+ {
192
+ "name": "Dataviz",
193
+ "variables": {
194
+ "series-a": {
195
+ "name": "Series A",
196
+ "type": "color",
197
+ "value": "#1274AC"
198
+ },
199
+ "series-b": {
200
+ "name": "Series B",
201
+ "type": "color",
202
+ "value": "#FFE162"
203
+ },
204
+ "series-c": {
205
+ "name": "Series C",
206
+ "type": "color",
207
+ "value": "#4CD180"
208
+ },
209
+ "series-d": {
210
+ "name": "Series D",
211
+ "type": "color",
212
+ "value": "#0074e6"
213
+ },
214
+ "series-e": {
215
+ "name": "Series E",
216
+ "type": "color",
217
+ "value": "#9B4FE6"
218
+ },
219
+ "series-f": {
220
+ "name": "Series F",
221
+ "type": "color",
222
+ "value": "#FF80AC"
223
+ }
224
+ }
225
+ },
226
+ {
227
+ "name": "Scheduler",
228
+ "variables": {
229
+ "scheduler-event-bg": {
230
+ "name": "Scheduler event background",
231
+ "type": "color",
232
+ "value": "#1274AC"
233
+ },
234
+ "scheduler-event-selected-bg": {
235
+ "name": "Scheduler event selected background",
236
+ "type": "color",
237
+ "value": "#0f6190"
238
+ }
239
+ }
240
+ },
241
+ {
242
+ "name": "Pager",
243
+ "variables": {
244
+ "pager-number-text": {
245
+ "name": "Pager number text color",
246
+ "type": "color",
247
+ "value": "#424242"
248
+ },
249
+ "pager-number-hover-bg": {
250
+ "name": "Pager number hover background",
251
+ "type": "color",
252
+ "value": "#ececec"
253
+ },
254
+ "pager-number-hover-text": {
255
+ "name": "Pager number hover text color",
256
+ "type": "color",
257
+ "value": "#424242"
258
+ },
259
+ "pager-number-selected-bg": {
260
+ "name": "Pager number selected background",
261
+ "type": "color",
262
+ "value": "#1274AC"
263
+ },
264
+ "pager-number-selected-text": {
265
+ "name": "Pager number selected text color",
266
+ "type": "color",
267
+ "value": "#ffffff"
268
+ }
269
+ }
270
+ }
271
+ ]
272
+ }
@@ -3,7 +3,7 @@
3
3
  "name": "Default Orange",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Purple",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Turquoise",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#f5f5f5",
@@ -3,7 +3,7 @@
3
3
  "name": "Default Urban",
4
4
  "product": "kendo",
5
5
  "base": "@progress/kendo-theme-default",
6
- "version": "5.2.1-dev.4",
6
+ "version": "5.3.0",
7
7
  "previewColors": [
8
8
  "#ffffff",
9
9
  "#e3eef4",
@@ -3,6 +3,7 @@ module.exports.mainDark = require('./default-main-dark.json');
3
3
  module.exports.blue = require('./default-blue.json');
4
4
  module.exports.green = require('./default-green.json');
5
5
  module.exports.nordic = require('./default-nordic.json');
6
+ module.exports.orange = require('./default-ocean-blue.json');
6
7
  module.exports.orange = require('./default-orange.json');
7
8
  module.exports.purple = require('./default-purple.json');
8
9
  module.exports.turquoise = require('./default-turquoise.json');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-theme-default",
3
3
  "description": "SASS resources for the default Kendo UI theme",
4
- "version": "5.2.1-dev.4",
4
+ "version": "5.3.0",
5
5
  "author": "Progress",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
@@ -47,5 +47,5 @@
47
47
  "prepublishOnly": "node ../../scripts/themes-prepublish.js",
48
48
  "postpublish": "echo 'no postpublish for default theme'"
49
49
  },
50
- "gitHead": "9045b47fb4e1bcf58c8d4c400e28293bd0563b20"
50
+ "gitHead": "867f14d5246e147b66555ac808c5790ba8881d12"
51
51
  }
@@ -89,7 +89,6 @@
89
89
  }
90
90
  .k-actionsheet-item-description {
91
91
  font-size: $actionsheet-item-description-font-size;
92
- opacity: $actionsheet-item-description-opacity;
93
92
  }
94
93
 
95
94
 
@@ -31,6 +31,12 @@
31
31
  .k-actionsheet-item {}
32
32
 
33
33
 
34
+ // Actionsheet item description
35
+ .k-actionsheet-item-description {
36
+ @include fill( $color: $actionsheet-item-description-text );
37
+ }
38
+
39
+
34
40
  // Actionsheet action
35
41
  .k-actionsheet-action {
36
42
 
@@ -44,8 +44,9 @@ $actionsheet-item-icon-size: null !default;
44
44
 
45
45
  $actionsheet-item-title-font-weight: null !default;
46
46
  $actionsheet-item-title-text-transform: null !default;
47
+
47
48
  $actionsheet-item-description-font-size: .875em !default;
48
- $actionsheet-item-description-opacity: .75 !default;
49
+ $actionsheet-item-description-text: $subtle-text !default;
49
50
 
50
51
  $actionsheet-item-hover-bg: $hovered-bg !default;
51
52
  $actionsheet-item-hover-text: null !default;
@@ -51,7 +51,6 @@
51
51
 
52
52
  // Icon Button
53
53
  .k-icon-button {
54
- aspect-ratio: 1;
55
54
  gap: 0;
56
55
 
57
56
  .k-icon {
@@ -167,7 +167,7 @@ $kendo-button-disabled-shadow: null !default;
167
167
 
168
168
  // Solid button
169
169
  $kendo-solid-button-gradient: rgba( black, 0 ), rgba( black, .02 ) !default;
170
- $kendo-solid-button-shade-function: "try-shade";
170
+ $kendo-solid-button-shade-function: "try-shade" !default;
171
171
  $kendo-solid-button-shade-text-amount: 0 !default;
172
172
  $kendo-solid-button-shade-bg-amount: 0 !default;
173
173
  $kendo-solid-button-shade-border-amount: 0 !default;
@@ -142,6 +142,7 @@
142
142
  border-style: solid;
143
143
  line-height: $chat-bubble-line-height;
144
144
  word-wrap: break-word;
145
+ white-space: pre-wrap;
145
146
 
146
147
  a {
147
148
  color: inherit;
@@ -45,7 +45,7 @@ $colorgradient-canvas-draghandle-margin-x: -( $colorgradient-draghandle-width /
45
45
  $colorgradient-input-width: 46px !default;
46
46
  $colorgradient-input-gap: ( $colorgradient-spacer / 1.5 ) !default;
47
47
  $colorgradient-input-label-gap: ( $colorgradient-spacer / 3 ) !default;
48
- $colorgradient-input-label-text: $disabled-text !default;
48
+ $colorgradient-input-label-text: $subtle-text !default;
49
49
 
50
50
  $colorgradient-contrast-ratio-font-weight: $font-weight-bold !default;
51
51
  $colorgradient-contrast-spacer: ( $colorgradient-spacer / 1.5 ) !default;
@@ -16,7 +16,9 @@
16
16
  }
17
17
 
18
18
  &.k-state-selected,
19
- &.k-state-selected:hover {
19
+ &.k-state-selected:hover,
20
+ &.k-selected,
21
+ &.k-selected:hover {
20
22
  @include box-shadow( $colorpalette-tile-selected-shadow );
21
23
  }
22
24
 
@@ -23,4 +23,4 @@ $dropzone-hint-text: null !default;
23
23
 
24
24
  $dropzone-note-font-size: $font-size-sm !default;
25
25
  $dropzone-note-spacing: null !default;
26
- $dropzone-note-text: try-tint( $dropzone-text, 4 ) !default;
26
+ $dropzone-note-text: $subtle-text !default;
@@ -37,6 +37,6 @@
37
37
  }
38
38
 
39
39
  .k-expander-sub-title {
40
- opacity: $expander-header-sub-title-opacity;
40
+ color: $expander-header-sub-title-text;
41
41
  }
42
42
  }
@@ -27,7 +27,7 @@ $expander-header-focused-shadow: $kendo-list-item-focus-shadow !default;
27
27
 
28
28
  $expander-title-text: $primary !default;
29
29
 
30
- $expander-header-sub-title-opacity: .5 !default;
30
+ $expander-header-sub-title-text: $subtle-text !default;
31
31
 
32
32
  $expander-content-padding-x: $padding-x * 2 !default;
33
33
  $expander-content-padding-y: $padding-y * 4 !default;
@@ -37,7 +37,8 @@
37
37
  width: auto;
38
38
  }
39
39
 
40
- &.k-state-empty {
40
+ &.k-state-empty,
41
+ &.k-empty {
41
42
  > .k-label {
42
43
  top: $floating-label-offset-y;
43
44
  left: $floating-label-offset-x;
@@ -48,7 +49,8 @@
48
49
 
49
50
  > .k-label,
50
51
  // &:focus-within > .k-label,
51
- &.k-state-focused > .k-label {
52
+ &.k-state-focused > .k-label,
53
+ &.k-focus > .k-label {
52
54
  top: $floating-label-focus-offset-y;
53
55
  left: $floating-label-focus-offset-x;
54
56
  transform: scale( $floating-label-focus-scale );
@@ -69,9 +71,11 @@
69
71
 
70
72
  > .k-label {
71
73
  transform-origin: right center;
74
+ transition: transform $floating-label-transition, color $floating-label-transition, top $floating-label-transition, right $floating-label-transition;
72
75
  }
73
76
 
74
- &.k-state-empty {
77
+ &.k-state-empty,
78
+ &.k-empty {
75
79
  > .k-label {
76
80
  left: auto;
77
81
  right: $floating-label-offset-x;
@@ -80,11 +84,12 @@
80
84
 
81
85
  > .k-label,
82
86
  // &:focus-within > .k-label,
83
- &.k-state-focused > .k-label {
87
+ &.k-state-focused > .k-label,
88
+ &.k-focus > .k-label {
84
89
  left: auto;
85
90
  right: $floating-label-focus-offset-x;
86
91
  }
87
- &:focus-within {
92
+ &:focus-within > .k-label {
88
93
  left: auto;
89
94
  right: $floating-label-focus-offset-x;
90
95
  }
@@ -19,6 +19,8 @@
19
19
 
20
20
  $grid-group-indicator-border-radius: $kendo-border-radius-md !default;
21
21
  $grid-group-indicator-gap: $table-cell-padding-y !default;
22
+ $grid-group-indicator-button-opacity: $kendo-input-clear-value-opacity !default;
23
+ $grid-group-indicator-button-hover-opacity: $kendo-input-clear-value-hover-opacity !default;
22
24
 
23
25
  $grid-grouping-row-border-top: 1px !default;
24
26
  $grid-group-footer-border-y: 1px !default;
@@ -487,7 +489,7 @@
487
489
  padding: 0;
488
490
  width: auto;
489
491
  height: auto;
490
- opacity: .5;
492
+ opacity: $grid-group-indicator-button-opacity;
491
493
 
492
494
  &::before,
493
495
  &::after {
@@ -495,7 +497,7 @@
495
497
  }
496
498
 
497
499
  &:hover {
498
- opacity: 1;
500
+ opacity: $grid-group-indicator-button-hover-opacity;
499
501
  }
500
502
  }
501
503
  }
@@ -919,8 +921,7 @@
919
921
  }
920
922
 
921
923
  .k-grid-content,
922
- .k-grid-content-locked,
923
- .k-pager-wrap {
924
+ .k-grid-content-locked {
924
925
  white-space: normal;
925
926
  }
926
927
 
@@ -9,6 +9,7 @@
9
9
  font-family: $pager-font-family;
10
10
  font-size: $pager-font-size;
11
11
  line-height: $pager-line-height;
12
+ white-space: nowrap;
12
13
  display: flex;
13
14
  align-items: center;
14
15
  position: relative;
@@ -128,6 +128,9 @@
128
128
  .k-event-inverse {
129
129
  color: contrast-wcag( $scheduler-event-text );
130
130
  }
131
+ .k-event-ongoing {
132
+ @include box-shadow( $scheduler-event-ongoing-shadow );
133
+ }
131
134
 
132
135
 
133
136
  // Drag hint