@pocketprep/ui-kit 3.5.0 → 3.5.2

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 (85) hide show
  1. package/README.md +2 -2
  2. package/dist/@pocketprep/ui-kit.css +1 -0
  3. package/dist/@pocketprep/ui-kit.js +14335 -14870
  4. package/dist/@pocketprep/ui-kit.js.map +1 -1
  5. package/dist/@pocketprep/ui-kit.umd.cjs +11 -11
  6. package/dist/@pocketprep/ui-kit.umd.cjs.map +1 -1
  7. package/eslint.config.ts +111 -0
  8. package/lib/components/Banners/Banner.vue +2 -2
  9. package/lib/components/Bundles/BundleList.vue +1 -1
  10. package/lib/components/Bundles/BundleSearch.vue +123 -121
  11. package/lib/components/Bundles/PremiumPill.vue +2 -2
  12. package/lib/components/Buttons/Button.vue +19 -18
  13. package/lib/components/Buttons/Link.vue +9 -8
  14. package/lib/components/Buttons/Tab.vue +4 -3
  15. package/lib/components/Calendar/Calendar.vue +14 -2
  16. package/lib/components/Charts/Bar.vue +3 -3
  17. package/lib/components/Charts/Pie.vue +4 -4
  18. package/lib/components/Controls/SegmentControl.vue +8 -7
  19. package/lib/components/Controls/Slider.vue +2 -3
  20. package/lib/components/Controls/ToggleSwitch.vue +3 -2
  21. package/lib/components/EmptyStates/EmptyState.vue +3 -2
  22. package/lib/components/Exams/ExamCard.vue +3 -3
  23. package/lib/components/Exams/ExamMenuCard.vue +2 -2
  24. package/lib/components/Filters/FilterDropdown.vue +2 -2
  25. package/lib/components/Filters/FilterOptions.vue +2 -2
  26. package/lib/components/Forms/Checkbox.vue +2 -2
  27. package/lib/components/Forms/CheckboxOption.vue +2 -2
  28. package/lib/components/Forms/Errors.vue +2 -2
  29. package/lib/components/Forms/Input.vue +2 -2
  30. package/lib/components/Forms/Radio.vue +37 -39
  31. package/lib/components/Forms/RadioButton.vue +1 -1
  32. package/lib/components/Forms/Select.vue +7 -6
  33. package/lib/components/Forms/Textarea.vue +2 -2
  34. package/lib/components/Icons/Icon.vue +1 -0
  35. package/lib/components/Icons/IconEdit.vue +4 -2
  36. package/lib/components/Icons/IconFullViewActive.vue +1 -1
  37. package/lib/components/Icons/IconLoading2.vue +1 -3
  38. package/lib/components/Loaders/SkeletonLoader.vue +2 -2
  39. package/lib/components/Messaging/InfoMessage.vue +2 -2
  40. package/lib/components/Modal/Modal.vue +2 -2
  41. package/lib/components/Modal/ModalContainer.vue +2 -2
  42. package/lib/components/Onboarding/EmailAuth.vue +5 -5
  43. package/lib/components/Onboarding/MagicCodeEntry.vue +3 -4
  44. package/lib/components/Pagination/QuestionReviewPagination.vue +4 -4
  45. package/lib/components/Pagination/TablePagination.vue +2 -2
  46. package/lib/components/Quiz/FlagToggle.vue +2 -2
  47. package/lib/components/Quiz/GlobalMetricsToggle.vue +3 -2
  48. package/lib/components/Quiz/KeyboardShortcutsButton.vue +1 -1
  49. package/lib/components/Quiz/KeyboardShortcutsModal.vue +1 -1
  50. package/lib/components/Quiz/Question/ChoicesContainer.vue +4 -3
  51. package/lib/components/Quiz/Question/DropdownExplanation.vue +2 -2
  52. package/lib/components/Quiz/Question/Explanation.vue +2 -2
  53. package/lib/components/Quiz/Question/MatrixChoicesContainer.vue +12 -17
  54. package/lib/components/Quiz/Question/MatrixRadioGroup.vue +2 -2
  55. package/lib/components/Quiz/Question/MobileMatrixChoicesContainer.vue +19 -26
  56. package/lib/components/Quiz/Question/MobileMatrixRadioGroup.vue +7 -5
  57. package/lib/components/Quiz/Question/PassageAndImage.vue +2 -2
  58. package/lib/components/Quiz/Question/PassageAndImageDropdown.vue +7 -6
  59. package/lib/components/Quiz/Question/Paywall.vue +2 -2
  60. package/lib/components/Quiz/Question/QuestionContext.vue +2 -3
  61. package/lib/components/Quiz/Question/StatsSummary.vue +2 -2
  62. package/lib/components/Quiz/Question/Summary.vue +2 -2
  63. package/lib/components/Quiz/Question.vue +29 -28
  64. package/lib/components/Quiz/QuizContainer.vue +31 -37
  65. package/lib/components/Quiz/QuizProgress.vue +73 -77
  66. package/lib/components/Quiz/QuizProgressBar.vue +3 -2
  67. package/lib/components/Search/Pill.vue +2 -2
  68. package/lib/components/Search/Search.vue +2 -2
  69. package/lib/components/SidePanels/SidePanel.vue +8 -3
  70. package/lib/components/Tables/Table.vue +4 -3
  71. package/lib/components/Tables/TableActions.vue +3 -3
  72. package/lib/components/Tags/Tag.vue +2 -2
  73. package/lib/components/Toasts/Toast.vue +5 -3
  74. package/lib/components/Tooltips/OverflowTooltip.vue +2 -2
  75. package/lib/components/Tooltips/Tooltip.vue +2 -2
  76. package/lib/directives.ts +1 -1
  77. package/lib/pocketprep-export.module.scss +3 -2
  78. package/lib/pocketprep.scss +2 -2
  79. package/lib/styles/_breakpoints.scss +6 -12
  80. package/lib/styles/_colors.scss +0 -1
  81. package/package.json +36 -27
  82. package/stylelint.config.js +38 -0
  83. package/.eslintrc.cjs +0 -74
  84. package/dist/style.css +0 -1
  85. package/stylelint.config.cjs +0 -22
@@ -8,23 +8,17 @@ $teddy-bear: 319;
8
8
  @mixin breakpoint($point) {
9
9
  @if $point == 'polar-bear' {
10
10
  @media (max-width: ($polar-bear + 'px')) { @content; }
11
- }
12
- @else if $point == 'grizzly-bear' {
11
+ } @else if $point == 'grizzly-bear' {
13
12
  @media (max-width: ($grizzly-bear + 'px')) { @content; }
14
- }
15
- @else if $point == 'brown-bear' {
13
+ } @else if $point == 'brown-bear' {
16
14
  @media (max-width: ($brown-bear + 'px')) { @content; }
17
- }
18
- @else if $point == 'black-bear' {
15
+ } @else if $point == 'black-bear' {
19
16
  @media (max-width: ($black-bear + 'px')) { @content; }
20
- }
21
- @else if $point == 'koala-bear' {
17
+ } @else if $point == 'koala-bear' {
22
18
  @media (max-width: ($koala-bear + 'px')) { @content; }
23
- }
24
- @else if $point == 'teddy-bear' {
19
+ } @else if $point == 'teddy-bear' {
25
20
  @media (max-width: ($teddy-bear + 'px')) { @content; }
26
- }
27
- @else {
21
+ } @else {
28
22
  @media (max-width: $point) { @content; }
29
23
  }
30
24
  }
@@ -98,6 +98,5 @@ $electric-violet: #d819eb;
98
98
  $aqua-oasis: #bce6dc;
99
99
  $peacock-green: #056c50;
100
100
  $green-hint: #e7f9f5;
101
-
102
101
  $victoria-green: #00664a;
103
102
  $london-rain: #064fc1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pocketprep/ui-kit",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "Pocket Prep UI Kit",
5
5
  "author": "pocketprep",
6
6
  "scripts": {
@@ -8,7 +8,7 @@
8
8
  "build": "run-p type-check build-only",
9
9
  "build-only": "vite build && vite build --config vite.config.docs.ts",
10
10
  "preview": "vite preview --config vite.config.docs.ts",
11
- "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore && stylelint '**/*.{scss,vue}'",
11
+ "lint": "eslint . && stylelint '**/*.{scss,vue}'",
12
12
  "type-check": "vue-tsc --noEmit -p tsconfig.cypress-ct.json --composite false",
13
13
  "test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'",
14
14
  "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'",
@@ -25,8 +25,8 @@
25
25
  "files": [
26
26
  "lib",
27
27
  "dist",
28
- ".eslintrc.cjs",
29
- "stylelint.config.cjs",
28
+ "eslint.config.ts",
29
+ "stylelint.config.js",
30
30
  "index.d.ts"
31
31
  ],
32
32
  "exports": {
@@ -41,8 +41,8 @@
41
41
  }
42
42
  },
43
43
  "./styles": {
44
- "import": "./dist/style.css",
45
- "require": "./dist/style.css"
44
+ "import": "./dist/@pocketprep/ui-kit.css",
45
+ "require": "./dist/@pocketprep/ui-kit.css"
46
46
  },
47
47
  "./pocketprep.scss": {
48
48
  "import": "./lib/pocketprep.scss",
@@ -67,6 +67,10 @@
67
67
  "./colors": {
68
68
  "import": "./lib/styles/_colors.scss",
69
69
  "require": "./lib/styles/_colors.scss"
70
+ },
71
+ "./eslint.config": {
72
+ "import": "./eslint.config.ts",
73
+ "require": "./eslint.config.ts"
70
74
  }
71
75
  },
72
76
  "dependencies": {
@@ -74,29 +78,34 @@
74
78
  "litepicker": "2.0.12",
75
79
  "resize-observer": "1.0.4",
76
80
  "vue": "3.5.13",
77
- "vue-facing-decorator": "2.1.20",
78
- "vue-router": "4.2.5"
81
+ "vue-facing-decorator": "3.0.4",
82
+ "vue-router": "4.5.0"
79
83
  },
80
84
  "devDependencies": {
81
- "@pocketprep/types": "1.14.20",
82
- "@tsconfig/node16": "1.0.3",
83
- "@types/node": "16.18.25",
84
- "@vitejs/plugin-vue": "4.6.2",
85
- "@vue/eslint-config-typescript": "11.0.2",
86
- "@vue/tsconfig": "0.3.2",
87
- "cypress": "12.0.2",
88
- "eslint": "8.34.0",
89
- "eslint-plugin-cypress": "2.12.1",
90
- "eslint-plugin-vue": "9.32.0",
91
- "npm-run-all": "4.1.5",
92
- "postcss-html": "1.5.0",
93
- "sass": "1.58.3",
94
- "stylelint": "15.10.3",
95
- "stylelint-config-recommended-scss": "9.0.1",
96
- "stylelint-config-recommended-vue": "1.4.0",
97
- "typescript": "5.0.4",
98
- "vite": "4.3.4",
99
- "vue-tsc": "1.6.3",
85
+ "@pocketprep/types": "1.14.43",
86
+ "@stylistic/eslint-plugin-ts": "4.2.0",
87
+ "@tsconfig/node22": "22.0.0",
88
+ "@types/node": "22.13.10",
89
+ "@vitejs/plugin-vue": "5.2.3",
90
+ "@vue/eslint-config-typescript": "14.5.0",
91
+ "@vue/tsconfig": "0.7.0",
92
+ "cypress": "14.2.0",
93
+ "eslint": "9.22.0",
94
+ "eslint-plugin-cypress": "4.2.0",
95
+ "eslint-plugin-vue": "10.0.0",
96
+ "jiti": "2.4.2",
97
+ "npm-run-all2": "7.0.2",
98
+ "postcss-html": "1.8.0",
99
+ "sass": "1.86.0",
100
+ "start-server-and-test": "2.0.11",
101
+ "stylelint": "16.16.0",
102
+ "stylelint-config-recommended-scss": "14.1.0",
103
+ "stylelint-config-recommended-vue": "1.6.0",
104
+ "stylelint-config-standard-scss": "14.0.0",
105
+ "typescript": "5.8.2",
106
+ "vite": "6.2.2",
107
+ "vite-plugin-vue-devtools": "7.7.2",
108
+ "vue-tsc": "2.2.8",
100
109
  "yorkie": "2.0.0"
101
110
  },
102
111
  "bugs": {
@@ -0,0 +1,38 @@
1
+ /** @type {import('stylelint').Config} */
2
+ export default {
3
+ 'extends': [
4
+ 'stylelint-config-standard-scss',
5
+ 'stylelint-config-recommended-vue',
6
+ ],
7
+ 'rules': {
8
+ 'at-rule-no-unknown': null,
9
+ 'selector-pseudo-class-no-unknown': [
10
+ true,
11
+ {
12
+ 'ignorePseudoClasses': [ 'export', 'deep' ],
13
+ },
14
+ ],
15
+ 'selector-pseudo-element-no-unknown': null,
16
+ 'selector-type-no-unknown': null,
17
+ 'selector-class-pattern': null,
18
+ 'no-descending-specificity': null,
19
+ 'property-no-unknown': null,
20
+ 'alpha-value-notation': 'number',
21
+ 'scss/at-import-no-partial-leading-underscore': null,
22
+ 'scss/no-global-function-names': null,
23
+ 'declaration-property-value-no-unknown': null,
24
+ 'scss/declaration-property-value-no-unknown': true,
25
+ 'shorthand-property-no-redundant-values': null,
26
+ 'scss/at-else-closing-brace-newline-after': null,
27
+ 'scss/dollar-variable-colon-space-after': null,
28
+ 'scss/at-if-closing-brace-newline-after': null,
29
+ 'scss/at-else-closing-brace-space-after': null,
30
+ 'scss/at-if-closing-brace-space-after': null,
31
+ 'color-function-notation': null,
32
+ 'length-zero-no-unit': null,
33
+ 'declaration-block-no-redundant-longhand-properties': null,
34
+ 'rule-empty-line-before': null,
35
+ 'media-feature-range-notation': null,
36
+ 'declaration-property-value-no-unknown': null,
37
+ },
38
+ }
package/.eslintrc.cjs DELETED
@@ -1,74 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- globals: {
4
- NodeJS: 'readonly',
5
- },
6
- env: {
7
- node: true,
8
- },
9
- extends: [
10
- 'plugin:@typescript-eslint/recommended',
11
- 'plugin:vue/vue3-essential',
12
- 'eslint:recommended',
13
- '@vue/eslint-config-typescript',
14
- ],
15
- ignorePatterns: [ 'docs' ],
16
- rules: {
17
- 'quotes': [ 'error', 'single' ],
18
- 'comma-dangle': [ 'error', {
19
- 'arrays': 'always-multiline',
20
- 'objects': 'always-multiline',
21
- 'imports': 'always-multiline',
22
- 'exports': 'always-multiline',
23
- 'functions': 'never',
24
- }],
25
- 'semi': [ 'error', 'never' ],
26
- 'no-console': 'warn',
27
- 'max-len': [ 'error', { 'code': 120 }],
28
- 'brace-style': 'error',
29
- 'keyword-spacing': [ 'error', { 'before': true, 'after': true }],
30
- 'object-curly-spacing': [ 'error', 'always' ],
31
- 'array-bracket-spacing': [ 'error', 'always', { 'objectsInArrays': false, 'arraysInArrays': false }],
32
- 'space-in-parens': [ 'error', 'never' ],
33
- 'space-before-function-paren': [ 'error', 'always' ],
34
- 'space-infix-ops': [ 'error', { 'int32Hint': true }],
35
- 'prefer-const': 'error',
36
- 'no-shadow': 'error',
37
- 'vue/html-indent': [ 'error', 4 ],
38
- 'vue/max-attributes-per-line': [ 'error', { 'singleline': 2 }],
39
- 'vue/no-v-html': 'off',
40
- 'vue/component-name-in-template-casing': [ 'error', 'PascalCase', {
41
- 'registeredComponentsOnly': false,
42
- }],
43
- 'vue/multi-word-component-names': 'off',
44
- 'indent': 'off',
45
- 'no-unused-vars': 'off', // We use @typescript-eslint/no-unused-vars instead
46
- 'no-template-curly-in-string' : 'error',
47
- 'array-callback-return': [ 'error', { 'allowImplicit': true }],
48
- 'block-scoped-var': 'error',
49
- 'dot-location': [ 'error', 'property' ],
50
- 'eqeqeq': 'error',
51
- 'no-implicit-globals': [ 'error', { 'lexicalBindings': true }],
52
- '@typescript-eslint/indent': [ 'error', 4 ],
53
- '@typescript-eslint/member-delimiter-style': [ 'error', { 'multiline': { delimiter: 'none' } }],
54
- '@typescript-eslint/no-angle-bracket-type-assertion': 'off',
55
- '@typescript-eslint/explicit-function-return-type': 'off',
56
- '@typescript-eslint/explicit-member-accessibility': 'off',
57
- '@typescript-eslint/no-var-requires': 'off',
58
- '@typescript-eslint/explicit-module-boundary-types': 'off',
59
- },
60
- overrides: [
61
- {
62
- files: [
63
- '**/__tests__/*.{cy,spec}.{js,ts,jsx,tsx}',
64
- 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}',
65
- ],
66
- 'extends': [
67
- 'plugin:cypress/recommended',
68
- ],
69
- },
70
- ],
71
- parserOptions: {
72
- ecmaVersion: 'latest',
73
- },
74
- }