@dxos/lit-grid 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77

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 (38) 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 +12 -7
  12. package/dist/src/dx-grid.d.ts.map +1 -1
  13. package/dist/src/dx-grid.js +195 -157
  14. package/dist/src/dx-grid.js.map +1 -1
  15. package/dist/src/dx-grid.lit-stories.js +15 -18
  16. package/dist/src/dx-grid.lit-stories.js.map +1 -1
  17. package/dist/src/playwright/dx-grid.spec.js.map +1 -1
  18. package/dist/src/testing/dx-grid-manager.d.ts.map +1 -1
  19. package/dist/src/testing/dx-grid-manager.js.map +1 -1
  20. package/dist/src/types.d.ts +9 -0
  21. package/dist/src/types.d.ts.map +1 -1
  22. package/dist/src/types.js.map +1 -1
  23. package/dist/src/util.d.ts +4 -1
  24. package/dist/src/util.d.ts.map +1 -1
  25. package/dist/src/util.js +11 -11
  26. package/dist/src/util.js.map +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/package.json +4 -4
  29. package/src/defs.ts +1 -0
  30. package/src/dx-grid-axis-resize-handle.pcss +6 -0
  31. package/src/dx-grid-axis-resize-handle.ts +1 -1
  32. package/src/dx-grid-multiselect-cell.ts +2 -1
  33. package/src/dx-grid.pcss +47 -31
  34. package/src/dx-grid.ts +189 -105
  35. package/src/playwright/dx-grid.spec.ts +1 -1
  36. package/src/testing/dx-grid-manager.ts +1 -1
  37. package/src/types.ts +11 -0
  38. package/src/util.ts +13 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/lit-grid",
3
- "version": "0.8.4-main.84f28bd",
3
+ "version": "0.8.4-main.a4bbb77",
4
4
  "description": "A grid Web Component using Lit",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -36,10 +36,10 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@atlaskit/pragmatic-drag-and-drop": "^1.4.0",
39
- "lit": "^3.2.0"
39
+ "lit": "^3.3.1"
40
40
  },
41
41
  "devDependencies": {
42
- "@dxos/random": "0.8.4-main.84f28bd",
43
- "@dxos/test-utils": "0.8.4-main.84f28bd"
42
+ "@dxos/random": "0.8.4-main.a4bbb77",
43
+ "@dxos/test-utils": "0.8.4-main.a4bbb77"
44
44
  }
45
45
  }
package/src/defs.ts CHANGED
@@ -4,3 +4,4 @@
4
4
 
5
5
  export const defaultColSize = 180;
6
6
  export const defaultRowSize = 30;
7
+ export const focusUnfurlDefault = true;
@@ -21,4 +21,10 @@ dx-grid-axis-resize-handle {
21
21
  block-size: .5rem;
22
22
  cursor: row-resize;
23
23
  }
24
+ &:focus {
25
+ outline: none;
26
+ }
27
+ &:focus-visible {
28
+ background: var(--dx-grid-resizeHandleFocus, var(--dx-accentSurface));
29
+ }
24
30
  }
@@ -6,7 +6,7 @@ import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
6
6
  import { disableNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/disable-native-drag-preview';
7
7
  import { preventUnhandled } from '@atlaskit/pragmatic-drag-and-drop/prevent-unhandled';
8
8
  import { type CleanupFn, type DragLocationHistory } from '@atlaskit/pragmatic-drag-and-drop/types';
9
- import { html, LitElement } from 'lit';
9
+ import { LitElement, html } from 'lit';
10
10
  import { customElement, property } from 'lit/decorators.js';
11
11
  import { ref } from 'lit/directives/ref.js';
12
12
 
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { html, LitElement } from 'lit';
5
+ import { LitElement, html } from 'lit';
6
6
  import { customElement, property } from 'lit/decorators.js';
7
7
 
8
8
  export type DxGridSelectValue = {
@@ -31,6 +31,7 @@ export class DxGridMultiselectCell extends LitElement {
31
31
  aria-haspopup="dialog"
32
32
  class="dx-grid__cell__multiselect"
33
33
  data-dx-grid-accessory="invoke-multiselect"
34
+ data-dx-grid-action="accessory"
34
35
  >
35
36
  ${this.values.length > 0
36
37
  ? this.values.map(({ label }) => html`<span class="dx-grid__cell__multiselect__value">${label}</span>`)
package/src/dx-grid.pcss CHANGED
@@ -4,10 +4,10 @@
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);
7
+ --dx-grid-cell-content-padding-block: calc(var(--dx-grid-cell-padding-block) - var(--dx-gridFocusIndicatorWidth));
8
8
  --dx-grid-cell-editor-padding-block: var(--dx-grid-cell-content-padding-block);
9
9
  --dx-grid-cell-padding-inline: 0.25rem;
10
- --dx-grid-cell-content-padding-inline: calc(var(--dx-grid-cell-padding-inline) - 1px);
10
+ --dx-grid-cell-content-padding-inline: calc(var(--dx-grid-cell-padding-inline) - var(--dx-gridFocusIndicatorWidth));
11
11
  --dx-grid-cell-editor-padding-inline: var(--dx-grid-cell-content-padding-inline);
12
12
  }
13
13
  }
@@ -54,7 +54,7 @@
54
54
  position: absolute;
55
55
  inset: 0;
56
56
  pointer-events: none;
57
- border: 1px solid var(--dx-accentSurface);
57
+ border: var(--dx-gridFocusIndicatorWidth) solid var(--dx-gridFocusIndicatorColor);
58
58
  }
59
59
  }
60
60
 
@@ -98,7 +98,7 @@
98
98
  white-space: nowrap;
99
99
  block-size: 100%;
100
100
  position: relative;
101
- border: 1px solid transparent;
101
+ border: var(--dx-gridFocusIndicatorWidth) solid transparent;
102
102
  border-radius: 2px;
103
103
 
104
104
  &:has(.dx-tag), &:has(dx-tag-picker-item) {
@@ -130,6 +130,18 @@
130
130
  }
131
131
  }
132
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
+ }
133
145
  }
134
146
 
135
147
  /* Editor and focused cell styles; be sure to keep these two blocks in-sync. */
@@ -137,36 +149,39 @@
137
149
  [role='gridcell'],
138
150
  [role='columnheader'],
139
151
  [role='rowheader'] {
140
- &:focus,
141
- &:focus-within {
142
- & > .dx-grid__cell__content {
143
- min-block-size: 100%;
144
- block-size: min-content;
145
- max-block-size: min(12em, 50vh);
146
-
147
- min-inline-size: 100%;
148
- inline-size: min-content;
149
- max-inline-size: min(60ch, 90vw);
150
-
151
- overflow: auto;
152
- scrollbar-width: thin;
153
- overscroll-behavior: contain;
154
-
155
- white-space: normal;
156
- hyphens: auto;
157
- overflow-wrap: break-word;
158
-
159
- z-index: 1;
160
- }
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);
161
159
 
162
- &:not([aria-readonly='true']) > .dx-grid__cell__content {
163
- background: var(--dx-grid-cell-surface);
164
- border-color: var(--dx-accentSurface);
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-gridFocusIndicatorColor);
179
+ }
165
180
  }
166
181
  }
167
182
 
168
183
  &:focus-visible > .dx-grid__cell__content {
169
- border-color: var(--dx-accentSurface);
184
+ border-color: var(--dx-gridFocusIndicatorColor);
170
185
  }
171
186
  }
172
187
  }
@@ -178,7 +193,7 @@
178
193
  overflow-wrap: break-word;
179
194
 
180
195
  background: var(--dx-grid-base, var(--dx-baseSurface));
181
- border: 1px solid var(--dx-accentSurface);
196
+ border: var(--dx-gridFocusIndicatorWidth) solid var(--dx-gridFocusIndicatorColor);
182
197
  border-radius: 2px;
183
198
 
184
199
  --dx-grid-cell-editor-max-block-size: min(12em, 50vh);
@@ -203,7 +218,7 @@
203
218
  [role='columnheader'],
204
219
  [role='rowheader'] {
205
220
  &[data-dx-active]:not([aria-readonly='true']) > .dx-grid__cell__content {
206
- border-color: var(--dx-accentSurface);
221
+ border-color: var(--dx-gridFocusIndicatorColor);
207
222
  }
208
223
  }
209
224
  }
@@ -232,6 +247,7 @@
232
247
  block-size: 0;
233
248
  border-inline-start: 0.5em solid transparent;
234
249
  border-block-start: 0.5em solid var(--dx-warningText);
250
+ z-index: 1;
235
251
  }
236
252
  }
237
253
  }