@operato/data-grist 2.0.0-alpha.90 → 2.0.0-alpha.93

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 (49) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/data-grid/data-grid-body-style.js +1 -0
  3. package/dist/src/data-grid/data-grid-body-style.js.map +1 -1
  4. package/dist/src/filters/filter-styles.js +10 -1
  5. package/dist/src/filters/filter-styles.js.map +1 -1
  6. package/dist/stories/accumulator.stories.js +10 -120
  7. package/dist/stories/accumulator.stories.js.map +1 -1
  8. package/dist/stories/barcode-input-filter.stories.js +15 -81
  9. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  10. package/dist/stories/default-filters.stories.js +3 -69
  11. package/dist/stories/default-filters.stories.js.map +1 -1
  12. package/dist/stories/dynamic-editable.stories.js +3 -97
  13. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  14. package/dist/stories/empty-sorters.stories.js +3 -69
  15. package/dist/stories/empty-sorters.stories.js.map +1 -1
  16. package/dist/stories/explicit-fetch.stories.js +3 -69
  17. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  18. package/dist/stories/fixed-column.stories.js +3 -117
  19. package/dist/stories/fixed-column.stories.js.map +1 -1
  20. package/dist/stories/grid-setting.stories.js +3 -135
  21. package/dist/stories/grid-setting.stories.js.map +1 -1
  22. package/dist/stories/grist-modes.stories.js +3 -122
  23. package/dist/stories/grist-modes.stories.js.map +1 -1
  24. package/dist/stories/group-header.stories.js +3 -117
  25. package/dist/stories/group-header.stories.js.map +1 -1
  26. package/dist/stories/textarea.stories.js +3 -118
  27. package/dist/stories/textarea.stories.js.map +1 -1
  28. package/dist/stories/tree-column-with-checkbox.stories.js +3 -122
  29. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  30. package/dist/stories/tree-column.stories.js +3 -122
  31. package/dist/stories/tree-column.stories.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +5 -5
  34. package/src/data-grid/data-grid-body-style.ts +1 -0
  35. package/src/filters/filter-styles.ts +10 -1
  36. package/stories/accumulator.stories.ts +11 -120
  37. package/stories/barcode-input-filter.stories.ts +22 -87
  38. package/stories/default-filters.stories.ts +4 -69
  39. package/stories/dynamic-editable.stories.ts +3 -97
  40. package/stories/empty-sorters.stories.ts +3 -69
  41. package/stories/explicit-fetch.stories.ts +3 -69
  42. package/stories/fixed-column.stories.ts +4 -117
  43. package/stories/grid-setting.stories.ts +4 -135
  44. package/stories/grist-modes.stories.ts +4 -122
  45. package/stories/group-header.stories.ts +4 -117
  46. package/stories/textarea.stories.ts +4 -118
  47. package/stories/tree-column-with-checkbox.stories.ts +4 -122
  48. package/stories/tree-column.stories.ts +4 -122
  49. package/themes/grist-theme.css +2 -0
@@ -16,6 +16,8 @@ import {
16
16
  ValidationCallback
17
17
  } from '../src/types.js'
18
18
 
19
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
20
+
19
21
  const fetchHandler: FetchHandler = async ({ page, limit }) => {
20
22
  var total = 25
21
23
  var start = (page! - 1) * limit!
@@ -220,23 +222,8 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
220
222
  <link href="/themes/grist-theme.css" rel="stylesheet" />
221
223
 
222
224
  <style>
223
- ox-filters-form {
224
- --input-gap-vertical: 8px;
225
- --input-gap-horizontal: 16px;
226
-
227
- --ox-filters-input-placeholder-color: var(--primary-color);
228
-
229
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
230
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
231
- --ox-filters-input-font: normal 14px var(--theme-font);
232
- --ox-filters-input-color: var(--primary-text-color);
233
- --ox-filters-input-focus-color: var(--primary-color);
234
- --ox-filters-label-font: normal 14px var(--theme-font);
235
- --ox-filters-label-color: var(--primary-text-color);
236
-
237
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
238
- --ox-filters-input-padding: 6px 2px;
239
- }
225
+ ${CommonGristStyles.cssText}
226
+ ${CommonHeaderStyles.cssText}
240
227
  </style>
241
228
 
242
229
  <style>
@@ -244,103 +231,8 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
244
231
  height: 600px;
245
232
  }
246
233
 
247
- [slot='headroom'] {
248
- display: flex;
249
- flex-direction: row;
250
- align-items: center;
251
- padding: var(--padding-default) var(--padding-wide);
252
- background-color: unset;
253
- box-shadow: var(--box-shadow);
254
-
255
- --md-icon-size: 24px;
256
- }
257
- #sorters md-icon,
258
- #modes md-icon {
259
- --md-icon-size: 18px;
260
- }
261
- #sorters {
262
- margin-left: auto;
263
- margin-right: var(--margin-default);
264
- padding-left: var(--padding-narrow);
265
- border-bottom: var(--border-dark-color);
266
- position: relative;
267
- color: var(--secondary-color);
268
- font-size: var(--fontsize-default);
269
- user-select: none;
270
- }
271
-
272
- #sorters > * {
273
- padding: var(--padding-narrow);
274
- vertical-align: middle;
275
- }
276
-
277
- #modes > * {
278
- padding: var(--padding-narrow);
279
- opacity: 0.5;
280
- color: var(--primary-text-color);
281
- cursor: pointer;
282
- }
283
-
284
- #modes > md-icon[active] {
285
- border-radius: 9px;
286
- background-color: rgba(var(--primary-color-rgb), 0.05);
287
- opacity: 1;
288
- color: var(--secondary-text-color);
289
- cursor: default;
290
- }
291
-
292
- #modes > md-icon:hover {
293
- opacity: 1;
294
- color: var(--secondary-text-color);
295
- }
296
-
297
- #add {
298
- margin-left: auto;
299
- text-align: right;
300
- }
301
-
302
- #add button {
303
- display: flex;
304
- align-items: center;
305
- justify-content: center;
306
-
307
- background-color: var(--primary-color);
308
- border: 0;
309
- border-radius: 50%;
310
- padding: 5px;
311
- width: 32px;
312
- height: 32px;
313
- cursor: pointer;
314
- }
315
-
316
- #add button:hover {
317
- background-color: var(--focus-background-color);
318
- box-shadow: var(--box-shadow);
319
- }
320
-
321
- #add button md-icon {
322
- font-size: 1.5em;
323
- color: var(--theme-white-color);
324
- }
325
-
326
- #filters {
327
- display: flex;
328
- justify-content: center;
329
- align-items: center;
330
- }
331
-
332
- #filters * {
333
- margin-right: var(--margin-default);
334
- }
335
-
336
- @media only screen and (max-width: 460px) {
337
- #filters {
338
- flex-direction: column;
339
- }
340
-
341
- #modes {
342
- display: none;
343
- }
234
+ ox-filters-form {
235
+ flex: 1;
344
236
  }
345
237
  </style>
346
238
 
@@ -351,14 +243,13 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
351
243
  ?url-params-sensitive=${urlParamsSensitive}
352
244
  @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
353
245
  >
354
- <div slot="headroom">
355
- <div id="filters">
246
+ <div slot="headroom" class="header">
247
+ <div class="filters">
356
248
  <ox-filters-form autofocus></ox-filters-form>
249
+ <ox-record-creator id="add" light-popup>
250
+ <button><md-icon>add</md-icon></button>
251
+ </ox-record-creator>
357
252
  </div>
358
-
359
- <ox-record-creator id="add" light-popup>
360
- <button><md-icon>add</md-icon></button>
361
- </ox-record-creator>
362
253
  </div>
363
254
  </ox-grist>`
364
255
 
@@ -8,6 +8,8 @@ import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
10
 
11
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
12
+
11
13
  const fetchHandler: FetchHandler = async ({ filters, page, limit }) => {
12
14
  var total = 120993
13
15
  var start = (page! - 1) * limit!
@@ -153,75 +155,8 @@ const Template: Story<ArgTypes> = ({ englishOnly, selectAfterChange, headerFilte
153
155
  <link href="/themes/grist-theme.css" rel="stylesheet" />
154
156
 
155
157
  <style>
156
- ox-filters-form {
157
- --input-gap-vertical: 8px;
158
- --input-gap-horizontal: 16px;
159
-
160
- --ox-filters-input-placeholder-color: var(--primary-color);
161
-
162
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
163
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
164
- --ox-filters-input-font: normal 14px var(--theme-font);
165
- --ox-filters-input-color: var(--primary-text-color);
166
- --ox-filters-input-focus-color: var(--primary-color);
167
- --ox-filters-label-font: normal 14px var(--theme-font);
168
- --ox-filters-label-color: var(--primary-text-color);
169
-
170
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
171
- --ox-filters-input-padding: 6px 2px;
172
- }
173
- </style>
174
-
175
- <style>
176
- [slot='headroom'] {
177
- display: flex;
178
- flex-direction: row;
179
- align-items: center;
180
- padding: var(--padding-default) var(--padding-wide);
181
- background-color: var(--theme-white-color);
182
- box-shadow: var(--box-shadow);
183
-
184
- --md-icon-size: 24px;
185
- }
186
- #sorters md-icon,
187
- #modes md-icon {
188
- --md-icon-size: 18px;
189
- }
190
- #sorters {
191
- margin-left: auto;
192
- margin-right: var(--margin-default);
193
- padding-left: var(--padding-narrow);
194
- border-bottom: var(--border-dark-color);
195
- position: relative;
196
- color: var(--secondary-color);
197
- font-size: var(--fontsize-default);
198
- user-select: none;
199
- }
200
-
201
- #sorters > * {
202
- padding: var(--padding-narrow);
203
- vertical-align: middle;
204
- }
205
-
206
- #filters {
207
- display: flex;
208
- justify-content: center;
209
- align-items: center;
210
- }
211
-
212
- #filters * {
213
- margin-right: var(--margin-default);
214
- }
215
-
216
- @media only screen and (max-width: 460px) {
217
- #filters {
218
- flex-direction: column;
219
- }
220
-
221
- #modes {
222
- display: none;
223
- }
224
- }
158
+ ${CommonGristStyles.cssText}
159
+ ${CommonHeaderStyles.cssText}
225
160
  </style>
226
161
 
227
162
  <ox-grist
@@ -230,26 +165,26 @@ const Template: Story<ArgTypes> = ({ englishOnly, selectAfterChange, headerFilte
230
165
  .fetchHandler=${fetchHandler}
231
166
  @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
232
167
  >
233
- <div slot="headroom">
234
- <div id="filters">
168
+ <div slot="headroom" class="header">
169
+ <div class="filters">
235
170
  <ox-filters-form></ox-filters-form>
236
- </div>
237
171
 
238
- <div id="sorters">
239
- Sort
240
- <md-icon
241
- @click=${(e: Event) => {
242
- const target = e.currentTarget as HTMLElement
243
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
244
- right: 0,
245
- top: target.offsetTop + target.offsetHeight
246
- })
247
- }}
248
- >expand_more</md-icon
249
- >
250
- <ox-popup id="sorter-control">
251
- <ox-sorters-control> </ox-sorters-control>
252
- </ox-popup>
172
+ <div id="sorters">
173
+ Sort
174
+ <md-icon
175
+ @click=${(e: Event) => {
176
+ const target = e.currentTarget as HTMLElement
177
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
178
+ right: 0,
179
+ top: target.offsetTop + target.offsetHeight
180
+ })
181
+ }}
182
+ >expand_more</md-icon
183
+ >
184
+ <ox-popup id="sorter-control">
185
+ <ox-sorters-control> </ox-sorters-control>
186
+ </ox-popup>
187
+ </div>
253
188
  </div>
254
189
  </div>
255
190
  </ox-grist>`
@@ -8,6 +8,8 @@ import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
10
 
11
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
12
+
11
13
  const fetchHandler: FetchHandler = async ({ sorters = [], filters, page, limit }) => {
12
14
  var total = 120993
13
15
  var start = (page! - 1) * limit!
@@ -136,75 +138,8 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
136
138
  <link href="/themes/grist-theme.css" rel="stylesheet" />
137
139
 
138
140
  <style>
139
- ox-filters-form {
140
- --input-gap-vertical: 8px;
141
- --input-gap-horizontal: 16px;
142
-
143
- --ox-filters-input-placeholder-color: var(--primary-color);
144
-
145
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
146
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
147
- --ox-filters-input-font: normal 14px var(--theme-font);
148
- --ox-filters-input-color: var(--primary-text-color);
149
- --ox-filters-input-focus-color: var(--primary-color);
150
- --ox-filters-label-font: normal 14px var(--theme-font);
151
- --ox-filters-label-color: var(--primary-text-color);
152
-
153
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
154
- --ox-filters-input-padding: 6px 2px;
155
- }
156
- </style>
157
-
158
- <style>
159
- [slot='headroom'] {
160
- display: flex;
161
- flex-direction: row;
162
- align-items: center;
163
- padding: var(--padding-default) var(--padding-wide);
164
- background-color: unset;
165
- box-shadow: var(--box-shadow);
166
-
167
- --md-icon-size: 24px;
168
- }
169
- #sorters md-icon,
170
- #modes md-icon {
171
- --md-icon-size: 18px;
172
- }
173
- #sorters {
174
- margin-left: auto;
175
- margin-right: var(--margin-default);
176
- padding-left: var(--padding-narrow);
177
- border-bottom: var(--border-dark-color);
178
- position: relative;
179
- color: var(--secondary-color);
180
- font-size: var(--fontsize-default);
181
- user-select: none;
182
- }
183
-
184
- #sorters > * {
185
- padding: var(--padding-narrow);
186
- vertical-align: middle;
187
- }
188
-
189
- #filters {
190
- display: flex;
191
- justify-content: center;
192
- align-items: center;
193
- }
194
-
195
- #filters * {
196
- margin-right: var(--margin-default);
197
- }
198
-
199
- @media only screen and (max-width: 460px) {
200
- #filters {
201
- flex-direction: column;
202
- }
203
-
204
- #modes {
205
- display: none;
206
- }
207
- }
141
+ ${CommonGristStyles.cssText}
142
+ ${CommonHeaderStyles.cssText}
208
143
  </style>
209
144
 
210
145
  <ox-grist
@@ -7,6 +7,7 @@ import '@material/web/icon/icon.js'
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
10
11
 
11
12
  const fetchHandler: FetchHandler = async ({ sorters = [], filters, page, limit }) => {
12
13
  var total = 5
@@ -212,103 +213,8 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
212
213
  <link href="/themes/grist-theme.css" rel="stylesheet" />
213
214
 
214
215
  <style>
215
- ox-filters-form {
216
- --input-gap-vertical: 8px;
217
- --input-gap-horizontal: 16px;
218
-
219
- --ox-filters-input-placeholder-color: var(--primary-color);
220
-
221
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
222
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
223
- --ox-filters-input-font: normal 14px var(--theme-font);
224
- --ox-filters-input-color: var(--primary-text-color);
225
- --ox-filters-input-focus-color: var(--primary-color);
226
- --ox-filters-label-font: normal 14px var(--theme-font);
227
- --ox-filters-label-color: var(--primary-text-color);
228
-
229
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
230
- --ox-filters-input-padding: 6px 2px;
231
- }
232
- </style>
233
-
234
- <style>
235
- [slot='headroom'] {
236
- display: flex;
237
- flex-direction: row;
238
- align-items: center;
239
- padding: var(--padding-default) var(--padding-wide);
240
- background-color: var(--theme-white-color);
241
- box-shadow: var(--box-shadow);
242
-
243
- --md-icon-size: 24px;
244
- }
245
- #sorters md-icon,
246
- #modes md-icon {
247
- --md-icon-size: 18px;
248
- }
249
- #sorters {
250
- margin-left: auto;
251
- margin-right: var(--margin-default);
252
- padding-left: var(--padding-narrow);
253
- border-bottom: var(--border-dark-color);
254
- position: relative;
255
- color: var(--secondary-color);
256
- font-size: var(--fontsize-default);
257
- user-select: none;
258
- }
259
-
260
- #sorters > * {
261
- padding: var(--padding-narrow);
262
- vertical-align: middle;
263
- }
264
-
265
- #filters {
266
- display: flex;
267
- justify-content: center;
268
- align-items: center;
269
- }
270
-
271
- #filters * {
272
- margin-right: var(--margin-default);
273
- }
274
-
275
- #add {
276
- text-align: right;
277
- }
278
-
279
- #add button {
280
- display: flex;
281
- align-items: center;
282
- justify-content: center;
283
-
284
- background-color: var(--primary-color);
285
- border: 0;
286
- border-radius: 50%;
287
- padding: 5px;
288
- width: 32px;
289
- height: 32px;
290
- cursor: pointer;
291
- }
292
-
293
- #add button:hover {
294
- background-color: var(--focus-background-color);
295
- box-shadow: var(--box-shadow);
296
- }
297
-
298
- #add button md-icon {
299
- font-size: 1.5em;
300
- color: var(--theme-white-color);
301
- }
302
-
303
- @media only screen and (max-width: 460px) {
304
- #filters {
305
- flex-direction: column;
306
- }
307
-
308
- #modes {
309
- display: none;
310
- }
311
- }
216
+ ${CommonGristStyles.cssText}
217
+ ${CommonHeaderStyles.cssText}
312
218
  </style>
313
219
 
314
220
  <ox-grist
@@ -7,6 +7,7 @@ import '@material/web/icon/icon.js'
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
10
11
 
11
12
  const fetchHandler: FetchHandler = async ({ filters, page, limit }) => {
12
13
  var total = 120993
@@ -121,75 +122,8 @@ const Template: Story<ArgTypes> = ({}: ArgTypes) =>
121
122
  <link href="/themes/grist-theme.css" rel="stylesheet" />
122
123
 
123
124
  <style>
124
- ox-filters-form {
125
- --input-gap-vertical: 8px;
126
- --input-gap-horizontal: 16px;
127
-
128
- --ox-filters-input-placeholder-color: var(--primary-color);
129
-
130
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
131
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
132
- --ox-filters-input-font: normal 14px var(--theme-font);
133
- --ox-filters-input-color: var(--primary-text-color);
134
- --ox-filters-input-focus-color: var(--primary-color);
135
- --ox-filters-label-font: normal 14px var(--theme-font);
136
- --ox-filters-label-color: var(--primary-text-color);
137
-
138
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
139
- --ox-filters-input-padding: 6px 2px;
140
- }
141
- </style>
142
-
143
- <style>
144
- [slot='headroom'] {
145
- display: flex;
146
- flex-direction: row;
147
- align-items: center;
148
- padding: var(--padding-default) var(--padding-wide);
149
- background-color: var(--theme-white-color);
150
- box-shadow: var(--box-shadow);
151
-
152
- --md-icon-size: 24px;
153
- }
154
- #sorters md-icon,
155
- #modes md-icon {
156
- --md-icon-size: 18px;
157
- }
158
- #sorters {
159
- margin-left: auto;
160
- margin-right: var(--margin-default);
161
- padding-left: var(--padding-narrow);
162
- border-bottom: var(--border-dark-color);
163
- position: relative;
164
- color: var(--secondary-color);
165
- font-size: var(--fontsize-default);
166
- user-select: none;
167
- }
168
-
169
- #sorters > * {
170
- padding: var(--padding-narrow);
171
- vertical-align: middle;
172
- }
173
-
174
- #filters {
175
- display: flex;
176
- justify-content: center;
177
- align-items: center;
178
- }
179
-
180
- #filters * {
181
- margin-right: var(--margin-default);
182
- }
183
-
184
- @media only screen and (max-width: 460px) {
185
- #filters {
186
- flex-direction: column;
187
- }
188
-
189
- #modes {
190
- display: none;
191
- }
192
- }
125
+ ${CommonGristStyles.cssText}
126
+ ${CommonHeaderStyles.cssText}
193
127
  </style>
194
128
 
195
129
  <ox-grist
@@ -7,6 +7,7 @@ import '@material/web/icon/icon.js'
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
9
9
  import { FetchHandler } from '../src/types.js'
10
+ import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
10
11
 
11
12
  const fetchHandler: FetchHandler = async ({ page, limit }) => {
12
13
  var total = 120993
@@ -126,75 +127,8 @@ const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) =>
126
127
  <link href="/themes/grist-theme.css" rel="stylesheet" />
127
128
 
128
129
  <style>
129
- ox-filters-form {
130
- --input-gap-vertical: 8px;
131
- --input-gap-horizontal: 16px;
132
-
133
- --ox-filters-input-placeholder-color: var(--primary-color);
134
-
135
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
136
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
137
- --ox-filters-input-font: normal 14px var(--theme-font);
138
- --ox-filters-input-color: var(--primary-text-color);
139
- --ox-filters-input-focus-color: var(--primary-color);
140
- --ox-filters-label-font: normal 14px var(--theme-font);
141
- --ox-filters-label-color: var(--primary-text-color);
142
-
143
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
144
- --ox-filters-input-padding: 6px 2px;
145
- }
146
- </style>
147
-
148
- <style>
149
- [slot='headroom'] {
150
- display: flex;
151
- flex-direction: row;
152
- align-items: center;
153
- padding: var(--padding-default) var(--padding-wide);
154
- background-color: var(--theme-white-color);
155
- box-shadow: var(--box-shadow);
156
-
157
- --md-icon-size: 24px;
158
- }
159
- #sorters md-icon,
160
- #modes md-icon {
161
- --md-icon-size: 18px;
162
- }
163
- #sorters {
164
- margin-left: auto;
165
- margin-right: var(--margin-default);
166
- padding-left: var(--padding-narrow);
167
- border-bottom: var(--border-dark-color);
168
- position: relative;
169
- color: var(--secondary-color);
170
- font-size: var(--fontsize-default);
171
- user-select: none;
172
- }
173
-
174
- #sorters > * {
175
- padding: var(--padding-narrow);
176
- vertical-align: middle;
177
- }
178
-
179
- #filters {
180
- display: flex;
181
- justify-content: center;
182
- align-items: center;
183
- }
184
-
185
- #filters * {
186
- margin-right: var(--margin-default);
187
- }
188
-
189
- @media only screen and (max-width: 460px) {
190
- #filters {
191
- flex-direction: column;
192
- }
193
-
194
- #modes {
195
- display: none;
196
- }
197
- }
130
+ ${CommonGristStyles.cssText}
131
+ ${CommonHeaderStyles.cssText}
198
132
  </style>
199
133
 
200
134
  <ox-grist