@mixtint/primer-view-components 0.75.2 → 0.84.3

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 (71) hide show
  1. package/README.md +20 -1
  2. package/app/assets/javascripts/components/primer/alpha/tree_view/tree_view.d.ts +1 -0
  3. package/app/assets/javascripts/components/primer/open_project/avatar_fallback.d.ts +28 -0
  4. package/app/assets/javascripts/components/primer/primer.d.ts +2 -0
  5. package/app/assets/javascripts/lib/primer/forms/character_counter.d.ts +41 -0
  6. package/app/assets/javascripts/lib/primer/forms/primer_text_area.d.ts +13 -0
  7. package/app/assets/javascripts/lib/primer/forms/primer_text_field.d.ts +2 -0
  8. package/app/assets/javascripts/primer_view_components.js +1 -1
  9. package/app/assets/javascripts/primer_view_components.js.map +1 -1
  10. package/app/assets/styles/primer_view_components.css +354 -29
  11. package/app/assets/styles/primer_view_components.css.map +1 -1
  12. package/app/components/primer/alpha/action_bar_element.js +68 -77
  13. package/app/components/primer/alpha/action_list.css +1 -1
  14. package/app/components/primer/alpha/action_list.js +1 -1
  15. package/app/components/primer/alpha/action_menu/action_menu_element.js +1 -1
  16. package/app/components/primer/alpha/dialog.css +12 -0
  17. package/app/components/primer/alpha/dialog.css.json +2 -1
  18. package/app/components/primer/alpha/segmented_control.js +1 -1
  19. package/app/components/primer/alpha/select_panel_element.js +4 -2
  20. package/app/components/primer/alpha/tab_nav.css +8 -1
  21. package/app/components/primer/alpha/tab_nav.css.json +1 -0
  22. package/app/components/primer/alpha/toggle_switch.js +1 -1
  23. package/app/components/primer/alpha/tool_tip.js +13 -6
  24. package/app/components/primer/alpha/tree_view/tree_view.d.ts +1 -0
  25. package/app/components/primer/alpha/tree_view/tree_view.js +28 -20
  26. package/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.js +1 -1
  27. package/app/components/primer/alpha/tree_view/tree_view_include_fragment_element.js +1 -1
  28. package/app/components/primer/alpha/tree_view/tree_view_sub_tree_node_element.js +25 -2
  29. package/app/components/primer/alpha/x_banner.js +1 -1
  30. package/app/components/primer/beta/avatar_stack.css +21 -41
  31. package/app/components/primer/beta/avatar_stack.css.json +7 -5
  32. package/app/components/primer/beta/blankslate.css +7 -0
  33. package/app/components/primer/beta/blankslate.css.json +1 -0
  34. package/app/components/primer/beta/details_toggle_element.js +1 -1
  35. package/app/components/primer/beta/nav_list.js +1 -1
  36. package/app/components/primer/beta/nav_list_group_element.js +1 -1
  37. package/app/components/primer/beta/state.css +1 -2
  38. package/app/components/primer/beta/timeline_item.css +2 -1
  39. package/app/components/primer/dialog_helper.js +24 -9
  40. package/app/components/primer/open_project/avatar_fallback.d.ts +28 -0
  41. package/app/components/primer/open_project/avatar_fallback.js +105 -0
  42. package/app/components/primer/open_project/avatar_stack.css +29 -0
  43. package/app/components/primer/open_project/avatar_stack.css.json +10 -0
  44. package/app/components/primer/open_project/border_box/collapsible_header.css +72 -10
  45. package/app/components/primer/open_project/border_box/collapsible_header.css.json +9 -2
  46. package/app/components/primer/open_project/inline_message.css +42 -0
  47. package/app/components/primer/open_project/inline_message.css.json +13 -0
  48. package/app/components/primer/open_project/page_header.css +51 -0
  49. package/app/components/primer/open_project/page_header.css.json +10 -1
  50. package/app/components/primer/open_project/pagination.css +87 -0
  51. package/app/components/primer/open_project/pagination.css.json +24 -0
  52. package/app/components/primer/primer.d.ts +2 -0
  53. package/app/components/primer/primer.js +2 -0
  54. package/app/components/primer/scrollable_region.js +1 -1
  55. package/app/lib/primer/forms/character_counter.d.ts +41 -0
  56. package/app/lib/primer/forms/character_counter.js +114 -0
  57. package/app/lib/primer/forms/primer_multi_input.js +1 -1
  58. package/app/lib/primer/forms/primer_text_area.d.ts +13 -0
  59. package/app/lib/primer/forms/primer_text_area.js +53 -0
  60. package/app/lib/primer/forms/primer_text_field.d.ts +2 -0
  61. package/app/lib/primer/forms/primer_text_field.js +17 -3
  62. package/app/lib/primer/forms/toggle_switch_input.js +1 -1
  63. package/package.json +24 -23
  64. package/static/arguments.json +235 -9
  65. package/static/audited_at.json +6 -0
  66. package/static/classes.json +30 -2
  67. package/static/constants.json +67 -1
  68. package/static/form_previews.json +15 -0
  69. package/static/info_arch.json +1035 -257
  70. package/static/previews.json +476 -14
  71. package/static/statuses.json +6 -0
@@ -563,7 +563,7 @@ nav-list {
563
563
  .ActionListItem-visual,
564
564
  .ActionListItem-action {
565
565
  display: flex;
566
- min-height: var(--control-medium-lineBoxHeight);
566
+ min-height: var(--base-size-20);
567
567
  color: var(--fgColor-muted);
568
568
  pointer-events: none;
569
569
  fill: var(--fgColor-muted);
@@ -1595,6 +1595,18 @@ dialog.Overlay:not([open]) {
1595
1595
  border-radius: unset !important;
1596
1596
  flex-grow: 1;
1597
1597
  }
1598
+
1599
+ .Overlay--fullscreen-whenNarrow {
1600
+ position: fixed;
1601
+ top: 0;
1602
+ left: 0;
1603
+ width: 100vw;
1604
+ max-width: none !important;
1605
+ height: 100vh;
1606
+ max-height: none !important;
1607
+ margin: 0;
1608
+ border-radius: unset !important;
1609
+ }
1598
1610
  }
1599
1611
 
1600
1612
  @keyframes Overlay--motion-slideDown {
@@ -2930,9 +2942,16 @@ dialog.Overlay:not([open]) {
2930
2942
  display: flex;
2931
2943
  /* stylelint-disable-next-line primer/spacing */
2932
2944
  margin-bottom: calc(var(--borderWidth-thin) * -1);
2933
- overflow: hidden;
2945
+ overflow-x: auto;
2946
+ overflow-y: hidden;
2947
+
2948
+ /* stylelint-disable-next-line selector-max-type */
2934
2949
  }
2935
2950
 
2951
+ .tabnav-tabs > li {
2952
+ flex-shrink: 0;
2953
+ }
2954
+
2936
2955
  .tabnav-tab {
2937
2956
  display: inline-block;
2938
2957
  flex-shrink: 0;
@@ -4947,6 +4966,12 @@ a.tabnav-extra:hover {
4947
4966
  height: var(--base-size-64);
4948
4967
  }
4949
4968
 
4969
+ /* stylelint-disable selector-max-specificity */
4970
+
4971
+ /* The selector-max-specificity rule is disabled here because the nested selectors
4972
+ in AvatarStack require high specificity to properly override default styles and
4973
+ achieve the intended visual stacking. */
4974
+
4950
4975
  /* AvatarStack */
4951
4976
 
4952
4977
  /* Stacked avatars can be used to show who is participating in thread when
@@ -4987,8 +5012,6 @@ a.tabnav-extra:hover {
4987
5012
  /* stylelint-disable-next-line primer/spacing */
4988
5013
  margin-right: -11px;
4989
5014
  background-color: var(--bgColor-default);
4990
- /* stylelint-disable-next-line primer/colors */
4991
- border-right: var(--borderWidth-thin) solid var(--bgColor-default);
4992
5015
  border-radius: var(--borderRadius-small);
4993
5016
  transition: margin 0.1s ease-in-out;
4994
5017
  }
@@ -4999,7 +5022,6 @@ a.tabnav-extra:hover {
4999
5022
 
5000
5023
  :is(.AvatarStack-body .avatar):last-child {
5001
5024
  z-index: 1;
5002
- border-right: 0;
5003
5025
  }
5004
5026
 
5005
5027
  /* stylelint-disable-next-line selector-max-type */
@@ -5015,19 +5037,37 @@ a.tabnav-extra:hover {
5015
5037
  opacity: 0;
5016
5038
  }
5017
5039
 
5018
- .AvatarStack-body:hover .avatar {
5040
+ /* stylelint-disable-next-line selector-max-type */
5041
+
5042
+ .AvatarStack-body span:nth-child(n + 4) .avatar {
5043
+ display: none;
5044
+ opacity: 0;
5045
+ }
5046
+
5047
+ :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar {
5019
5048
  margin-right: var(--base-size-4);
5020
5049
  }
5021
5050
 
5022
- .AvatarStack-body:hover .avatar:nth-child(n + 4) {
5051
+ :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar:nth-child(n + 4) {
5052
+ display: flex;
5053
+ opacity: 1;
5054
+ }
5055
+
5056
+ /* stylelint-disable-next-line selector-max-type */
5057
+
5058
+ :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) span:nth-child(n + 4) .avatar {
5023
5059
  display: flex;
5024
5060
  opacity: 1;
5025
5061
  }
5026
5062
 
5027
- .AvatarStack-body:hover .avatar-more {
5063
+ :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) .avatar-more {
5028
5064
  display: none !important;
5029
5065
  }
5030
5066
 
5067
+ .AvatarStack-body[data-disable-expand] {
5068
+ position: relative;
5069
+ }
5070
+
5031
5071
  .avatar.avatar-more {
5032
5072
  z-index: 1;
5033
5073
  margin-right: 0;
@@ -5061,15 +5101,11 @@ a.tabnav-extra:hover {
5061
5101
  flex-direction: row-reverse;
5062
5102
  }
5063
5103
 
5064
- :is(.AvatarStack--right .AvatarStack-body):hover .avatar {
5104
+ :is(.AvatarStack--right .AvatarStack-body):hover:not([data-disable-expand]) .avatar {
5065
5105
  margin-right: 0;
5066
5106
  margin-left: var(--base-size-4);
5067
5107
  }
5068
5108
 
5069
- :is(.AvatarStack--right .AvatarStack-body) .avatar:not(:last-child) {
5070
- border-left: 0;
5071
- }
5072
-
5073
5109
  .AvatarStack--right .avatar.avatar-more {
5074
5110
  background: var(--avatarStack-fade-bgColor-default);
5075
5111
  }
@@ -5087,9 +5123,6 @@ a.tabnav-extra:hover {
5087
5123
  margin-right: 0;
5088
5124
  /* stylelint-disable-next-line primer/spacing */
5089
5125
  margin-left: -11px;
5090
- border-right: 0;
5091
- /* stylelint-disable-next-line primer/colors */
5092
- border-left: var(--borderWidth-thin) solid var(--bgColor-default);
5093
5126
  }
5094
5127
 
5095
5128
  /* stylelint-disable primer/spacing */
@@ -5399,6 +5432,8 @@ a.tabnav-extra:hover {
5399
5432
  .blankslate p {
5400
5433
  font-size: var(--text-body-size-large);
5401
5434
  color: var(--fgColor-muted);
5435
+ max-width: 56rem;
5436
+ margin: auto;
5402
5437
  }
5403
5438
 
5404
5439
  /* stylelint-disable-next-line selector-max-type */
@@ -5437,6 +5472,11 @@ a.tabnav-extra:hover {
5437
5472
  margin-bottom: var(--base-size-4);
5438
5473
  font-size: var(--text-title-size-medium);
5439
5474
  font-weight: var(--text-title-weight-medium);
5475
+ text-wrap: balance;
5476
+ }
5477
+
5478
+ .blankslate-description {
5479
+ text-wrap: balance;
5440
5480
  }
5441
5481
 
5442
5482
  .blankslate-action {
@@ -6733,7 +6773,7 @@ select-panel dialog::backdrop {
6733
6773
  font-size: var(--text-body-size-medium);
6734
6774
  font-weight: var(--base-text-weight-medium);
6735
6775
  /* stylelint-disable-next-line primer/typography */
6736
- line-height: var(--control-medium-lineBoxHeight);
6776
+ line-height: var(--base-size-20);
6737
6777
  text-align: center;
6738
6778
  white-space: nowrap;
6739
6779
  /* stylelint-disable-next-line primer/borders */
@@ -6744,7 +6784,6 @@ select-panel dialog::backdrop {
6744
6784
  .State,
6745
6785
  .State--draft {
6746
6786
  color: var(--fgColor-onEmphasis);
6747
- /* stylelint-disable-next-line primer/colors */
6748
6787
  background-color: var(--bgColor-draft-emphasis, var(--bgColor-neutral-emphasis));
6749
6788
  border: var(--borderWidth-thin) solid transparent;
6750
6789
  box-shadow: var(--boxShadow-thin) var(--borderColor-draft-emphasis, var(--borderColor-neutral-emphasis));
@@ -6940,7 +6979,8 @@ select-panel dialog::backdrop {
6940
6979
  .TimelineItem-body {
6941
6980
  min-width: 0;
6942
6981
  max-width: 100%;
6943
- margin-top: var(--base-size-4);
6982
+ /* stylelint-disable-next-line primer/spacing */
6983
+ margin-top: calc(var(--base-size-4) + 1px);
6944
6984
  color: var(--fgColor-muted);
6945
6985
  flex: auto;
6946
6986
  }
@@ -7073,6 +7113,47 @@ select-panel dialog::backdrop {
7073
7113
 
7074
7114
  /* OP specifics */
7075
7115
 
7116
+ /* stylelint-disable selector-max-type, selector-max-specificity */
7117
+
7118
+ /* Type selectors are required for the avatar-fallback custom element wrapper.
7119
+ Specificity overrides are needed to properly style nested avatar stacking. */
7120
+
7121
+ /* OpenProject AvatarStack - styles for avatar-fallback wrapper elements */
7122
+
7123
+ /* Make avatar-fallback invisible to layout - inner img acts as direct child */
7124
+
7125
+ .AvatarStack-body avatar-fallback {
7126
+ display: contents;
7127
+ }
7128
+
7129
+ /*
7130
+ * Z-index stacking for avatars inside avatar-fallback wrappers.
7131
+ * The base CSS uses .avatar:first-child/:last-child but those selectors
7132
+ * don't match when .avatar is inside avatar-fallback (not a direct child).
7133
+ */
7134
+
7135
+ .AvatarStack-body avatar-fallback:first-child .avatar {
7136
+ z-index: 3;
7137
+ }
7138
+
7139
+ .AvatarStack-body avatar-fallback:nth-child(2) .avatar {
7140
+ z-index: 2;
7141
+ }
7142
+
7143
+ /* Hide 4th+ wrapped avatars */
7144
+
7145
+ .AvatarStack-body avatar-fallback:nth-child(n + 4) {
7146
+ display: none;
7147
+ opacity: 0;
7148
+ }
7149
+
7150
+ /* Show all on hover/focus */
7151
+
7152
+ :is(.AvatarStack-body:hover:not([data-disable-expand]),.AvatarStack-body:focus-within:not([data-disable-expand])) avatar-fallback:nth-child(n + 4) {
7153
+ display: contents;
7154
+ opacity: 1;
7155
+ }
7156
+
7076
7157
  /* OP PageHeader */
7077
7158
 
7078
7159
  .PageHeader {
@@ -7145,6 +7226,39 @@ select-panel dialog::backdrop {
7145
7226
  justify-content: flex-end;
7146
7227
  display: flex;
7147
7228
  align-items: center;
7229
+ color: var(--fgColor-default);
7230
+ }
7231
+
7232
+ /* OpenProject legacy form markup inside header actions: match Primer / dark theme */
7233
+
7234
+ .PageHeader-actions .form--label {
7235
+ color: var(--fgColor-muted);
7236
+ min-width: 0;
7237
+ max-width: none;
7238
+ flex-grow: 0;
7239
+ padding: 0;
7240
+ margin: 0;
7241
+ white-space: nowrap;
7242
+ font-size: var(--text-body-size-medium);
7243
+ line-height: var(--control-medium-lineBoxHeight);
7244
+ }
7245
+
7246
+ .PageHeader-actions select.form--select {
7247
+ color: var(--fgColor-default);
7248
+ background-color: var(--control-bgColor-rest);
7249
+ border-color: var(--borderColor-default);
7250
+ }
7251
+
7252
+ .PageHeader-actions select.form--select:focus,
7253
+ .PageHeader-actions select.form--select:active {
7254
+ border-color: var(--fgColor-accent);
7255
+ outline: none;
7256
+ }
7257
+
7258
+ .PageHeader-actions select.form--select option,
7259
+ .PageHeader-actions select.form--select optgroup {
7260
+ background-color: var(--bgColor-default);
7261
+ color: var(--fgColor-default);
7148
7262
  }
7149
7263
 
7150
7264
  .PageHeader-breadcrumbs {
@@ -7161,6 +7275,24 @@ select-panel dialog::backdrop {
7161
7275
  flex: 1 1 auto;
7162
7276
  }
7163
7277
 
7278
+ /* Hide the context bar on desktop when no breadcrumb is visible */
7279
+
7280
+ @media screen and (min-width: 543.98px) {
7281
+ .PageHeader--noBreadcrumb .PageHeader-contextBar {
7282
+ display: none;
7283
+ }
7284
+ }
7285
+
7286
+ /* Match the title bar and actions height with the toggle menu button for proper vertical alignment */
7287
+
7288
+ .PageHeader--noBreadcrumb .PageHeader-titleBar {
7289
+ line-height: var(--control-small-size);
7290
+ }
7291
+
7292
+ .PageHeader--noBreadcrumb .PageHeader-actions {
7293
+ height: var(--control-small-size);
7294
+ }
7295
+
7164
7296
  /* CSS for DragHandle */
7165
7297
 
7166
7298
  .DragHandle {
@@ -7232,6 +7364,49 @@ select-panel dialog::backdrop {
7232
7364
  max-width: min(960px, 100vw - 2rem);
7233
7365
  }
7234
7366
 
7367
+ .InlineMessage {
7368
+ display: grid;
7369
+ /* stylelint-disable-next-line primer/typography */
7370
+ font-size: var(--inline-message-fontSize);
7371
+ /* stylelint-disable-next-line primer/typography */
7372
+ line-height: var(--inline-message-lineHeight);
7373
+ /* stylelint-disable-next-line primer/colors */
7374
+ color: var(--inline-message-fgColor);
7375
+ column-gap: 0.5rem;
7376
+ grid-template-columns: auto 1fr;
7377
+ align-items: start;
7378
+ }
7379
+
7380
+ .InlineMessage[data-size='small'] {
7381
+ --inline-message-fontSize: var(--text-body-size-small);
7382
+ --inline-message-lineHeight: var(--text-body-lineHeight-small, 1.6666);
7383
+ }
7384
+
7385
+ .InlineMessage[data-size='medium'] {
7386
+ --inline-message-fontSize: var(--text-body-size-medium);
7387
+ --inline-message-lineHeight: var(--text-body-lineHeight-medium, 1.4285);
7388
+ }
7389
+
7390
+ .InlineMessage[data-variant='warning'] {
7391
+ --inline-message-fgColor: var(--fgColor-attention);
7392
+ }
7393
+
7394
+ .InlineMessage[data-variant='critical'] {
7395
+ --inline-message-fgColor: var(--fgColor-danger);
7396
+ }
7397
+
7398
+ .InlineMessage[data-variant='success'] {
7399
+ --inline-message-fgColor: var(--fgColor-success);
7400
+ }
7401
+
7402
+ .InlineMessage[data-variant='unavailable'] {
7403
+ --inline-message-fgColor: var(--fgColor-muted);
7404
+ }
7405
+
7406
+ .InlineMessageIcon {
7407
+ min-height: calc(var(--inline-message-lineHeight) * var(--inline-message-fontSize));
7408
+ }
7409
+
7235
7410
  /* CSS for SubHeader */
7236
7411
 
7237
7412
  .SubHeader {
@@ -7345,23 +7520,85 @@ select-panel dialog::backdrop {
7345
7520
  /* CSS for BorderBox::CollapsibleHeader */
7346
7521
 
7347
7522
  .CollapsibleHeader {
7348
- cursor: pointer;
7349
- display: flex;
7350
- align-items: center;
7523
+ display: block;
7524
+ container-name: collapsible-header-container;
7525
+ container-type: inline-size;
7351
7526
  }
7352
7527
 
7353
7528
  .Box:has(.CollapsibleHeader--collapsed) {
7354
- border-bottom-left-radius: 0;
7355
- border-bottom-right-radius: 0;
7356
- border-bottom-width: var(--borderWidth-thicker);
7529
+ border-bottom-left-radius: 0;
7530
+ border-bottom-right-radius: 0;
7531
+ border-bottom-width: var(--borderWidth-thicker);
7357
7532
  }
7358
7533
 
7359
- .Box:has(.CollapsibleHeader--collapsed) .Box-row,.Box:has(.CollapsibleHeader--collapsed) .Box-body,.Box:has(.CollapsibleHeader--collapsed) .Box-footer {
7360
- display: none;
7361
- }
7534
+ .Box:has(.CollapsibleHeader--collapsed) .Box-list,.Box:has(.CollapsibleHeader--collapsed) .Box-body,.Box:has(.CollapsibleHeader--collapsed) .Box-footer {
7535
+ display: none;
7536
+ }
7537
+
7538
+ .CollapsibleHeader-triggerArea {
7539
+ cursor: pointer;
7540
+ -webkit-user-select: none;
7541
+ user-select: none;
7542
+ display: flex;
7543
+ flex-wrap: nowrap;
7544
+ align-items: center;
7545
+ column-gap: var(--stack-gap-normal);
7546
+ row-gap: var(--base-size-4);
7547
+ overflow: hidden;
7548
+ }
7362
7549
 
7363
- .CollapsibleHeader--triggerArea {
7550
+ .CollapsibleHeader > .CollapsibleHeader-triggerArea {
7551
+ flex: 1;
7552
+ }
7553
+
7554
+ @container collapsible-header-container (width < 544px) {
7555
+ .CollapsibleHeader-triggerArea {
7556
+ flex-direction: column;
7557
+ align-items: flex-start;
7558
+ }
7559
+
7560
+ .CollapsibleHeader[data-collapsed] .CollapsibleHeader-description {
7561
+ display: none;
7562
+ }
7563
+
7564
+ .CollapsibleHeader-description {
7565
+ width: 100%;
7566
+ }
7567
+ }
7568
+
7569
+ .CollapsibleHeader--multi-line .CollapsibleHeader-triggerArea {
7570
+ flex-direction: column;
7571
+ align-items: flex-start;
7572
+ }
7573
+
7574
+ .CollapsibleHeader--multi-line.CollapsibleHeader[data-collapsed] .CollapsibleHeader-description {
7575
+ display: none;
7576
+ }
7577
+
7578
+ .CollapsibleHeader--multi-line .CollapsibleHeader-description {
7579
+ overflow: visible;
7580
+ text-overflow: initial;
7581
+ white-space: normal;
7364
7582
  width: 100%;
7583
+ }
7584
+
7585
+ .CollapsibleHeader-title-line {
7586
+ flex-basis: 66%;
7587
+ display: flex;
7588
+ align-items: center;
7589
+ gap: var(--stack-gap-condensed);
7590
+ overflow: hidden;
7591
+ max-width: 100%;
7592
+ }
7593
+
7594
+ .CollapsibleHeader-description {
7595
+ flex: 1;
7596
+ min-width: 0;
7597
+ overflow: hidden;
7598
+ text-overflow: ellipsis;
7599
+ white-space: nowrap;
7600
+ -webkit-user-select: text;
7601
+ user-select: text;
7365
7602
  }
7366
7603
 
7367
7604
  /* CSS for CollapsibleSection */
@@ -7369,3 +7606,91 @@ select-panel dialog::backdrop {
7369
7606
  .CollapsibleSection--triggerArea {
7370
7607
  cursor: pointer;
7371
7608
  }
7609
+
7610
+ .Page {
7611
+ min-width: var(--base-size-32);
7612
+ height: var(--base-size-32);
7613
+ padding: var(--base-size-8) var(--base-size-6);
7614
+ margin-right: var(--base-size-4);
7615
+ color: var(--fgColor-default);
7616
+ white-space: nowrap;
7617
+ vertical-align: middle;
7618
+ cursor: pointer;
7619
+ border-radius: var(--borderRadius-medium,.375rem);
7620
+ transition: background-color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
7621
+ display: inline-flex;
7622
+ align-items: center;
7623
+ justify-content: center;
7624
+ }
7625
+
7626
+ .Page[rel='prev'] > svg,
7627
+ .Page[rel='next'] > svg {
7628
+ height: var(--base-size-16);
7629
+ width: var(--base-size-16);
7630
+ }
7631
+
7632
+ .Page[rel='prev'] > svg {
7633
+ margin-inline-end: var(--base-size-4);
7634
+ }
7635
+
7636
+ .Page[rel='next'] > svg {
7637
+ margin-inline-start: var(--base-size-4);
7638
+ }
7639
+
7640
+ .Page:last-child {
7641
+ margin-right: 0;
7642
+ }
7643
+
7644
+ .Page:hover,
7645
+ .Page:focus {
7646
+ -webkit-text-decoration: none;
7647
+ text-decoration: none;
7648
+ background-color: var(--control-transparent-bgColor-hover);
7649
+ outline: 0;
7650
+ transition-duration: 0.1s;
7651
+ }
7652
+
7653
+ .Page:focus-visible {
7654
+ outline: 2px solid var(--bgColor-accent-emphasis);
7655
+ }
7656
+
7657
+ .Page:active {
7658
+ border-color: var(--borderColor-muted);
7659
+ }
7660
+
7661
+ .Page[rel='prev'],
7662
+ .Page[rel='next'] {
7663
+ color: var(--fgColor-accent);
7664
+ }
7665
+
7666
+ .Page[aria-current],
7667
+ .Page[aria-current]:hover {
7668
+ color: var(--fgColor-onEmphasis);
7669
+ background-color: var(--bgColor-accent-emphasis);
7670
+ border-color: transparent;
7671
+ }
7672
+
7673
+ .Page[aria-current]:focus-visible {
7674
+ outline: 2px solid var(--bgColor-accent-emphasis);
7675
+ box-shadow: inset 0 0 0 var(--base-size-2) var(--fgColor-onEmphasis);
7676
+ }
7677
+
7678
+ .Page[aria-hidden],
7679
+ .Page[aria-hidden]:hover,
7680
+ .Page[role='presentation'],
7681
+ .Page[role='presentation']:hover {
7682
+ color: var(--fgColor-disabled);
7683
+ cursor: default;
7684
+ background-color: transparent;
7685
+ }
7686
+
7687
+ .PaginationContainer {
7688
+ margin: var(--base-size-16) 0;
7689
+ text-align: center;
7690
+ }
7691
+
7692
+ @media (max-width: 543.98px){
7693
+ .Page:not([rel='prev']):not([rel='next']) {
7694
+ display: none;
7695
+ }
7696
+ }