@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,396 @@
1
+ /* stylelint-disable selector-max-type -- Copied from primer/react */
2
+
3
+ .TreeViewRootUlStyles {
4
+ padding: 0;
5
+ margin: 0;
6
+ list-style: none;
7
+
8
+ /*
9
+ * WARNING: This is a performance optimization.
10
+ *
11
+ * We define styles for the tree items at the root level of the tree
12
+ * to avoid recomputing the styles for each item when the tree updates.
13
+ * We're sacrificing maintainability for performance because TreeView
14
+ * needs to be performant enough to handle large trees (thousands of items).
15
+ *
16
+ * This is intended to be a temporary solution until we can improve the
17
+ * performance of our styling patterns.
18
+ *
19
+ * Do NOT copy this pattern without understanding the tradeoffs.
20
+ */
21
+ }
22
+
23
+ .TreeViewRootUlStyles .TreeViewItem {
24
+ outline: none;
25
+ }
26
+
27
+ :is(.TreeViewRootUlStyles .TreeViewItem):focus-visible > div {
28
+ box-shadow: var(--boxShadow-thick) var(--fgColor-accent);
29
+ }
30
+
31
+ @media (forced-colors: active) {
32
+
33
+ :is(.TreeViewRootUlStyles .TreeViewItem):focus-visible > div {
34
+ outline: 2px solid HighlightText;
35
+ /* stylelint-disable-next-line declaration-property-value-no-unknown -- Copied from primer/react */
36
+ outline-offset: -2;
37
+ }
38
+ }
39
+
40
+ [data-has-leading-action]:is(.TreeViewRootUlStyles .TreeViewItem) {
41
+ --has-leading-action: 1;
42
+ }
43
+
44
+ .TreeViewRootUlStyles .TreeViewItemContainer {
45
+ --level: 1;
46
+ --toggle-width: 1rem;
47
+ --min-item-height: 2rem;
48
+
49
+ position: relative;
50
+ display: grid;
51
+ width: 100%;
52
+ font-size: var(--text-body-size-medium);
53
+ color: var(--fgColor-default);
54
+ border-radius: var(--borderRadius-medium);
55
+ grid-template-columns: var(--spacer-width) var(--leading-action-width) var(--toggle-width) 1fr;
56
+ grid-template-areas: 'spacer leadingAction toggle content';
57
+
58
+ --leading-action-width: calc(var(--has-leading-action, 0) * 1.5rem);
59
+ --spacer-width: calc(calc(var(--level) - 1) * (var(--toggle-width) / 2));
60
+ }
61
+
62
+ :is(.TreeViewRootUlStyles .TreeViewItemContainer):hover {
63
+ background-color: var(--control-transparent-bgColor-hover);
64
+ }
65
+
66
+ @media (forced-colors: active) {
67
+
68
+ :is(.TreeViewRootUlStyles .TreeViewItemContainer):hover {
69
+ outline: 2px solid transparent;
70
+ outline-offset: -2px;
71
+ }
72
+ }
73
+
74
+ @media (pointer: coarse) {
75
+
76
+ .TreeViewRootUlStyles .TreeViewItemContainer {
77
+ --toggle-width: 1.5rem;
78
+ --min-item-height: 2.75rem;
79
+ }
80
+ }
81
+
82
+ :is(.TreeViewRootUlStyles .TreeViewItemContainer):has(.TreeViewFailureMessage):hover {
83
+ cursor: default;
84
+ background-color: transparent;
85
+ }
86
+
87
+ @media (forced-colors: active) {
88
+
89
+ :is(.TreeViewRootUlStyles .TreeViewItemContainer):has(.TreeViewFailureMessage):hover {
90
+ outline: none;
91
+ }
92
+ }
93
+
94
+ :is(.TreeViewRootUlStyles .TreeViewItemContainer):has([role='treeitem']:focus-visible) {
95
+ box-shadow: var(--boxShadow-thick) var(--fgColor-accent);
96
+ }
97
+
98
+ .TreeViewRootUlStyles:where([data-omit-spacer='true']) .TreeViewItemContainer {
99
+ grid-template-columns: 0 0 0 1fr;
100
+ }
101
+
102
+ /* stylelint-disable-next-line selector-max-specificity */
103
+
104
+ .TreeViewRootUlStyles .TreeViewItem > .TreeViewItemContainer:has(.TreeViewItemContent[aria-current='true']) {
105
+ background-color: var(--control-transparent-bgColor-selected);
106
+
107
+ /* Current item indicator */
108
+ /* stylelint-disable-next-line selector-max-specificity -- Copied from primer/react */
109
+ }
110
+
111
+ :is(.TreeViewRootUlStyles .TreeViewItem > .TreeViewItemContainer:has(.TreeViewItemContent[aria-current='true']))::after {
112
+ position: absolute;
113
+ top: calc(50% - var(--base-size-12));
114
+ left: calc(-1 * var(--base-size-8));
115
+ width: 0.25rem;
116
+ height: 1.5rem;
117
+ content: '';
118
+
119
+ /*
120
+ * Use fgColor accent for consistency across all themes. Using the "correct" variable,
121
+ * --bgColor-accent-emphasis, causes vrt failures for dark high contrast mode
122
+ */
123
+ /* stylelint-disable-next-line primer/colors */
124
+ background-color: var(--fgColor-accent);
125
+ border-radius: var(--borderRadius-medium);
126
+ }
127
+
128
+ @media (forced-colors: active) {
129
+
130
+ :is(.TreeViewRootUlStyles .TreeViewItem > .TreeViewItemContainer:has(.TreeViewItemContent[aria-current='true']))::after {
131
+ background-color: HighlightText;
132
+ }
133
+ }
134
+
135
+ .TreeViewRootUlStyles .TreeViewItemToggle {
136
+ display: flex;
137
+ height: 100%;
138
+
139
+ /* The toggle should appear vertically centered for single-line items, but remain at the top for items that wrap
140
+ across more lines. */
141
+ /* stylelint-disable-next-line primer/spacing */
142
+ padding-top: calc(var(--min-item-height) / 2 - var(--base-size-12) / 2);
143
+ color: var(--fgColor-muted);
144
+ grid-area: toggle;
145
+ justify-content: center;
146
+ align-items: flex-start;
147
+ cursor: pointer;
148
+ }
149
+
150
+ .TreeViewRootUlStyles .TreeViewItemToggleHover:hover {
151
+ background-color: var(--control-transparent-bgColor-hover);
152
+ }
153
+
154
+ .TreeViewRootUlStyles .TreeViewItemToggleEnd {
155
+ border-top-left-radius: var(--borderRadius-medium);
156
+ border-bottom-left-radius: var(--borderRadius-medium);
157
+ }
158
+
159
+ /* stylelint-disable-next-line selector-no-qualifying-type */
160
+
161
+ .TreeViewRootUlStyles a.TreeViewItemContent:hover,.TreeViewRootUlStyles button.TreeViewItemContent:hover {
162
+ -webkit-text-decoration: underline;
163
+ text-decoration: underline;
164
+ text-decoration-color: var(--control-fgColor-rest);
165
+ }
166
+
167
+ .TreeViewRootUlStyles :has(.TreeViewItemContent[aria-disabled="true"]) {
168
+ cursor: not-allowed;
169
+ }
170
+
171
+ .TreeViewRootUlStyles .TreeViewItemContent {
172
+ display: flex;
173
+ height: 100%;
174
+ padding: 0 var(--base-size-8);
175
+ outline: none;
176
+ text-align: left;
177
+ -webkit-user-select: none;
178
+ user-select: none;
179
+ background-color: transparent;
180
+ border: none;
181
+ touch-action: manipulation;
182
+ -webkit-tap-highlight-color: transparent;
183
+ cursor: pointer;
184
+
185
+ /* The dynamic top and bottom padding to maintain the minimum item height for single line items */
186
+ /* stylelint-disable-next-line primer/spacing */
187
+ padding-top: calc((var(--min-item-height) - var(--custom-line-height, 1.3rem)) / 2);
188
+ /* stylelint-disable-next-line primer/spacing */
189
+ padding-bottom: calc((var(--min-item-height) - var(--custom-line-height, 1.3rem)) / 2);
190
+ line-height: var(--custom-line-height, var(--text-body-lineHeight-medium, 1.4285));
191
+ grid-area: content;
192
+ gap: var(--stack-gap-condensed);
193
+ }
194
+
195
+ :is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemCheckbox {
196
+ position: relative;
197
+ color: var(--control-fgColor-rest);
198
+ text-align: left;
199
+ -webkit-user-select: none;
200
+ user-select: none;
201
+ background-color: transparent;
202
+ border: none;
203
+ border-radius: var(--borderRadius-medium);
204
+ transition: background 33.333ms linear;
205
+ touch-action: manipulation;
206
+ -webkit-tap-highlight-color: transparent;
207
+ }
208
+
209
+ [aria-checked='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox {
210
+ background: var(--control-checked-bgColor-rest);
211
+ border-color: var(--control-checked-borderColor-rest);
212
+ transition: background-color, border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0ms; /* unchecked -> checked */
213
+
214
+ /* stylelint-disable-next-line max-nesting-depth, selector-max-specificity -- Copied from primer/react */
215
+ }
216
+
217
+ :is([aria-checked='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox)::before {
218
+ visibility: visible;
219
+ transition: visibility 0s linear 0s;
220
+ animation: checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards 80ms;
221
+ }
222
+
223
+ [aria-checked='mixed']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox {
224
+ background: var(--control-checked-bgColor-rest);
225
+ border-color: var(--control-checked-borderColor-rest);
226
+ transition: background-color, border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0ms; /* unchecked -> checked */
227
+
228
+ /* stylelint-disable-next-line max-nesting-depth, selector-max-specificity -- Copied from primer/react */
229
+ }
230
+
231
+ :is([aria-checked='mixed']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox)::before {
232
+ visibility: visible;
233
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMiIgdmlld0JveD0iMCAwIDEwIDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAxQzAgMC40NDc3MTUgMC40NDc3MTUgMCAxIDBIOUM5LjU1MjI5IDAgMTAgMC40NDc3MTUgMTAgMUMxMCAxLjU1MjI4IDkuNTUyMjkgMiA5IDJIMUMwLjQ0NzcxNSAyIDAgMS41NTIyOCAwIDFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K');
234
+ animation: checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards 80ms;
235
+ clip-path: none;
236
+ }
237
+
238
+ [aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) {
239
+ pointer-events: none;
240
+ }
241
+
242
+ [aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemContentText {
243
+ color: var(--control-fgColor-disabled);
244
+ }
245
+
246
+ [aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemVisual {
247
+ fill: var(--control-fgColor-disabled);
248
+
249
+ /* stylelint-disable-next-line max-nesting-depth, selector-max-compound-selectors, selector-max-specificity */
250
+ }
251
+
252
+ :is([aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemVisual) svg {
253
+ fill: var(--control-fgColor-disabled);
254
+ }
255
+
256
+ /* stylelint-disable-next-line max-nesting-depth */
257
+
258
+ @media (hover: hover) {
259
+ /* stylelint-disable-next-line max-nesting-depth, selector-max-specificity */
260
+ :is([aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox):hover {
261
+ cursor: not-allowed;
262
+ }
263
+ }
264
+
265
+ @media (hover: hover) {
266
+ /* stylelint-disable-next-line max-nesting-depth */
267
+ [aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent):hover {
268
+ cursor: not-allowed;
269
+ background-color: transparent;
270
+ }
271
+ }
272
+
273
+ .TreeViewRootUlStyles .TreeViewItemContentText {
274
+ color: var(--control-fgColor-rest);
275
+ flex: 1 1 auto;
276
+ width: 0;
277
+ }
278
+
279
+ .TreeViewRootUlStyles:where([data-truncate-text='true']) .TreeViewItemContentText {
280
+ overflow: hidden;
281
+ text-overflow: ellipsis;
282
+ white-space: nowrap;
283
+ }
284
+
285
+ .TreeViewRootUlStyles:where([data-truncate-text='false']) .TreeViewItemContentText {
286
+ /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated -- Copied from primer/react */
287
+ word-break: break-word;
288
+ }
289
+
290
+ .TreeViewRootUlStyles .TreeViewItemVisual {
291
+ display: flex;
292
+
293
+ /* The visual icons should appear vertically centered for single-line items, but remain at the top for items that wrap
294
+ across more lines. */
295
+ height: var(--custom-line-height, 1.3rem);
296
+ color: var(--fgColor-muted);
297
+ align-items: center;
298
+ }
299
+
300
+ .TreeViewRootUlStyles .TreeViewItemLeadingAction {
301
+ display: flex;
302
+ color: var(--fgColor-muted);
303
+ grid-area: leadingAction;
304
+ }
305
+
306
+ :is(.TreeViewRootUlStyles .TreeViewItemLeadingAction) > button {
307
+ flex-shrink: 1;
308
+ }
309
+
310
+ .TreeViewRootUlStyles .TreeViewItemLevelLine {
311
+ width: 100%;
312
+ height: 100%;
313
+
314
+ /*
315
+ * On devices without hover, the nesting indicator lines
316
+ * appear at all times.
317
+ */
318
+ border-color: var(--borderColor-muted);
319
+ border-right: var(--borderWidth-thin) solid;
320
+ }
321
+
322
+ /*
323
+ * On devices with :hover support, the nesting indicator lines
324
+ * fade in when the user mouses over the entire component,
325
+ * or when there's focus inside the component. This makes
326
+ * sure the component remains simple when not in use.
327
+ */
328
+
329
+ @media (hover: hover) {
330
+ .TreeViewRootUlStyles .TreeViewItemLevelLine {
331
+ border-color: transparent;
332
+ }
333
+
334
+ .TreeViewRootUlStyles:hover .TreeViewItemLevelLine,.TreeViewRootUlStyles:focus-within .TreeViewItemLevelLine {
335
+ border-color: var(--borderColor-muted);
336
+ }
337
+ }
338
+
339
+ .TreeViewRootUlStyles .TreeViewVisuallyHidden {
340
+ position: absolute;
341
+ width: 1px;
342
+ height: 1px;
343
+ padding: 0;
344
+ /* stylelint-disable-next-line primer/spacing */
345
+ margin: -1px;
346
+ overflow: hidden;
347
+ clip: rect(0, 0, 0, 0);
348
+ white-space: nowrap;
349
+ border-width: 0;
350
+ }
351
+
352
+ .TreeViewSkeletonItemContainerStyle {
353
+ display: flex;
354
+ align-items: center;
355
+ column-gap: 0.5rem;
356
+ height: 2rem;
357
+ }
358
+
359
+ @media (pointer: coarse) {
360
+
361
+ .TreeViewSkeletonItemContainerStyle {
362
+ height: 2.75rem;
363
+ }
364
+ }
365
+
366
+ .TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 1) {
367
+ --tree-item-loading-width: 67%;
368
+ }
369
+
370
+ .TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 2) {
371
+ --tree-item-loading-width: 47%;
372
+ }
373
+
374
+ .TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 3) {
375
+ --tree-item-loading-width: 73%;
376
+ }
377
+
378
+ .TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 4) {
379
+ --tree-item-loading-width: 64%;
380
+ }
381
+
382
+ .TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 5) {
383
+ --tree-item-loading-width: 50%;
384
+ }
385
+
386
+ .TreeItemSkeletonTextStyles {
387
+ width: var(--tree-item-loading-width, 67%);
388
+ }
389
+
390
+ .TreeViewFailureMessage {
391
+ display: grid;
392
+ grid-template-columns: auto 1fr;
393
+ gap: 0.5rem;
394
+ width: 100%;
395
+ align-items: center;
396
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "alpha/tree_view",
3
+ "selectors": [
4
+ ".TreeViewRootUlStyles",
5
+ ".TreeViewRootUlStyles .TreeViewItem",
6
+ ":is(.TreeViewRootUlStyles .TreeViewItem):focus-visible > div",
7
+ "[data-has-leading-action]:is(.TreeViewRootUlStyles .TreeViewItem)",
8
+ ".TreeViewRootUlStyles .TreeViewItemContainer",
9
+ ":is(.TreeViewRootUlStyles .TreeViewItemContainer):hover",
10
+ ":is(.TreeViewRootUlStyles .TreeViewItemContainer):has(.TreeViewFailureMessage):hover",
11
+ ":is(.TreeViewRootUlStyles .TreeViewItemContainer):has([role='treeitem']:focus-visible)",
12
+ ".TreeViewRootUlStyles:where([data-omit-spacer='true']) .TreeViewItemContainer",
13
+ ".TreeViewRootUlStyles .TreeViewItem > .TreeViewItemContainer:has(.TreeViewItemContent[aria-current='true'])",
14
+ ":is(.TreeViewRootUlStyles .TreeViewItem > .TreeViewItemContainer:has(.TreeViewItemContent[aria-current='true']))::after",
15
+ ".TreeViewRootUlStyles .TreeViewItemToggle",
16
+ ".TreeViewRootUlStyles .TreeViewItemToggleHover:hover",
17
+ ".TreeViewRootUlStyles .TreeViewItemToggleEnd",
18
+ ".TreeViewRootUlStyles a.TreeViewItemContent:hover",
19
+ ".TreeViewRootUlStyles button.TreeViewItemContent:hover",
20
+ ".TreeViewRootUlStyles :has(.TreeViewItemContent[aria-disabled=\"true\"])",
21
+ ".TreeViewRootUlStyles .TreeViewItemContent",
22
+ ":is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemCheckbox",
23
+ "[aria-checked='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox",
24
+ ":is([aria-checked='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox)::before",
25
+ "[aria-checked='mixed']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox",
26
+ ":is([aria-checked='mixed']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox)::before",
27
+ "[aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent)",
28
+ "[aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemContentText",
29
+ "[aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemVisual",
30
+ ":is([aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .TreeViewItemVisual) svg",
31
+ ":is([aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent) .FormControl-checkbox):hover",
32
+ "[aria-disabled='true']:is(.TreeViewRootUlStyles .TreeViewItemContent):hover",
33
+ ".TreeViewRootUlStyles .TreeViewItemContentText",
34
+ ".TreeViewRootUlStyles:where([data-truncate-text='true']) .TreeViewItemContentText",
35
+ ".TreeViewRootUlStyles:where([data-truncate-text='false']) .TreeViewItemContentText",
36
+ ".TreeViewRootUlStyles .TreeViewItemVisual",
37
+ ".TreeViewRootUlStyles .TreeViewItemLeadingAction",
38
+ ":is(.TreeViewRootUlStyles .TreeViewItemLeadingAction) > button",
39
+ ".TreeViewRootUlStyles .TreeViewItemLevelLine",
40
+ ".TreeViewRootUlStyles:hover .TreeViewItemLevelLine",
41
+ ".TreeViewRootUlStyles:focus-within .TreeViewItemLevelLine",
42
+ ".TreeViewRootUlStyles .TreeViewVisuallyHidden",
43
+ ".TreeViewSkeletonItemContainerStyle",
44
+ ".TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 1)",
45
+ ".TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 2)",
46
+ ".TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 3)",
47
+ ".TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 4)",
48
+ ".TreeViewSkeletonItemContainerStyle:nth-of-type(5n + 5)",
49
+ ".TreeItemSkeletonTextStyles",
50
+ ".TreeViewFailureMessage"
51
+ ]
52
+ }
@@ -0,0 +1,150 @@
1
+ /* UnderlineNav */
2
+
3
+ .UnderlineNav {
4
+ display: flex;
5
+ min-height: var(--base-size-48);
6
+ overflow-x: auto;
7
+ overflow-y: hidden;
8
+ /* stylelint-disable-next-line primer/box-shadow */
9
+ box-shadow: inset 0 -1px 0 var(--borderColor-muted);
10
+ -webkit-overflow-scrolling: auto;
11
+ justify-content: space-between;
12
+ }
13
+
14
+ .UnderlineNav .Counter {
15
+ /* stylelint-disable-next-line primer/spacing */
16
+ margin-left: var(--control-medium-gap);
17
+ color: var(--fgColor-default);
18
+ background-color: var(--bgColor-neutral-muted, var(--color-neutral-muted));
19
+ }
20
+
21
+ .UnderlineNav .Counter--primary {
22
+ color: var(--fgColor-onEmphasis);
23
+ background-color: var(--bgColor-neutral-emphasis);
24
+ }
25
+
26
+ .UnderlineNav-body {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: var(--control-medium-gap);
30
+ list-style: none;
31
+ }
32
+
33
+ .UnderlineNav-item {
34
+ position: relative;
35
+ display: flex;
36
+ /* stylelint-disable-next-line primer/spacing */
37
+ padding: 0 var(--control-medium-paddingInline-condensed);
38
+ font-size: var(--text-body-size-medium);
39
+ /* stylelint-disable-next-line primer/typography */
40
+ line-height: 30px;
41
+ color: var(--fgColor-default);
42
+ text-align: center;
43
+ white-space: nowrap;
44
+ cursor: pointer;
45
+ background-color: transparent;
46
+ border: 0;
47
+ border-radius: var(--borderRadius-medium);
48
+ align-items: center;
49
+ }
50
+
51
+ .UnderlineNav-item:hover,.UnderlineNav-item:focus,.UnderlineNav-item:focus-visible {
52
+ color: var(--fgColor-default);
53
+ -webkit-text-decoration: none;
54
+ text-decoration: none;
55
+ border-bottom-color: var(--borderColor-neutral-muted);
56
+ outline-offset: -2px;
57
+ transition: border-bottom-color 0.12s ease-out;
58
+ }
59
+
60
+ /* renders a visibly hidden "copy" of the label in bold, reserving box space for when label becomes bold on selected */
61
+
62
+ .UnderlineNav-item [data-content]::before {
63
+ display: block;
64
+ height: 0;
65
+ font-weight: var(--base-text-weight-semibold);
66
+ visibility: hidden;
67
+ content: attr(data-content);
68
+ }
69
+
70
+ /* increase touch target area */
71
+
72
+ :is(.UnderlineNav-item::before) {
73
+ position: absolute;
74
+ top: 50%;
75
+ left: 50%;
76
+ width: 100%;
77
+ height: 100%;
78
+ min-height: 48px;
79
+ content: "";
80
+ transform: translateX(-50%) translateY(-50%);
81
+ }
82
+
83
+ /* hover state was "sticking" on mobile after click */
84
+
85
+ @media (pointer: fine) {
86
+ .UnderlineNav-item:hover {
87
+ color: var(--fgColor-default);
88
+ -webkit-text-decoration: none;
89
+ text-decoration: none;
90
+ background: var(--control-transparent-bgColor-hover);
91
+ transition: background 0.12s ease-out;
92
+ }
93
+ }
94
+
95
+ .UnderlineNav-item.selected,.UnderlineNav-item[role='tab'][aria-selected='true'],.UnderlineNav-item[aria-current]:not([aria-current='false']) {
96
+ font-weight: var(--base-text-weight-semibold);
97
+ color: var(--fgColor-default);
98
+ border-bottom-color: var(--underlineNav-borderColor-active);
99
+
100
+ /* current/selected underline */
101
+ }
102
+
103
+ :is(.UnderlineNav-item.selected,.UnderlineNav-item[role='tab'][aria-selected='true'],.UnderlineNav-item[aria-current]:not([aria-current='false']))::after {
104
+ position: absolute;
105
+ right: 50%;
106
+ bottom: calc(50% - var(--base-size-24)); /* 48px total height / 2 (24px) + 1px */
107
+ z-index: 1; /* raise above full-width flash banner */
108
+ width: 100%;
109
+ height: 2px;
110
+ content: '';
111
+ /* stylelint-disable-next-line primer/colors */
112
+ background: var(--underlineNav-borderColor-active);
113
+ border-radius: var(--borderRadius-medium);
114
+ transform: translate(50%, -50%);
115
+ }
116
+
117
+ .UnderlineNav--right {
118
+ justify-content: flex-end;
119
+ }
120
+
121
+ .UnderlineNav--right .UnderlineNav-actions {
122
+ flex: 1 1 auto;
123
+ }
124
+
125
+ .UnderlineNav-actions {
126
+ align-self: center;
127
+ }
128
+
129
+ .UnderlineNav--full {
130
+ display: block;
131
+
132
+ /* required for underline to align with additional wrapper element */
133
+ }
134
+
135
+ .UnderlineNav--full .UnderlineNav-body {
136
+ min-height: var(--base-size-48);
137
+ }
138
+
139
+ .UnderlineNav-octicon {
140
+ display: inline !important;
141
+ /* stylelint-disable-next-line primer/spacing */
142
+ margin-right: var(--control-medium-gap);
143
+ color: var(--fgColor-muted);
144
+ fill: var(--fgColor-muted);
145
+ }
146
+
147
+ .UnderlineNav-container {
148
+ display: flex;
149
+ justify-content: space-between;
150
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "alpha/underline_nav",
3
+ "selectors": [
4
+ ".UnderlineNav",
5
+ ".UnderlineNav .Counter",
6
+ ".UnderlineNav .Counter--primary",
7
+ ".UnderlineNav-body",
8
+ ".UnderlineNav-item",
9
+ ".UnderlineNav-item:hover",
10
+ ".UnderlineNav-item:focus",
11
+ ".UnderlineNav-item:focus-visible",
12
+ ".UnderlineNav-item [data-content]::before",
13
+ ":is(.UnderlineNav-item::before)",
14
+ ".UnderlineNav-item.selected",
15
+ ".UnderlineNav-item[role='tab'][aria-selected='true']",
16
+ ".UnderlineNav-item[aria-current]:not([aria-current='false'])",
17
+ ":is(.UnderlineNav-item.selected,.UnderlineNav-item[role='tab'][aria-selected='true'],.UnderlineNav-item[aria-current]:not([aria-current='false']))::after",
18
+ ".UnderlineNav--right",
19
+ ".UnderlineNav--right .UnderlineNav-actions",
20
+ ".UnderlineNav-actions",
21
+ ".UnderlineNav--full",
22
+ ".UnderlineNav--full .UnderlineNav-body",
23
+ ".UnderlineNav-octicon",
24
+ ".UnderlineNav-container"
25
+ ]
26
+ }
@@ -0,0 +1,18 @@
1
+ declare global {
2
+ interface HTMLElementEventMap {
3
+ 'banner:dismiss': CustomEvent<void>;
4
+ }
5
+ }
6
+ declare class XBannerElement extends HTMLElement {
7
+ #private;
8
+ titleText: HTMLElement;
9
+ dismiss(): void;
10
+ show(): void;
11
+ hide(): void;
12
+ }
13
+ declare global {
14
+ interface Window {
15
+ XBannerElement: typeof XBannerElement;
16
+ }
17
+ }
18
+ export {};
@@ -0,0 +1,51 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ 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");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _XBannerElement_instances, _XBannerElement_dismissScheme_get;
13
+ import { controller, target } from '@github/catalyst';
14
+ let XBannerElement = class XBannerElement extends HTMLElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ _XBannerElement_instances.add(this);
18
+ }
19
+ dismiss() {
20
+ if (__classPrivateFieldGet(this, _XBannerElement_instances, "a", _XBannerElement_dismissScheme_get) === 'remove') {
21
+ const parentElement = this.parentElement;
22
+ if (!parentElement)
23
+ return;
24
+ parentElement.removeChild(this);
25
+ }
26
+ else {
27
+ this.hide();
28
+ }
29
+ this.dispatchEvent(new CustomEvent('banner:dismiss'));
30
+ }
31
+ show() {
32
+ this.style.setProperty('display', 'initial');
33
+ }
34
+ hide() {
35
+ this.style.setProperty('display', 'none');
36
+ }
37
+ };
38
+ _XBannerElement_instances = new WeakSet();
39
+ _XBannerElement_dismissScheme_get = function _XBannerElement_dismissScheme_get() {
40
+ return this.getAttribute('data-dismiss-scheme');
41
+ };
42
+ __decorate([
43
+ target
44
+ ], XBannerElement.prototype, "titleText", void 0);
45
+ XBannerElement = __decorate([
46
+ controller
47
+ ], XBannerElement);
48
+ if (!window.customElements.get('x-banner')) {
49
+ window.XBannerElement = XBannerElement;
50
+ window.customElements.define('x-banner', XBannerElement);
51
+ }