@dxos/lit-grid 0.8.3 → 0.8.4-main.1da679c

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 (107) hide show
  1. package/dist/src/defs.d.ts +1 -0
  2. package/dist/src/defs.d.ts.map +1 -1
  3. package/dist/src/defs.js +1 -0
  4. package/dist/src/defs.js.map +1 -1
  5. package/dist/src/dx-grid-axis-resize-handle.d.ts.map +1 -1
  6. package/dist/src/dx-grid-axis-resize-handle.js +3 -5
  7. package/dist/src/dx-grid-axis-resize-handle.js.map +1 -1
  8. package/dist/src/dx-grid-multiselect-cell.d.ts.map +1 -1
  9. package/dist/src/dx-grid-multiselect-cell.js +2 -1
  10. package/dist/src/dx-grid-multiselect-cell.js.map +1 -1
  11. package/dist/src/dx-grid.d.ts +11 -6
  12. package/dist/src/dx-grid.d.ts.map +1 -1
  13. package/dist/src/dx-grid.js +229 -150
  14. package/dist/src/dx-grid.js.map +1 -1
  15. package/dist/src/dx-grid.lit-stories.d.ts +1 -0
  16. package/dist/src/dx-grid.lit-stories.d.ts.map +1 -1
  17. package/dist/src/dx-grid.lit-stories.js +19 -20
  18. package/dist/src/dx-grid.lit-stories.js.map +1 -1
  19. package/dist/src/playwright/dx-grid.spec.d.ts.map +1 -0
  20. package/dist/src/{testing/playwright → playwright}/dx-grid.spec.js +3 -3
  21. package/dist/src/playwright/dx-grid.spec.js.map +1 -0
  22. package/dist/src/playwright/playwright.config.d.ts +3 -0
  23. package/dist/src/playwright/playwright.config.d.ts.map +1 -0
  24. package/dist/src/playwright/playwright.config.js +15 -0
  25. package/dist/src/playwright/playwright.config.js.map +1 -0
  26. package/dist/src/testing/{playwright/dx-grid-manager.d.ts → dx-grid-manager.d.ts} +1 -1
  27. package/dist/src/testing/dx-grid-manager.d.ts.map +1 -0
  28. package/dist/src/testing/dx-grid-manager.js.map +1 -0
  29. package/dist/src/testing/index.d.ts +1 -1
  30. package/dist/src/testing/index.d.ts.map +1 -1
  31. package/dist/src/testing/index.js +1 -1
  32. package/dist/src/testing/index.js.map +1 -1
  33. package/dist/src/types.d.ts +7 -0
  34. package/dist/src/types.d.ts.map +1 -1
  35. package/dist/src/types.js.map +1 -1
  36. package/dist/src/util.d.ts +4 -1
  37. package/dist/src/util.d.ts.map +1 -1
  38. package/dist/src/util.js +11 -11
  39. package/dist/src/util.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +6 -5
  42. package/src/defs.ts +1 -0
  43. package/src/dx-grid-axis-resize-handle.pcss +7 -0
  44. package/src/dx-grid-axis-resize-handle.ts +1 -1
  45. package/src/dx-grid-multiselect-cell.pcss +2 -2
  46. package/src/dx-grid-multiselect-cell.ts +2 -1
  47. package/src/dx-grid.lit-stories.ts +6 -2
  48. package/src/dx-grid.pcss +133 -15
  49. package/src/dx-grid.ts +240 -100
  50. package/src/{testing/playwright → playwright}/dx-grid.spec.ts +5 -5
  51. package/src/playwright/playwright.config.ts +17 -0
  52. package/src/testing/{playwright/dx-grid-manager.ts → dx-grid-manager.ts} +2 -2
  53. package/src/testing/index.ts +1 -1
  54. package/src/types.ts +7 -0
  55. package/src/util.ts +13 -9
  56. package/dist/src/testing/playwright/dx-grid-manager.d.ts.map +0 -1
  57. package/dist/src/testing/playwright/dx-grid-manager.js.map +0 -1
  58. package/dist/src/testing/playwright/dx-grid.spec.d.ts.map +0 -1
  59. package/dist/src/testing/playwright/dx-grid.spec.js.map +0 -1
  60. package/dist/types/src/defs.d.ts +0 -3
  61. package/dist/types/src/defs.d.ts.map +0 -1
  62. package/dist/types/src/defs.js +0 -6
  63. package/dist/types/src/defs.js.map +0 -1
  64. package/dist/types/src/dx-grid-axis-resize-handle.d.ts +0 -16
  65. package/dist/types/src/dx-grid-axis-resize-handle.d.ts.map +0 -1
  66. package/dist/types/src/dx-grid-axis-resize-handle.js +0 -100
  67. package/dist/types/src/dx-grid-axis-resize-handle.js.map +0 -1
  68. package/dist/types/src/dx-grid-multiselect-cell.d.ts +0 -13
  69. package/dist/types/src/dx-grid-multiselect-cell.d.ts.map +0 -1
  70. package/dist/types/src/dx-grid-multiselect-cell.js +0 -56
  71. package/dist/types/src/dx-grid-multiselect-cell.js.map +0 -1
  72. package/dist/types/src/dx-grid.d.ts +0 -170
  73. package/dist/types/src/dx-grid.d.ts.map +0 -1
  74. package/dist/types/src/dx-grid.js +0 -1347
  75. package/dist/types/src/dx-grid.js.map +0 -1
  76. package/dist/types/src/dx-grid.lit-stories.d.ts +0 -46
  77. package/dist/types/src/dx-grid.lit-stories.d.ts.map +0 -1
  78. package/dist/types/src/dx-grid.lit-stories.js +0 -179
  79. package/dist/types/src/dx-grid.lit-stories.js.map +0 -1
  80. package/dist/types/src/index.d.ts +0 -5
  81. package/dist/types/src/index.d.ts.map +0 -1
  82. package/dist/types/src/index.js +0 -8
  83. package/dist/types/src/index.js.map +0 -1
  84. package/dist/types/src/testing/index.d.ts +0 -2
  85. package/dist/types/src/testing/index.d.ts.map +0 -1
  86. package/dist/types/src/testing/index.js +0 -5
  87. package/dist/types/src/testing/index.js.map +0 -1
  88. package/dist/types/src/testing/playwright/dx-grid-manager.d.ts +0 -24
  89. package/dist/types/src/testing/playwright/dx-grid-manager.d.ts.map +0 -1
  90. package/dist/types/src/testing/playwright/dx-grid-manager.js +0 -79
  91. package/dist/types/src/testing/playwright/dx-grid-manager.js.map +0 -1
  92. package/dist/types/src/testing/playwright/dx-grid.spec.d.ts +0 -2
  93. package/dist/types/src/testing/playwright/dx-grid.spec.d.ts.map +0 -1
  94. package/dist/types/src/testing/playwright/dx-grid.spec.js +0 -92
  95. package/dist/types/src/testing/playwright/dx-grid.spec.js.map +0 -1
  96. package/dist/types/src/types.d.ts +0 -137
  97. package/dist/types/src/types.d.ts.map +0 -1
  98. package/dist/types/src/types.js +0 -46
  99. package/dist/types/src/types.js.map +0 -1
  100. package/dist/types/src/util.d.ts +0 -39
  101. package/dist/types/src/util.d.ts.map +0 -1
  102. package/dist/types/src/util.js +0 -165
  103. package/dist/types/src/util.js.map +0 -1
  104. package/dist/types/tsconfig.tsbuildinfo +0 -1
  105. package/src/testing/playwright/playwright.config.cts +0 -18
  106. /package/dist/src/{testing/playwright → playwright}/dx-grid.spec.d.ts +0 -0
  107. /package/dist/src/testing/{playwright/dx-grid-manager.js → dx-grid-manager.js} +0 -0
package/src/dx-grid.pcss CHANGED
@@ -4,7 +4,11 @@
4
4
  @layer dx-tokens {
5
5
  :root {
6
6
  --dx-grid-cell-padding-block: 0.2rem;
7
+ --dx-grid-cell-content-padding-block: calc(var(--dx-grid-cell-padding-block) - 1px);
8
+ --dx-grid-cell-editor-padding-block: var(--dx-grid-cell-content-padding-block);
7
9
  --dx-grid-cell-padding-inline: 0.25rem;
10
+ --dx-grid-cell-content-padding-inline: calc(var(--dx-grid-cell-padding-inline) - 1px);
11
+ --dx-grid-cell-editor-padding-inline: var(--dx-grid-cell-content-padding-inline);
8
12
  }
9
13
  }
10
14
 
@@ -63,19 +67,14 @@
63
67
  }
64
68
 
65
69
  .dx-grid {
70
+ --dx-grid-cell-surface: var(--dx-grid-base, var(--dx-baseSurface));
71
+
66
72
  [role='gridcell'],
67
73
  [role='columnheader'],
68
74
  [role='rowheader'] {
69
- position: relative;
70
- background: var(--dx-grid-base, var(--dx-baseSurface));
71
- /** This must match CellEditor styling in `CellEditor.tsx`. */
72
- padding: var(--dx-grid-cell-padding-block) var(--dx-grid-cell-padding-inline);
73
- box-sizing: border-box;
74
- border: 1px solid transparent;
75
- overflow: hidden;
76
- text-overflow: ellipsis;
77
- white-space: nowrap;
75
+ background: var(--dx-grid-cell-surface);
78
76
  cursor: pointer;
77
+ position: relative;
79
78
 
80
79
  &[aria-readonly='true'] {
81
80
  cursor: default;
@@ -86,13 +85,30 @@
86
85
  user-select: text;
87
86
  }
88
87
 
89
- &:focus:not([aria-readonly='true']),
90
- &:focus-visible {
91
- z-index: 2;
92
- border-color: var(--dx-accentSurface);
88
+ &:focus {
93
89
  outline: none;
94
90
  }
95
91
 
92
+ & > .dx-grid__cell__content {
93
+ padding-inline: var(--dx-grid-cell-content-padding-inline);
94
+ padding-block: var(--dx-grid-cell-content-padding-block);
95
+ box-sizing: border-box;
96
+ overflow: hidden;
97
+ text-overflow: ellipsis;
98
+ white-space: nowrap;
99
+ block-size: 100%;
100
+ position: relative;
101
+ border: 1px solid transparent;
102
+ border-radius: 2px;
103
+
104
+ &:has(.dx-tag), &:has(dx-tag-picker-item) {
105
+ text-overflow: clip;
106
+ line-height: 0;
107
+ --dx-grid-cell-content-padding-inline: 1px;
108
+ --dx-grid-cell-content-padding-block: 1px;
109
+ }
110
+ }
111
+
96
112
  &.dx-grid__cell--commented {
97
113
  background: var(--dx-grid-commented, var(--dx-gridCommented));
98
114
  }
@@ -103,17 +119,105 @@
103
119
  [role='columnheader'],
104
120
  [role='rowheader'] {
105
121
  &[aria-selected] {
106
- background: var(--dx-gridSelectionOverlay);
122
+ --dx-grid-cell-surface: var(--dx-gridSelectionOverlay);
123
+
124
+ &:focus:not([aria-readonly='true']),
125
+ &:focus-visible, &:focus-within {
126
+ & > .dx-grid__cell__content {
127
+ background: transparent;
128
+ }
129
+ }
107
130
  }
108
131
  }
109
132
  }
133
+
134
+ .dx-grid__row--cta__cell {
135
+ transition: background-color 100ms linear;
136
+ & > .dx-grid__cell__content {
137
+ cursor: pointer;
138
+ background: transparent !important;
139
+ }
140
+ }
141
+
142
+ &:has(.dx-grid__row--cta__cell:hover) .dx-grid__row--cta__cell {
143
+ background: var(--dx-hoverOverlay);
144
+ }
110
145
  }
111
146
 
147
+ /* Editor and focused cell styles; be sure to keep these two blocks in-sync. */
148
+ .dx-grid {
149
+ [role='gridcell'],
150
+ [role='columnheader'],
151
+ [role='rowheader'] {
152
+ &:not([data-focus-unfurl="false"]):not(.dx-grid__cell--no-focus-unfurl) {
153
+ &:focus,
154
+ &:focus-within {
155
+ & > .dx-grid__cell__content {
156
+ min-block-size: 100%;
157
+ block-size: min-content;
158
+ max-block-size: min(12em, 50vh);
159
+
160
+ min-inline-size: 100%;
161
+ inline-size: min-content;
162
+ max-inline-size: min(60ch, 90vw);
163
+
164
+ overflow: auto;
165
+ scrollbar-width: thin;
166
+ overscroll-behavior: contain;
167
+
168
+ white-space: normal;
169
+ hyphens: auto;
170
+ overflow-wrap: break-word;
171
+
172
+ z-index: 1;
173
+
174
+ background: var(--dx-grid-cell-surface);
175
+ }
176
+
177
+ &:not([aria-readonly='true']) > .dx-grid__cell__content {
178
+ border-color: var(--dx-accentSurface);
179
+ }
180
+ }
181
+ }
182
+
183
+ &:focus-visible > .dx-grid__cell__content {
184
+ border-color: var(--dx-accentSurface);
185
+ }
186
+ }
187
+ }
188
+
189
+ .dx-grid__cell-editor {
190
+ font-variant-numeric: tabular-nums;
191
+ white-space: normal;
192
+ hyphens: auto;
193
+ overflow-wrap: break-word;
194
+
195
+ background: var(--dx-grid-base, var(--dx-baseSurface));
196
+ border: 1px solid var(--dx-accentSurface);
197
+ border-radius: 2px;
198
+
199
+ --dx-grid-cell-editor-max-block-size: min(12em, 50vh);
200
+ --dx-grid-cell-editor-max-inline-size: min(60ch, 90vw);
201
+
202
+ block-size: min-content;
203
+ max-block-size: var(--dx-grid-cell-editor-max-block-size);
204
+ inline-size: min-content;
205
+ max-inline-size: var(--dx-grid-cell-editor-max-inline-size);
206
+
207
+ &:has(.dx-tag), &:has(dx-tag-picker-item) {
208
+ text-overflow: clip;
209
+ line-height: 0;
210
+ --dx-grid-cell-editor-padding-inline: 1px;
211
+ --dx-grid-cell-editor-padding-block: 1px;
212
+ }
213
+ }
214
+
215
+ /* /// */
112
216
  .dx-grid-host:focus-within .dx-grid:not(:focus-within) {
113
217
  [role='gridcell'],
114
218
  [role='columnheader'],
115
219
  [role='rowheader'] {
116
- &[data-dx-active]:not([aria-readonly='true']) {
220
+ &[data-dx-active]:not([aria-readonly='true']) > .dx-grid__cell__content {
117
221
  border-color: var(--dx-accentSurface);
118
222
  }
119
223
  }
@@ -132,6 +236,20 @@
132
236
  background: rgba(0, 255, 0, 0.1);
133
237
  }
134
238
  }
239
+
240
+ .dx-grid__cell--flagged {
241
+ &::after {
242
+ content: '';
243
+ position: absolute;
244
+ inset-block-start: 0;
245
+ inset-inline-end: 0;
246
+ inline-size: 0;
247
+ block-size: 0;
248
+ border-inline-start: 0.5em solid transparent;
249
+ border-block-start: 0.5em solid var(--dx-warningText);
250
+ z-index: 1;
251
+ }
252
+ }
135
253
  }
136
254
 
137
255
  /* TODO(thure): Move this somewhere better. */