@digital-realty/ix-grid 1.0.6

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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/demo/columns.js +65 -0
  4. package/demo/contacts.js +292 -0
  5. package/demo/index.html +92 -0
  6. package/dist/IxGrid.d.ts +46 -0
  7. package/dist/IxGrid.js +227 -0
  8. package/dist/IxGrid.js.map +1 -0
  9. package/dist/components/IxGridColumnFilter.d.ts +20 -0
  10. package/dist/components/IxGridColumnFilter.js +133 -0
  11. package/dist/components/IxGridColumnFilter.js.map +1 -0
  12. package/dist/components/IxGridRowFilter.d.ts +37 -0
  13. package/dist/components/IxGridRowFilter.js +317 -0
  14. package/dist/components/IxGridRowFilter.js.map +1 -0
  15. package/dist/components/IxPagination.d.ts +13 -0
  16. package/dist/components/IxPagination.js +93 -0
  17. package/dist/components/IxPagination.js.map +1 -0
  18. package/dist/components/grid-column-filter-styles.d.ts +1 -0
  19. package/dist/components/grid-column-filter-styles.js +71 -0
  20. package/dist/components/grid-column-filter-styles.js.map +1 -0
  21. package/dist/components/grid-row-filter-styles.d.ts +1 -0
  22. package/dist/components/grid-row-filter-styles.js +414 -0
  23. package/dist/components/grid-row-filter-styles.js.map +1 -0
  24. package/dist/components/pagination-styles.d.ts +1 -0
  25. package/dist/components/pagination-styles.js +33 -0
  26. package/dist/components/pagination-styles.js.map +1 -0
  27. package/dist/grid-view-styles.d.ts +1 -0
  28. package/dist/grid-view-styles.js +265 -0
  29. package/dist/grid-view-styles.js.map +1 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/ix-grid-copy.d.ts +10 -0
  34. package/dist/ix-grid-copy.js +11 -0
  35. package/dist/ix-grid-copy.js.map +1 -0
  36. package/dist/ix-grid.d.ts +1 -0
  37. package/dist/ix-grid.js +3 -0
  38. package/dist/ix-grid.js.map +1 -0
  39. package/dist/test/ix-grid-column-filter.test.d.ts +1 -0
  40. package/dist/test/ix-grid-column-filter.test.js +36 -0
  41. package/dist/test/ix-grid-column-filter.test.js.map +1 -0
  42. package/dist/test/ix-grid-row-filter.test.d.ts +1 -0
  43. package/dist/test/ix-grid-row-filter.test.js +37 -0
  44. package/dist/test/ix-grid-row-filter.test.js.map +1 -0
  45. package/dist/test/ix-grid.test.d.ts +1 -0
  46. package/dist/test/ix-grid.test.js +43 -0
  47. package/dist/test/ix-grid.test.js.map +1 -0
  48. package/dist/test/ix-pagination.test.d.ts +1 -0
  49. package/dist/test/ix-pagination.test.js +28 -0
  50. package/dist/test/ix-pagination.test.js.map +1 -0
  51. package/package.json +95 -0
  52. package/src/IxGrid.ts +229 -0
  53. package/src/components/IxGridColumnFilter.ts +144 -0
  54. package/src/components/IxGridRowFilter.ts +352 -0
  55. package/src/components/IxPagination.ts +85 -0
  56. package/src/components/grid-column-filter-styles.ts +71 -0
  57. package/src/components/grid-row-filter-styles.ts +414 -0
  58. package/src/components/pagination-styles.ts +33 -0
  59. package/src/grid-view-styles.ts +265 -0
  60. package/src/index.ts +1 -0
  61. package/src/ix-grid-copy.ts +10 -0
  62. package/src/ix-grid.ts +3 -0
  63. package/src/test/ix-grid-column-filter.test.ts +47 -0
  64. package/src/test/ix-grid-row-filter.test.ts +48 -0
  65. package/src/test/ix-grid.test.ts +50 -0
  66. package/src/test/ix-pagination.test.ts +33 -0
  67. package/tsconfig.json +22 -0
  68. package/web-dev-server.config.mjs +27 -0
  69. package/web-test-runner.config.mjs +43 -0
@@ -0,0 +1,414 @@
1
+ import { css } from 'lit';
2
+
3
+ export const IxGridRowFilterStyles = css`
4
+ .filter {
5
+ margin-left: -15px;
6
+ align-items: center;
7
+ font-size: 17px;
8
+ width: 75px;
9
+ }
10
+
11
+ .grid-menu {
12
+ display: flex;
13
+ align-items: center;
14
+ }
15
+
16
+ .grid-menu button {
17
+ gap: 0.5rem;
18
+ }
19
+
20
+ ix-icon-button {
21
+ --md-icon-button-icon-color: rgb(20, 86, 224);
22
+ --md-icon-button-icon-size: 28px;
23
+ }
24
+
25
+ .grid-menu button .filter {
26
+ font-family: 'Red Hat Display', sans-serif;
27
+ font-weight: 700;
28
+ font-style: normal;
29
+ font-size: 14px;
30
+ line-height: 18.52px;
31
+ letter-spacing: 1.25px;
32
+ margin-top: 2px;
33
+ }
34
+ .filter-form {
35
+ white-space: nowrap;
36
+ padding: 9px;
37
+ font-family: 'Open Sans', sans-serif;
38
+ color: #5d6d82;
39
+ }
40
+ .filter-form-column {
41
+ display: inline-block;
42
+ vertical-align: middle;
43
+ }
44
+ .filter-remove span {
45
+ margin-right: 0px;
46
+ color: #5d6d82;
47
+ }
48
+ .filter-dropdown-content {
49
+ position: absolute;
50
+ display: inline;
51
+ right: 0;
52
+ top: 78%;
53
+ box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
54
+ z-index: 3;
55
+ transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
56
+ border-radius: 12px;
57
+ box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 5px -3px,
58
+ rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px;
59
+ background-color: #ffffff;
60
+ }
61
+ .filter-form input,
62
+ .filter-form select,
63
+ .filter-form option {
64
+ border-radius: 0px;
65
+ cursor: pointer;
66
+ letter-spacing: 1.44px;
67
+ line-height: 1.4375em;
68
+ box-sizing: content-box;
69
+ background: none;
70
+ height: 1.4375em;
71
+ margin: 0px;
72
+ animation-name: mui-auto-fill-cancel;
73
+ animation-duration: 10ms;
74
+ border: none;
75
+ border-image: initial;
76
+ font-size: 16px;
77
+ box-sizing: border-box;
78
+ cursor: text;
79
+ user-select: none;
80
+ color: currentcolor;
81
+ -webkit-tap-highlight-color: transparent;
82
+ display: block;
83
+ min-width: 0px;
84
+ width: 100%;
85
+ font-family: 'Open Sans', sans-serif;
86
+ height: 25px;
87
+ border-bottom: 1px solid black;
88
+ }
89
+ .filter-form option {
90
+ -webkit-tap-highlight-color: #9ca6b2;
91
+ }
92
+ .filter-form input:hover,
93
+ .filter-form select:hover {
94
+ outline: none !important;
95
+ border-bottom: 2px solid black;
96
+ }
97
+ .filter-form input:focus,
98
+ .filter-form select:focus {
99
+ outline: none !important;
100
+ border-bottom: 2px solid #1456e0;
101
+ }
102
+ .filter-form select:focus {
103
+ background-color: rgba(0, 0, 0, 0.05);
104
+ }
105
+ .form-group {
106
+ display: flex;
107
+ flex-direction: column;
108
+ align-items: baseline;
109
+ height: 54px;
110
+ justify-content: flex-end;
111
+ font-family: 'Open Sans', sans-serif;
112
+ }
113
+ .form-group label {
114
+ font-family: 'Open Sans', sans-serif;
115
+ font-style: normal;
116
+ font-weight: 400;
117
+ font-size: 16px;
118
+ line-height: 1.4375em;
119
+ letter-spacing: 0.44px;
120
+ padding: 0px;
121
+ color: #092241;
122
+ display: block;
123
+ transform-origin: left top;
124
+ white-space: nowrap;
125
+ overflow: hidden;
126
+ text-overflow: ellipsis;
127
+ max-width: 133%;
128
+ transform: translate(0px, -1.5px) scale(0.75);
129
+ transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
130
+ transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
131
+ max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
132
+ }
133
+ .filter-form-group label span {
134
+ font-family: 'Open Sans', sans-serif;
135
+ font-style: normal;
136
+ font-weight: 400;
137
+ font-size: 16px;
138
+ line-height: 1.4375em;
139
+ letter-spacing: 0.44px;
140
+ padding: 0px;
141
+ color: #092241;
142
+ display: block;
143
+ transform-origin: left top;
144
+ white-space: nowrap;
145
+ overflow: hidden;
146
+ text-overflow: ellipsis;
147
+ max-width: 133%;
148
+ transform: translate(0px, -1.5px) scale(0.75);
149
+ transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
150
+ transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
151
+ max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
152
+ }
153
+ .filter-form-group label:focus-within span {
154
+ color: #1456e0;
155
+ }
156
+ .filter-form-group {
157
+ display: flex;
158
+ flex-direction: column;
159
+ align-items: baseline;
160
+ height: 54px;
161
+ justify-content: flex-end;
162
+ font-family: 'Open Sans', sans-serif;
163
+ }
164
+ option {
165
+ font-weight: normal;
166
+ display: block;
167
+ min-height: 1.2em;
168
+ padding: 0px 2px 1px;
169
+ white-space: nowrap;
170
+ }
171
+ .add-filter-button .add {
172
+ margin-right: 0px;
173
+ margin-left: -6px;
174
+ }
175
+ .filter-footer {
176
+ margin-top: auto;
177
+ display: flex;
178
+ align-items: left;
179
+ padding: 0px;
180
+ font-family: 'Red Hat Display', sans-serif;
181
+ font-weight: 700;
182
+ font-style: normal;
183
+ font-size: 14px;
184
+ line-height: 18.52px;
185
+ letter-spacing: 1.25px;
186
+ text-transform: uppercase;
187
+ width: 100%;
188
+ }
189
+ .filter-footer button {
190
+ align-items: center !important;
191
+ margin-left: 0px;
192
+ }
193
+ .filter-footer .add {
194
+ display: inline-flex;
195
+ -webkit-box-align: center;
196
+ align-items: center;
197
+ -webkit-box-pack: center;
198
+ justify-content: center;
199
+ position: relative;
200
+ box-sizing: border-box;
201
+ -webkit-tap-highlight-color: transparent;
202
+ outline: 0px;
203
+ border: 0px;
204
+ margin: 0px;
205
+ cursor: pointer;
206
+ user-select: none;
207
+ vertical-align: middle;
208
+ appearance: none;
209
+ text-decoration: none;
210
+ font-weight: 700;
211
+ font-style: normal;
212
+ font-size: 14px;
213
+ line-height: 18.52px;
214
+ letter-spacing: 1.25px;
215
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
216
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
217
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
218
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
219
+ box-shadow: none;
220
+ min-height: 36px;
221
+ }
222
+ .filter-footer .clear {
223
+ margin-left: auto !important;
224
+ }
225
+ .form-group .close {
226
+ user-select: none;
227
+ width: 1em;
228
+ height: 1em;
229
+ display: inline-block;
230
+ fill: currentcolor;
231
+ flex-shrink: 0;
232
+ transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
233
+ font-size: 1.25rem;
234
+ font-weight: lighter;
235
+ }
236
+ .no-display {
237
+ display: none;
238
+ }
239
+ .filter-local-operator-empty {
240
+ width: 54px;
241
+ border: none;
242
+ }
243
+ .grid-menu span.filter-superscript {
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ position: relative;
248
+ font-size: 0.75rem;
249
+ padding: 0;
250
+ height: 16px;
251
+ width: 16px;
252
+ border-radius: 50%;
253
+ background-color: #1456e0;
254
+ color: #ffffff;
255
+ position: absolute;
256
+ top: 0;
257
+ left: 1.6rem;
258
+ }
259
+
260
+ .filterlist {
261
+ width: 40px;
262
+ }
263
+ .filterColumnField {
264
+ width: 150px;
265
+ }
266
+ .filterValueField {
267
+ width: 190px;
268
+ }
269
+ .filterOperatorField {
270
+ width: 120px;
271
+ }
272
+ .add-filter-button.disabled {
273
+ opacity: 0.5;
274
+ cursor: not-allowed;
275
+ }
276
+ select:hover {
277
+ cursor: pointer;
278
+ }
279
+ input:hover {
280
+ cursor: text;
281
+ }
282
+ .tooltip-container {
283
+ position: relative;
284
+ display: inline-block;
285
+ }
286
+ .tool-tip {
287
+ color: #ffffff;
288
+ overflow-wrap: break-word;
289
+ border-radius: 3px;
290
+ background-color: #071454;
291
+ padding: 5px 8px;
292
+ font-family: 'Open Sans', sans-serif;
293
+ font-weight: 400;
294
+ font-style: normal;
295
+ font-size: 12px;
296
+ line-height: 16px;
297
+ letter-spacing: 0.4px;
298
+ position: absolute;
299
+ top: 42px;
300
+ right: 0;
301
+ z-index: 3;
302
+ white-space: nowrap;
303
+ display: none;
304
+ }
305
+ .filter-button:hover ~ .tool-tip {
306
+ display: block;
307
+ }
308
+ .tool-tip li {
309
+ margin-left: -21px;
310
+ color: #ffffff;
311
+ overflow-wrap: break-word;
312
+ border-radius: 3px;
313
+ font-family: 'Open Sans', sans-serif;
314
+ font-weight: 400;
315
+ font-style: normal;
316
+ font-size: 12px;
317
+ line-height: 16px;
318
+ letter-spacing: 0.4px;
319
+ max-width: 250px;
320
+ min-width: 200px;
321
+ white-space: wrap;
322
+ }
323
+ .tool-tip p {
324
+ margin: 0;
325
+ padding: 0;
326
+ font-family: 'Open Sans', sans-serif;
327
+ font-weight: 400;
328
+ font-style: normal;
329
+ font-size: 12px;
330
+ line-height: 16px;
331
+ letter-spacing: 0.4px;
332
+ }
333
+
334
+ .add-filter-button {
335
+ display: inline-flex;
336
+ -webkit-box-align: center;
337
+ align-items: center;
338
+ -webkit-box-pack: center;
339
+ justify-content: center;
340
+ position: relative;
341
+ box-sizing: border-box;
342
+ -webkit-tap-highlight-color: transparent;
343
+ outline: 0px;
344
+ border: 0px;
345
+ margin: 0px;
346
+ cursor: pointer;
347
+ user-select: none;
348
+ vertical-align: middle;
349
+ appearance: none;
350
+ text-decoration: none;
351
+ font-family: 'Red Hat Display', sans-serif;
352
+ font-weight: 700;
353
+ font-style: normal;
354
+ font-size: 14px;
355
+ line-height: 18.52px;
356
+ letter-spacing: 1.25px;
357
+ text-transform: uppercase;
358
+ color: #ffffff;
359
+ min-width: 64px;
360
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
361
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
362
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
363
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
364
+ box-shadow: none;
365
+ min-height: 36px;
366
+ border-radius: 100px;
367
+ background-color: unset;
368
+ }
369
+ .add-filter-button:disabled,
370
+ .clear:disabled {
371
+ opacity: 0.25;
372
+ cursor: not-allowed;
373
+ }
374
+ button {
375
+ -webkit-box-align: center;
376
+ -webkit-box-pack: center;
377
+ justify-content: center;
378
+ position: relative;
379
+ box-sizing: border-box;
380
+ -webkit-tap-highlight-color: transparent;
381
+ outline: 0px;
382
+ border: 0px;
383
+ margin: 0px;
384
+ cursor: pointer;
385
+ user-select: none;
386
+ vertical-align: middle;
387
+ appearance: none;
388
+ text-decoration: none;
389
+ font-family: 'Red Hat Display', sans-serif;
390
+ font-weight: 700;
391
+ font-style: normal;
392
+ font-size: 14px;
393
+ line-height: 18.52px;
394
+ letter-spacing: 1.25px;
395
+ text-transform: uppercase;
396
+ color: #ffffff;
397
+ min-width: 64px;
398
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
399
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
400
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
401
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
402
+ box-shadow: none;
403
+ min-height: 36px;
404
+ border-radius: 100px;
405
+ background-color: unset;
406
+ }
407
+ button.filter-button {
408
+ padding-inline: 0;
409
+ }
410
+ .grid-menu button {
411
+ align-items: center;
412
+ display: flex;
413
+ }
414
+ `;
@@ -0,0 +1,33 @@
1
+ import { css } from 'lit';
2
+
3
+ export const PaginationStyles = css`
4
+ .pagination {
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: end;
8
+ gap: 1rem;
9
+ font-size: 12px;
10
+ margin: 1rem;
11
+ }
12
+ .pagination-nav {
13
+ display: flex;
14
+ }
15
+ ix-select {
16
+ --md-outlined-field-bottom-space: 2px;
17
+ --md-outlined-field-top-space: 2px;
18
+ --md-outlined-button-outline-color: var(--md-sys-color-primary);
19
+ --md-outlined-select-text-field-outline-color: #ddd;
20
+ --md-menu-container-color: #fff;
21
+ --md-filled-select-text-field-active-indicator-height: 0px;
22
+ --md-filled-select-text-field-hover-indicator-height: 0px;
23
+ --md-filled-field-hover-active-indicator-height: 0px;
24
+ --md-filled-field-focus-active-indicator-height: 0px;
25
+ --md-sys-typescale-body-large-font: 'Open Sans', sans-serif;
26
+ --md-ref-typeface-plain: 'Open Sans', sans-serif;
27
+ --md-filled-field-content-size: 14px;
28
+ --md-sys-typescale-body-large-size: 14px;
29
+ --md-filled-field-bottom-space: 4px;
30
+ --md-filled-field-top-space: 4px;
31
+ --md-filled-field-container-color: #fff;
32
+ }
33
+ `;
@@ -0,0 +1,265 @@
1
+ import { css } from 'lit';
2
+
3
+ export const IxGridViewStyles = css`
4
+ @font-face {
5
+ font-family: 'Material Icons';
6
+ font-style: normal;
7
+ font-weight: 400;
8
+ src: url(https://fonts.gstatic.com/s/materialicons/v140/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf)
9
+ format('truetype');
10
+ }
11
+ .material-icons {
12
+ font-family: 'Material Icons';
13
+ font-weight: normal;
14
+ font-style: normal;
15
+ font-size: 24px;
16
+ line-height: 1;
17
+ letter-spacing: normal;
18
+ text-transform: none;
19
+ display: inline-block;
20
+ white-space: nowrap;
21
+ word-wrap: normal;
22
+ direction: ltr;
23
+ }
24
+ ix-dialog {
25
+ --md-dialog-container-color: #fff;
26
+ }
27
+ ix-textbox {
28
+ --md-sys-color-on-surface-variant: #b8bfc8;
29
+ }
30
+ ix-button {
31
+ --md-outlined-button-outline-color: var(--md-sys-color-primary);
32
+ --md-outlined-select-text-field-outline-color: #ddd;
33
+ }
34
+ ix-button .button-label {
35
+ text-transform: uppercase;
36
+ font-weight: bold;
37
+ letter-spacing: 1.25px;
38
+ }
39
+ .btn_primary {
40
+ --md-filled-button-container-color: var(--md-sys-color-primary);
41
+ }
42
+ .btn_primary ix-icon {
43
+ color: var(--md-sys-color-on-primary);
44
+ }
45
+ .btn_secondary {
46
+ --md-filled-button-container-color: var(--md-sys-color-secondary);
47
+ }
48
+ .btn_secondary ix-icon {
49
+ color: var(--md-sys-color-on-secondary);
50
+ }
51
+ .btn_tertiary {
52
+ --md-filled-button-container-color: var(--md-sys-color-tertiary);
53
+ }
54
+ .btn_tertiary ix-icon {
55
+ color: var(--md-sys-color-on-tertiary);
56
+ }
57
+ .btn_danger {
58
+ --md-filled-button-container-color: var(--md-sys-color-error);
59
+ }
60
+ .btn_danger ix-icon {
61
+ color: var(--md-sys-color-on-error);
62
+ }
63
+ .icon-btn_primary ix-icon {
64
+ color: var(--md-sys-color-primary);
65
+ }
66
+ .icon-btn_secondary ix-icon {
67
+ color: var(--md-sys-color-secondary);
68
+ }
69
+ .icon-btn_tertiary ix-icon {
70
+ color: var(--md-sys-color-tertiary);
71
+ }
72
+ .icon-btn_danger ix-icon {
73
+ color: var(--md-sys-color-error);
74
+ }
75
+ .dialog__headline {
76
+ margin: 0px;
77
+ font-family: 'Red Hat Display', sans-serif;
78
+ font-style: normal;
79
+ font-weight: bold;
80
+ font-size: 20px;
81
+ line-height: 24px;
82
+ letter-spacing: 0.15px;
83
+ padding: 24px;
84
+ }
85
+ .dialog-form {
86
+ min-width: 500px;
87
+ display: flex;
88
+ flex-direction: column;
89
+ justify-content: space-between;
90
+ padding: 8px 24px 20px;
91
+ }
92
+ .dialog-form .textfield {
93
+ width: 100%;
94
+ }
95
+ .dialog-form.sm {
96
+ min-width: 560px;
97
+ }
98
+ .dialog-form__info {
99
+ margin: 0px;
100
+ font-family: 'Open Sans', sans-serif;
101
+ font-style: normal;
102
+ font-weight: 400;
103
+ font-size: 16px;
104
+ line-height: 28px;
105
+ letter-spacing: 0.44px;
106
+ color: rgba(9, 34, 65, 0.7);
107
+ }
108
+ .dialog-form__textbox {
109
+ padding-top: 1rem;
110
+ }
111
+ .dialog-actions {
112
+ display: flex;
113
+ justify-content: flex-end;
114
+ padding: 8px 15px 8px 20px;
115
+ }
116
+ .material-icons {
117
+ font-family: 'Material Icons';
118
+ font-weight: normal;
119
+ font-style: normal;
120
+ font-size: 24px;
121
+ line-height: 1;
122
+ letter-spacing: normal;
123
+ text-transform: none;
124
+ display: inline-block;
125
+ white-space: nowrap;
126
+ word-wrap: normal;
127
+ direction: ltr;
128
+ }
129
+ .material-icons.delete {
130
+ color: #6d758c;
131
+ }
132
+ .material-icons.info {
133
+ color: orange;
134
+ font-size: 48px;
135
+ }
136
+ .material-icons.check_circle {
137
+ color: green;
138
+ }
139
+ .material-icons.mail {
140
+ color: #ff9800;
141
+ }
142
+ .material-icons.warning {
143
+ color: #db0028;
144
+ }
145
+ .material-icons.do_not_disturb_on {
146
+ color: #6d758c;
147
+ }
148
+ ix-dialog {
149
+ --md-dialog-container-color: #fff;
150
+ }
151
+ .grid-container {
152
+ background-color: #ffffff;
153
+ border-radius: 12px;
154
+ box-shadow: rgba(0, 0, 0, 0.12) 0px 12px 20px -12px,
155
+ #e1e4e8 0px 0px 0px 1px inset;
156
+ box-sizing: border-box;
157
+ padding: 3px;
158
+ }
159
+ .grid-header {
160
+ display: flex;
161
+ -webkit-box-pack: justify;
162
+ place-content: center space-between;
163
+ -webkit-box-align: center;
164
+ align-items: center;
165
+ padding: 0px 11px 0px 24px;
166
+ flex-wrap: wrap;
167
+ gap: 18px;
168
+ height: 64px;
169
+ }
170
+ .grid-header h2 {
171
+ margin: 0px;
172
+ font-style: normal;
173
+ font-weight: bold;
174
+ font-size: 20px;
175
+ line-height: 24px;
176
+ letter-spacing: 0.15px;
177
+ color: #092241;
178
+ overflow: hidden;
179
+ text-overflow: ellipsis;
180
+ white-space: nowrap;
181
+ font-family: 'Red Hat Display', sans-serif;
182
+ }
183
+ .grid-menu {
184
+ display: flex;
185
+ gap: 0.5rem;
186
+ }
187
+ .grid-menu span {
188
+ color: #1456e0;
189
+ cursor: pointer;
190
+ }
191
+ .grid-empty-content {
192
+ height: 73vh;
193
+ justify-content: center;
194
+ align-items: flex-start;
195
+ padding-top: 54px;
196
+ }
197
+ .grid-empty-content h2 {
198
+ font-weight: 900;
199
+ font-size: 22px;
200
+ font-family: 'Red Hat Display', sans-serif;
201
+ color: black;
202
+ }
203
+
204
+ .header {
205
+ font-weight: bold;
206
+ display: flex;
207
+ user-select: none;
208
+ align-items: center;
209
+ }
210
+ .header .header-sort-icon {
211
+ padding-left: 5px;
212
+ opacity: 0;
213
+ font-size: 17px;
214
+ color: rgba(0, 0, 0, 0.54);
215
+ cursor: pointer;
216
+ height: 18px;
217
+ }
218
+ .header:hover .header-sort-icon {
219
+ opacity: 1;
220
+ }
221
+ .loading {
222
+ opacity: 0.25;
223
+ }
224
+
225
+ span .disabled {
226
+ color: rgba(9, 34, 65, 0.7);
227
+ }
228
+
229
+ .disable-cursor {
230
+ cursor: default !important;
231
+ }
232
+
233
+ .accounts {
234
+ display: flex;
235
+ align-items: center;
236
+ }
237
+ .account-name {
238
+ margin: 0 8px 0 3px;
239
+ }
240
+
241
+ ix-icon-button {
242
+ --md-icon-button-icon-color: rgb(20, 86, 224);
243
+ --md-icon-button-icon-size: 28px;
244
+ }
245
+
246
+ .header ix-icon-button {
247
+ padding-left: 5px;
248
+ opacity: 0;
249
+ cursor: pointer;
250
+ height: 18px;
251
+ --md-icon-button-icon-color: rgba(0, 0, 0, 0.54);
252
+ --md-icon-button-icon-size: 18px;
253
+ }
254
+
255
+ vaadin-grid-cell-content {
256
+ font-family: 'Red Hat Display', sans-serif;
257
+ font-size: 14px;
258
+ --_cell-padding: 1rem;
259
+ }
260
+
261
+ .row-limit {
262
+ display: flex;
263
+ padding: 8px;
264
+ }
265
+ `;
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { IxGrid } from './IxGrid.js';
@@ -0,0 +1,10 @@
1
+ export const copy = {
2
+ activeFilter: 'active filter',
3
+ filters: 'Filters',
4
+ hideFilters: 'Hide Filters',
5
+ showFilters: 'Show Filters',
6
+ rowsPerPage: 'Rows per page',
7
+ user: 'user',
8
+ viewMore: 'VIEW MORE',
9
+ viewLess: 'VIEW LESS',
10
+ };
package/src/ix-grid.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { IxGrid } from './IxGrid.js';
2
+
3
+ window.customElements.define('ix-grid', IxGrid);