@mixtint/primer-view-components 0.72.0

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 (234) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +30 -0
  3. package/app/assets/images/loading_indicator.svg +1 -0
  4. package/app/assets/javascripts/components/primer/alpha/action_bar_element.d.ts +17 -0
  5. package/app/assets/javascripts/components/primer/alpha/action_list.d.ts +16 -0
  6. package/app/assets/javascripts/components/primer/alpha/action_menu/action_menu_element.d.ts +49 -0
  7. package/app/assets/javascripts/components/primer/alpha/action_menu/action_menu_focus_zone_stack.d.ts +17 -0
  8. package/app/assets/javascripts/components/primer/alpha/dropdown/menu.d.ts +1 -0
  9. package/app/assets/javascripts/components/primer/alpha/dropdown.d.ts +1 -0
  10. package/app/assets/javascripts/components/primer/alpha/modal_dialog.d.ts +18 -0
  11. package/app/assets/javascripts/components/primer/alpha/segmented_control.d.ts +12 -0
  12. package/app/assets/javascripts/components/primer/alpha/select_panel_element.d.ts +65 -0
  13. package/app/assets/javascripts/components/primer/alpha/tab_container.d.ts +1 -0
  14. package/app/assets/javascripts/components/primer/alpha/toggle_switch.d.ts +34 -0
  15. package/app/assets/javascripts/components/primer/alpha/tool_tip.d.ts +27 -0
  16. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view.d.ts +42 -0
  17. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  18. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  19. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  20. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_sub_tree_node_element.d.ts +45 -0
  21. package/app/assets/javascripts/components/primer/alpha/x_banner.d.ts +18 -0
  22. package/app/assets/javascripts/components/primer/anchored_position.d.ts +27 -0
  23. package/app/assets/javascripts/components/primer/beta/auto_complete/auto_complete.d.ts +1 -0
  24. package/app/assets/javascripts/components/primer/beta/clipboard_copy.d.ts +1 -0
  25. package/app/assets/javascripts/components/primer/beta/details_toggle_element.d.ts +40 -0
  26. package/app/assets/javascripts/components/primer/beta/nav_list.d.ts +20 -0
  27. package/app/assets/javascripts/components/primer/beta/nav_list_group_element.d.ts +19 -0
  28. package/app/assets/javascripts/components/primer/beta/relative_time.d.ts +1 -0
  29. package/app/assets/javascripts/components/primer/dialog_helper.d.ts +15 -0
  30. package/app/assets/javascripts/components/primer/focus_group.d.ts +19 -0
  31. package/app/assets/javascripts/components/primer/open_project/border_box/collapsible_header.d.ts +11 -0
  32. package/app/assets/javascripts/components/primer/open_project/collapsible.d.ts +13 -0
  33. package/app/assets/javascripts/components/primer/open_project/collapsible_section.d.ts +10 -0
  34. package/app/assets/javascripts/components/primer/open_project/danger_dialog_form_helper.d.ts +14 -0
  35. package/app/assets/javascripts/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  36. package/app/assets/javascripts/components/primer/open_project/page_header_element.d.ts +9 -0
  37. package/app/assets/javascripts/components/primer/open_project/sub_header_element.d.ts +17 -0
  38. package/app/assets/javascripts/components/primer/open_project/zen_mode_button.d.ts +18 -0
  39. package/app/assets/javascripts/components/primer/primer.d.ts +40 -0
  40. package/app/assets/javascripts/components/primer/scrollable_region.d.ts +13 -0
  41. package/app/assets/javascripts/components/primer/shared_events.d.ts +26 -0
  42. package/app/assets/javascripts/components/primer/utils.d.ts +1 -0
  43. package/app/assets/javascripts/lib/primer/forms/primer_multi_input.d.ts +10 -0
  44. package/app/assets/javascripts/lib/primer/forms/primer_text_field.d.ts +28 -0
  45. package/app/assets/javascripts/lib/primer/forms/toggle_switch_input.d.ts +5 -0
  46. package/app/assets/javascripts/primer_view_components.js +2 -0
  47. package/app/assets/javascripts/primer_view_components.js.map +1 -0
  48. package/app/assets/styles/primer_view_components.css +7336 -0
  49. package/app/assets/styles/primer_view_components.css.map +1 -0
  50. package/app/components/primer/alpha/action_bar.css +49 -0
  51. package/app/components/primer/alpha/action_bar.css.json +14 -0
  52. package/app/components/primer/alpha/action_bar_element.d.ts +17 -0
  53. package/app/components/primer/alpha/action_bar_element.js +170 -0
  54. package/app/components/primer/alpha/action_list.css +526 -0
  55. package/app/components/primer/alpha/action_list.css.json +117 -0
  56. package/app/components/primer/alpha/action_list.d.ts +16 -0
  57. package/app/components/primer/alpha/action_list.js +70 -0
  58. package/app/components/primer/alpha/action_menu/action_menu_element.d.ts +49 -0
  59. package/app/components/primer/alpha/action_menu/action_menu_element.js +591 -0
  60. package/app/components/primer/alpha/action_menu/action_menu_focus_zone_stack.d.ts +17 -0
  61. package/app/components/primer/alpha/action_menu/action_menu_focus_zone_stack.js +62 -0
  62. package/app/components/primer/alpha/auto_complete.css +131 -0
  63. package/app/components/primer/alpha/auto_complete.css.json +21 -0
  64. package/app/components/primer/alpha/banner.css +146 -0
  65. package/app/components/primer/alpha/banner.css.json +26 -0
  66. package/app/components/primer/alpha/button_marketing.css +183 -0
  67. package/app/components/primer/alpha/button_marketing.css.json +30 -0
  68. package/app/components/primer/alpha/dialog.css +377 -0
  69. package/app/components/primer/alpha/dialog.css.json +66 -0
  70. package/app/components/primer/alpha/dropdown/menu.d.ts +1 -0
  71. package/app/components/primer/alpha/dropdown/menu.js +1 -0
  72. package/app/components/primer/alpha/dropdown.css +296 -0
  73. package/app/components/primer/alpha/dropdown.css.json +40 -0
  74. package/app/components/primer/alpha/dropdown.d.ts +1 -0
  75. package/app/components/primer/alpha/dropdown.js +1 -0
  76. package/app/components/primer/alpha/layout.css +374 -0
  77. package/app/components/primer/alpha/layout.css.json +74 -0
  78. package/app/components/primer/alpha/menu.css +124 -0
  79. package/app/components/primer/alpha/menu.css.json +26 -0
  80. package/app/components/primer/alpha/modal_dialog.d.ts +18 -0
  81. package/app/components/primer/alpha/modal_dialog.js +187 -0
  82. package/app/components/primer/alpha/overlay.css +25 -0
  83. package/app/components/primer/alpha/overlay.css.json +12 -0
  84. package/app/components/primer/alpha/segmented_control.css +161 -0
  85. package/app/components/primer/alpha/segmented_control.css.json +31 -0
  86. package/app/components/primer/alpha/segmented_control.d.ts +12 -0
  87. package/app/components/primer/alpha/segmented_control.js +59 -0
  88. package/app/components/primer/alpha/select_panel.css +10 -0
  89. package/app/components/primer/alpha/select_panel.css.json +7 -0
  90. package/app/components/primer/alpha/select_panel_element.d.ts +65 -0
  91. package/app/components/primer/alpha/select_panel_element.js +988 -0
  92. package/app/components/primer/alpha/skeleton_box.css +36 -0
  93. package/app/components/primer/alpha/skeleton_box.css.json +6 -0
  94. package/app/components/primer/alpha/stack.css +266 -0
  95. package/app/components/primer/alpha/stack.css.json +94 -0
  96. package/app/components/primer/alpha/stack_item.css +27 -0
  97. package/app/components/primer/alpha/stack_item.css.json +12 -0
  98. package/app/components/primer/alpha/tab_container.d.ts +1 -0
  99. package/app/components/primer/alpha/tab_container.js +1 -0
  100. package/app/components/primer/alpha/tab_nav.css +112 -0
  101. package/app/components/primer/alpha/tab_nav.css.json +22 -0
  102. package/app/components/primer/alpha/text_field.css +838 -0
  103. package/app/components/primer/alpha/text_field.css.json +134 -0
  104. package/app/components/primer/alpha/toggle_switch.css +230 -0
  105. package/app/components/primer/alpha/toggle_switch.css.json +40 -0
  106. package/app/components/primer/alpha/toggle_switch.d.ts +34 -0
  107. package/app/components/primer/alpha/toggle_switch.js +179 -0
  108. package/app/components/primer/alpha/tool_tip.d.ts +27 -0
  109. package/app/components/primer/alpha/tool_tip.js +443 -0
  110. package/app/components/primer/alpha/tree_view/tree_view.d.ts +42 -0
  111. package/app/components/primer/alpha/tree_view/tree_view.js +391 -0
  112. package/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  113. package/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.js +62 -0
  114. package/app/components/primer/alpha/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  115. package/app/components/primer/alpha/tree_view/tree_view_include_fragment_element.js +28 -0
  116. package/app/components/primer/alpha/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  117. package/app/components/primer/alpha/tree_view/tree_view_roving_tab_index.js +130 -0
  118. package/app/components/primer/alpha/tree_view/tree_view_sub_tree_node_element.d.ts +45 -0
  119. package/app/components/primer/alpha/tree_view/tree_view_sub_tree_node_element.js +429 -0
  120. package/app/components/primer/alpha/tree_view.css +396 -0
  121. package/app/components/primer/alpha/tree_view.css.json +52 -0
  122. package/app/components/primer/alpha/underline_nav.css +150 -0
  123. package/app/components/primer/alpha/underline_nav.css.json +26 -0
  124. package/app/components/primer/alpha/x_banner.d.ts +18 -0
  125. package/app/components/primer/alpha/x_banner.js +51 -0
  126. package/app/components/primer/anchored_position.d.ts +27 -0
  127. package/app/components/primer/anchored_position.js +159 -0
  128. package/app/components/primer/beta/auto_complete/auto_complete.d.ts +1 -0
  129. package/app/components/primer/beta/auto_complete/auto_complete.js +1 -0
  130. package/app/components/primer/beta/avatar.css +77 -0
  131. package/app/components/primer/beta/avatar.css.json +17 -0
  132. package/app/components/primer/beta/avatar_stack.css +145 -0
  133. package/app/components/primer/beta/avatar_stack.css.json +28 -0
  134. package/app/components/primer/beta/blankslate.css +168 -0
  135. package/app/components/primer/beta/blankslate.css.json +23 -0
  136. package/app/components/primer/beta/border_box.css +218 -0
  137. package/app/components/primer/beta/border_box.css.json +54 -0
  138. package/app/components/primer/beta/breadcrumbs.css +29 -0
  139. package/app/components/primer/beta/breadcrumbs.css.json +9 -0
  140. package/app/components/primer/beta/button.css +359 -0
  141. package/app/components/primer/beta/button.css.json +86 -0
  142. package/app/components/primer/beta/button_group.css +20 -0
  143. package/app/components/primer/beta/button_group.css.json +12 -0
  144. package/app/components/primer/beta/clipboard_copy.d.ts +1 -0
  145. package/app/components/primer/beta/clipboard_copy.js +58 -0
  146. package/app/components/primer/beta/counter.css +38 -0
  147. package/app/components/primer/beta/counter.css.json +10 -0
  148. package/app/components/primer/beta/details_toggle_element.d.ts +40 -0
  149. package/app/components/primer/beta/details_toggle_element.js +65 -0
  150. package/app/components/primer/beta/flash.css +152 -0
  151. package/app/components/primer/beta/flash.css.json +27 -0
  152. package/app/components/primer/beta/label.css +109 -0
  153. package/app/components/primer/beta/label.css.json +24 -0
  154. package/app/components/primer/beta/link.css +79 -0
  155. package/app/components/primer/beta/link.css.json +19 -0
  156. package/app/components/primer/beta/nav_list.d.ts +20 -0
  157. package/app/components/primer/beta/nav_list.js +192 -0
  158. package/app/components/primer/beta/nav_list_group_element.d.ts +19 -0
  159. package/app/components/primer/beta/nav_list_group_element.js +111 -0
  160. package/app/components/primer/beta/popover.css +215 -0
  161. package/app/components/primer/beta/popover.css.json +33 -0
  162. package/app/components/primer/beta/progress_bar.css +27 -0
  163. package/app/components/primer/beta/progress_bar.css.json +10 -0
  164. package/app/components/primer/beta/relative_time.d.ts +1 -0
  165. package/app/components/primer/beta/relative_time.js +1 -0
  166. package/app/components/primer/beta/state.css +59 -0
  167. package/app/components/primer/beta/state.css.json +13 -0
  168. package/app/components/primer/beta/subhead.css +64 -0
  169. package/app/components/primer/beta/subhead.css.json +14 -0
  170. package/app/components/primer/beta/timeline_item.css +106 -0
  171. package/app/components/primer/beta/timeline_item.css.json +16 -0
  172. package/app/components/primer/beta/truncate.css +30 -0
  173. package/app/components/primer/beta/truncate.css.json +12 -0
  174. package/app/components/primer/dialog_helper.d.ts +15 -0
  175. package/app/components/primer/dialog_helper.js +132 -0
  176. package/app/components/primer/focus_group.d.ts +19 -0
  177. package/app/components/primer/focus_group.js +163 -0
  178. package/app/components/primer/open_project/border_box/collapsible_header.css +21 -0
  179. package/app/components/primer/open_project/border_box/collapsible_header.css.json +11 -0
  180. package/app/components/primer/open_project/border_box/collapsible_header.d.ts +11 -0
  181. package/app/components/primer/open_project/border_box/collapsible_header.js +21 -0
  182. package/app/components/primer/open_project/border_grid.css +35 -0
  183. package/app/components/primer/open_project/border_grid.css.json +11 -0
  184. package/app/components/primer/open_project/collapsible.d.ts +13 -0
  185. package/app/components/primer/open_project/collapsible.js +67 -0
  186. package/app/components/primer/open_project/collapsible_section.css +5 -0
  187. package/app/components/primer/open_project/collapsible_section.css.json +6 -0
  188. package/app/components/primer/open_project/collapsible_section.d.ts +10 -0
  189. package/app/components/primer/open_project/collapsible_section.js +16 -0
  190. package/app/components/primer/open_project/danger_dialog_form_helper.d.ts +14 -0
  191. package/app/components/primer/open_project/danger_dialog_form_helper.js +54 -0
  192. package/app/components/primer/open_project/drag_handle.css +6 -0
  193. package/app/components/primer/open_project/drag_handle.css.json +6 -0
  194. package/app/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  195. package/app/components/primer/open_project/filterable_tree_view.js +409 -0
  196. package/app/components/primer/open_project/input_group.css +22 -0
  197. package/app/components/primer/open_project/input_group.css.json +12 -0
  198. package/app/components/primer/open_project/page_header.css +87 -0
  199. package/app/components/primer/open_project/page_header.css.json +20 -0
  200. package/app/components/primer/open_project/page_header_element.d.ts +9 -0
  201. package/app/components/primer/open_project/page_header_element.js +23 -0
  202. package/app/components/primer/open_project/side_panel/section.css +27 -0
  203. package/app/components/primer/open_project/side_panel/section.css.json +11 -0
  204. package/app/components/primer/open_project/sub_header.css +80 -0
  205. package/app/components/primer/open_project/sub_header.css.json +17 -0
  206. package/app/components/primer/open_project/sub_header_element.d.ts +17 -0
  207. package/app/components/primer/open_project/sub_header_element.js +76 -0
  208. package/app/components/primer/open_project/zen_mode_button.d.ts +18 -0
  209. package/app/components/primer/open_project/zen_mode_button.js +64 -0
  210. package/app/components/primer/primer.d.ts +40 -0
  211. package/app/components/primer/primer.js +40 -0
  212. package/app/components/primer/scrollable_region.d.ts +13 -0
  213. package/app/components/primer/scrollable_region.js +52 -0
  214. package/app/components/primer/shared_events.d.ts +26 -0
  215. package/app/components/primer/shared_events.js +1 -0
  216. package/app/components/primer/truncate.css +23 -0
  217. package/app/components/primer/truncate.css.json +13 -0
  218. package/app/components/primer/utils.d.ts +1 -0
  219. package/app/components/primer/utils.js +16 -0
  220. package/app/lib/primer/forms/primer_multi_input.d.ts +10 -0
  221. package/app/lib/primer/forms/primer_multi_input.js +44 -0
  222. package/app/lib/primer/forms/primer_text_field.d.ts +28 -0
  223. package/app/lib/primer/forms/primer_text_field.js +119 -0
  224. package/app/lib/primer/forms/toggle_switch_input.d.ts +5 -0
  225. package/app/lib/primer/forms/toggle_switch_input.js +34 -0
  226. package/package.json +103 -0
  227. package/static/arguments.json +6472 -0
  228. package/static/audited_at.json +173 -0
  229. package/static/classes.json +781 -0
  230. package/static/constants.json +1972 -0
  231. package/static/form_previews.json +118 -0
  232. package/static/info_arch.json +21331 -0
  233. package/static/previews.json +9436 -0
  234. package/static/statuses.json +173 -0
@@ -0,0 +1,27 @@
1
+ import type { AnchorAlignment, AnchorSide, PositionSettings } from '@primer/behaviors';
2
+ export default class AnchoredPositionElement extends HTMLElement implements PositionSettings {
3
+ #private;
4
+ get align(): AnchorAlignment;
5
+ set align(value: AnchorAlignment);
6
+ get side(): AnchorSide;
7
+ set side(value: AnchorSide);
8
+ get anchorOffset(): number;
9
+ set anchorOffset(value: number | 'normal' | 'spacious');
10
+ get anchor(): string;
11
+ set anchor(value: string);
12
+ get anchorElement(): HTMLElement | null;
13
+ set anchorElement(value: HTMLElement | null);
14
+ get alignmentOffset(): number;
15
+ set alignmentOffset(value: number);
16
+ get allowOutOfBounds(): boolean;
17
+ set allowOutOfBounds(value: boolean);
18
+ connectedCallback(): void;
19
+ static observedAttributes: string[];
20
+ attributeChangedCallback(): void;
21
+ update(): void;
22
+ }
23
+ declare global {
24
+ interface Window {
25
+ AnchoredPositionElement: typeof AnchoredPositionElement;
26
+ }
27
+ }
@@ -0,0 +1,159 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _AnchoredPositionElement_anchorElement, _AnchoredPositionElement_animationFrame;
13
+ import { getAnchoredPosition } from '@primer/behaviors';
14
+ const updateWhenVisible = (() => {
15
+ const anchors = new Set();
16
+ let intersectionObserver = null;
17
+ let resizeObserver = null;
18
+ function updateVisibleAnchors() {
19
+ for (const anchor of anchors) {
20
+ anchor.update();
21
+ }
22
+ }
23
+ return (el) => {
24
+ // eslint-disable-next-line github/prefer-observers
25
+ window.addEventListener('resize', updateVisibleAnchors);
26
+ // eslint-disable-next-line github/prefer-observers
27
+ window.addEventListener('scroll', updateVisibleAnchors);
28
+ intersectionObserver || (intersectionObserver = new IntersectionObserver(entries => {
29
+ for (const entry of entries) {
30
+ const target = entry.target;
31
+ if (entry.isIntersecting) {
32
+ target.update();
33
+ anchors.add(target);
34
+ }
35
+ else {
36
+ anchors.delete(target);
37
+ }
38
+ }
39
+ }));
40
+ resizeObserver || (resizeObserver = new ResizeObserver(() => {
41
+ for (const anchor of anchors) {
42
+ anchor.update();
43
+ }
44
+ }));
45
+ resizeObserver.observe(el.ownerDocument.documentElement);
46
+ intersectionObserver.observe(el);
47
+ };
48
+ })();
49
+ class AnchoredPositionElement extends HTMLElement {
50
+ constructor() {
51
+ super(...arguments);
52
+ _AnchoredPositionElement_anchorElement.set(this, null);
53
+ _AnchoredPositionElement_animationFrame.set(this, void 0);
54
+ }
55
+ get align() {
56
+ const value = this.getAttribute('align');
57
+ if (value === 'center' || value === 'end')
58
+ return value;
59
+ return 'start';
60
+ }
61
+ set align(value) {
62
+ this.setAttribute('align', `${value}`);
63
+ }
64
+ get side() {
65
+ const value = this.getAttribute('side');
66
+ if (value === 'inside-top' ||
67
+ value === 'inside-bottom' ||
68
+ value === 'inside-left' ||
69
+ value === 'inside-right' ||
70
+ value === 'inside-center' ||
71
+ value === 'outside-top' ||
72
+ value === 'outside-left' ||
73
+ value === 'outside-right') {
74
+ return value;
75
+ }
76
+ return 'outside-bottom';
77
+ }
78
+ set side(value) {
79
+ this.setAttribute('side', `${value}`);
80
+ }
81
+ get anchorOffset() {
82
+ const alias = this.getAttribute('anchor-offset');
83
+ if (alias === 'spacious' || alias === '8')
84
+ return 8;
85
+ return 4;
86
+ }
87
+ set anchorOffset(value) {
88
+ this.setAttribute('anchor-offset', `${value}`);
89
+ }
90
+ get anchor() {
91
+ return this.getAttribute('anchor') || '';
92
+ }
93
+ set anchor(value) {
94
+ this.setAttribute('anchor', `${value}`);
95
+ }
96
+ get anchorElement() {
97
+ if (__classPrivateFieldGet(this, _AnchoredPositionElement_anchorElement, "f"))
98
+ return __classPrivateFieldGet(this, _AnchoredPositionElement_anchorElement, "f");
99
+ const idRef = this.anchor;
100
+ if (!idRef)
101
+ return null;
102
+ return this.ownerDocument.getElementById(idRef);
103
+ }
104
+ set anchorElement(value) {
105
+ __classPrivateFieldSet(this, _AnchoredPositionElement_anchorElement, value, "f");
106
+ if (!__classPrivateFieldGet(this, _AnchoredPositionElement_anchorElement, "f")) {
107
+ this.removeAttribute('anchor');
108
+ }
109
+ }
110
+ get alignmentOffset() {
111
+ return Number(this.getAttribute('alignment-offset'));
112
+ }
113
+ set alignmentOffset(value) {
114
+ this.setAttribute('alignment-offset', `${value}`);
115
+ }
116
+ get allowOutOfBounds() {
117
+ return this.hasAttribute('allow-out-of-bounds');
118
+ }
119
+ set allowOutOfBounds(value) {
120
+ this.toggleAttribute('allow-out-of-bounds', value);
121
+ }
122
+ connectedCallback() {
123
+ this.update();
124
+ this.addEventListener('beforetoggle', () => this.update());
125
+ updateWhenVisible(this);
126
+ }
127
+ attributeChangedCallback() {
128
+ this.update();
129
+ }
130
+ update() {
131
+ if (!this.isConnected)
132
+ return;
133
+ cancelAnimationFrame(__classPrivateFieldGet(this, _AnchoredPositionElement_animationFrame, "f"));
134
+ __classPrivateFieldSet(this, _AnchoredPositionElement_animationFrame, requestAnimationFrame(() => {
135
+ const anchor = this.anchorElement;
136
+ this.classList.toggle('not-anchored', !anchor);
137
+ if (anchor) {
138
+ const { left, top } = getAnchoredPosition(this, anchor, this);
139
+ this.style.top = `${top}px`;
140
+ this.style.left = `${left}px`;
141
+ this.style.bottom = 'auto';
142
+ this.style.right = 'auto';
143
+ }
144
+ else {
145
+ this.style.top = '0';
146
+ this.style.left = '0';
147
+ this.style.bottom = '0';
148
+ this.style.right = '0';
149
+ }
150
+ }), "f");
151
+ }
152
+ }
153
+ _AnchoredPositionElement_anchorElement = new WeakMap(), _AnchoredPositionElement_animationFrame = new WeakMap();
154
+ AnchoredPositionElement.observedAttributes = ['align', 'side', 'anchor', 'alignment-offset', 'allow-out-of-bounds'];
155
+ export default AnchoredPositionElement;
156
+ if (!customElements.get('anchored-position')) {
157
+ window.AnchoredPositionElement = AnchoredPositionElement;
158
+ customElements.define('anchored-position', AnchoredPositionElement);
159
+ }
@@ -0,0 +1 @@
1
+ import '@github/auto-complete-element';
@@ -0,0 +1 @@
1
+ import '@github/auto-complete-element';
@@ -0,0 +1,77 @@
1
+ /* avatar */
2
+
3
+ .avatar {
4
+ display: inline-block;
5
+ overflow: hidden; /* Ensure page layout in Firefox should images fail to load */
6
+ /* stylelint-disable-next-line primer/typography */
7
+ line-height: 1;
8
+ vertical-align: middle;
9
+ background-color: var(--avatar-bgColor); /* adds opaque bg to transparent avatars */
10
+ border-radius: var(--borderRadius-medium);
11
+ flex-shrink: 0;
12
+ /* stylelint-disable-next-line primer/box-shadow */
13
+ box-shadow: 0 0 0 1px var(--avatar-borderColor);
14
+ }
15
+
16
+ .avatar-link {
17
+ float: left;
18
+ /* stylelint-disable-next-line primer/typography */
19
+ line-height: 1;
20
+ }
21
+
22
+ /* User for example on /stars and /user for grids of avatars */
23
+
24
+ .avatar-group-item {
25
+ display: inline-block;
26
+ margin-bottom: var(--base-size-4);
27
+ }
28
+
29
+ /* Border radius */
30
+
31
+ .avatar-1,
32
+ .avatar-2,
33
+ .avatar-small {
34
+ border-radius: var(--borderRadius-small);
35
+ }
36
+
37
+ /* Sizes */
38
+
39
+ .avatar-1 {
40
+ width: var(--base-size-16);
41
+ height: var(--base-size-16);
42
+ }
43
+
44
+ .avatar-2 {
45
+ width: var(--base-size-20);
46
+ height: var(--base-size-20);
47
+ }
48
+
49
+ .avatar-3 {
50
+ width: var(--base-size-24);
51
+ height: var(--base-size-24);
52
+ }
53
+
54
+ .avatar-4 {
55
+ width: var(--base-size-28);
56
+ height: var(--base-size-28);
57
+ }
58
+
59
+ .avatar-5 {
60
+ width: var(--base-size-32);
61
+ height: var(--base-size-32);
62
+ }
63
+
64
+ .avatar-6 {
65
+ width: var(--base-size-40);
66
+ height: var(--base-size-40);
67
+ }
68
+
69
+ .avatar-7 {
70
+ width: var(--base-size-48);
71
+ height: var(--base-size-48);
72
+ }
73
+
74
+ .avatar-8 {
75
+ width: var(--base-size-64);
76
+ height: var(--base-size-64);
77
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "beta/avatar",
3
+ "selectors": [
4
+ ".avatar",
5
+ ".avatar-link",
6
+ ".avatar-group-item",
7
+ ".avatar-1",
8
+ ".avatar-2",
9
+ ".avatar-small",
10
+ ".avatar-3",
11
+ ".avatar-4",
12
+ ".avatar-5",
13
+ ".avatar-6",
14
+ ".avatar-7",
15
+ ".avatar-8"
16
+ ]
17
+ }
@@ -0,0 +1,145 @@
1
+ /* AvatarStack */
2
+
3
+ /* Stacked avatars can be used to show who is participating in thread when
4
+ ** there is limited space available. */
5
+
6
+ .AvatarStack {
7
+ position: relative;
8
+ min-width: 26px;
9
+ height: 20px;
10
+ }
11
+
12
+ .AvatarStack .AvatarStack-body {
13
+ position: absolute;
14
+ }
15
+
16
+ .AvatarStack.AvatarStack--two {
17
+ min-width: 36px;
18
+ }
19
+
20
+ .AvatarStack.AvatarStack--three-plus {
21
+ min-width: 46px;
22
+ }
23
+
24
+ .AvatarStack-body {
25
+ display: flex;
26
+ background: var(--bgColor-default);
27
+ /* stylelint-disable-next-line primer/borders */
28
+ border-radius: 100px;
29
+ }
30
+
31
+ .AvatarStack-body .avatar {
32
+ position: relative;
33
+ z-index: 2;
34
+ display: flex;
35
+ width: 20px;
36
+ height: 20px;
37
+ box-sizing: content-box;
38
+ /* stylelint-disable-next-line primer/spacing */
39
+ margin-right: -11px;
40
+ background-color: var(--bgColor-default);
41
+ /* stylelint-disable-next-line primer/colors */
42
+ border-right: var(--borderWidth-thin) solid var(--bgColor-default);
43
+ border-radius: var(--borderRadius-small);
44
+ box-shadow: none;
45
+ transition: margin 0.1s ease-in-out;
46
+ }
47
+
48
+ :is(.AvatarStack-body .avatar):first-child {
49
+ z-index: 3;
50
+ }
51
+
52
+ :is(.AvatarStack-body .avatar):last-child {
53
+ z-index: 1;
54
+ border-right: 0;
55
+ }
56
+
57
+ /* stylelint-disable-next-line selector-max-type */
58
+
59
+ :is(.AvatarStack-body .avatar) img {
60
+ border-radius: var(--borderRadius-small);
61
+ }
62
+
63
+ /* Account for 4+ avatars */
64
+
65
+ :is(.AvatarStack-body .avatar):nth-child(n + 4) {
66
+ display: none;
67
+ opacity: 0;
68
+ }
69
+
70
+ .AvatarStack-body:hover .avatar {
71
+ margin-right: var(--base-size-4);
72
+ }
73
+
74
+ .AvatarStack-body:hover .avatar:nth-child(n + 4) {
75
+ display: flex;
76
+ opacity: 1;
77
+ }
78
+
79
+ .AvatarStack-body:hover .avatar-more {
80
+ display: none !important;
81
+ }
82
+
83
+ .avatar.avatar-more {
84
+ z-index: 1;
85
+ margin-right: 0;
86
+ background: var(--bgColor-muted);
87
+ }
88
+
89
+ .avatar.avatar-more::before,.avatar.avatar-more::after {
90
+ position: absolute;
91
+ display: block;
92
+ height: 20px;
93
+ content: '';
94
+ /* stylelint-disable-next-line primer/borders */
95
+ border-radius: 2px;
96
+ outline: var(--borderWidth-thin) solid var(--bgColor-default);
97
+ }
98
+
99
+ .avatar.avatar-more::before {
100
+ width: 17px;
101
+ background: var(--avatarStack-fade-bgColor-muted);
102
+ }
103
+
104
+ .avatar.avatar-more::after {
105
+ width: 14px;
106
+ background: var(--avatarStack-fade-bgColor-default);
107
+ }
108
+
109
+ /* Right aligned variation */
110
+
111
+ .AvatarStack--right .AvatarStack-body {
112
+ right: 0;
113
+ flex-direction: row-reverse;
114
+ }
115
+
116
+ :is(.AvatarStack--right .AvatarStack-body):hover .avatar {
117
+ margin-right: 0;
118
+ margin-left: var(--base-size-4);
119
+ }
120
+
121
+ :is(.AvatarStack--right .AvatarStack-body) .avatar:not(:last-child) {
122
+ border-left: 0;
123
+ }
124
+
125
+ .AvatarStack--right .avatar.avatar-more {
126
+ background: var(--avatarStack-fade-bgColor-default);
127
+ }
128
+
129
+ :is(.AvatarStack--right .avatar.avatar-more)::before {
130
+ width: 5px;
131
+ }
132
+
133
+ :is(.AvatarStack--right .avatar.avatar-more)::after {
134
+ width: 2px;
135
+ background: var(--bgColor-muted);
136
+ }
137
+
138
+ .AvatarStack--right .avatar {
139
+ margin-right: 0;
140
+ /* stylelint-disable-next-line primer/spacing */
141
+ margin-left: -11px;
142
+ border-right: 0;
143
+ /* stylelint-disable-next-line primer/colors */
144
+ border-left: var(--borderWidth-thin) solid var(--bgColor-default);
145
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "beta/avatar_stack",
3
+ "selectors": [
4
+ ".AvatarStack",
5
+ ".AvatarStack .AvatarStack-body",
6
+ ".AvatarStack.AvatarStack--two",
7
+ ".AvatarStack.AvatarStack--three-plus",
8
+ ".AvatarStack-body",
9
+ ".AvatarStack-body .avatar",
10
+ ":is(.AvatarStack-body .avatar):first-child",
11
+ ":is(.AvatarStack-body .avatar):last-child",
12
+ ":is(.AvatarStack-body .avatar) img",
13
+ ":is(.AvatarStack-body .avatar):nth-child(n + 4)",
14
+ ".AvatarStack-body:hover .avatar",
15
+ ".AvatarStack-body:hover .avatar:nth-child(n + 4)",
16
+ ".AvatarStack-body:hover .avatar-more",
17
+ ".avatar.avatar-more",
18
+ ".avatar.avatar-more::before",
19
+ ".avatar.avatar-more::after",
20
+ ".AvatarStack--right .AvatarStack-body",
21
+ ":is(.AvatarStack--right .AvatarStack-body):hover .avatar",
22
+ ":is(.AvatarStack--right .AvatarStack-body) .avatar:not(:last-child)",
23
+ ".AvatarStack--right .avatar.avatar-more",
24
+ ":is(.AvatarStack--right .avatar.avatar-more)::before",
25
+ ":is(.AvatarStack--right .avatar.avatar-more)::after",
26
+ ".AvatarStack--right .avatar"
27
+ ]
28
+ }
@@ -0,0 +1,168 @@
1
+ /* blankslate */
2
+
3
+ .blankslate-container {
4
+ container-type: inline-size;
5
+ width: 100%;
6
+ }
7
+
8
+ .blankslate {
9
+ --blankslate-outer-padding-block: var(--base-size-32);
10
+ --blankslate-outer-padding-inline: var(--base-size-32);
11
+
12
+ position: relative;
13
+ /* stylelint-disable-next-line primer/spacing */
14
+ padding: var(--blankslate-outer-padding-block) var(--blankslate-outer-padding-inline);
15
+ text-align: center;
16
+
17
+ /* stylelint-disable-next-line selector-max-type */
18
+ }
19
+
20
+ .blankslate p {
21
+ font-size: var(--text-body-size-large);
22
+ color: var(--fgColor-muted);
23
+ }
24
+
25
+ /* stylelint-disable-next-line selector-max-type */
26
+
27
+ .blankslate code {
28
+ padding: var(--base-size-2) var(--base-size-4) var(--base-size-4);
29
+ font-size: var(--text-body-size-medium);
30
+ background: var(--bgColor-default);
31
+ border: var(--borderWidth-thin) solid var(--borderColor-muted);
32
+ border-radius: var(--borderRadius-medium);
33
+ }
34
+
35
+ /* stylelint-disable-next-line selector-max-type */
36
+
37
+ .blankslate img {
38
+ width: 56px;
39
+ height: 56px;
40
+ }
41
+
42
+ .blankslate-icon {
43
+ /* stylelint-disable-next-line primer/spacing */
44
+ margin-right: var(--control-small-gap);
45
+ /* stylelint-disable-next-line primer/spacing */
46
+ margin-bottom: var(--stack-gap-condensed);
47
+ /* stylelint-disable-next-line primer/spacing */
48
+ margin-left: var(--control-small-gap);
49
+ color: var(--fgColor-muted);
50
+ }
51
+
52
+ .blankslate-image {
53
+ /* stylelint-disable-next-line primer/spacing */
54
+ margin-bottom: var(--stack-gap-normal);
55
+ }
56
+
57
+ .blankslate-heading {
58
+ margin-bottom: var(--base-size-4);
59
+ font-size: var(--text-title-size-medium);
60
+ font-weight: var(--text-title-weight-medium);
61
+ }
62
+
63
+ .blankslate-action {
64
+ /* stylelint-disable-next-line primer/spacing */
65
+ margin-top: var(--stack-gap-normal);
66
+ }
67
+
68
+ .blankslate-action:first-of-type {
69
+ /* stylelint-disable-next-line primer/spacing */
70
+ margin-top: var(--stack-gap-spacious);
71
+ }
72
+
73
+ .blankslate-action:last-of-type {
74
+ /* stylelint-disable-next-line primer/spacing */
75
+ margin-bottom: var(--stack-gap-condensed);
76
+ }
77
+
78
+ .blankslate-capped {
79
+ border-radius: 0 0 var(--borderRadius-medium) var(--borderRadius-medium);
80
+ }
81
+
82
+ .blankslate-spacious {
83
+ --blankslate-outer-padding-block: var(--base-size-80);
84
+ --blankslate-outer-padding-inline: var(--base-size-40);
85
+ }
86
+
87
+ .blankslate-narrow {
88
+ max-width: 485px;
89
+ margin: 0 auto;
90
+ }
91
+
92
+ /* was .large-format
93
+ ** QUESTION: should we deprecate this? */
94
+
95
+ /* stylelint-disable-next-line selector-max-type */
96
+
97
+ .blankslate-large img {
98
+ width: 80px;
99
+ height: 80px;
100
+ }
101
+
102
+ /* stylelint-disable-next-line selector-max-type */
103
+
104
+ .blankslate-large h3 {
105
+ /* stylelint-disable-next-line primer/spacing */
106
+ margin: var(--stack-gap-normal) 0;
107
+
108
+ /* font-size: $h3-size; // This doesn't actually make the text larger. Should this be $h2-size? */
109
+ /* stylelint-disable-next-line primer/typography */
110
+ font-size: 24px;
111
+ }
112
+
113
+ /* stylelint-disable-next-line selector-max-type */
114
+
115
+ .blankslate-large p {
116
+ font-size: var(--text-body-size-large);
117
+ }
118
+
119
+ /* was .clean-background
120
+ ** TO DO: deprecate this and use utility instead */
121
+
122
+ .blankslate-clean-background {
123
+ border: 0;
124
+ }
125
+
126
+ /* At the time these styles were written,
127
+ `34rem` was our "small" breakpoint width */
128
+
129
+ @container (max-width: 34rem) {
130
+ .blankslate {
131
+ --blankslate-outer-padding-block: var(--base-size-20);
132
+ --blankslate-outer-padding-inline: var(--base-size-20);
133
+ }
134
+
135
+ .blankslate-spacious {
136
+ --blankslate-outer-padding-block: var(--base-size-44);
137
+ --blankslate-outer-padding-inline: var(--base-size-28);
138
+ }
139
+
140
+ .blankslate-icon {
141
+ /* stylelint-disable-next-line primer/spacing */
142
+ margin-bottom: var(--stack-gap-condensed);
143
+ }
144
+
145
+ .blankslate-heading {
146
+ font-size: var(--text-title-size-small);
147
+ }
148
+
149
+ /* stylelint-disable-next-line selector-max-type */
150
+ .blankslate p {
151
+ font-size: var(--text-body-size-medium);
152
+ }
153
+
154
+ .blankslate-action {
155
+ /* stylelint-disable-next-line primer/spacing */
156
+ margin-top: var(--stack-gap-condensed);
157
+ }
158
+
159
+ .blankslate-action:first-of-type {
160
+ /* stylelint-disable-next-line primer/spacing */
161
+ margin-top: var(--stack-gap-normal);
162
+ }
163
+
164
+ .blankslate-action:last-of-type {
165
+ /* stylelint-disable-next-line primer/spacing */
166
+ margin-bottom: calc(var(--stack-gap-condensed) / 2);
167
+ }
168
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "beta/blankslate",
3
+ "selectors": [
4
+ ".blankslate-container",
5
+ ".blankslate",
6
+ ".blankslate p",
7
+ ".blankslate code",
8
+ ".blankslate img",
9
+ ".blankslate-icon",
10
+ ".blankslate-image",
11
+ ".blankslate-heading",
12
+ ".blankslate-action",
13
+ ".blankslate-action:first-of-type",
14
+ ".blankslate-action:last-of-type",
15
+ ".blankslate-capped",
16
+ ".blankslate-spacious",
17
+ ".blankslate-narrow",
18
+ ".blankslate-large img",
19
+ ".blankslate-large h3",
20
+ ".blankslate-large p",
21
+ ".blankslate-clean-background"
22
+ ]
23
+ }