@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
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 GitHub
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,30 @@
1
+ <h1 align="center">OpenProject's Primer ViewComponents</h1>
2
+
3
+ <p align="center">Fork of ViewComponents for the Primer Design System used for OpenProject.</p>
4
+
5
+ _Note: This library is under active pre-1.0 development. Breaking changes are likely in patch releases._
6
+
7
+ ## Contribution
8
+
9
+ Please have a look at our [Contribution docs](./docs/contributors/README.md) to learn about any ways to contribute as for example
10
+
11
+ * [Getting started](./docs/contributors/setup.md)
12
+ * [Adding a component](./docs/contributors/adding-components.md)
13
+ * [Releasing](./docs/contributors/releasing.md)
14
+ * [Updating the fork](./docs/contributors/updating-fork.md)
15
+ * ...
16
+
17
+ ## CI & Automation
18
+
19
+ Primer already provides us with a lot of automation and an advanced test setup. In our guide we explain how that works, and what we adapted to our need after the fork.
20
+
21
+ * [CI](./docs/contributors/ci.md)
22
+ * [Testing](./docs/contributors/playwright-testing.md)
23
+
24
+ ## Documentation
25
+
26
+ Visit [https://primer.style/view_components/](https://primer.style/design/components/) to view the documentation of the Primer ViewComponents.
27
+
28
+ ## License
29
+
30
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1 @@
1
+ <svg width="64" height="64" xmlns="http://www.w3.org/2000/svg"><g><rect x="-16" y="-16" width="32" height="32" fill="none" stroke="#a3eea8" stroke-width="4" rx="10" transform="translate(32 32)"><animate attributeName="stroke-width" attributeType="XML" dur="4s" repeatCount="indefinite" values="0;4;0;0" keyTimes="0;0.35;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/><animateTransform attributeName="transform" additive="sum" attributeType="XML" type="scale" dur="4s" repeatCount="indefinite" values="0.5;0.5;1.6;0.5" keyTimes="0;0.35;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></rect><rect x="-16" y="-16" width="32" height="32" fill="#35c53f" rx="5" transform="translate(32 32)"><animateTransform attributeName="transform" additive="sum" attributeType="XML" type="scale" dur="4s" repeatCount="indefinite" values="1;1.3;1.1;1" keyTimes="0;0.5;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></rect><animateTransform attributeName="transform" attributeType="XML" additive="sum" type="rotate" dur="4s" repeatCount="indefinite" values="45 32 32;1080 32 32;945 32 32" keyTimes="0;0.6;1" keySplines="0.42 0 0.58 1;0.42 0 0.58 1" calcMode="spline"/></g></svg>
@@ -0,0 +1,17 @@
1
+ import { ActionMenuElement } from './action_menu/action_menu_element';
2
+ declare class ActionBarElement extends HTMLElement {
3
+ #private;
4
+ items: HTMLElement[];
5
+ itemContainer: HTMLElement;
6
+ moreMenu: ActionMenuElement;
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ menuItemClick(event: Event): void;
10
+ update(): void;
11
+ }
12
+ declare global {
13
+ interface Window {
14
+ ActionBarElement: typeof ActionBarElement;
15
+ }
16
+ }
17
+ export {};
@@ -0,0 +1,16 @@
1
+ export declare class ActionListTruncationObserver {
2
+ resizeObserver: ResizeObserver;
3
+ constructor(el: HTMLElement);
4
+ unobserve(el: HTMLElement): void;
5
+ update(el: HTMLElement): void;
6
+ }
7
+ export declare class ActionListElement extends HTMLElement {
8
+ #private;
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ }
12
+ declare global {
13
+ interface Window {
14
+ ActionListElement: typeof ActionListElement;
15
+ }
16
+ }
@@ -0,0 +1,49 @@
1
+ import '@oddbird/popover-polyfill';
2
+ import type { IncludeFragmentElement } from '@github/include-fragment-element';
3
+ import AnchoredPositionElement from '../../anchored_position';
4
+ type SelectVariant = 'none' | 'single' | 'multiple' | null;
5
+ type SelectedItem = {
6
+ label: string | null | undefined;
7
+ value: string | null | undefined;
8
+ element: Element;
9
+ };
10
+ export declare class ActionMenuElement extends HTMLElement {
11
+ #private;
12
+ includeFragment: IncludeFragmentElement;
13
+ overlay: AnchoredPositionElement;
14
+ list: HTMLElement;
15
+ static validItemRoles: string[];
16
+ static validSelectors: string[];
17
+ static menuItemSelectors: string[];
18
+ get selectVariant(): SelectVariant;
19
+ set selectVariant(variant: SelectVariant);
20
+ get dynamicLabelPrefix(): string;
21
+ set dynamicLabelPrefix(value: string);
22
+ get dynamicLabel(): boolean;
23
+ set dynamicLabel(value: boolean);
24
+ get popoverElement(): HTMLElement | null;
25
+ get childPopoverElements(): HTMLElement[];
26
+ get invokerElement(): HTMLButtonElement | null;
27
+ get invokerLabel(): HTMLElement | null;
28
+ get selectedItems(): SelectedItem[];
29
+ connectedCallback(): void;
30
+ disconnectedCallback(): void;
31
+ handleEvent(event: Event): void;
32
+ get items(): HTMLElement[];
33
+ getItemById(itemId: string): HTMLElement | null;
34
+ isItemDisabled(item: Element | null): boolean;
35
+ disableItem(item: Element | null): void;
36
+ enableItem(item: Element | null): void;
37
+ isItemHidden(item: Element | null): boolean;
38
+ hideItem(item: Element | null): void;
39
+ showItem(item: Element | null): void;
40
+ isItemChecked(item: Element | null): boolean;
41
+ checkItem(item: Element | null): void;
42
+ uncheckItem(item: Element | null): void;
43
+ }
44
+ declare global {
45
+ interface Window {
46
+ ActionMenuElement: typeof ActionMenuElement;
47
+ }
48
+ }
49
+ export {};
@@ -0,0 +1,17 @@
1
+ import AnchoredPositionElement from '../../anchored_position';
2
+ type StackEntry = {
3
+ element: AnchoredPositionElement;
4
+ abortController?: AbortController;
5
+ };
6
+ export declare class ActionMenuFocusZoneStack {
7
+ #private;
8
+ constructor();
9
+ get current(): StackEntry | undefined;
10
+ push(next: AnchoredPositionElement, options?: {
11
+ trapFocus: boolean;
12
+ }): void;
13
+ pop(target?: AnchoredPositionElement): void;
14
+ elementIsMenuItem(element: HTMLElement): boolean;
15
+ get isEmpty(): boolean;
16
+ }
17
+ export {};
@@ -0,0 +1 @@
1
+ import '@github/details-menu-element';
@@ -0,0 +1 @@
1
+ import './dropdown/menu';
@@ -0,0 +1,18 @@
1
+ export declare class ModalDialogElement extends HTMLElement {
2
+ #private;
3
+ openButton: HTMLButtonElement | null;
4
+ get open(): boolean;
5
+ set open(value: boolean);
6
+ get showButtons(): NodeList;
7
+ connectedCallback(): void;
8
+ show(): void;
9
+ close(closedNotCancelled?: boolean): void;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ ModalDialogElement: typeof ModalDialogElement;
14
+ }
15
+ interface HTMLElementTagNameMap {
16
+ 'modal-dialog': ModalDialogElement;
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ export declare class SegmentedControlElement extends HTMLElement {
2
+ #private;
3
+ items: HTMLElement[];
4
+ connectedCallback(): void;
5
+ select(event: Event): void;
6
+ get current(): HTMLElement | null;
7
+ }
8
+ declare global {
9
+ interface Window {
10
+ SegmentedControlElement: typeof SegmentedControlElement;
11
+ }
12
+ }
@@ -0,0 +1,65 @@
1
+ import { IncludeFragmentElement } from '@github/include-fragment-element';
2
+ import type { AnchorAlignment, AnchorSide } from '@primer/behaviors';
3
+ import type { LiveRegionElement } from '@primer/live-region-element';
4
+ import '@primer/live-region-element';
5
+ import '@oddbird/popover-polyfill';
6
+ type SelectVariant = 'none' | 'single' | 'multiple' | null;
7
+ type SelectedItem = {
8
+ label: string | null | undefined;
9
+ value: string | null | undefined;
10
+ inputName: string | null | undefined;
11
+ };
12
+ export type SelectPanelItem = HTMLLIElement;
13
+ export type FilterFn = (item: SelectPanelItem, query: string) => boolean;
14
+ export declare class SelectPanelElement extends HTMLElement {
15
+ #private;
16
+ includeFragment: IncludeFragmentElement;
17
+ dialog: HTMLDialogElement;
18
+ filterInputTextField: HTMLInputElement;
19
+ remoteInput: HTMLElement;
20
+ list: HTMLElement;
21
+ noResults: HTMLElement;
22
+ fragmentErrorElement: HTMLElement;
23
+ bannerErrorElement: HTMLElement;
24
+ bodySpinner: HTMLElement;
25
+ liveRegion: LiveRegionElement;
26
+ filterFn?: FilterFn;
27
+ get open(): boolean;
28
+ get selectVariant(): SelectVariant;
29
+ get ariaSelectionType(): string;
30
+ set selectVariant(variant: SelectVariant);
31
+ get dynamicLabelPrefix(): string;
32
+ get dynamicAriaLabelPrefix(): string;
33
+ set dynamicLabelPrefix(value: string);
34
+ get dynamicLabel(): boolean;
35
+ set dynamicLabel(value: boolean);
36
+ get invokerElement(): HTMLButtonElement | null;
37
+ get closeButton(): HTMLButtonElement | null;
38
+ get invokerLabel(): HTMLElement | null;
39
+ get selectedItems(): SelectedItem[];
40
+ get align(): AnchorAlignment;
41
+ get side(): AnchorSide;
42
+ updateAnchorPosition(): void;
43
+ connectedCallback(): void;
44
+ disconnectedCallback(): void;
45
+ handleEvent(event: Event): void;
46
+ show(): void;
47
+ hide(): void;
48
+ get visibleItems(): SelectPanelItem[];
49
+ get items(): SelectPanelItem[];
50
+ get focusableItem(): HTMLElement | undefined;
51
+ getItemById(itemId: string): SelectPanelItem | null;
52
+ isItemDisabled(item: SelectPanelItem | null): boolean;
53
+ disableItem(item: SelectPanelItem | null): void;
54
+ enableItem(item: SelectPanelItem | null): void;
55
+ isItemHidden(item: SelectPanelItem | null): boolean;
56
+ isItemChecked(item: SelectPanelItem | null): boolean;
57
+ checkItem(item: SelectPanelItem | null): void;
58
+ uncheckItem(item: SelectPanelItem | null): void;
59
+ }
60
+ declare global {
61
+ interface Window {
62
+ SelectPanelElement: typeof SelectPanelElement;
63
+ }
64
+ }
65
+ export {};
@@ -0,0 +1 @@
1
+ import '@github/tab-container-element';
@@ -0,0 +1,34 @@
1
+ declare class ToggleSwitchElement extends HTMLElement {
2
+ switch: HTMLElement;
3
+ loadingSpinner: HTMLElement;
4
+ errorIcon: HTMLElement;
5
+ turbo: boolean;
6
+ private toggling;
7
+ get src(): string | null;
8
+ get csrf(): string | null;
9
+ get csrfField(): string;
10
+ isRemote(): boolean;
11
+ toggle(): Promise<void>;
12
+ turnOn(): void;
13
+ turnOff(): void;
14
+ isOn(): boolean;
15
+ isOff(): boolean;
16
+ isDisabled(): boolean;
17
+ disable(): void;
18
+ enable(): void;
19
+ private performToggle;
20
+ private setLoadingState;
21
+ private setSuccessState;
22
+ private setErrorState;
23
+ private setFinishedState;
24
+ private submitForm;
25
+ }
26
+ declare global {
27
+ interface Window {
28
+ ToggleSwitchElement: typeof ToggleSwitchElement;
29
+ Turbo: {
30
+ renderStreamMessage: (message: string) => void;
31
+ };
32
+ }
33
+ }
34
+ export {};
@@ -0,0 +1,27 @@
1
+ import '@oddbird/popover-polyfill';
2
+ type Direction = 'n' | 's' | 'e' | 'w' | 'ne' | 'se' | 'nw' | 'sw';
3
+ declare class ToolTipElement extends HTMLElement {
4
+ #private;
5
+ styles(): string;
6
+ get showReason(): "focus" | "mouse";
7
+ get htmlFor(): string;
8
+ set htmlFor(value: string);
9
+ get type(): 'description' | 'label';
10
+ set type(value: 'description' | 'label');
11
+ get direction(): Direction;
12
+ set direction(value: Direction);
13
+ get control(): HTMLElement | null;
14
+ set hiddenFromView(value: true | false);
15
+ get hiddenFromView(): true | false;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ handleEvent(event: Event): Promise<void>;
19
+ static observedAttributes: string[];
20
+ attributeChangedCallback(name: string): void;
21
+ }
22
+ declare global {
23
+ interface Window {
24
+ ToolTipElement: typeof ToolTipElement;
25
+ }
26
+ }
27
+ export {};
@@ -0,0 +1,42 @@
1
+ import { SelectStrategy, TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
2
+ import type { TreeViewNodeType, TreeViewCheckedValue, TreeViewNodeInfo } from '../../shared_events';
3
+ export declare class TreeViewElement extends HTMLElement {
4
+ #private;
5
+ formInputContainer: HTMLElement;
6
+ formInputPrototype: HTMLInputElement;
7
+ connectedCallback(): void;
8
+ rootLeafNodes(): NodeListOf<HTMLElement>;
9
+ rootSubTreeNodes(): NodeListOf<TreeViewSubTreeNodeElement>;
10
+ disconnectedCallback(): void;
11
+ handleEvent(event: Event): void;
12
+ getFormInputValueForNode(node: Element): string | null;
13
+ getNodePath(node: Element): string[];
14
+ getNodeType(node: Element): TreeViewNodeType | null;
15
+ markCurrentAtPath(path: string[]): void;
16
+ get currentNode(): HTMLLIElement | null;
17
+ expandAtPath(path: string[]): void;
18
+ collapseAtPath(path: string[]): void;
19
+ toggleAtPath(path: string[]): void;
20
+ checkAtPath(path: string[]): void;
21
+ uncheckAtPath(path: string[]): void;
22
+ toggleCheckedAtPath(path: string[]): void;
23
+ checkedValueAtPath(path: string[]): TreeViewCheckedValue;
24
+ disabledValueAtPath(path: string[]): boolean;
25
+ nodeAtPath(path: string[], selector?: string): Element | null;
26
+ subTreeAtPath(path: string[]): TreeViewSubTreeNodeElement | null;
27
+ leafAtPath(path: string[]): HTMLLIElement | null;
28
+ setNodeCheckedValue(node: Element, value: TreeViewCheckedValue): void;
29
+ getNodeCheckedValue(node: Element): TreeViewCheckedValue;
30
+ getNodeDisabledValue(node: Element): boolean;
31
+ setNodeDisabledValue(node: Element, disabled: boolean): void;
32
+ nodeHasCheckBox(node: Element): boolean;
33
+ nodeHasNativeAction(node: Element): boolean;
34
+ expandAncestorsForNode(node: HTMLElement): void;
35
+ changeSelectStrategy(newStrategy: SelectStrategy): void;
36
+ infoFromNode(node: Element, newCheckedValue?: TreeViewCheckedValue): TreeViewNodeInfo | null;
37
+ }
38
+ declare global {
39
+ interface Window {
40
+ TreeViewElement: typeof TreeViewElement;
41
+ }
42
+ }
@@ -0,0 +1,15 @@
1
+ export declare class TreeViewIconPairElement extends HTMLElement {
2
+ #private;
3
+ expandedIcon: HTMLElement;
4
+ collapsedIcon: HTMLElement;
5
+ expanded: boolean;
6
+ connectedCallback(): void;
7
+ showExpanded(): void;
8
+ showCollapsed(): void;
9
+ toggle(): void;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ TreeViewIconPairElement: typeof TreeViewIconPairElement;
14
+ }
15
+ }
@@ -0,0 +1,9 @@
1
+ import { IncludeFragmentElement } from '@github/include-fragment-element';
2
+ export declare class TreeViewIncludeFragmentElement extends IncludeFragmentElement {
3
+ request(): Request;
4
+ }
5
+ declare global {
6
+ interface Window {
7
+ TreeViewIncludeFragmentElement: typeof TreeViewIncludeFragmentElement;
8
+ }
9
+ }
@@ -0,0 +1,3 @@
1
+ import { TreeViewElement } from './tree_view';
2
+ export declare function useRovingTabIndex(containerEl: TreeViewElement): void;
3
+ export declare function getElementState(element: HTMLElement): 'open' | 'closed' | 'end';
@@ -0,0 +1,45 @@
1
+ import { TreeViewIconPairElement } from './tree_view_icon_pair_element';
2
+ import { TreeViewIncludeFragmentElement } from './tree_view_include_fragment_element';
3
+ import { TreeViewElement } from './tree_view';
4
+ type LoadingState = 'loading' | 'error' | 'success';
5
+ export type SelectStrategy = 'self' | 'descendants' | 'mixed_descendants';
6
+ export declare class TreeViewSubTreeNodeElement extends HTMLElement {
7
+ #private;
8
+ node: HTMLElement;
9
+ subTree: HTMLElement;
10
+ iconPair: TreeViewIconPairElement;
11
+ toggleButton: HTMLElement;
12
+ expandedToggleIcon: HTMLElement;
13
+ collapsedToggleIcon: HTMLElement;
14
+ includeFragment: TreeViewIncludeFragmentElement;
15
+ loadingIndicator: HTMLElement;
16
+ loadingFailureMessage: HTMLElement;
17
+ retryButton: HTMLButtonElement;
18
+ connectedCallback(): void;
19
+ get expanded(): boolean;
20
+ set expanded(newValue: boolean);
21
+ get loadingState(): LoadingState;
22
+ set loadingState(newState: LoadingState);
23
+ get selectStrategy(): SelectStrategy;
24
+ get level(): number;
25
+ disconnectedCallback(): void;
26
+ handleEvent(event: Event): void;
27
+ expand(): void;
28
+ collapse(): void;
29
+ toggle(): void;
30
+ get nodes(): NodeListOf<Element>;
31
+ eachDirectDescendantNode(): Generator<Element>;
32
+ eachDirectDescendantSubTreeNode(): Generator<TreeViewSubTreeNodeElement>;
33
+ eachDescendantNode(): Generator<Element>;
34
+ eachAncestorSubTreeNode(): Generator<TreeViewSubTreeNodeElement>;
35
+ get isEmpty(): boolean;
36
+ get treeView(): TreeViewElement | null;
37
+ toggleChecked(): void;
38
+ changeSelectStrategy(newStrategy: SelectStrategy): void;
39
+ }
40
+ declare global {
41
+ interface Window {
42
+ TreeViewSubTreeNodeElement: typeof TreeViewSubTreeNodeElement;
43
+ }
44
+ }
45
+ export {};
@@ -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,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 @@
1
+ import '@github/auto-complete-element';
@@ -0,0 +1 @@
1
+ import '@github/clipboard-copy-element';
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A companion Catalyst element for the Details view component. This element
3
+ * ensures the <details> and <summary> elements markup is properly accessible by
4
+ * updating the aria-label and aria-expanded attributes on click.
5
+ *
6
+ * aria-label values are only set if provided via the `data-aria-label-open` and
7
+ * `data-aria-label-closed` attributes on the summary target. If these attributes
8
+ * are not present, no aria-label will be set, allowing screen readers to use
9
+ * the visible text content.
10
+ *
11
+ * @example
12
+ * ```html
13
+ * <details-toggle>
14
+ * <details open=true data-target="details-toggle.detailsTarget">
15
+ * <summary
16
+ * aria-expanded="true"
17
+ * aria-label="Collapse me"
18
+ * data-target="details-toggle.summaryTarget"
19
+ * data-action="click:details-toggle#toggle"
20
+ * data-aria-label-closed="Expand me"
21
+ * data-aria-label-open="Collapse me"
22
+ * >
23
+ * Click me
24
+ * </summary>
25
+ * <div>Contents</div>
26
+ * </details>
27
+ * </details-toggle>
28
+ * ```
29
+ */
30
+ declare class DetailsToggleElement extends HTMLElement {
31
+ detailsTarget: HTMLDetailsElement;
32
+ summaryTarget: HTMLElement;
33
+ toggle(): void;
34
+ }
35
+ declare global {
36
+ interface Window {
37
+ DetailsToggleElement: typeof DetailsToggleElement;
38
+ }
39
+ }
40
+ export {};
@@ -0,0 +1,20 @@
1
+ export declare class NavListElement extends HTMLElement {
2
+ #private;
3
+ items: HTMLElement[];
4
+ topLevelList: HTMLElement;
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ selectItemById(itemId: string | null): boolean;
8
+ selectItemByHref(href: string | null): boolean;
9
+ selectItemByCurrentLocation(): boolean;
10
+ expandItem(item: HTMLElement): void;
11
+ collapseItem(item: HTMLElement): void;
12
+ itemIsExpanded(item: HTMLElement | null): boolean;
13
+ handleItemWithSubItemClick(e: Event): void;
14
+ handleItemWithSubItemKeydown(e: KeyboardEvent): void;
15
+ }
16
+ declare global {
17
+ interface Window {
18
+ NavListElement: typeof NavListElement;
19
+ }
20
+ }
@@ -0,0 +1,19 @@
1
+ export declare class NavListGroupElement extends HTMLElement {
2
+ #private;
3
+ showMoreItem: HTMLElement;
4
+ focusMarkers: HTMLElement[];
5
+ connectedCallback(): void;
6
+ get showMoreDisabled(): boolean;
7
+ set showMoreDisabled(value: boolean);
8
+ set currentPage(value: number);
9
+ get currentPage(): number;
10
+ get totalPages(): number;
11
+ get paginationSrc(): string;
12
+ private showMore;
13
+ private setShowMoreItemState;
14
+ }
15
+ declare global {
16
+ interface Window {
17
+ NavListGroupElement: typeof NavListGroupElement;
18
+ }
19
+ }
@@ -0,0 +1 @@
1
+ import '@github/relative-time-element';
@@ -0,0 +1,15 @@
1
+ export declare class DialogHelperElement extends HTMLElement {
2
+ #private;
3
+ get dialog(): HTMLDialogElement | null;
4
+ connectedCallback(): void;
5
+ disconnectedCallback(): void;
6
+ handleEvent(event: MouseEvent): void;
7
+ }
8
+ declare global {
9
+ interface Window {
10
+ DialogHelperElement: typeof DialogHelperElement;
11
+ }
12
+ interface HTMLElementTagNameMap {
13
+ 'dialog-helper': DialogHelperElement;
14
+ }
15
+ }
@@ -0,0 +1,19 @@
1
+ import '@oddbird/popover-polyfill';
2
+ export default class FocusGroupElement extends HTMLElement {
3
+ #private;
4
+ get nowrap(): boolean;
5
+ set nowrap(value: boolean);
6
+ get direction(): 'horizontal' | 'vertical' | 'both';
7
+ set direction(value: 'horizontal' | 'vertical' | 'both');
8
+ get retain(): boolean;
9
+ set retain(value: boolean);
10
+ get mnemonics(): boolean;
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ handleEvent(event: Event): void;
14
+ }
15
+ declare global {
16
+ interface Window {
17
+ FocusGroupElement: typeof FocusGroupElement;
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ import { CollapsibleElement } from '../collapsible';
2
+ declare class CollapsibleHeaderElement extends CollapsibleElement {
3
+ connectedCallback(): void;
4
+ get baseClass(): string;
5
+ }
6
+ declare global {
7
+ interface Window {
8
+ CollapsibleHeaderElement: typeof CollapsibleHeaderElement;
9
+ }
10
+ }
11
+ export {};
@@ -0,0 +1,13 @@
1
+ export declare abstract class CollapsibleElement extends HTMLElement {
2
+ arrowDown: Element;
3
+ arrowUp: Element;
4
+ triggerElement: HTMLElement;
5
+ collapsibleElements: HTMLElement[];
6
+ collapsed: boolean;
7
+ toggleViaKeyboard(event: KeyboardEvent): void;
8
+ toggle(): void;
9
+ attributeChangedCallback(name: string): void;
10
+ hideAll(): void;
11
+ expandAll(): void;
12
+ abstract get baseClass(): string;
13
+ }