@expressivecss/expressive 0.7.0 → 0.9.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 (122) hide show
  1. package/CHANGELOG.md +1313 -1
  2. package/README.md +76 -30
  3. package/dist/css/expressive.css +4896 -1777
  4. package/dist/css/expressive.css.map +1 -1
  5. package/dist/css/expressive.min.css +1 -1
  6. package/dist/css/expressive.min.css.map +1 -1
  7. package/dist/fonts/LICENSE-material-symbols +93 -0
  8. package/dist/fonts/LICENSE-noto-sans +93 -0
  9. package/dist/fonts/LICENSE-roboto +93 -0
  10. package/dist/fonts/material-symbols-outlined.woff2 +0 -0
  11. package/dist/fonts/material-symbols-rounded.woff2 +0 -0
  12. package/dist/fonts/material-symbols-sharp.woff2 +0 -0
  13. package/dist/fonts/noto-sans-latin-400.woff2 +0 -0
  14. package/dist/fonts/noto-sans-latin-500.woff2 +0 -0
  15. package/dist/fonts/roboto-latin-400.woff2 +0 -0
  16. package/dist/fonts/roboto-latin-500.woff2 +0 -0
  17. package/dist/js/expressive.cjs +1673 -1338
  18. package/dist/js/expressive.cjs.map +4 -4
  19. package/dist/js/expressive.js +1673 -1338
  20. package/dist/js/expressive.js.map +4 -4
  21. package/dist/js/expressive.min.js +13 -13
  22. package/dist/js/expressive.min.js.map +4 -4
  23. package/dist/js/expressive.mjs +1673 -1338
  24. package/dist/js/expressive.mjs.map +4 -4
  25. package/dist/types/behaviors/bottomSheets.d.ts +19 -11
  26. package/dist/types/behaviors/sheetDrag.d.ts +40 -0
  27. package/dist/types/behaviors/sideSheets.d.ts +2 -9
  28. package/dist/types/components/appBar.d.ts +26 -0
  29. package/dist/types/components/autocomplete.d.ts +15 -3
  30. package/dist/types/components/buttonGroup.d.ts +39 -0
  31. package/dist/types/components/buttons.d.ts +5 -1
  32. package/dist/types/components/cards.d.ts +11 -13
  33. package/dist/types/components/carousel.d.ts +87 -53
  34. package/dist/types/components/chips.d.ts +21 -1
  35. package/dist/types/components/expandingCard.d.ts +31 -0
  36. package/dist/types/components/index.d.ts +23 -20
  37. package/dist/types/components/lightbox.d.ts +1 -0
  38. package/dist/types/components/menu.d.ts +11 -1
  39. package/dist/types/components/{sidenav.d.ts → navigationDrawer.d.ts} +16 -16
  40. package/dist/types/components/registry.d.ts +18 -8
  41. package/dist/types/components/slider.d.ts +26 -85
  42. package/dist/types/components/snackbar.d.ts +20 -5
  43. package/dist/types/components/tabs.d.ts +12 -0
  44. package/dist/types/components/timepicker.d.ts +12 -10
  45. package/dist/types/components/tooltip.d.ts +1 -0
  46. package/dist/types/core/utils.d.ts +64 -53
  47. package/dist/types/index.d.ts +8 -9
  48. package/package.json +39 -3
  49. package/src/sass/README.md +61 -11
  50. package/src/sass/abstracts/_breakpoints.scss +17 -19
  51. package/src/sass/abstracts/_mixins.scss +155 -21
  52. package/src/sass/abstracts/_variables.scss +69 -5
  53. package/src/sass/base/_fonts.scss +63 -0
  54. package/src/sass/base/_global.scss +6 -24
  55. package/src/sass/base/_grid.scss +15 -12
  56. package/src/sass/base/_normalize.scss +34 -38
  57. package/src/sass/base/_typography.scss +4 -18
  58. package/src/sass/components/_badges.scss +3 -5
  59. package/src/sass/components/_banners.scss +298 -0
  60. package/src/sass/components/_bottom-app-bar.scss +180 -0
  61. package/src/sass/components/_bottom-sheet.scss +12 -4
  62. package/src/sass/components/_button-groups.scss +358 -0
  63. package/src/sass/components/_buttons.scss +245 -92
  64. package/src/sass/components/_cards.scss +514 -78
  65. package/src/sass/components/_carousel.scss +562 -68
  66. package/src/sass/components/_chips.scss +64 -5
  67. package/src/sass/components/_datepicker.scss +24 -24
  68. package/src/sass/components/_dialog.scss +17 -11
  69. package/src/sass/components/_drag-handle.scss +130 -0
  70. package/src/sass/components/_expanding-card.scss +226 -0
  71. package/src/sass/components/_fab-menu.scss +232 -0
  72. package/src/sass/components/_floating-sheet.scss +86 -0
  73. package/src/sass/components/_icon-buttons.scss +172 -0
  74. package/src/sass/components/_icons-material-design.scss +22 -10
  75. package/src/sass/components/_index.scss +22 -6
  76. package/src/sass/components/_list.scss +16 -13
  77. package/src/sass/components/_loading-indicator.scss +106 -0
  78. package/src/sass/components/_menu.scss +335 -61
  79. package/src/sass/components/_navbar.scss +245 -45
  80. package/src/sass/components/_navigation-bar.scss +22 -11
  81. package/src/sass/components/{_sidenav.scss → _navigation-drawer.scss} +123 -33
  82. package/src/sass/components/_navigation-rail.scss +31 -23
  83. package/src/sass/components/_page-footer.scss +19 -16
  84. package/src/sass/components/_pagination.scss +24 -6
  85. package/src/sass/components/_panes.scss +52 -11
  86. package/src/sass/components/{_preloader.scss → _progress.scss} +11 -3
  87. package/src/sass/components/_scrim.scss +37 -0
  88. package/src/sass/components/_search.scss +259 -0
  89. package/src/sass/components/_segmented-buttons.scss +188 -0
  90. package/src/sass/components/_side-sheet.scss +2 -2
  91. package/src/sass/components/_snackbar.scss +20 -15
  92. package/src/sass/components/_split-button.scss +196 -0
  93. package/src/sass/components/_tabs.scss +7 -8
  94. package/src/sass/components/_timepicker.scss +67 -58
  95. package/src/sass/components/_toolbar.scss +206 -80
  96. package/src/sass/components/_transitions.scss +8 -1
  97. package/src/sass/components/forms/_checkboxes.scss +49 -12
  98. package/src/sass/components/forms/_fieldset.scss +4 -4
  99. package/src/sass/components/forms/_file-input.scss +8 -1
  100. package/src/sass/components/forms/_index.scss +1 -1
  101. package/src/sass/components/forms/_input-fields.scss +50 -44
  102. package/src/sass/components/forms/_radio-buttons.scss +42 -10
  103. package/src/sass/components/forms/_select.scss +38 -1
  104. package/src/sass/components/forms/{_range.scss → _slider.scss} +8 -9
  105. package/src/sass/components/forms/_switches.scss +6 -7
  106. package/src/sass/expressive.scss +5 -0
  107. package/src/sass/tokens/_index.scss +4 -1
  108. package/src/sass/tokens/_reference.scss +70 -61
  109. package/src/sass/tokens/_state.scss +24 -0
  110. package/src/sass/tokens/_theme.scss +6 -3
  111. package/src/sass/tokens/_vibrant.scss +76 -0
  112. package/src/sass/utilities/_colors.scss +14 -1
  113. package/src/sass/utilities/_helpers.scss +5 -5
  114. package/src/sass/utilities/_visibility.scss +48 -26
  115. package/dist/types/behaviors/waves.d.ts +0 -15
  116. package/dist/types/components/parallax.d.ts +0 -16
  117. package/dist/types/components/range.d.ts +0 -43
  118. package/dist/types/core/bounding.d.ts +0 -6
  119. package/dist/types/core/edges.d.ts +0 -6
  120. package/src/sass/components/_parallax.scss +0 -104
  121. package/src/sass/components/_pulse.scss +0 -37
  122. package/src/sass/components/_slider.scss +0 -129
@@ -1,6 +1,6 @@
1
1
  @use "../abstracts" as *;
2
2
 
3
- .timepicker-container {
3
+ :is(.timepicker-container, .time-picker-container) {
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  max-width: 325px;
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  /* Clock Digital Display */
16
- .timepicker-digital-display {
16
+ :is(.timepicker-digital-display, .time-picker-digital-display) {
17
17
  width: auto;
18
18
  flex: 1 auto;
19
19
  // background-color: var(--md-sys-color-surface);
@@ -21,7 +21,7 @@
21
21
  font-weight: 300;
22
22
  }
23
23
 
24
- .timepicker-text-container {
24
+ :is(.timepicker-text-container, .time-picker-text-container) {
25
25
  display: flex;
26
26
  font-size: 4rem;
27
27
  text-align: left;
@@ -40,29 +40,29 @@
40
40
  }
41
41
  }
42
42
 
43
- .timepicker-display-column {
43
+ :is(.timepicker-display-column, .time-picker-display-column) {
44
44
  display: inline-flex;
45
45
  }
46
46
 
47
- .timepicker-display-digital-clock {
47
+ :is(.timepicker-display-digital-clock, .time-picker-display-digital-clock) {
48
48
  flex-grow: 1;
49
49
  display: inline-flex;
50
50
  }
51
51
 
52
- .timepicker-input-hours-wrapper,
53
- .timepicker-input-minutes-wrapper {
52
+ :is(.timepicker-input-hours-wrapper, .time-picker-input-hours-wrapper),
53
+ :is(.timepicker-input-minutes-wrapper, .time-picker-input-minutes-wrapper) {
54
54
  width: 6.9rem;
55
55
  height: 5.75rem;
56
56
  }
57
57
 
58
- .timepicker-input-hours,
59
- .timepicker-input-minutes,
60
- .timepicker-span-am-pm div {
58
+ :is(.timepicker-input-hours, .time-picker-input-hours),
59
+ :is(.timepicker-input-minutes, .time-picker-input-minutes),
60
+ :is(.timepicker-span-am-pm, .time-picker-span-am-pm) div {
61
61
  cursor: pointer;
62
62
  }
63
63
 
64
- input[type=text].timepicker-input-hours,
65
- input[type=text].timepicker-input-minutes {
64
+ input[type=text]:is(.timepicker-input-hours, .time-picker-input-hours),
65
+ input[type=text]:is(.timepicker-input-minutes, .time-picker-input-minutes) {
66
66
  height: 100%;
67
67
  padding: 1.33rem .8rem;
68
68
  border: 0;
@@ -75,7 +75,7 @@ input[type=text].timepicker-input-minutes {
75
75
  }
76
76
  }
77
77
 
78
- .timepicker-input-divider-wrapper {
78
+ :is(.timepicker-input-divider-wrapper, .time-picker-input-divider-wrapper) {
79
79
  width: 1.6rem;
80
80
  text-align: center;
81
81
  }
@@ -84,7 +84,7 @@ input[type=text].timepicker-input-minutes {
84
84
  color: var(--md-sys-color-on-background);
85
85
  }*/
86
86
 
87
- .timepicker-display-am-pm {
87
+ :is(.timepicker-display-am-pm, .time-picker-display-am-pm) {
88
88
  font-size: 1.3rem;
89
89
  /*position: absolute;
90
90
  top: 1rem;
@@ -92,17 +92,20 @@ input[type=text].timepicker-input-minutes {
92
92
  font-weight: 400;
93
93
  }
94
94
 
95
- .timepicker-span-am-pm {
95
+ :is(.timepicker-span-am-pm, .time-picker-span-am-pm) {
96
96
  height: 5.75rem;
97
97
  max-width: 3.5rem;
98
98
  }
99
99
 
100
- .timepicker-container .am-btn,
101
- .timepicker-container .pm-btn {
100
+ :is(.timepicker-container, .time-picker-container) .am-btn,
101
+ :is(.timepicker-container, .time-picker-container) .pm-btn {
102
102
  width: 3.6rem;
103
103
  height: 50%;
104
- padding-left: calc(var(--btn-padding) / 1.8);
105
- padding-right: calc(var(--btn-padding) / 1.8);
104
+ // --btn-padding is a Materialize variable that no longer exists, so this
105
+ // was invalid at computed-value time and the padding resolved to 0 - not
106
+ // to the base button's inline space, which the invalid declaration still
107
+ // beat in the cascade. Written as the 0 it has always rendered as.
108
+ padding-inline: 0;
106
109
  line-height: 2rem;
107
110
  vertical-align: middle;
108
111
  text-align: center;
@@ -110,25 +113,25 @@ input[type=text].timepicker-input-minutes {
110
113
  border: 1px solid var(--md-sys-color-outline);
111
114
  }
112
115
 
113
- .timepicker-container .am-btn {
116
+ :is(.timepicker-container, .time-picker-container) .am-btn {
114
117
  border-bottom-right-radius: 0;
115
118
  border-bottom-left-radius: 0;
116
119
  }
117
120
 
118
- .timepicker-container .pm-btn {
121
+ :is(.timepicker-container, .time-picker-container) .pm-btn {
119
122
  border-top: 0;
120
123
  border-top-left-radius: 0;
121
124
  border-top-right-radius: 0;
122
125
  }
123
126
 
124
127
  /* Analog Clock Display */
125
- .timepicker-analog-display {
128
+ :is(.timepicker-analog-display, .time-picker-analog-display) {
126
129
  flex: 2.5 auto;
127
130
  padding: .67rem;
128
131
  // background-color: var(--md-sys-color-surface);
129
132
  }
130
133
 
131
- .timepicker-plate {
134
+ :is(.timepicker-plate, .time-picker-plate) {
132
135
  background-color: var(--md-sys-color-surface-variant);
133
136
  border-radius: 50%;
134
137
  width: 260px;
@@ -137,10 +140,14 @@ input[type=text].timepicker-input-minutes {
137
140
  position: relative;
138
141
  margin: 0 1.6rem 1.6rem 1.6rem;
139
142
  user-select: none;
143
+ // Dragging the clock hand is a two-dimensional gesture, so no axis is left
144
+ // to the page. See the note on the snackbar: under Pointer Events this is
145
+ // what reserves the gesture, not `preventDefault()`.
146
+ touch-action: none;
140
147
  }
141
148
 
142
- .timepicker-canvas,
143
- .timepicker-dial {
149
+ :is(.timepicker-canvas, .time-picker-canvas),
150
+ :is(.timepicker-dial, .time-picker-dial) {
144
151
  position: absolute;
145
152
  left: 0;
146
153
  right: 0;
@@ -148,11 +155,11 @@ input[type=text].timepicker-input-minutes {
148
155
  bottom: 0;
149
156
  }
150
157
 
151
- .timepicker-minutes {
158
+ :is(.timepicker-minutes, .time-picker-minutes) {
152
159
  visibility: hidden;
153
160
  }
154
161
 
155
- .timepicker-tick {
162
+ :is(.timepicker-tick, .time-picker-tick) {
156
163
  border-radius: 50%;
157
164
  color: var(--md-sys-color-on-background);
158
165
  line-height: 40px;
@@ -164,28 +171,28 @@ input[type=text].timepicker-input-minutes {
164
171
  font-size: 15px;
165
172
  }
166
173
 
167
- .timepicker-tick.active,
168
- .timepicker-tick:hover {
174
+ :is(.timepicker-tick, .time-picker-tick).active,
175
+ :is(.timepicker-tick, .time-picker-tick):hover {
169
176
  background-color: color-mix(in oklab, var(--md-sys-color-primary) 6%, transparent);
170
177
  }
171
178
 
172
- .timepicker-dial {
179
+ :is(.timepicker-dial, .time-picker-dial) {
173
180
  transition: transform 350ms, opacity 350ms;
174
181
  }
175
182
 
176
- .timepicker-dial-out {
183
+ :is(.timepicker-dial-out, .time-picker-dial-out) {
177
184
  opacity: 0;
178
185
 
179
- &.timepicker-hours {
186
+ &:is(.timepicker-hours, .time-picker-hours) {
180
187
  transform: scale(1.1, 1.1);
181
188
  }
182
189
 
183
- &.timepicker-minutes {
190
+ &:is(.timepicker-minutes, .time-picker-minutes) {
184
191
  transform: scale(.8, .8);
185
192
  }
186
193
  }
187
194
 
188
- .timepicker-canvas {
195
+ :is(.timepicker-canvas, .time-picker-canvas) {
189
196
  transition: opacity 175ms;
190
197
 
191
198
  line {
@@ -195,100 +202,102 @@ input[type=text].timepicker-input-minutes {
195
202
  }
196
203
  }
197
204
 
198
- .timepicker-canvas-out {
205
+ :is(.timepicker-canvas-out, .time-picker-canvas-out) {
199
206
  opacity: 0.25;
200
207
  }
201
208
 
202
- .timepicker-canvas-bearing {
209
+ :is(.timepicker-canvas-bearing, .time-picker-canvas-bearing) {
203
210
  stroke: none;
204
211
  fill: var(--md-sys-color-primary);
205
212
  }
206
213
 
207
- .timepicker-canvas-bg {
214
+ :is(.timepicker-canvas-bg, .time-picker-canvas-bg) {
208
215
  stroke: none;
209
216
  fill: var(--md-sys-color-primary);
210
217
  }
211
218
 
212
219
 
213
220
  /* Footer */
214
- .timepicker-footer {
221
+ :is(.timepicker-footer, .time-picker-footer) {
215
222
  margin: 0 auto;
216
223
  padding: 5px 1rem;
217
224
  display: flex;
218
225
  justify-content: space-between;
219
226
  }
220
227
 
221
- .timepicker-clear {
228
+ :is(.timepicker-clear, .time-picker-clear) {
222
229
  color: var(--md-sys-color-error);
223
230
  }
224
231
 
225
- .timepicker-close {
232
+ :is(.timepicker-close, .time-picker-close) {
226
233
  color: var(--md-sys-color-primary);
227
234
  }
228
235
 
229
- .timepicker-clear,
230
- .timepicker-close {
236
+ :is(.timepicker-clear, .time-picker-clear),
237
+ :is(.timepicker-close, .time-picker-close) {
231
238
  padding: 0 20px;
232
239
  }
233
240
 
234
241
  /* Media Queries */
235
- @include bp-up("large") {
236
- .timepicker-container {
242
+ @include bp-up("expanded") {
243
+ :is(.timepicker-container, .time-picker-container) {
237
244
  width: auto;
238
245
  max-width: 620px;
239
246
  }
240
247
 
241
- .timepicker-container {
248
+ :is(.timepicker-container, .time-picker-container) {
242
249
  flex-direction: row;
243
250
  }
244
251
 
245
- .timepicker-digital-display {
252
+ :is(.timepicker-digital-display, .time-picker-digital-display) {
246
253
  padding: .67rem;
247
254
  }
248
255
 
249
- .timepicker-text-container {
256
+ :is(.timepicker-text-container, .time-picker-text-container) {
250
257
  /*top: 31%;*/
251
258
  flex-direction: column;
252
259
  margin-top: 4.8rem;
253
260
  text-align: center;
254
261
  }
255
262
 
256
- .timepicker-display-column {
263
+ :is(.timepicker-display-column, .time-picker-display-column) {
257
264
  padding: 0 3%;
258
265
  }
259
266
 
260
- .timepicker-display-am-pm {
267
+ :is(.timepicker-display-am-pm, .time-picker-display-am-pm) {
261
268
  margin-top: 1.1rem;
262
269
  }
263
270
 
264
- .timepicker-span-am-pm {
271
+ :is(.timepicker-span-am-pm, .time-picker-span-am-pm) {
265
272
  display: flex;
266
273
  flex-grow: 1;
267
274
  max-width: unset;
268
275
  }
269
276
 
270
- .timepicker-container .am-btn,
271
- .timepicker-container .pm-btn {
277
+ :is(.timepicker-container, .time-picker-container) .am-btn,
278
+ :is(.timepicker-container, .time-picker-container) .pm-btn {
272
279
  flex-grow: 1;
273
280
  /*width: auto;*/
274
- padding-left: calc(var(--btn-padding) / .565);
275
- padding-right: calc(var(--btn-padding) / .565);
276
- border-radius: var(--btn-border-radius);
281
+ // Same two dead Materialize variables as above; both declarations
282
+ // rendered as 0. The corner rules that follow square off the inner
283
+ // edges, so the outer ones are the only radius in play.
284
+ padding-inline: 0;
285
+ border-radius: 0;
277
286
  border: 1px solid var(--md-sys-color-outline);
278
287
  }
279
288
 
280
- .timepicker-container .am-btn {
289
+ :is(.timepicker-container, .time-picker-container) .am-btn {
281
290
  border-top-right-radius: 0;
282
291
  border-bottom-right-radius: 0;
283
292
  }
284
293
 
285
- .timepicker-container .pm-btn {
294
+ :is(.timepicker-container, .time-picker-container) .pm-btn {
286
295
  border-left: 0;
287
296
  border-bottom-left-radius: 0;
288
297
  border-top-left-radius: 0;
289
298
  }
290
299
 
291
- .timepicker-plate {
300
+ :is(.timepicker-plate, .time-picker-plate) {
292
301
  margin-top: 1.6rem;
293
302
  }
294
303
  }