primer_view_components 0.0.92 → 0.0.93

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +2 -2
  4. data/app/assets/javascripts/primer_view_components.js +1 -1
  5. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  6. data/app/assets/styles/primer_view_components.css +1 -0
  7. data/app/assets/styles/primer_view_components.css.map +1 -1
  8. data/app/components/primer/alpha/dialog/body.rb +25 -0
  9. data/app/components/primer/alpha/dialog/footer.rb +31 -0
  10. data/app/components/primer/alpha/dialog/header.html.erb +15 -0
  11. data/app/components/primer/alpha/dialog/header.rb +37 -0
  12. data/app/components/primer/alpha/dialog.html.erb +12 -0
  13. data/app/components/primer/alpha/dialog.rb +160 -0
  14. data/app/components/primer/alpha/modal-dialog-element.d.ts +1 -1
  15. data/app/components/primer/alpha/modal-dialog-element.js +2 -3
  16. data/app/components/primer/alpha/modal-dialog-element.ts +148 -0
  17. data/app/components/primer/alpha/toggle-switch-element.js +2 -0
  18. data/app/components/primer/alpha/toggle-switch-element.ts +2 -1
  19. data/app/components/primer/alpha/tool-tip-element.ts +0 -1
  20. data/app/components/primer/beta/button.html.erb +23 -0
  21. data/app/components/primer/beta/button.pcss +332 -0
  22. data/app/components/primer/beta/button.rb +189 -0
  23. data/app/components/primer/beta/icon_button.html.erb +6 -0
  24. data/app/components/primer/beta/icon_button.rb +104 -0
  25. data/app/components/primer/clipboard_copy_component.ts +1 -1
  26. data/app/components/primer/experimental/action-bar-element.d.ts +14 -0
  27. data/app/components/primer/experimental/action-bar-element.js +139 -0
  28. data/app/components/primer/experimental/action-menu-element.d.ts +31 -0
  29. data/app/components/primer/experimental/action-menu-element.js +334 -0
  30. data/app/components/primer/experimental/overflow-menu-element.d.ts +13 -0
  31. data/app/components/primer/experimental/overflow-menu-element.js +113 -0
  32. data/app/components/primer/primer.d.ts +1 -0
  33. data/app/components/primer/primer.js +1 -0
  34. data/app/components/primer/primer.pcss +1 -0
  35. data/app/components/primer/primer.ts +1 -0
  36. data/lib/postcss_mixins/focusBoxShadowInset.pcss +6 -0
  37. data/lib/postcss_mixins/focusOutline.pcss +5 -0
  38. data/lib/postcss_mixins/focusOutlineOnEmphasis.pcss +6 -0
  39. data/lib/postcss_mixins/minTouchTarget.js +20 -0
  40. data/lib/postcss_mixins/targetBoxShadow.pcss +6 -0
  41. data/lib/primer/view_components/linters/argument_mappers/base.rb +1 -1
  42. data/lib/primer/view_components/version.rb +1 -1
  43. data/lib/tasks/docs.rake +3 -8
  44. data/static/arguments.yml +113 -0
  45. data/static/audited_at.json +6 -0
  46. data/static/constants.json +107 -0
  47. data/static/statuses.json +6 -0
  48. metadata +25 -5
  49. data/app/components/primer/alpha/segmented-control-element.d.ts +0 -8
  50. data/app/components/primer/alpha/segmented-control-element.js +0 -28
  51. data/static/classes.yml +0 -230
@@ -0,0 +1,5 @@
1
+ @define-mixin focusOutline $outlineOffset: -2px, $outlineColor: var(--color-accent-fg) {
2
+ outline: 2px solid $outlineColor;
3
+ outline-offset: $outlineOffset;
4
+ box-shadow: none;
5
+ }
@@ -0,0 +1,6 @@
1
+ /* outline with fg box-shadow for buttons */
2
+ @define-mixin focusOutlineOnEmphasis $outlineOffset: -2px, $outlineColor: var(--color-accent-fg) {
3
+ outline: 2px solid $outlineColor;
4
+ outline-offset: $outlineOffset;
5
+ box-shadow: inset 0 0 0 3px var(--color-fg-on-emphasis);
6
+ }
@@ -0,0 +1,20 @@
1
+ module.exports = function (mixin, minHeight = '32px', minWidth = null) {
2
+ let declarations = {
3
+ position: 'absolute',
4
+ top: '50%',
5
+ left: '50%',
6
+ width: '100%',
7
+ height: '100%',
8
+ 'min-height': minHeight,
9
+ content: '""',
10
+ transform: 'translateX(-50%) translateY(-50%)'
11
+ }
12
+
13
+ if (minWidth) {
14
+ declarations['min-width'] = minWidth
15
+ }
16
+
17
+ return {
18
+ '&': declarations
19
+ }
20
+ }
@@ -0,0 +1,6 @@
1
+ /* box-shadow for :target styles (no inset) */
2
+ /* !important to override PCSS utilities */
3
+ @define-mixin targetBoxShadow $outlineWidth: 2px, $outlineColor: var(--color-accent-fg) {
4
+ outline: none !important;
5
+ box-shadow: 0 0 0 $outlineWidth $outlineColor !important;
6
+ }
@@ -75,7 +75,7 @@ module ERBLint
75
75
 
76
76
  # Override this with your component's mappings, it should return a hash with the component's arguments,
77
77
  # including a `classes` key that will contain all classes that the mapper couldn't handle.
78
- # @returns { classes: Array, ... }
78
+ # @return { classes: Array, ... }
79
79
  def classes_to_args(classes)
80
80
  { classes: classes }
81
81
  end
@@ -5,7 +5,7 @@ module Primer
5
5
  module VERSION
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 92
8
+ PATCH = 93
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH].join(".")
11
11
  end
data/lib/tasks/docs.rake CHANGED
@@ -29,6 +29,8 @@ namespace :docs do
29
29
  # Rails controller for rendering arbitrary ERB
30
30
  view_context = ApplicationController.new.tap { |c| c.request = ActionDispatch::TestRequest.create }.view_context
31
31
  components = [
32
+ Primer::Beta::IconButton,
33
+ Primer::Beta::Button,
32
34
  Primer::Alpha::Layout,
33
35
  Primer::HellipButton,
34
36
  Primer::Image,
@@ -53,6 +55,7 @@ namespace :docs do
53
55
  Primer::Beta::CloseButton,
54
56
  Primer::Beta::Counter,
55
57
  Primer::Beta::Details,
58
+ Primer::Alpha::Dialog,
56
59
  Primer::Dropdown,
57
60
  Primer::DropdownMenuComponent,
58
61
  Primer::Beta::Flash,
@@ -107,7 +110,6 @@ namespace :docs do
107
110
  components_needing_docs = all_components - components
108
111
 
109
112
  args_for_components = []
110
- classes_found_in_examples = []
111
113
 
112
114
  errors = []
113
115
 
@@ -252,9 +254,6 @@ namespace :docs do
252
254
  end
253
255
  f.puts
254
256
  html = view_context.render(inline: code)
255
- html.scan(/class="([^"]*)"/) do |classnames|
256
- classes_found_in_examples.concat(classnames[0].split.reject { |c| c.starts_with?("octicon", "js", "my-") }.map { ".#{_1}" })
257
- end
258
257
  f.puts("<Example src=\"#{html.tr('"', "\'").delete("\n")}\" />")
259
258
  f.puts
260
259
  f.puts("```erb")
@@ -276,10 +275,6 @@ namespace :docs do
276
275
  raise
277
276
  end
278
277
 
279
- File.open("static/classes.yml", "w") do |f|
280
- f.puts YAML.dump(classes_found_in_examples.sort.uniq)
281
- end
282
-
283
278
  File.open("static/arguments.yml", "w") do |f|
284
279
  f.puts YAML.dump(args_for_components)
285
280
  end
data/static/arguments.yml CHANGED
@@ -22,6 +22,45 @@
22
22
  type: Hash
23
23
  default: N/A
24
24
  description: "[System arguments](/system-arguments)"
25
+ - component: Dialog
26
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/dialog.rb
27
+ parameters:
28
+ - name: id
29
+ type: String
30
+ default: '`"dialog-#{(36**3 + rand(36**4)).to_s(36)}"`'
31
+ description: The id of the dialog.
32
+ - name: title
33
+ type: String
34
+ default: N/A
35
+ description: Describes the content of the dialog.
36
+ - name: subtitle
37
+ type: String
38
+ default: "`nil`"
39
+ description: Provides dditional context for the dialog, also setting the `aria-describedby`
40
+ attribute.
41
+ - name: size
42
+ type: Symbol
43
+ default: "`:medium`"
44
+ description: The size of the dialog. One of `:large`, `:medium`, `:medium_portrait`,
45
+ `:small`, or `:xlarge`.
46
+ - name: position
47
+ type: Symbol
48
+ default: "`:center`"
49
+ description: The size of the dialog. One of `:center`, `:left`, or `:right`.
50
+ - name: position_narrow
51
+ type: Symbol
52
+ default: "`:inherit`"
53
+ description: The size of the dialog. One of `:bottom`, `:fullscreen`, `:inherit`,
54
+ `:left`, or `:right`.
55
+ - name: visually_hide_title
56
+ type: Boolean
57
+ default: "`false`"
58
+ description: If true will hide the heading title, while still making it available
59
+ to Screen Readers.
60
+ - name: system_arguments
61
+ type: Hash
62
+ default: N/A
63
+ description: "[System arguments](/system-arguments)"
25
64
  - component: HiddenTextExpander
26
65
  source: https://github.com/primer/view_components/tree/main/app/components/primer/alpha/hidden_text_expander.rb
27
66
  parameters:
@@ -477,6 +516,38 @@
477
516
  type: Hash
478
517
  default: N/A
479
518
  description: "[System arguments](/system-arguments)"
519
+ - component: Button
520
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/button.rb
521
+ parameters:
522
+ - name: scheme
523
+ type: Symbol
524
+ default: "`:default`"
525
+ description: One of `:danger`, `:default`, `:invisible`, `:link`, `:outline`,
526
+ `:primary`, or `:secondary`.
527
+ - name: size
528
+ type: Symbol
529
+ default: "`:medium`"
530
+ description: One of `:large`, `:medium`, or `:small`.
531
+ - name: full_width
532
+ type: Boolean
533
+ default: "`false`"
534
+ description: 'Whether button is full-width with `display: block`.'
535
+ - name: align_content
536
+ type: Symbol
537
+ default: "`:center`"
538
+ description: One of `:center` or `:start`.
539
+ - name: tag
540
+ type: Symbol
541
+ default: "`:button`"
542
+ description: One of `:a`, `:button`, or `:summary`.
543
+ - name: type
544
+ type: Symbol
545
+ default: "`:button`"
546
+ description: One of `:button`, `:reset`, or `:submit`.
547
+ - name: system_arguments
548
+ type: Hash
549
+ default: N/A
550
+ description: "[System arguments](/system-arguments)"
480
551
  - component: ButtonGroup
481
552
  source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/button_group.rb
482
553
  parameters:
@@ -591,6 +662,48 @@
591
662
  type: Hash
592
663
  default: N/A
593
664
  description: "[System arguments](/system-arguments)"
665
+ - component: IconButton
666
+ source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/icon_button.rb
667
+ parameters:
668
+ - name: icon
669
+ type: String
670
+ default: N/A
671
+ description: Name of [Octicon](https://primer.style/octicons/) to use.
672
+ - name: scheme
673
+ type: Symbol
674
+ default: "`:default`"
675
+ description: One of `:danger`, `:default`, or `:invisible`.
676
+ - name: size
677
+ type: Symbol
678
+ default: "`:medium`"
679
+ description: One of `:large`, `:medium`, or `:small`.
680
+ - name: tag
681
+ type: Symbol
682
+ default: N/A
683
+ description: One of `:a`, `:button`, or `:summary`.
684
+ - name: type
685
+ type: Symbol
686
+ default: N/A
687
+ description: One of `:button`, `:reset`, or `:submit`.
688
+ - name: aria-label
689
+ type: String
690
+ default: N/A
691
+ description: String that can be read by assistive technology. A label should be
692
+ short and concise. See the accessibility section for more information.
693
+ - name: aria-description
694
+ type: String
695
+ default: N/A
696
+ description: String that can be read by assistive technology. A description can
697
+ be longer as it is intended to provide more context and information. See the
698
+ accessibility section for more information.
699
+ - name: tooltip_direction
700
+ type: Symbol
701
+ default: "`:s`"
702
+ description: One of `:e`, `:n`, `:ne`, `:nw`, `:s`, `:se`, `:sw`, or `:w`.
703
+ - name: system_arguments
704
+ type: Hash
705
+ default: N/A
706
+ description: "[System arguments](/system-arguments)"
594
707
  - component: Text
595
708
  source: https://github.com/primer/view_components/tree/main/app/components/primer/beta/text.rb
596
709
  parameters:
@@ -2,6 +2,10 @@
2
2
  "Primer::Alpha::AutoComplete": "",
3
3
  "Primer::Alpha::AutoComplete::Item": "",
4
4
  "Primer::Alpha::ButtonMarketing": "",
5
+ "Primer::Alpha::Dialog": "",
6
+ "Primer::Alpha::Dialog::Body": "",
7
+ "Primer::Alpha::Dialog::Footer": "",
8
+ "Primer::Alpha::Dialog::Header": "",
5
9
  "Primer::Alpha::HiddenTextExpander": "",
6
10
  "Primer::Alpha::Layout": "",
7
11
  "Primer::Alpha::Layout::Main": "",
@@ -24,12 +28,14 @@
24
28
  "Primer::Beta::BorderBox::Header": "",
25
29
  "Primer::Beta::Breadcrumbs": "",
26
30
  "Primer::Beta::Breadcrumbs::Item": "",
31
+ "Primer::Beta::Button": "",
27
32
  "Primer::Beta::ButtonGroup": "",
28
33
  "Primer::Beta::CloseButton": "",
29
34
  "Primer::Beta::Counter": "",
30
35
  "Primer::Beta::Details": "",
31
36
  "Primer::Beta::Flash": "",
32
37
  "Primer::Beta::Heading": "",
38
+ "Primer::Beta::IconButton": "",
33
39
  "Primer::Beta::Text": "",
34
40
  "Primer::Beta::Truncate": "",
35
41
  "Primer::Beta::Truncate::TruncateText": "",
@@ -38,6 +38,58 @@
38
38
  "large"
39
39
  ]
40
40
  },
41
+ "Primer::Alpha::Dialog": {
42
+ "Body": "Primer::Alpha::Dialog::Body",
43
+ "DEFAULT_POSITION": "center",
44
+ "DEFAULT_POSITION_NARROW": "inherit",
45
+ "DEFAULT_SIZE": "medium",
46
+ "Footer": "Primer::Alpha::Dialog::Footer",
47
+ "Header": "Primer::Alpha::Dialog::Header",
48
+ "POSITION_MAPPINGS": {
49
+ "center": "Overlay-backdrop--center",
50
+ "left": "Overlay-backdrop--side Overlay-backdrop--placement-left",
51
+ "right": "Overlay-backdrop--side Overlay-backdrop--placement-right"
52
+ },
53
+ "POSITION_NARROW_MAPPINGS": {
54
+ "inherit": "",
55
+ "bottom": "Overlay-backdrop--side-whenNarrow Overlay-backdrop--placement-bottom-whenNarrow",
56
+ "fullscreen": "Overlay-backdrop--full-whenNarrow",
57
+ "left": "Overlay-backdrop--side-whenNarrow Overlay-backdrop--placement-left-whenNarrow",
58
+ "right": "Overlay-backdrop--side-whenNarrow Overlay-backdrop--placement-right-whenNarrow"
59
+ },
60
+ "POSITION_NARROW_OPTIONS": [
61
+ "inherit",
62
+ "bottom",
63
+ "fullscreen",
64
+ "left",
65
+ "right"
66
+ ],
67
+ "POSITION_OPTIONS": [
68
+ "center",
69
+ "left",
70
+ "right"
71
+ ],
72
+ "SIZE_MAPPINGS": {
73
+ "small": "Overlay--size-small-portrait",
74
+ "medium_portrait": "Overlay--size-medium-portrait",
75
+ "medium": "Overlay--size-medium",
76
+ "large": "Overlay--size-large",
77
+ "xlarge": "Overlay--size-xlarge"
78
+ },
79
+ "SIZE_OPTIONS": [
80
+ "small",
81
+ "medium_portrait",
82
+ "medium",
83
+ "large",
84
+ "xlarge"
85
+ ]
86
+ },
87
+ "Primer::Alpha::Dialog::Body": {
88
+ },
89
+ "Primer::Alpha::Dialog::Footer": {
90
+ },
91
+ "Primer::Alpha::Dialog::Header": {
92
+ },
41
93
  "Primer::Alpha::HiddenTextExpander": {
42
94
  },
43
95
  "Primer::Alpha::Layout": {
@@ -320,6 +372,48 @@
320
372
  },
321
373
  "Primer::Beta::Breadcrumbs::Item": {
322
374
  },
375
+ "Primer::Beta::Button": {
376
+ "ALIGN_CONTENT_MAPPINGS": {
377
+ "start": "Button-content--alignStart",
378
+ "center": ""
379
+ },
380
+ "ALIGN_CONTENT_OPTIONS": [
381
+ "start",
382
+ "center"
383
+ ],
384
+ "DEFAULT_ALIGN_CONTENT": "center",
385
+ "DEFAULT_SCHEME": "default",
386
+ "DEFAULT_SIZE": "medium",
387
+ "LINK_SCHEME": "link",
388
+ "SCHEME_MAPPINGS": {
389
+ "default": "Button--secondary",
390
+ "primary": "Button--primary",
391
+ "secondary": "Button--secondary",
392
+ "danger": "Button--danger",
393
+ "outline": "btn-outline",
394
+ "invisible": "Button--invisible",
395
+ "link": "btn-link"
396
+ },
397
+ "SCHEME_OPTIONS": [
398
+ "default",
399
+ "primary",
400
+ "secondary",
401
+ "danger",
402
+ "outline",
403
+ "invisible",
404
+ "link"
405
+ ],
406
+ "SIZE_MAPPINGS": {
407
+ "small": "Button--small",
408
+ "medium": "Button--medium",
409
+ "large": "Button--large"
410
+ },
411
+ "SIZE_OPTIONS": [
412
+ "small",
413
+ "medium",
414
+ "large"
415
+ ]
416
+ },
323
417
  "Primer::Beta::ButtonGroup": {
324
418
  },
325
419
  "Primer::Beta::CloseButton": {
@@ -383,6 +477,19 @@
383
477
  "h6"
384
478
  ]
385
479
  },
480
+ "Primer::Beta::IconButton": {
481
+ "DEFAULT_SCHEME": "default",
482
+ "SCHEME_MAPPINGS": {
483
+ "default": "Button--secondary",
484
+ "danger": "Button--danger",
485
+ "invisible": "Button--invisible"
486
+ },
487
+ "SCHEME_OPTIONS": [
488
+ "default",
489
+ "danger",
490
+ "invisible"
491
+ ]
492
+ },
386
493
  "Primer::Beta::Text": {
387
494
  "DEFAULT_TAG": "span"
388
495
  },
data/static/statuses.json CHANGED
@@ -2,6 +2,10 @@
2
2
  "Primer::Alpha::AutoComplete": "deprecated",
3
3
  "Primer::Alpha::AutoComplete::Item": "deprecated",
4
4
  "Primer::Alpha::ButtonMarketing": "alpha",
5
+ "Primer::Alpha::Dialog": "alpha",
6
+ "Primer::Alpha::Dialog::Body": "alpha",
7
+ "Primer::Alpha::Dialog::Footer": "alpha",
8
+ "Primer::Alpha::Dialog::Header": "alpha",
5
9
  "Primer::Alpha::HiddenTextExpander": "alpha",
6
10
  "Primer::Alpha::Layout": "alpha",
7
11
  "Primer::Alpha::Layout::Main": "alpha",
@@ -24,12 +28,14 @@
24
28
  "Primer::Beta::BorderBox::Header": "beta",
25
29
  "Primer::Beta::Breadcrumbs": "beta",
26
30
  "Primer::Beta::Breadcrumbs::Item": "alpha",
31
+ "Primer::Beta::Button": "beta",
27
32
  "Primer::Beta::ButtonGroup": "beta",
28
33
  "Primer::Beta::CloseButton": "beta",
29
34
  "Primer::Beta::Counter": "beta",
30
35
  "Primer::Beta::Details": "beta",
31
36
  "Primer::Beta::Flash": "beta",
32
37
  "Primer::Beta::Heading": "beta",
38
+ "Primer::Beta::IconButton": "beta",
33
39
  "Primer::Beta::Text": "beta",
34
40
  "Primer::Beta::Truncate": "beta",
35
41
  "Primer::Beta::Truncate::TruncateText": "alpha",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.92
4
+ version: 0.0.93
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-24 00:00:00.000000000 Z
11
+ date: 2022-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -412,13 +412,18 @@ files:
412
412
  - app/components/primer/alpha/auto_complete/auto_complete.html.erb
413
413
  - app/components/primer/alpha/auto_complete/item.rb
414
414
  - app/components/primer/alpha/button_marketing.rb
415
+ - app/components/primer/alpha/dialog.html.erb
416
+ - app/components/primer/alpha/dialog.rb
417
+ - app/components/primer/alpha/dialog/body.rb
418
+ - app/components/primer/alpha/dialog/footer.rb
419
+ - app/components/primer/alpha/dialog/header.html.erb
420
+ - app/components/primer/alpha/dialog/header.rb
415
421
  - app/components/primer/alpha/hidden_text_expander.rb
416
422
  - app/components/primer/alpha/layout.html.erb
417
423
  - app/components/primer/alpha/layout.rb
418
424
  - app/components/primer/alpha/modal-dialog-element.d.ts
419
425
  - app/components/primer/alpha/modal-dialog-element.js
420
- - app/components/primer/alpha/segmented-control-element.d.ts
421
- - app/components/primer/alpha/segmented-control-element.js
426
+ - app/components/primer/alpha/modal-dialog-element.ts
422
427
  - app/components/primer/alpha/tab_nav.html.erb
423
428
  - app/components/primer/alpha/tab_nav.rb
424
429
  - app/components/primer/alpha/tab_panels.html.erb
@@ -457,6 +462,9 @@ files:
457
462
  - app/components/primer/beta/border_box/header.rb
458
463
  - app/components/primer/beta/breadcrumbs.html.erb
459
464
  - app/components/primer/beta/breadcrumbs.rb
465
+ - app/components/primer/beta/button.html.erb
466
+ - app/components/primer/beta/button.pcss
467
+ - app/components/primer/beta/button.rb
460
468
  - app/components/primer/beta/button_group.html.erb
461
469
  - app/components/primer/beta/button_group.rb
462
470
  - app/components/primer/beta/close_button.rb
@@ -466,6 +474,8 @@ files:
466
474
  - app/components/primer/beta/flash.html.erb
467
475
  - app/components/primer/beta/flash.rb
468
476
  - app/components/primer/beta/heading.rb
477
+ - app/components/primer/beta/icon_button.html.erb
478
+ - app/components/primer/beta/icon_button.rb
469
479
  - app/components/primer/beta/text.rb
470
480
  - app/components/primer/beta/truncate.html.erb
471
481
  - app/components/primer/beta/truncate.rb
@@ -498,6 +508,12 @@ files:
498
508
  - app/components/primer/dropdown/menu.ts
499
509
  - app/components/primer/dropdown_menu_component.html.erb
500
510
  - app/components/primer/dropdown_menu_component.rb
511
+ - app/components/primer/experimental/action-bar-element.d.ts
512
+ - app/components/primer/experimental/action-bar-element.js
513
+ - app/components/primer/experimental/action-menu-element.d.ts
514
+ - app/components/primer/experimental/action-menu-element.js
515
+ - app/components/primer/experimental/overflow-menu-element.d.ts
516
+ - app/components/primer/experimental/overflow-menu-element.js
501
517
  - app/components/primer/flex_component.rb
502
518
  - app/components/primer/flex_item_component.rb
503
519
  - app/components/primer/heading_component.rb
@@ -565,6 +581,11 @@ files:
565
581
  - app/lib/primer/test_selector_helper.rb
566
582
  - app/lib/primer/underline_nav_helper.rb
567
583
  - app/lib/primer/view_helper.rb
584
+ - lib/postcss_mixins/focusBoxShadowInset.pcss
585
+ - lib/postcss_mixins/focusOutline.pcss
586
+ - lib/postcss_mixins/focusOutlineOnEmphasis.pcss
587
+ - lib/postcss_mixins/minTouchTarget.js
588
+ - lib/postcss_mixins/targetBoxShadow.pcss
568
589
  - lib/primer/classify.rb
569
590
  - lib/primer/classify/utilities.rb
570
591
  - lib/primer/classify/utilities.yml
@@ -686,7 +707,6 @@ files:
686
707
  - static/arguments.yml
687
708
  - static/assets/view-components.svg
688
709
  - static/audited_at.json
689
- - static/classes.yml
690
710
  - static/constants.json
691
711
  - static/statuses.json
692
712
  homepage: https://github.com/primer/view_components
@@ -1,8 +0,0 @@
1
- export default class SegmentedControlElement extends HTMLElement {
2
- constructor();
3
- }
4
- declare global {
5
- interface Window {
6
- SegmentedControlElement: typeof SegmentedControlElement;
7
- }
8
- }
@@ -1,28 +0,0 @@
1
- /* eslint-disable custom-elements/no-constructor */
2
- export default class SegmentedControlElement extends HTMLElement {
3
- constructor() {
4
- super();
5
- this.addEventListener('click', (event) => {
6
- var _a, _b;
7
- const controls = Array.from(this.querySelectorAll('ul button')).filter(tab => tab instanceof HTMLElement && tab.closest(this.tagName) === this);
8
- if (!(event.target instanceof Element))
9
- return;
10
- if (event.target.closest(this.tagName) !== this)
11
- return;
12
- const selectedControl = event.target.closest('button');
13
- if (!(selectedControl instanceof HTMLElement) || !selectedControl.closest('ul'))
14
- return;
15
- for (const control of controls) {
16
- (_a = control.closest('li')) === null || _a === void 0 ? void 0 : _a.classList.remove('SegmentedControl-item--selected');
17
- control.setAttribute('aria-current', 'false');
18
- }
19
- (_b = selectedControl.closest('li')) === null || _b === void 0 ? void 0 : _b.classList.add('SegmentedControl-item--selected');
20
- selectedControl.setAttribute('aria-current', 'true');
21
- selectedControl.focus();
22
- });
23
- }
24
- }
25
- if (!window.customElements.get('segmented-control')) {
26
- window.SegmentedControlElement = SegmentedControlElement;
27
- window.customElements.define('segmented-control', SegmentedControlElement);
28
- }