@operato/data-grist 2.0.0-alpha.64 → 2.0.0-alpha.68

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 (118) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/demo/data-grist-test.html +25 -14
  3. package/demo/index.html +25 -14
  4. package/demo/report-test.html +13 -2
  5. package/dist/src/data-card/data-card-gutter-menu.d.ts +1 -1
  6. package/dist/src/data-card/data-card-gutter-menu.js +5 -5
  7. package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
  8. package/dist/src/data-card/data-card.d.ts +1 -1
  9. package/dist/src/data-card/data-card.js +3 -3
  10. package/dist/src/data-card/data-card.js.map +1 -1
  11. package/dist/src/data-card/record-card.d.ts +1 -1
  12. package/dist/src/data-card/record-card.js +26 -26
  13. package/dist/src/data-card/record-card.js.map +1 -1
  14. package/dist/src/data-grid/data-grid-accum-field.js +5 -1
  15. package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
  16. package/dist/src/data-grid/data-grid-footer.d.ts +1 -1
  17. package/dist/src/data-grid/data-grid-footer.js +17 -9
  18. package/dist/src/data-grid/data-grid-footer.js.map +1 -1
  19. package/dist/src/data-grid/data-grid-header.d.ts +1 -1
  20. package/dist/src/data-grid/data-grid-header.js +13 -15
  21. package/dist/src/data-grid/data-grid-header.js.map +1 -1
  22. package/dist/src/data-grist.js +21 -21
  23. package/dist/src/data-grist.js.map +1 -1
  24. package/dist/src/data-list/data-list.d.ts +1 -1
  25. package/dist/src/data-list/data-list.js +3 -3
  26. package/dist/src/data-list/data-list.js.map +1 -1
  27. package/dist/src/data-list/record-partial.d.ts +1 -1
  28. package/dist/src/data-list/record-partial.js +19 -19
  29. package/dist/src/data-list/record-partial.js.map +1 -1
  30. package/dist/src/empty-note.d.ts +1 -1
  31. package/dist/src/empty-note.js +3 -3
  32. package/dist/src/empty-note.js.map +1 -1
  33. package/dist/src/gutters/gutter-button.d.ts +1 -1
  34. package/dist/src/gutters/gutter-button.js +3 -3
  35. package/dist/src/gutters/gutter-button.js.map +1 -1
  36. package/dist/src/gutters/gutter-dirty.d.ts +1 -1
  37. package/dist/src/gutters/gutter-dirty.js +5 -5
  38. package/dist/src/gutters/gutter-dirty.js.map +1 -1
  39. package/dist/src/handlers/contextmenu-tree-mutation.js +4 -4
  40. package/dist/src/handlers/contextmenu-tree-mutation.js.map +1 -1
  41. package/dist/src/record-view/record-creator.d.ts +1 -1
  42. package/dist/src/record-view/record-creator.js +1 -1
  43. package/dist/src/record-view/record-creator.js.map +1 -1
  44. package/dist/src/record-view/record-view-body.d.ts +1 -1
  45. package/dist/src/record-view/record-view-body.js +4 -4
  46. package/dist/src/record-view/record-view-body.js.map +1 -1
  47. package/dist/src/record-view/record-view.d.ts +1 -1
  48. package/dist/src/record-view/record-view.js +5 -5
  49. package/dist/src/record-view/record-view.js.map +1 -1
  50. package/dist/src/sorters/sorters-control.js +3 -3
  51. package/dist/src/sorters/sorters-control.js.map +1 -1
  52. package/dist/stories/accumulator.stories.d.ts +1 -1
  53. package/dist/stories/accumulator.stories.js +22 -10
  54. package/dist/stories/accumulator.stories.js.map +1 -1
  55. package/dist/stories/barcode-input-filter.stories.d.ts +1 -1
  56. package/dist/stories/barcode-input-filter.stories.js +80 -72
  57. package/dist/stories/barcode-input-filter.stories.js.map +1 -1
  58. package/dist/stories/default-filters.stories.d.ts +1 -1
  59. package/dist/stories/default-filters.stories.js +80 -72
  60. package/dist/stories/default-filters.stories.js.map +1 -1
  61. package/dist/stories/dynamic-editable.stories.d.ts +1 -1
  62. package/dist/stories/dynamic-editable.stories.js +21 -9
  63. package/dist/stories/dynamic-editable.stories.js.map +1 -1
  64. package/dist/stories/empty-sorters.stories.d.ts +1 -1
  65. package/dist/stories/empty-sorters.stories.js +80 -71
  66. package/dist/stories/empty-sorters.stories.js.map +1 -1
  67. package/dist/stories/explicit-fetch.stories.d.ts +1 -1
  68. package/dist/stories/explicit-fetch.stories.js +81 -72
  69. package/dist/stories/explicit-fetch.stories.js.map +1 -1
  70. package/dist/stories/fixed-column.stories.d.ts +1 -1
  71. package/dist/stories/fixed-column.stories.js +122 -113
  72. package/dist/stories/fixed-column.stories.js.map +1 -1
  73. package/dist/stories/grist-modes.stories.d.ts +1 -1
  74. package/dist/stories/grist-modes.stories.js +132 -123
  75. package/dist/stories/grist-modes.stories.js.map +1 -1
  76. package/dist/stories/group-header.stories.d.ts +1 -1
  77. package/dist/stories/group-header.stories.js +122 -113
  78. package/dist/stories/group-header.stories.js.map +1 -1
  79. package/dist/stories/textarea.stories.d.ts +1 -1
  80. package/dist/stories/textarea.stories.js +113 -104
  81. package/dist/stories/textarea.stories.js.map +1 -1
  82. package/dist/stories/tree-column-with-checkbox.stories.d.ts +1 -1
  83. package/dist/stories/tree-column-with-checkbox.stories.js +126 -117
  84. package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
  85. package/dist/stories/tree-column.stories.d.ts +1 -1
  86. package/dist/stories/tree-column.stories.js +126 -117
  87. package/dist/stories/tree-column.stories.js.map +1 -1
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +7 -7
  90. package/src/data-card/data-card-gutter-menu.ts +5 -5
  91. package/src/data-card/data-card.ts +3 -3
  92. package/src/data-card/record-card.ts +30 -32
  93. package/src/data-grid/data-grid-accum-field.ts +5 -1
  94. package/src/data-grid/data-grid-footer.ts +18 -11
  95. package/src/data-grid/data-grid-header.ts +13 -15
  96. package/src/data-grist.ts +23 -23
  97. package/src/data-list/data-list.ts +3 -3
  98. package/src/data-list/record-partial.ts +21 -23
  99. package/src/empty-note.ts +3 -3
  100. package/src/gutters/gutter-button.ts +3 -3
  101. package/src/gutters/gutter-dirty.ts +5 -5
  102. package/src/handlers/contextmenu-tree-mutation.ts +4 -4
  103. package/src/record-view/record-creator.ts +1 -1
  104. package/src/record-view/record-view-body.ts +4 -4
  105. package/src/record-view/record-view.ts +5 -5
  106. package/src/sorters/sorters-control.ts +3 -3
  107. package/stories/accumulator.stories.ts +22 -10
  108. package/stories/barcode-input-filter.stories.ts +91 -82
  109. package/stories/default-filters.stories.ts +91 -82
  110. package/stories/dynamic-editable.stories.ts +21 -9
  111. package/stories/empty-sorters.stories.ts +92 -82
  112. package/stories/explicit-fetch.stories.ts +93 -83
  113. package/stories/fixed-column.stories.ts +134 -124
  114. package/stories/grist-modes.stories.ts +144 -139
  115. package/stories/group-header.stories.ts +134 -124
  116. package/stories/textarea.stories.ts +115 -110
  117. package/stories/tree-column-with-checkbox.stories.ts +134 -124
  118. package/stories/tree-column.stories.ts +134 -124
@@ -3,7 +3,7 @@ import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '../src/record-view/record-creator.js'
5
5
  import '@operato/popup/ox-popup-list.js'
6
- import '@material/mwc-icon'
6
+ import '@material/web/icon/icon.js'
7
7
 
8
8
  import { html, TemplateResult } from 'lit'
9
9
 
@@ -50,10 +50,10 @@ const fetchHandler: FetchHandler = async ({ page, limit }) => {
50
50
  idx % 4 === 0
51
51
  ? '' /* no source */
52
52
  : idx % 4 === 1
53
- ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
54
- : idx % 4 === 2
55
- ? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
56
- : `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
53
+ ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
54
+ : idx % 4 === 2
55
+ ? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
56
+ : `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
57
57
  role: ['admin', 'worker', 'tester'][idx % 3],
58
58
  color: idx % 2 ? `#87f018` : `#180f87`,
59
59
  rate: Math.round(Math.random() * 100),
@@ -360,144 +360,154 @@ interface ArgTypes {
360
360
  config: object
361
361
  }
362
362
 
363
- const Template: Story<ArgTypes> = ({ config }: ArgTypes) => html` <link
364
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
365
- rel="stylesheet"
366
- />
367
- <link href="/themes/app-theme.css" rel="stylesheet" />
368
- <link href="/themes/oops-theme.css" rel="stylesheet" />
369
- <link href="/themes/grist-theme.css" rel="stylesheet" />
363
+ const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
364
+ html` <link
365
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
366
+ rel="stylesheet"
367
+ />
368
+ <link
369
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
370
+ rel="stylesheet"
371
+ />
372
+ <link
373
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
374
+ rel="stylesheet"
375
+ />
370
376
 
371
- <style>
372
- [slot='headroom'] {
373
- display: flex;
374
- flex-direction: row;
375
- align-items: center;
376
- padding: var(--padding-default) var(--padding-wide);
377
- background-color: var(--theme-white-color);
378
- box-shadow: var(--box-shadow);
377
+ <link href="/themes/app-theme.css" rel="stylesheet" />
378
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
379
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
379
380
 
380
- --mdc-icon-size: 24px;
381
- }
382
- #sorters mwc-icon,
383
- #modes mwc-icon {
384
- --mdc-icon-size: 18px;
385
- }
386
- #sorters {
387
- margin-left: auto;
388
- margin-right: var(--margin-default);
389
- padding-left: var(--padding-narrow);
390
- border-bottom: var(--border-dark-color);
391
- position: relative;
392
- color: var(--secondary-color);
393
- font-size: var(--fontsize-default);
394
- user-select: none;
395
- }
396
-
397
- #sorters > * {
398
- padding: var(--padding-narrow);
399
- vertical-align: middle;
400
- }
381
+ <style>
382
+ [slot='headroom'] {
383
+ display: flex;
384
+ flex-direction: row;
385
+ align-items: center;
386
+ padding: var(--padding-default) var(--padding-wide);
387
+ background-color: var(--theme-white-color);
388
+ box-shadow: var(--box-shadow);
401
389
 
402
- #modes > * {
403
- padding: var(--padding-narrow);
404
- opacity: 0.5;
405
- color: var(--primary-text-color);
406
- cursor: pointer;
407
- }
390
+ --md-icon-size: 24px;
391
+ }
392
+ #sorters md-icon,
393
+ #modes md-icon {
394
+ --md-icon-size: 18px;
395
+ }
396
+ #sorters {
397
+ margin-left: auto;
398
+ margin-right: var(--margin-default);
399
+ padding-left: var(--padding-narrow);
400
+ border-bottom: var(--border-dark-color);
401
+ position: relative;
402
+ color: var(--secondary-color);
403
+ font-size: var(--fontsize-default);
404
+ user-select: none;
405
+ }
408
406
 
409
- #modes > mwc-icon[active] {
410
- border-radius: 9px;
411
- background-color: rgba(var(--primary-color-rgb), 0.05);
412
- opacity: 1;
413
- color: var(--secondary-text-color);
414
- cursor: default;
415
- }
407
+ #sorters > * {
408
+ padding: var(--padding-narrow);
409
+ vertical-align: middle;
410
+ }
416
411
 
417
- #modes > mwc-icon:hover {
418
- opacity: 1;
419
- color: var(--secondary-text-color);
420
- }
412
+ #modes > * {
413
+ padding: var(--padding-narrow);
414
+ opacity: 0.5;
415
+ color: var(--primary-text-color);
416
+ cursor: pointer;
417
+ }
421
418
 
422
- #add {
423
- width: 50px;
424
- text-align: right;
425
- }
419
+ #modes > md-icon[active] {
420
+ border-radius: 9px;
421
+ background-color: rgba(var(--primary-color-rgb), 0.05);
422
+ opacity: 1;
423
+ color: var(--secondary-text-color);
424
+ cursor: default;
425
+ }
426
426
 
427
- #add button {
428
- background-color: var(--primary-color);
429
- border: 0;
430
- border-radius: 50%;
431
- padding: 5px;
432
- width: 36px;
433
- height: 36px;
434
- cursor: pointer;
435
- }
427
+ #modes > md-icon:hover {
428
+ opacity: 1;
429
+ color: var(--secondary-text-color);
430
+ }
436
431
 
437
- #add button:hover {
438
- background-color: var(--focus-background-color);
439
- box-shadow: var(--box-shadow);
440
- }
432
+ #add {
433
+ width: 50px;
434
+ text-align: right;
435
+ }
441
436
 
442
- #add button mwc-icon {
443
- font-size: 2em;
444
- color: var(--theme-white-color);
445
- }
437
+ #add button {
438
+ background-color: var(--primary-color);
439
+ border: 0;
440
+ border-radius: 50%;
441
+ padding: 5px;
442
+ width: 36px;
443
+ height: 36px;
444
+ cursor: pointer;
445
+ }
446
446
 
447
- #filters {
448
- display: flex;
449
- justify-content: center;
450
- align-items: center;
451
- }
447
+ #add button:hover {
448
+ background-color: var(--focus-background-color);
449
+ box-shadow: var(--box-shadow);
450
+ }
452
451
 
453
- #filters * {
454
- margin-right: var(--margin-default);
455
- }
452
+ #add button md-icon {
453
+ font-size: 2em;
454
+ color: var(--theme-white-color);
455
+ }
456
456
 
457
- @media only screen and (max-width: 460px) {
458
457
  #filters {
459
- flex-direction: column;
458
+ display: flex;
459
+ justify-content: center;
460
+ align-items: center;
460
461
  }
461
462
 
462
- #modes {
463
- display: none;
463
+ #filters * {
464
+ margin-right: var(--margin-default);
464
465
  }
465
- }
466
- </style>
467
466
 
468
- <ox-grist
469
- mode="GRID"
470
- .config=${config}
471
- .fetchHandler=${fetchHandler}
472
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
473
- >
474
- <div slot="headroom">
475
- <div id="filters">
476
- <ox-filters-form autofocus></ox-filters-form>
477
- </div>
467
+ @media only screen and (max-width: 460px) {
468
+ #filters {
469
+ flex-direction: column;
470
+ }
478
471
 
479
- <div id="sorters">
480
- Sort
481
- <mwc-icon
482
- @click=${(e: Event) => {
483
- const target = e.currentTarget as HTMLElement
484
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
485
- right: 0,
486
- top: target.offsetTop + target.offsetHeight
487
- })
488
- }}
489
- >expand_more</mwc-icon
490
- >
491
- <ox-popup id="sorter-control">
492
- <ox-sorters-control> </ox-sorters-control>
493
- </ox-popup>
494
- </div>
472
+ #modes {
473
+ display: none;
474
+ }
475
+ }
476
+ </style>
477
+
478
+ <ox-grist
479
+ mode="GRID"
480
+ .config=${config}
481
+ .fetchHandler=${fetchHandler}
482
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
483
+ >
484
+ <div slot="headroom">
485
+ <div id="filters">
486
+ <ox-filters-form autofocus></ox-filters-form>
487
+ </div>
495
488
 
496
- <ox-record-creator id="add" light-popup>
497
- <button><mwc-icon>add</mwc-icon></button>
498
- </ox-record-creator>
499
- </div>
500
- </ox-grist>`
489
+ <div id="sorters">
490
+ Sort
491
+ <md-icon
492
+ @click=${(e: Event) => {
493
+ const target = e.currentTarget as HTMLElement
494
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
495
+ right: 0,
496
+ top: target.offsetTop + target.offsetHeight
497
+ })
498
+ }}
499
+ >expand_more</md-icon
500
+ >
501
+ <ox-popup id="sorter-control">
502
+ <ox-sorters-control> </ox-sorters-control>
503
+ </ox-popup>
504
+ </div>
505
+
506
+ <ox-record-creator id="add" light-popup>
507
+ <button><md-icon>add</md-icon></button>
508
+ </ox-record-creator>
509
+ </div>
510
+ </ox-grist>`
501
511
 
502
512
  export const Regular = Template.bind({})
503
513
  Regular.args = {
@@ -3,7 +3,7 @@ import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '../src/record-view/record-creator.js'
5
5
  import '@operato/popup/ox-popup-list.js'
6
- import '@material/mwc-icon'
6
+ import '@material/web/icon/icon.js'
7
7
 
8
8
  import { html, TemplateResult } from 'lit'
9
9
 
@@ -189,133 +189,138 @@ interface ArgTypes {
189
189
  fetchHandler: object
190
190
  }
191
191
 
192
- const Template: Story<ArgTypes> = ({
193
- config,
194
- mode = 'GRID',
195
- urlParamsSensitive = false,
196
- fetchHandler
197
- }: ArgTypes) => html` <link
198
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
199
- rel="stylesheet"
200
- />
201
- <link href="/themes/app-theme.css" rel="stylesheet" />
202
- <link href="/themes/oops-theme.css" rel="stylesheet" />
203
- <link href="/themes/grist-theme.css" rel="stylesheet" />
192
+ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive = false, fetchHandler }: ArgTypes) =>
193
+ html` <link
194
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
195
+ rel="stylesheet"
196
+ />
197
+ <link
198
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
199
+ rel="stylesheet"
200
+ />
201
+ <link
202
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
203
+ rel="stylesheet"
204
+ />
204
205
 
205
- <style>
206
- [slot='headroom'] {
207
- display: flex;
208
- flex-direction: row;
209
- align-items: center;
210
- padding: var(--padding-default) var(--padding-wide);
211
- background-color: var(--theme-white-color);
212
- box-shadow: var(--box-shadow);
206
+ <link href="/themes/app-theme.css" rel="stylesheet" />
207
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
208
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
213
209
 
214
- --mdc-icon-size: 24px;
215
- }
216
- #sorters mwc-icon,
217
- #modes mwc-icon {
218
- --mdc-icon-size: 18px;
219
- }
220
- #sorters {
221
- margin-left: auto;
222
- margin-right: var(--margin-default);
223
- padding-left: var(--padding-narrow);
224
- border-bottom: var(--border-dark-color);
225
- position: relative;
226
- color: var(--secondary-color);
227
- font-size: var(--fontsize-default);
228
- user-select: none;
229
- }
210
+ <style>
211
+ [slot='headroom'] {
212
+ display: flex;
213
+ flex-direction: row;
214
+ align-items: center;
215
+ padding: var(--padding-default) var(--padding-wide);
216
+ background-color: var(--theme-white-color);
217
+ box-shadow: var(--box-shadow);
230
218
 
231
- #sorters > * {
232
- padding: var(--padding-narrow);
233
- vertical-align: middle;
234
- }
235
-
236
- #modes > * {
237
- padding: var(--padding-narrow);
238
- opacity: 0.5;
239
- color: var(--primary-text-color);
240
- cursor: pointer;
241
- }
219
+ --md-icon-size: 24px;
220
+ }
221
+ #sorters md-icon,
222
+ #modes md-icon {
223
+ --md-icon-size: 18px;
224
+ }
225
+ #sorters {
226
+ margin-left: auto;
227
+ margin-right: var(--margin-default);
228
+ padding-left: var(--padding-narrow);
229
+ border-bottom: var(--border-dark-color);
230
+ position: relative;
231
+ color: var(--secondary-color);
232
+ font-size: var(--fontsize-default);
233
+ user-select: none;
234
+ }
242
235
 
243
- #modes > mwc-icon[active] {
244
- border-radius: 9px;
245
- background-color: rgba(var(--primary-color-rgb), 0.05);
246
- opacity: 1;
247
- color: var(--secondary-text-color);
248
- cursor: default;
249
- }
236
+ #sorters > * {
237
+ padding: var(--padding-narrow);
238
+ vertical-align: middle;
239
+ }
250
240
 
251
- #modes > mwc-icon:hover {
252
- opacity: 1;
253
- color: var(--secondary-text-color);
254
- }
241
+ #modes > * {
242
+ padding: var(--padding-narrow);
243
+ opacity: 0.5;
244
+ color: var(--primary-text-color);
245
+ cursor: pointer;
246
+ }
255
247
 
256
- #add {
257
- width: 50px;
258
- text-align: right;
259
- }
248
+ #modes > md-icon[active] {
249
+ border-radius: 9px;
250
+ background-color: rgba(var(--primary-color-rgb), 0.05);
251
+ opacity: 1;
252
+ color: var(--secondary-text-color);
253
+ cursor: default;
254
+ }
260
255
 
261
- #add button {
262
- background-color: var(--primary-color);
263
- border: 0;
264
- border-radius: 50%;
265
- padding: 5px;
266
- width: 36px;
267
- height: 36px;
268
- cursor: pointer;
269
- }
256
+ #modes > md-icon:hover {
257
+ opacity: 1;
258
+ color: var(--secondary-text-color);
259
+ }
270
260
 
271
- #add button:hover {
272
- background-color: var(--focus-background-color);
273
- box-shadow: var(--box-shadow);
274
- }
261
+ #add {
262
+ width: 50px;
263
+ text-align: right;
264
+ }
275
265
 
276
- #add button mwc-icon {
277
- font-size: 2em;
278
- color: var(--theme-white-color);
279
- }
266
+ #add button {
267
+ background-color: var(--primary-color);
268
+ border: 0;
269
+ border-radius: 50%;
270
+ padding: 5px;
271
+ width: 36px;
272
+ height: 36px;
273
+ cursor: pointer;
274
+ }
280
275
 
281
- #filters {
282
- display: flex;
283
- justify-content: center;
284
- align-items: center;
285
- }
276
+ #add button:hover {
277
+ background-color: var(--focus-background-color);
278
+ box-shadow: var(--box-shadow);
279
+ }
286
280
 
287
- #filters * {
288
- margin-right: var(--margin-default);
289
- }
281
+ #add button md-icon {
282
+ font-size: 2em;
283
+ color: var(--theme-white-color);
284
+ }
290
285
 
291
- @media only screen and (max-width: 460px) {
292
286
  #filters {
293
- flex-direction: column;
287
+ display: flex;
288
+ justify-content: center;
289
+ align-items: center;
294
290
  }
295
291
 
296
- #modes {
297
- display: none;
292
+ #filters * {
293
+ margin-right: var(--margin-default);
298
294
  }
299
- }
300
- </style>
301
295
 
302
- <ox-grist
303
- .config=${config}
304
- .mode=${mode}
305
- .fetchHandler=${fetchHandler}
306
- ?url-params-sensitive=${urlParamsSensitive}
307
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
308
- >
309
- <div slot="headroom">
310
- <div id="filters">
311
- <ox-filters-form autofocus></ox-filters-form>
312
- </div>
296
+ @media only screen and (max-width: 460px) {
297
+ #filters {
298
+ flex-direction: column;
299
+ }
300
+
301
+ #modes {
302
+ display: none;
303
+ }
304
+ }
305
+ </style>
313
306
 
314
- <ox-record-creator id="add" light-popup>
315
- <button><mwc-icon>add</mwc-icon></button>
316
- </ox-record-creator>
317
- </div>
318
- </ox-grist>`
307
+ <ox-grist
308
+ .config=${config}
309
+ .mode=${mode}
310
+ .fetchHandler=${fetchHandler}
311
+ ?url-params-sensitive=${urlParamsSensitive}
312
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
313
+ >
314
+ <div slot="headroom">
315
+ <div id="filters">
316
+ <ox-filters-form autofocus></ox-filters-form>
317
+ </div>
318
+
319
+ <ox-record-creator id="add" light-popup>
320
+ <button><md-icon>add</md-icon></button>
321
+ </ox-record-creator>
322
+ </div>
323
+ </ox-grist>`
319
324
 
320
325
  export const Regular = Template.bind({})
321
326
  Regular.args = {