@mixtint/primer-view-components 0.90.1 → 0.91.2

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.
@@ -480,6 +480,7 @@ _ActionMenuElement_handleItemActivated = function _ActionMenuElement_handleItemA
480
480
  _ActionMenuElement_handleIncludeFragmentReplaced = function _ActionMenuElement_handleIncludeFragmentReplaced() {
481
481
  __classPrivateFieldGet(this, _ActionMenuElement_instances, "a", _ActionMenuElement_firstItem_get)?.focus();
482
482
  __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_softDisableItems).call(this);
483
+ this.overlay?.update();
483
484
  // async items have loaded, so component is ready
484
485
  this.setAttribute('data-ready', 'true');
485
486
  };
@@ -292,6 +292,34 @@
292
292
  }
293
293
  }
294
294
 
295
+ @media (min-width: 1012px) {
296
+
297
+ .Layout.Layout--sidebar-xwide {
298
+ --Layout-sidebar-width: 408px;
299
+ }
300
+ }
301
+
302
+ @media (min-width: 1280px) {
303
+
304
+ .Layout.Layout--sidebar-xwide {
305
+ --Layout-sidebar-width: 440px;
306
+ }
307
+ }
308
+
309
+ @media (min-width: 1012px) {
310
+
311
+ .Layout.Layout--sidebar-xxwide {
312
+ --Layout-sidebar-width: 512px;
313
+ }
314
+ }
315
+
316
+ @media (min-width: 1280px) {
317
+
318
+ .Layout.Layout--sidebar-xxwide {
319
+ --Layout-sidebar-width: 544px;
320
+ }
321
+ }
322
+
295
323
  /* Sidebar position */
296
324
 
297
325
  .Layout.Layout--sidebarPosition-start .Layout-sidebar {
@@ -54,6 +54,8 @@
54
54
  ".Layout.Layout--gutter-spacious",
55
55
  ".Layout.Layout--sidebar-narrow",
56
56
  ".Layout.Layout--sidebar-wide",
57
+ ".Layout.Layout--sidebar-xwide",
58
+ ".Layout.Layout--sidebar-xxwide",
57
59
  ".Layout.Layout--sidebarPosition-start .Layout-sidebar",
58
60
  ".Layout.Layout--sidebarPosition-start .Layout-main",
59
61
  ".Layout.Layout--sidebarPosition-end",
@@ -194,7 +194,13 @@
194
194
 
195
195
  .ToggleSwitch-statusIcon {
196
196
  display: flex;
197
+ flex: none;
198
+ align-items: center;
199
+ justify-content: center;
197
200
  width: var(--base-size-16);
201
+ height: var(--base-size-16);
202
+ /* stylelint-disable-next-line primer/typography */
203
+ line-height: 0;
198
204
  /* stylelint-disable-next-line primer/spacing */
199
205
  margin-top: 0.063rem;
200
206
  }
@@ -1,4 +1,4 @@
1
- import { SelectStrategy, SelectVariant, TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
1
+ import { type SelectStrategy, type SelectVariant, TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
2
2
  import type { TreeViewCheckedValue, TreeViewNodeInfo, TreeViewNodeType } from '../../shared_events';
3
3
  export declare class TreeViewElement extends HTMLElement {
4
4
  #private;
@@ -15,7 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
16
16
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
17
  };
18
- var _TreeViewElement_instances, _TreeViewElement_abortController, _TreeViewElement_autoExpandFrom, _TreeViewElement_eventIsActivation, _TreeViewElement_nodeForEvent, _TreeViewElement_handleNodeEvent, _TreeViewElement_eventIsCheckboxToggle, _TreeViewElement_handleCheckboxToggle, _TreeViewElement_eventIsSingleSelection, _TreeViewElement_handleNodeActivated, _TreeViewElement_handleNodeFocused, _TreeViewElement_handleNodeKeyboardEvent, _TreeViewElement_checkNodeOnly;
18
+ var _TreeViewElement_instances, _TreeViewElement_abortController, _TreeViewElement_containsCheckedTreeItem, _TreeViewElement_autoExpandFrom, _TreeViewElement_eventIsActivation, _TreeViewElement_nodeForEvent, _TreeViewElement_handleNodeEvent, _TreeViewElement_eventIsCheckboxToggle, _TreeViewElement_handleCheckboxToggle, _TreeViewElement_eventIsSingleSelection, _TreeViewElement_handleNodeActivated, _TreeViewElement_handleNodeFocused, _TreeViewElement_handleNodeKeyboardEvent, _TreeViewElement_checkNodeOnly;
19
19
  import { controller, target } from '@github/catalyst';
20
20
  import { useRovingTabIndex } from './tree_view_roving_tab_index';
21
21
  let TreeViewElement = class TreeViewElement extends HTMLElement {
@@ -36,7 +36,6 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
36
36
  for (const addedNode of mutation.addedNodes) {
37
37
  if (!(addedNode instanceof HTMLElement))
38
38
  continue;
39
- // eslint-disable-next-line custom-elements/no-dom-traversal-in-connectedcallback
40
39
  if (addedNode.querySelector('[aria-expanded=true]')) {
41
40
  __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_autoExpandFrom).call(this, addedNode);
42
41
  }
@@ -50,6 +49,9 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
50
49
  // nodes based on the component's select strategy. These two observers can conflict and cause infinite
51
50
  // looping, so we make sure something actually changed before computing inputs again.
52
51
  const somethingChanged = mutations.some(m => {
52
+ if (m.type === 'childList') {
53
+ return __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_containsCheckedTreeItem).call(this, m.addedNodes) || __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_containsCheckedTreeItem).call(this, m.removedNodes);
54
+ }
53
55
  if (!(m.target instanceof HTMLElement))
54
56
  return false;
55
57
  return m.target.getAttribute('aria-checked') !== m.oldValue;
@@ -62,6 +64,7 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
62
64
  childList: true,
63
65
  subtree: true,
64
66
  attributeFilter: ['aria-checked'],
67
+ attributeOldValue: true,
65
68
  });
66
69
  // Correctly initialize the form
67
70
  if (this.formInputContainer) {
@@ -278,7 +281,6 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
278
281
  }
279
282
  updateHiddenFormInputs() {
280
283
  const newInputs = [];
281
- // eslint-disable-next-line custom-elements/no-dom-traversal-in-connectedcallback
282
284
  for (const node of this.querySelectorAll('[role=treeitem][aria-checked=true]')) {
283
285
  const newInput = this.formInputPrototype.cloneNode();
284
286
  newInput.removeAttribute('data-target');
@@ -300,6 +302,14 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
300
302
  };
301
303
  _TreeViewElement_abortController = new WeakMap();
302
304
  _TreeViewElement_instances = new WeakSet();
305
+ _TreeViewElement_containsCheckedTreeItem = function _TreeViewElement_containsCheckedTreeItem(nodes) {
306
+ return [...nodes].some(node => {
307
+ if (!(node instanceof Element))
308
+ return false;
309
+ return (node.matches('[role=treeitem][aria-checked=true]') ||
310
+ Boolean(node.querySelector('[role=treeitem][aria-checked=true]')));
311
+ });
312
+ };
303
313
  _TreeViewElement_autoExpandFrom = function _TreeViewElement_autoExpandFrom(root) {
304
314
  for (const element of root.querySelectorAll('[aria-expanded=true]')) {
305
315
  this.expandAncestorsForNode(element);
@@ -1,5 +1,5 @@
1
1
  import { CollapsibleElement } from '../collapsible';
2
- declare class CollapsibleHeaderElement extends CollapsibleElement {
2
+ export declare class CollapsibleHeaderElement extends CollapsibleElement {
3
3
  connectedCallback(): void;
4
4
  get baseClass(): string;
5
5
  }
@@ -8,4 +8,3 @@ declare global {
8
8
  CollapsibleHeaderElement: typeof CollapsibleHeaderElement;
9
9
  }
10
10
  }
11
- export {};
@@ -19,3 +19,4 @@ let CollapsibleHeaderElement = class CollapsibleHeaderElement extends Collapsibl
19
19
  CollapsibleHeaderElement = __decorate([
20
20
  controller('collapsible-header')
21
21
  ], CollapsibleHeaderElement);
22
+ export { CollapsibleHeaderElement };
@@ -1,5 +1,5 @@
1
1
  import { CollapsibleElement } from './collapsible';
2
- declare class CollapsibleSectionElement extends CollapsibleElement {
2
+ export declare class CollapsibleSectionElement extends CollapsibleElement {
3
3
  get baseClass(): string;
4
4
  }
5
5
  declare global {
@@ -7,4 +7,3 @@ declare global {
7
7
  CollapsibleSectionElement: typeof CollapsibleSectionElement;
8
8
  }
9
9
  }
10
- export {};
@@ -14,3 +14,4 @@ let CollapsibleSectionElement = class CollapsibleSectionElement extends Collapsi
14
14
  CollapsibleSectionElement = __decorate([
15
15
  controller('collapsible-section')
16
16
  ], CollapsibleSectionElement);
17
+ export { CollapsibleSectionElement };
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { controller, target } from '@github/catalyst';
8
8
  let ZenModeButtonElement = class ZenModeButtonElement extends HTMLElement {
9
- // eslint-disable-next-line custom-elements/no-constructor
10
9
  constructor() {
11
10
  super();
12
11
  this.inZenMode = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mixtint/primer-view-components",
3
- "version": "0.90.1",
3
+ "version": "0.91.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -73,7 +73,7 @@
73
73
  "@github/details-menu-element": "^1.0.13",
74
74
  "@github/image-crop-element": "^5.0.0",
75
75
  "@github/include-fragment-element": "^6.4.1",
76
- "@github/relative-time-element": "^5.3.0",
76
+ "@github/relative-time-element": "^5.3.1",
77
77
  "@github/remote-input-element": "^0.4.0",
78
78
  "@github/tab-container-element": "^3.4.0",
79
79
  "@oddbird/popover-polyfill": "^0.5.2",
@@ -90,35 +90,35 @@
90
90
  "@github/browserslist-config": "^1.0.0",
91
91
  "@github/markdownlint-github": "^0.8.3",
92
92
  "@github/prettier-config": "0.0.6",
93
- "@playwright/test": "^1.62.0",
93
+ "@playwright/test": "^1.63.0",
94
94
  "@primer/css": "22.3.0",
95
- "@primer/primitives": "^11.9.0",
95
+ "@primer/primitives": "^11.10.0",
96
96
  "@primer/stylelint-config": "^13.6.0",
97
97
  "@rollup/plugin-node-resolve": "^16.0.3",
98
98
  "@rollup/plugin-typescript": "^12.3.0",
99
- "axe-core": "^4.12.1",
99
+ "axe-core": "^4.13.0",
100
100
  "chokidar-cli": "^3.0.0",
101
101
  "css-what": "^8.0.0",
102
- "cssnano": "^8.0.2",
102
+ "cssnano": "^8.0.10",
103
103
  "eslint": "^9.39.5",
104
- "eslint-plugin-github": "^6.1.1",
104
+ "eslint-plugin-github": "^6.1.2",
105
105
  "glob": "^11.1.0",
106
- "markdownlint-cli2": "^0.22.1",
107
- "mocha": "^11.7.6",
108
- "playwright": "^1.62.0",
109
- "postcss": "^8.5.24",
106
+ "markdownlint-cli2": "^0.23.2",
107
+ "mocha": "^11.8.0",
108
+ "playwright": "^1.63.0",
109
+ "postcss": "^8.5.28",
110
110
  "postcss-cli": "^11.0.1",
111
- "postcss-import": "^16.1.1",
111
+ "postcss-import": "^16.2.0",
112
112
  "postcss-mixins": "^12.1.2",
113
- "postcss-preset-env": "^11.3.2",
113
+ "postcss-preset-env": "^11.5.3",
114
114
  "prettier": "^3.9.6",
115
115
  "rollup": "^2.80.0",
116
116
  "rollup-plugin-terser": "^7.0.2",
117
117
  "stylelint-actions-formatters": "^16.3.1",
118
118
  "tslib": "^2.8.1",
119
119
  "typescript": "^6.0.3",
120
- "vite": "^8.1.5",
121
- "vite-plugin-ruby": "^5.2.2"
120
+ "vite": "^8.3.0",
121
+ "vite-plugin-ruby": "^5.2.3"
122
122
  },
123
123
  "prettier": "@github/prettier-config",
124
124
  "browserslist": "extends @github/browserslist-config"
@@ -210,6 +210,8 @@ module.exports = new Set([
210
210
  'Layout--gutter-spacious',
211
211
  'Layout--sidebar-narrow',
212
212
  'Layout--sidebar-wide',
213
+ 'Layout--sidebar-xwide',
214
+ 'Layout--sidebar-xxwide',
213
215
  'Layout--sidebarPosition-end',
214
216
  'Layout--sidebarPosition-flowRow-end',
215
217
  'Layout--sidebarPosition-flowRow-none',
@@ -210,6 +210,8 @@ const classNames = new Set([
210
210
  'Layout--gutter-spacious',
211
211
  'Layout--sidebar-narrow',
212
212
  'Layout--sidebar-wide',
213
+ 'Layout--sidebar-xwide',
214
+ 'Layout--sidebar-xxwide',
213
215
  'Layout--sidebarPosition-end',
214
216
  'Layout--sidebarPosition-flowRow-end',
215
217
  'Layout--sidebarPosition-flowRow-none',
@@ -469,12 +469,16 @@
469
469
  "SIDEBAR_WIDTH_MAPPINGS": {
470
470
  "default": "",
471
471
  "narrow": "Layout--sidebar-narrow",
472
- "wide": "Layout--sidebar-wide"
472
+ "wide": "Layout--sidebar-wide",
473
+ "xwide": "Layout--sidebar-xwide",
474
+ "xxwide": "Layout--sidebar-xxwide"
473
475
  },
474
476
  "SIDEBAR_WIDTH_OPTIONS": [
475
477
  "default",
476
478
  "narrow",
477
- "wide"
479
+ "wide",
480
+ "xwide",
481
+ "xxwide"
478
482
  ],
479
483
  "STACKING_BREAKPOINT_DEFAULT": "md",
480
484
  "STACKING_BREAKPOINT_MAPPINGS": {
@@ -1438,6 +1438,19 @@
1438
1438
  ]
1439
1439
  }
1440
1440
  },
1441
+ {
1442
+ "preview_path": "primer/alpha/action_menu/with_deferred_content_near_bottom_of_viewport",
1443
+ "name": "with_deferred_content_near_bottom_of_viewport",
1444
+ "snapshot": "false",
1445
+ "skip_rules": {
1446
+ "wont_fix": [
1447
+ "region"
1448
+ ],
1449
+ "will_fix": [
1450
+ "color-contrast"
1451
+ ]
1452
+ }
1453
+ },
1441
1454
  {
1442
1455
  "preview_path": "primer/alpha/action_menu/with_deferred_preloaded_content",
1443
1456
  "name": "with_deferred_preloaded_content",
@@ -5229,7 +5242,7 @@
5229
5242
  "name": "width",
5230
5243
  "type": "Symbol",
5231
5244
  "default": "N/A",
5232
- "description": "One of `:default`, `:narrow`, or `:wide`."
5245
+ "description": "One of `:default`, `:narrow`, `:wide`, `:xwide`, or `:xxwide`."
5233
5246
  },
5234
5247
  {
5235
5248
  "name": "col_placement",
@@ -5423,6 +5436,32 @@
5423
5436
  ]
5424
5437
  }
5425
5438
  },
5439
+ {
5440
+ "preview_path": "primer/alpha/layout/sidebar_width_xwide",
5441
+ "name": "sidebar_width_xwide",
5442
+ "snapshot": "false",
5443
+ "skip_rules": {
5444
+ "wont_fix": [
5445
+ "region"
5446
+ ],
5447
+ "will_fix": [
5448
+ "color-contrast"
5449
+ ]
5450
+ }
5451
+ },
5452
+ {
5453
+ "preview_path": "primer/alpha/layout/sidebar_width_xxwide",
5454
+ "name": "sidebar_width_xxwide",
5455
+ "snapshot": "false",
5456
+ "skip_rules": {
5457
+ "wont_fix": [
5458
+ "region"
5459
+ ],
5460
+ "will_fix": [
5461
+ "color-contrast"
5462
+ ]
5463
+ }
5464
+ },
5426
5465
  {
5427
5466
  "preview_path": "primer/alpha/layout/sidebar_col_placement_start",
5428
5467
  "name": "sidebar_col_placement_start",
@@ -632,6 +632,19 @@
632
632
  ]
633
633
  }
634
634
  },
635
+ {
636
+ "preview_path": "primer/alpha/action_menu/with_deferred_content_near_bottom_of_viewport",
637
+ "name": "with_deferred_content_near_bottom_of_viewport",
638
+ "snapshot": "false",
639
+ "skip_rules": {
640
+ "wont_fix": [
641
+ "region"
642
+ ],
643
+ "will_fix": [
644
+ "color-contrast"
645
+ ]
646
+ }
647
+ },
635
648
  {
636
649
  "preview_path": "primer/alpha/action_menu/with_deferred_preloaded_content",
637
650
  "name": "with_deferred_preloaded_content",
@@ -2283,6 +2296,32 @@
2283
2296
  ]
2284
2297
  }
2285
2298
  },
2299
+ {
2300
+ "preview_path": "primer/alpha/layout/sidebar_width_xwide",
2301
+ "name": "sidebar_width_xwide",
2302
+ "snapshot": "false",
2303
+ "skip_rules": {
2304
+ "wont_fix": [
2305
+ "region"
2306
+ ],
2307
+ "will_fix": [
2308
+ "color-contrast"
2309
+ ]
2310
+ }
2311
+ },
2312
+ {
2313
+ "preview_path": "primer/alpha/layout/sidebar_width_xxwide",
2314
+ "name": "sidebar_width_xxwide",
2315
+ "snapshot": "false",
2316
+ "skip_rules": {
2317
+ "wont_fix": [
2318
+ "region"
2319
+ ],
2320
+ "will_fix": [
2321
+ "color-contrast"
2322
+ ]
2323
+ }
2324
+ },
2286
2325
  {
2287
2326
  "preview_path": "primer/alpha/layout/sidebar_col_placement_start",
2288
2327
  "name": "sidebar_col_placement_start",