@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
 
@@ -202,7 +202,19 @@ interface ArgTypes {
202
202
  }
203
203
 
204
204
  const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive = false, fetchHandler }: ArgTypes) =>
205
- html` <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
205
+ html` <link
206
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
207
+ rel="stylesheet"
208
+ />
209
+ <link
210
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
211
+ rel="stylesheet"
212
+ />
213
+ <link
214
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
215
+ rel="stylesheet"
216
+ />
217
+
206
218
  <link href="/themes/app-theme.css" rel="stylesheet" />
207
219
  <link href="/themes/oops-theme.css" rel="stylesheet" />
208
220
  <link href="/themes/grist-theme.css" rel="stylesheet" />
@@ -220,11 +232,11 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
220
232
  background-color: var(--theme-white-color);
221
233
  box-shadow: var(--box-shadow);
222
234
 
223
- --mdc-icon-size: 24px;
235
+ --md-icon-size: 24px;
224
236
  }
225
- #sorters mwc-icon,
226
- #modes mwc-icon {
227
- --mdc-icon-size: 18px;
237
+ #sorters md-icon,
238
+ #modes md-icon {
239
+ --md-icon-size: 18px;
228
240
  }
229
241
  #sorters {
230
242
  margin-left: auto;
@@ -249,7 +261,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
249
261
  cursor: pointer;
250
262
  }
251
263
 
252
- #modes > mwc-icon[active] {
264
+ #modes > md-icon[active] {
253
265
  border-radius: 9px;
254
266
  background-color: rgba(var(--primary-color-rgb), 0.05);
255
267
  opacity: 1;
@@ -257,7 +269,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
257
269
  cursor: default;
258
270
  }
259
271
 
260
- #modes > mwc-icon:hover {
272
+ #modes > md-icon:hover {
261
273
  opacity: 1;
262
274
  color: var(--secondary-text-color);
263
275
  }
@@ -282,7 +294,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
282
294
  box-shadow: var(--box-shadow);
283
295
  }
284
296
 
285
- #add button mwc-icon {
297
+ #add button md-icon {
286
298
  font-size: 2em;
287
299
  color: var(--theme-white-color);
288
300
  }
@@ -321,7 +333,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
321
333
  </div>
322
334
 
323
335
  <ox-record-creator id="add" light-popup>
324
- <button><mwc-icon>add</mwc-icon></button>
336
+ <button><md-icon>add</md-icon></button>
325
337
  </ox-record-creator>
326
338
  </div>
327
339
  </ox-grist>`
@@ -2,7 +2,7 @@ import '../src/index.js'
2
2
  import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '@operato/popup/ox-popup-list.js'
5
- import '@material/mwc-icon'
5
+ import '@material/web/icon/icon.js'
6
6
 
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
@@ -135,95 +135,104 @@ interface ArgTypes {
135
135
  headerFilter: boolean
136
136
  }
137
137
 
138
- const Template: Story<ArgTypes> = ({ englishOnly, selectAfterChange, headerFilter }: ArgTypes) => html` <link
139
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
140
- rel="stylesheet"
141
- />
142
- <link href="/themes/app-theme.css" rel="stylesheet" />
143
- <link href="/themes/oops-theme.css" rel="stylesheet" />
144
- <link href="/themes/grist-theme.css" rel="stylesheet" />
145
-
146
- <style>
147
- [slot='headroom'] {
148
- display: flex;
149
- flex-direction: row;
150
- align-items: center;
151
- padding: var(--padding-default) var(--padding-wide);
152
- background-color: var(--theme-white-color);
153
- box-shadow: var(--box-shadow);
154
-
155
- --mdc-icon-size: 24px;
156
- }
157
- #sorters mwc-icon,
158
- #modes mwc-icon {
159
- --mdc-icon-size: 18px;
160
- }
161
- #sorters {
162
- margin-left: auto;
163
- margin-right: var(--margin-default);
164
- padding-left: var(--padding-narrow);
165
- border-bottom: var(--border-dark-color);
166
- position: relative;
167
- color: var(--secondary-color);
168
- font-size: var(--fontsize-default);
169
- user-select: none;
170
- }
171
-
172
- #sorters > * {
173
- padding: var(--padding-narrow);
174
- vertical-align: middle;
175
- }
176
-
177
- #filters {
178
- display: flex;
179
- justify-content: center;
180
- align-items: center;
181
- }
138
+ const Template: Story<ArgTypes> = ({ englishOnly, selectAfterChange, headerFilter }: ArgTypes) =>
139
+ html` <link
140
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
141
+ rel="stylesheet"
142
+ />
143
+ <link
144
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
145
+ rel="stylesheet"
146
+ />
147
+ <link
148
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
149
+ rel="stylesheet"
150
+ />
151
+ <link href="/themes/app-theme.css" rel="stylesheet" />
152
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
153
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
154
+
155
+ <style>
156
+ [slot='headroom'] {
157
+ display: flex;
158
+ flex-direction: row;
159
+ align-items: center;
160
+ padding: var(--padding-default) var(--padding-wide);
161
+ background-color: var(--theme-white-color);
162
+ box-shadow: var(--box-shadow);
163
+
164
+ --md-icon-size: 24px;
165
+ }
166
+ #sorters md-icon,
167
+ #modes md-icon {
168
+ --md-icon-size: 18px;
169
+ }
170
+ #sorters {
171
+ margin-left: auto;
172
+ margin-right: var(--margin-default);
173
+ padding-left: var(--padding-narrow);
174
+ border-bottom: var(--border-dark-color);
175
+ position: relative;
176
+ color: var(--secondary-color);
177
+ font-size: var(--fontsize-default);
178
+ user-select: none;
179
+ }
182
180
 
183
- #filters * {
184
- margin-right: var(--margin-default);
185
- }
181
+ #sorters > * {
182
+ padding: var(--padding-narrow);
183
+ vertical-align: middle;
184
+ }
186
185
 
187
- @media only screen and (max-width: 460px) {
188
186
  #filters {
189
- flex-direction: column;
187
+ display: flex;
188
+ justify-content: center;
189
+ align-items: center;
190
190
  }
191
191
 
192
- #modes {
193
- display: none;
192
+ #filters * {
193
+ margin-right: var(--margin-default);
194
194
  }
195
- }
196
- </style>
197
-
198
- <ox-grist
199
- .config=${buildConfig({ englishOnly, selectAfterChange, headerFilter })}
200
- mode="GRID"
201
- .fetchHandler=${fetchHandler}
202
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
203
- >
204
- <div slot="headroom">
205
- <div id="filters">
206
- <ox-filters-form></ox-filters-form>
207
- </div>
208
195
 
209
- <div id="sorters">
210
- Sort
211
- <mwc-icon
212
- @click=${(e: Event) => {
213
- const target = e.currentTarget as HTMLElement
214
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
215
- right: 0,
216
- top: target.offsetTop + target.offsetHeight
217
- })
218
- }}
219
- >expand_more</mwc-icon
220
- >
221
- <ox-popup id="sorter-control">
222
- <ox-sorters-control> </ox-sorters-control>
223
- </ox-popup>
196
+ @media only screen and (max-width: 460px) {
197
+ #filters {
198
+ flex-direction: column;
199
+ }
200
+
201
+ #modes {
202
+ display: none;
203
+ }
204
+ }
205
+ </style>
206
+
207
+ <ox-grist
208
+ .config=${buildConfig({ englishOnly, selectAfterChange, headerFilter })}
209
+ mode="GRID"
210
+ .fetchHandler=${fetchHandler}
211
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
212
+ >
213
+ <div slot="headroom">
214
+ <div id="filters">
215
+ <ox-filters-form></ox-filters-form>
216
+ </div>
217
+
218
+ <div id="sorters">
219
+ Sort
220
+ <md-icon
221
+ @click=${(e: Event) => {
222
+ const target = e.currentTarget as HTMLElement
223
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
224
+ right: 0,
225
+ top: target.offsetTop + target.offsetHeight
226
+ })
227
+ }}
228
+ >expand_more</md-icon
229
+ >
230
+ <ox-popup id="sorter-control">
231
+ <ox-sorters-control> </ox-sorters-control>
232
+ </ox-popup>
233
+ </div>
224
234
  </div>
225
- </div>
226
- </ox-grist>`
235
+ </ox-grist>`
227
236
 
228
237
  export const Regular = Template.bind({})
229
238
  Regular.args = {
@@ -2,7 +2,7 @@ import '../src/index.js'
2
2
  import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '@operato/popup/ox-popup-list.js'
5
- import '@material/mwc-icon'
5
+ import '@material/web/icon/icon.js'
6
6
 
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
@@ -118,95 +118,104 @@ interface ArgTypes {
118
118
  headerFilter: boolean
119
119
  }
120
120
 
121
- const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) => html` <link
122
- href="https://fonts.googleapis.com/css?family=Material+Icons&display=block"
123
- rel="stylesheet"
124
- />
125
- <link href="/themes/app-theme.css" rel="stylesheet" />
126
- <link href="/themes/oops-theme.css" rel="stylesheet" />
127
- <link href="/themes/grist-theme.css" rel="stylesheet" />
128
-
129
- <style>
130
- [slot='headroom'] {
131
- display: flex;
132
- flex-direction: row;
133
- align-items: center;
134
- padding: var(--padding-default) var(--padding-wide);
135
- background-color: var(--theme-white-color);
136
- box-shadow: var(--box-shadow);
137
-
138
- --mdc-icon-size: 24px;
139
- }
140
- #sorters mwc-icon,
141
- #modes mwc-icon {
142
- --mdc-icon-size: 18px;
143
- }
144
- #sorters {
145
- margin-left: auto;
146
- margin-right: var(--margin-default);
147
- padding-left: var(--padding-narrow);
148
- border-bottom: var(--border-dark-color);
149
- position: relative;
150
- color: var(--secondary-color);
151
- font-size: var(--fontsize-default);
152
- user-select: none;
153
- }
154
-
155
- #sorters > * {
156
- padding: var(--padding-narrow);
157
- vertical-align: middle;
158
- }
159
-
160
- #filters {
161
- display: flex;
162
- justify-content: center;
163
- align-items: center;
164
- }
121
+ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
122
+ html` <link
123
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
124
+ rel="stylesheet"
125
+ />
126
+ <link
127
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
128
+ rel="stylesheet"
129
+ />
130
+ <link
131
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
132
+ rel="stylesheet"
133
+ />
134
+ <link href="/themes/app-theme.css" rel="stylesheet" />
135
+ <link href="/themes/oops-theme.css" rel="stylesheet" />
136
+ <link href="/themes/grist-theme.css" rel="stylesheet" />
137
+
138
+ <style>
139
+ [slot='headroom'] {
140
+ display: flex;
141
+ flex-direction: row;
142
+ align-items: center;
143
+ padding: var(--padding-default) var(--padding-wide);
144
+ background-color: var(--theme-white-color);
145
+ box-shadow: var(--box-shadow);
146
+
147
+ --md-icon-size: 24px;
148
+ }
149
+ #sorters md-icon,
150
+ #modes md-icon {
151
+ --md-icon-size: 18px;
152
+ }
153
+ #sorters {
154
+ margin-left: auto;
155
+ margin-right: var(--margin-default);
156
+ padding-left: var(--padding-narrow);
157
+ border-bottom: var(--border-dark-color);
158
+ position: relative;
159
+ color: var(--secondary-color);
160
+ font-size: var(--fontsize-default);
161
+ user-select: none;
162
+ }
165
163
 
166
- #filters * {
167
- margin-right: var(--margin-default);
168
- }
164
+ #sorters > * {
165
+ padding: var(--padding-narrow);
166
+ vertical-align: middle;
167
+ }
169
168
 
170
- @media only screen and (max-width: 460px) {
171
169
  #filters {
172
- flex-direction: column;
170
+ display: flex;
171
+ justify-content: center;
172
+ align-items: center;
173
173
  }
174
174
 
175
- #modes {
176
- display: none;
175
+ #filters * {
176
+ margin-right: var(--margin-default);
177
177
  }
178
- }
179
- </style>
180
-
181
- <ox-grist
182
- .config=${buildConfig({ headerFilter })}
183
- mode="GRID"
184
- .fetchHandler=${fetchHandler}
185
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
186
- >
187
- <div slot="headroom">
188
- <div id="filters">
189
- <ox-filters-form></ox-filters-form>
190
- </div>
191
178
 
192
- <div id="sorters">
193
- Sort
194
- <mwc-icon
195
- @click=${(e: Event) => {
196
- const target = e.currentTarget as HTMLElement
197
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
198
- right: 0,
199
- top: target.offsetTop + target.offsetHeight
200
- })
201
- }}
202
- >expand_more</mwc-icon
203
- >
204
- <ox-popup id="sorter-control">
205
- <ox-sorters-control> </ox-sorters-control>
206
- </ox-popup>
179
+ @media only screen and (max-width: 460px) {
180
+ #filters {
181
+ flex-direction: column;
182
+ }
183
+
184
+ #modes {
185
+ display: none;
186
+ }
187
+ }
188
+ </style>
189
+
190
+ <ox-grist
191
+ .config=${buildConfig({ headerFilter })}
192
+ mode="GRID"
193
+ .fetchHandler=${fetchHandler}
194
+ @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
195
+ >
196
+ <div slot="headroom">
197
+ <div id="filters">
198
+ <ox-filters-form></ox-filters-form>
199
+ </div>
200
+
201
+ <div id="sorters">
202
+ Sort
203
+ <md-icon
204
+ @click=${(e: Event) => {
205
+ const target = e.currentTarget as HTMLElement
206
+ ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
207
+ right: 0,
208
+ top: target.offsetTop + target.offsetHeight
209
+ })
210
+ }}
211
+ >expand_more</md-icon
212
+ >
213
+ <ox-popup id="sorter-control">
214
+ <ox-sorters-control> </ox-sorters-control>
215
+ </ox-popup>
216
+ </div>
207
217
  </div>
208
- </div>
209
- </ox-grist>`
218
+ </ox-grist>`
210
219
 
211
220
  export const Regular = Template.bind({})
212
221
  Regular.args = {
@@ -2,7 +2,7 @@ import '../src/index.js'
2
2
  import '../src/filters/filters-form.js'
3
3
  import '../src/sorters/sorters-control.js'
4
4
  import '@operato/popup/ox-popup-list.js'
5
- import '@material/mwc-icon'
5
+ import '@material/web/icon/icon.js'
6
6
 
7
7
  import { html, TemplateResult } from 'lit'
8
8
 
@@ -194,7 +194,19 @@ interface ArgTypes {
194
194
  }
195
195
 
196
196
  const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
197
- html` <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
197
+ html` <link
198
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined: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+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
203
+ rel="stylesheet"
204
+ />
205
+ <link
206
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
207
+ rel="stylesheet"
208
+ />
209
+
198
210
  <link href="/themes/app-theme.css" rel="stylesheet" />
199
211
  <link href="/themes/oops-theme.css" rel="stylesheet" />
200
212
  <link href="/themes/grist-theme.css" rel="stylesheet" />
@@ -208,11 +220,11 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
208
220
  background-color: var(--theme-white-color);
209
221
  box-shadow: var(--box-shadow);
210
222
 
211
- --mdc-icon-size: 24px;
223
+ --md-icon-size: 24px;
212
224
  }
213
- #sorters mwc-icon,
214
- #modes mwc-icon {
215
- --mdc-icon-size: 18px;
225
+ #sorters md-icon,
226
+ #modes md-icon {
227
+ --md-icon-size: 18px;
216
228
  }
217
229
  #sorters {
218
230
  margin-left: auto;
@@ -268,7 +280,7 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
268
280
 
269
281
  <div id="sorters">
270
282
  Sort
271
- <mwc-icon
283
+ <md-icon
272
284
  @click=${(e: Event) => {
273
285
  const target = e.currentTarget as HTMLElement
274
286
  ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
@@ -276,7 +288,7 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
276
288
  top: target.offsetTop + target.offsetHeight
277
289
  })
278
290
  }}
279
- >expand_more</mwc-icon
291
+ >expand_more</md-icon
280
292
  >
281
293
  <ox-popup id="sorter-control">
282
294
  <ox-sorters-control> </ox-sorters-control>
@@ -284,7 +296,7 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
284
296
  </div>
285
297
 
286
298
  <ox-record-creator id="add" light-popup>
287
- <button><mwc-icon>add</mwc-icon></button>
299
+ <button><md-icon>add</md-icon></button>
288
300
  </ox-record-creator>
289
301
  </div>
290
302
  </ox-grist>`