@stackoverflow/stacks 2.0.0-rc.1 → 2.0.0-rc.10

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 (78) hide show
  1. package/README.md +5 -0
  2. package/dist/components/code-block/code-block.fixtures.d.ts +2 -0
  3. package/dist/css/stacks.css +792 -765
  4. package/dist/css/stacks.min.css +1 -1
  5. package/dist/js/stacks.js +265 -110
  6. package/dist/js/stacks.min.js +1 -1
  7. package/lib/atomic/__snapshots__/color.less.test.ts.snap +246 -0
  8. package/lib/atomic/typography.less +4 -0
  9. package/lib/base/body.less +2 -2
  10. package/lib/components/activity-indicator/activity-indicator.a11y.test.ts +1 -1
  11. package/lib/components/activity-indicator/activity-indicator.less +17 -4
  12. package/lib/components/anchor/anchor.less +10 -6
  13. package/lib/components/anchor/anchor.visual.test.ts +0 -4
  14. package/lib/components/avatar/avatar.visual.test.ts +0 -3
  15. package/lib/components/badge/badge.a11y.test.ts +2 -2
  16. package/lib/components/badge/badge.less +21 -29
  17. package/lib/components/banner/banner.less +2 -2
  18. package/lib/components/block-link/block-link.less +5 -4
  19. package/lib/components/button/button.a11y.test.ts +1 -4
  20. package/lib/components/button/button.less +48 -78
  21. package/lib/components/button/button.visual.test.ts +1 -4
  22. package/lib/components/card/card.less +8 -0
  23. package/lib/components/code-block/code-block.a11y.test.ts +30 -0
  24. package/lib/components/code-block/code-block.fixtures.ts +88 -0
  25. package/lib/components/code-block/code-block.visual.test.ts +20 -0
  26. package/lib/components/description/description.a11y.test.ts +1 -0
  27. package/lib/components/description/description.less +1 -1
  28. package/lib/components/expandable/expandable.a11y.test.ts +27 -0
  29. package/lib/components/expandable/expandable.visual.test.ts +27 -0
  30. package/lib/components/input-icon/input-icon.less +1 -1
  31. package/lib/components/input-message/input-message.less +4 -3
  32. package/lib/components/input_textarea/input_textarea.less +1 -1
  33. package/lib/components/label/label.less +4 -14
  34. package/lib/components/link/link.less +12 -12
  35. package/lib/components/link-preview/link-preview.a11y.test.ts +48 -0
  36. package/lib/components/link-preview/link-preview.less +16 -7
  37. package/lib/components/link-preview/link-preview.visual.test.ts +52 -0
  38. package/lib/components/navigation/navigation.a11y.test.ts +80 -0
  39. package/lib/components/navigation/navigation.visual.test.ts +101 -0
  40. package/lib/components/notice/notice.a11y.test.ts +17 -0
  41. package/lib/components/notice/notice.less +45 -82
  42. package/lib/components/notice/notice.visual.test.ts +26 -0
  43. package/lib/components/page-title/page-title.a11y.test.ts +29 -0
  44. package/lib/components/page-title/page-title.less +1 -1
  45. package/lib/components/page-title/page-title.visual.test.ts +59 -0
  46. package/lib/components/pagination/pagination.a11y.test.ts +20 -0
  47. package/lib/components/pagination/pagination.less +2 -2
  48. package/lib/components/pagination/pagination.visual.test.ts +26 -0
  49. package/lib/components/post-summary/post-summary.less +15 -15
  50. package/lib/components/progress-bar/progress-bar.less +2 -2
  51. package/lib/components/prose/prose.less +2 -2
  52. package/lib/components/select/select.less +1 -1
  53. package/lib/components/sidebar-widget/sidebar-widget.less +3 -3
  54. package/lib/components/spinner/spinner.a11y.test.ts +15 -0
  55. package/lib/components/spinner/spinner.visual.test.ts +43 -0
  56. package/lib/components/tag/tag.a11y.test.ts +23 -0
  57. package/lib/components/tag/tag.less +29 -29
  58. package/lib/components/tag/tag.visual.test.ts +46 -0
  59. package/lib/components/toast/toast.a11y.test.ts +30 -0
  60. package/lib/components/toast/toast.visual.test.ts +10 -6
  61. package/lib/components/toggle-switch/toggle-switch.less +2 -5
  62. package/lib/components/topbar/topbar.less +44 -44
  63. package/lib/components/uploader/uploader.less +19 -13
  64. package/lib/components/user-card/user-card.less +1 -1
  65. package/lib/exports/__snapshots__/color-mixins.less.test.ts.snap +17 -10
  66. package/lib/exports/__snapshots__/color.less.test.ts.snap +197 -185
  67. package/lib/exports/color-mixins.less +1 -1
  68. package/lib/exports/color-sets.less +130 -81
  69. package/lib/exports/color.less +14 -6
  70. package/lib/exports/v1/__snapshots__/constants-colors.less.test.ts.snap +3 -3
  71. package/lib/exports/v1/constants-colors.less +2 -2
  72. package/lib/input-utils.less +1 -1
  73. package/lib/test/axe-apca/README.md +19 -0
  74. package/lib/test/axe-apca/src/axe-apca.test.ts +77 -1
  75. package/lib/test/axe-apca/src/axe-apca.ts +16 -8
  76. package/lib/test/test-utils.ts +7 -3
  77. package/package.json +14 -14
  78. package/lib/exports/theme.less +0 -85
@@ -5,7 +5,11 @@ import type { TemplateResult } from "lit-html";
5
5
  import axe from "axe-core";
6
6
  import registerAxeAPCA from "./axe-apca";
7
7
 
8
- registerAxeAPCA("bronze");
8
+ const customConformanceThresholdFn = (fontSize: string): number | null => {
9
+ return parseFloat(fontSize) >= 32 ? 45 : 60;
10
+ };
11
+
12
+ registerAxeAPCA("custom", customConformanceThresholdFn);
9
13
 
10
14
  const colorThemes = ["dark", "light"];
11
15
  const baseThemes = ["", "highcontrast"];
@@ -325,10 +329,10 @@ const runComponentTest = ({
325
329
  axe.configure({
326
330
  rules: [
327
331
  // for non-high contrast, we disable WCAG 2.1 AA (4.5:1)
328
- // and use APCA bronze level instead
332
+ // and use a Stacks-specific APCA custom level instead
329
333
  { id: "color-contrast", enabled: false },
330
334
  {
331
- id: "color-contrast-apca-bronze",
335
+ id: "color-contrast-apca-custom",
332
336
  enabled: !highcontrast,
333
337
  },
334
338
  // for high contrast, we check against WCAG 2.1 AAA (7:1)
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "type": "git",
6
6
  "url": "https://github.com/StackExchange/Stacks.git"
7
7
  },
8
- "version": "2.0.0-rc.1",
8
+ "version": "2.0.0-rc.10",
9
9
  "files": [
10
10
  "dist",
11
11
  "lib"
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "license": "MIT",
41
41
  "dependencies": {
42
- "@hotwired/stimulus": "^3.2.1",
42
+ "@hotwired/stimulus": "^3.2.2",
43
43
  "@popperjs/core": "^2.11.8"
44
44
  },
45
45
  "devDependencies": {
@@ -50,43 +50,43 @@
50
50
  "@rollup/plugin-replace": "^5.0.2",
51
51
  "@stackoverflow/stacks-editor": "^0.8.8",
52
52
  "@stackoverflow/stacks-icons": "^5.5.0",
53
- "@testing-library/dom": "^9.3.1",
54
- "@testing-library/user-event": "^14.4.3",
53
+ "@testing-library/dom": "^9.3.3",
54
+ "@testing-library/user-event": "^14.5.1",
55
55
  "@types/cssbeautify": "^0.3.2",
56
56
  "@types/less": "^3.0.3",
57
- "@typescript-eslint/eslint-plugin": "^6.4.0",
58
- "@typescript-eslint/parser": "^6.4.0",
57
+ "@typescript-eslint/eslint-plugin": "^6.7.0",
58
+ "@typescript-eslint/parser": "^6.7.2",
59
59
  "@web/dev-server-esbuild": "^0.4.1",
60
60
  "@web/dev-server-rollup": "^0.5.2",
61
- "@web/test-runner": "^0.17.0",
61
+ "@web/test-runner": "^0.17.1",
62
62
  "@web/test-runner-playwright": "^0.10.1",
63
63
  "@web/test-runner-visual-regression": "^0.8.2",
64
64
  "apca-w3": "^0.1.9",
65
- "concurrently": "^8.2.0",
65
+ "concurrently": "^8.2.1",
66
66
  "css-loader": "^6.8.1",
67
67
  "cssbeautify": "^0.3.1",
68
68
  "cssnano": "^6.0.1",
69
69
  "docsearch.js": "^2.6.3",
70
70
  "eleventy-plugin-highlightjs": "^1.1.0",
71
71
  "eleventy-plugin-nesting-toc": "^1.3.0",
72
- "eslint": "^8.45.0",
73
- "eslint-config-prettier": "^8.9.0",
72
+ "eslint": "^8.49.0",
73
+ "eslint-config-prettier": "^9.0.0",
74
74
  "eslint-plugin-no-unsanitized": "^4.0.2",
75
- "jquery": "^3.7.0",
75
+ "jquery": "^3.7.1",
76
76
  "less-loader": "^11.1.3",
77
77
  "list.js": "^2.3.1",
78
78
  "markdown-it": "^13.0.1",
79
79
  "mini-css-extract-plugin": "^2.7.6",
80
80
  "postcss-less": "^6.0.0",
81
81
  "postcss-loader": "^7.3.3",
82
- "prettier": "^3.0.1",
82
+ "prettier": "^3.0.3",
83
83
  "rollup-plugin-postcss": "^4.0.2",
84
- "stylelint": "^15.10.2",
84
+ "stylelint": "^15.10.3",
85
85
  "stylelint-config-recommended": "^13.0.0",
86
86
  "stylelint-config-standard": "^34.0.0",
87
87
  "terser-webpack-plugin": "^5.3.9",
88
88
  "ts-loader": "^9.4.4",
89
- "typescript": "^5.1.6",
89
+ "typescript": "^5.2.2",
90
90
  "vitest": "^0.33.0",
91
91
  "webpack": "^5.88.2",
92
92
  "webpack-cli": "^5.1.4",
@@ -1,85 +0,0 @@
1
- .theme-variables() {
2
- --theme-body-font-color: var(--black-600);
3
- --theme-background-color: var(--white);
4
- // Links
5
- --theme-link-color: var(--theme-secondary-400);
6
- --theme-link-color-hover: var(--theme-secondary-400); // TODO was 350, now same as base link color
7
- --theme-link-color-visited: var(--theme-secondary-500);
8
-
9
- // Button Default (Secondary)
10
- --theme-button-color: var(--theme-secondary-400);
11
- --theme-button-background-color: transparent;
12
- --theme-button-hover-color: var(--theme-secondary-400); // TODO was 500, now same as base button color
13
- --theme-button-hover-background-color: var(--theme-secondary-200);
14
- --theme-button-active-background-color: var(--theme-secondary-300);
15
- --theme-button-selected-color: var(--theme-secondary-600);
16
- --theme-button-selected-background-color: var(--theme-secondary-300);
17
-
18
- // Button Primary
19
- --theme-button-primary-color: var(--white);
20
- --theme-button-primary-background-color: var(--theme-secondary-400);
21
- --theme-button-primary-hover-color: var(--white);
22
- --theme-button-primary-hover-background-color: var(--theme-secondary-400); // TODO was 500, now same as primary button color
23
- --theme-button-primary-active-background-color: var(--theme-secondary-500);
24
- --theme-button-primary-selected-color: var(--white);
25
- --theme-button-primary-selected-background-color: var(--theme-secondary-500);
26
- --theme-button-primary-number-color: var(--theme-secondary-600);
27
-
28
- // Button Filled
29
- --theme-button-filled-color: var(--theme-secondary-500);
30
- --theme-button-filled-background-color: var(--theme-secondary-200);
31
- --theme-button-filled-border-color: var(--theme-secondary-400);
32
- --theme-button-filled-hover-color: var(--theme-secondary-600);
33
- --theme-button-filled-hover-background-color: var(--theme-secondary-300);
34
- --theme-button-filled-active-background-color: var(--theme-secondary-300); // TODO was 150, now same as hover bg color
35
- --theme-button-filled-active-border-color: var(--theme-secondary-400);
36
- --theme-button-filled-selected-color: var(--theme-secondary-600);
37
- --theme-button-filled-selected-background-color: var(--theme-secondary-400);
38
- --theme-button-filled-selected-border-color: var(--theme-secondary-400); // TODO was 500, now same as selected bg color
39
-
40
- // Button Outline
41
- --theme-button-outlined-border-color: var(--theme-secondary-400);
42
- --theme-button-outlined-selected-border-color: var(--theme-secondary-400); // TODO now same as unselected border-color above (above was 350)
43
-
44
- // Tags
45
- --theme-tag-color: var(--theme-secondary-600);
46
- --theme-tag-background-color: var(--theme-secondary-200);
47
- --theme-tag-border-color: transparent;
48
- --theme-tag-hover-color: var(--theme-secondary-600); // TODO was 900, now same as base tag color
49
- --theme-tag-hover-background-color: var(--theme-secondary-300);
50
- --theme-tag-hover-border-color: transparent;
51
-
52
- // Topbar
53
- --theme-topbar-height: calc(var(--su-static48) + var(--su-static8)); // 56px
54
- --theme-topbar-background-color: var(--white);
55
-
56
- // Topbar Search input
57
- --theme-topbar-search-color: var(--black-500);
58
- --theme-topbar-search-background: var(--white);
59
- --theme-topbar-search-placeholder: var(--black-400);
60
- --theme-topbar-search-border: var(--black-300);
61
- --theme-topbar-search-border-focus: var(--blue-400);
62
- --theme-topbar-search-shadow-focus: 0 0 0 var(--su-static4) var(--focus-ring);
63
-
64
- // Topbar Search switcher
65
- --theme-topbar-select-color: var(--black-500);
66
- --theme-topbar-select-background: var(--black-200);
67
-
68
- // Topbar items
69
- --theme-topbar-item-color: var(--black-500);
70
- --theme-topbar-item-color-hover: var(--black-600);
71
- --theme-topbar-item-background-hover: var(--black-200);
72
- --theme-topbar-item-color-current: var(--black);
73
- --theme-topbar-item-border-current: var(--theme-primary);
74
-
75
- // Topbar themed border accent
76
- --theme-topbar-accent-border: 3px solid var(--theme-primary);
77
- --theme-topbar-bottom-border: 1px solid var(--black-225);
78
-
79
- // Post summary
80
- --theme-post-title-color: var(--theme-link-color);
81
- --theme-post-title-color-hover: var(--theme-link-color-hover);
82
- --theme-post-title-color-visited: var(--theme-link-color-visited);
83
- --theme-post-title-font-family: var(--theme-body-font-family);
84
- --theme-post-body-font-family: var(--theme-body-font-family);
85
- }