procode-vs-theme 2.2.0 → 2.4.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 (66) hide show
  1. package/CHANGELOG.md +214 -45
  2. package/dist/components.esm.js +28 -4
  3. package/dist/components.esm.js.map +1 -1
  4. package/dist/components.js +35 -3
  5. package/dist/components.js.map +1 -1
  6. package/dist/index.esm.js +41 -5
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/index.js +41 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/src/base/_border.scss +21 -12
  11. package/dist/src/base/_color.scss +106 -47
  12. package/dist/src/base/_custom-properties.scss +166 -111
  13. package/dist/src/base/_font.scss +61 -37
  14. package/dist/src/base/_size.scss +30 -17
  15. package/dist/src/base/_space.scss +53 -33
  16. package/dist/src/base/_variants.scss +128 -0
  17. package/dist/src/components/_alert.scss +83 -0
  18. package/dist/src/components/_badge.scss +100 -0
  19. package/dist/src/components/_buttons.scss +189 -420
  20. package/dist/src/components/_cards.scss +130 -0
  21. package/dist/src/components/_input.scss +186 -32
  22. package/dist/src/components/_link.scss +34 -0
  23. package/dist/src/components/_page.scss +87 -0
  24. package/dist/src/components/_pagination.scss +71 -0
  25. package/dist/src/components/_table.scss +171 -0
  26. package/dist/src/components/_tabs.scss +77 -0
  27. package/dist/src/components.ts +47 -23
  28. package/dist/src/index.scss +82 -71
  29. package/dist/src/utilities/_interaction.scss +72 -0
  30. package/dist/src/utilities/background-color/index.scss +13 -0
  31. package/dist/src/utilities/border/_border-color.scss +2 -0
  32. package/dist/src/utilities/box-shadow/index.scss +8 -8
  33. package/dist/src/utilities/typography/_color.scss +38 -34
  34. package/dist/src/variables.ts +38 -35
  35. package/dist/types/components.d.ts +18 -2
  36. package/dist/types/variables.d.ts +2 -0
  37. package/dist/variables.esm.js +4 -1
  38. package/dist/variables.esm.js.map +1 -1
  39. package/dist/variables.js +4 -0
  40. package/dist/variables.js.map +1 -1
  41. package/package.json +84 -84
  42. package/src/base/_border.scss +21 -12
  43. package/src/base/_color.scss +106 -47
  44. package/src/base/_custom-properties.scss +166 -111
  45. package/src/base/_font.scss +61 -37
  46. package/src/base/_size.scss +30 -17
  47. package/src/base/_space.scss +53 -33
  48. package/src/base/_variants.scss +128 -0
  49. package/src/components/_alert.scss +83 -0
  50. package/src/components/_badge.scss +100 -0
  51. package/src/components/_buttons.scss +189 -420
  52. package/src/components/_cards.scss +130 -0
  53. package/src/components/_input.scss +186 -32
  54. package/src/components/_link.scss +34 -0
  55. package/src/components/_page.scss +87 -0
  56. package/src/components/_pagination.scss +71 -0
  57. package/src/components/_table.scss +171 -0
  58. package/src/components/_tabs.scss +77 -0
  59. package/src/components.ts +47 -23
  60. package/src/index.scss +82 -71
  61. package/src/utilities/_interaction.scss +72 -0
  62. package/src/utilities/background-color/index.scss +13 -0
  63. package/src/utilities/border/_border-color.scss +2 -0
  64. package/src/utilities/box-shadow/index.scss +8 -8
  65. package/src/utilities/typography/_color.scss +38 -34
  66. package/src/variables.ts +38 -35
@@ -0,0 +1,83 @@
1
+ @use "sass:map";
2
+ @use "../base/color" as cl;
3
+ @use "../base/border" as bo;
4
+ @use "../base/font" as ft;
5
+ @use "../base/space" as sp;
6
+ @use "../base/variants" as vr;
7
+
8
+ // Alerts / inline banners
9
+ //
10
+ // <div class="qo-alert qo-alert-info">
11
+ // <i class="qo-alert-icon fa-solid fa-circle-info"></i>
12
+ // Lite User Role cannot be edited.
13
+ // </div>
14
+
15
+ .qo-alert {
16
+ padding: 9px sp.$space-3;
17
+ display: flex;
18
+ align-items: center;
19
+ gap: sp.$space-2;
20
+ border: bo.$border-width-sm solid transparent;
21
+ border-radius: bo.$border-radius-sm;
22
+ background-color: cl.$background-info-soft;
23
+ color: cl.$text-info;
24
+ font-family: ft.$font-family-primary;
25
+ font-size: ft.$font-size-sm;
26
+ font-weight: ft.$font-weight-medium;
27
+ line-height: ft.$line-height-sm;
28
+
29
+ &.qo-alert-block { align-items: flex-start; }
30
+ &.qo-alert-lg { padding: sp.$space-3 sp.$space-4; font-size: ft.$font-size-md; }
31
+
32
+ // Tint fill + ink, for every semantic and status variant.
33
+ @each $name, $spec in vr.$tint-variants {
34
+ &.qo-alert-#{$name} {
35
+ background-color: map.get($spec, soft);
36
+ color: map.get($spec, ink);
37
+ }
38
+ }
39
+
40
+ // Outlined form, for a banner that must not read as a filled block.
41
+ @each $name, $spec in vr.$variants {
42
+ &.qo-alert-outline-#{$name} {
43
+ background-color: transparent;
44
+ border-color: map.get($spec, base);
45
+ color: map.get($spec, ink);
46
+ }
47
+ }
48
+
49
+ // Left accent stripe.
50
+ @each $name, $spec in vr.$variants {
51
+ &.qo-alert-accent-#{$name} {
52
+ border-left: bo.$border-width-lg solid map.get($spec, base);
53
+ }
54
+ }
55
+ }
56
+
57
+ .qo-alert-icon {
58
+ flex: 0 0 auto;
59
+ font-size: ft.$font-size-lg;
60
+ line-height: 1;
61
+ }
62
+
63
+ .qo-alert-title {
64
+ display: block;
65
+ margin-bottom: 2px;
66
+ font-weight: ft.$font-weight-semibold;
67
+ }
68
+
69
+ // Dismiss affordance — an alert that can be closed needs a real button.
70
+ .qo-alert-close {
71
+ margin-left: auto;
72
+ padding: 0;
73
+ border: 0;
74
+ background: transparent;
75
+ color: inherit;
76
+ font-size: ft.$font-size-lg;
77
+ line-height: 1;
78
+ cursor: pointer;
79
+ opacity: 0.7;
80
+
81
+ &:hover { opacity: 1; }
82
+ &:focus-visible { outline: 0; box-shadow: cl.$focus-ring; border-radius: bo.$border-radius-sm; }
83
+ }
@@ -0,0 +1,100 @@
1
+ @use "sass:map";
2
+ @use "../base/color" as cl;
3
+ @use "../base/border" as bo;
4
+ @use "../base/font" as ft;
5
+ @use "../base/space" as sp;
6
+ @use "../base/size" as sz;
7
+ @use "../base/variants" as vr;
8
+
9
+ // Badges / pills
10
+ //
11
+ // <span class="qo-badge qo-badge-success">Active</span>
12
+ // <span class="qo-badge qo-badge-system">System</span>
13
+ //
14
+ // Tint fill + matching ink by default — that is the listing page's treatment
15
+ // for user type, status and role origin. `qo-badge-solid-*` gives the filled
16
+ // form for the cases that need more weight.
17
+
18
+ $badge-sizes: (
19
+ sm: (20px, sp.$space-2, ft.$font-size-xxs),
20
+ md: (sz.$badge-height, sp.$space-3, ft.$font-size-xs),
21
+ lg: (28px, sp.$space-3, ft.$font-size-sm),
22
+ ) !default;
23
+
24
+ .qo-badge {
25
+ min-height: sz.$badge-height;
26
+ padding: 0 sp.$space-3;
27
+ display: inline-flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ gap: sp.$space-1;
31
+ border: bo.$border-width-sm solid transparent;
32
+ border-radius: bo.$border-radius-pill;
33
+ font-family: ft.$font-family-primary;
34
+ font-size: ft.$font-size-xs;
35
+ font-weight: ft.$font-weight-semibold;
36
+ line-height: 1;
37
+ white-space: nowrap;
38
+
39
+ @each $name, $spec in $badge-sizes {
40
+ &.qo-badge-#{$name} {
41
+ min-height: nth($spec, 1);
42
+ padding: 0 nth($spec, 2);
43
+ font-size: nth($spec, 3);
44
+ }
45
+ }
46
+
47
+ &.qo-badge-square { border-radius: bo.$border-radius-sm; }
48
+ // Status pills sit in a grid column and read better at one width.
49
+ &.qo-badge-fixed { min-width: 84px; }
50
+
51
+ // ---- tint (default) — every semantic and every status ----
52
+ @each $name, $spec in vr.$tint-variants {
53
+ &.qo-badge-#{$name} {
54
+ background-color: map.get($spec, soft);
55
+ color: map.get($spec, ink);
56
+ }
57
+ }
58
+
59
+ // ---- solid ----
60
+ @each $name, $spec in vr.$variants {
61
+ &.qo-badge-solid-#{$name} {
62
+ background-color: map.get($spec, base);
63
+ color: map.get($spec, on);
64
+ }
65
+ }
66
+
67
+ // ---- outline ----
68
+ @each $name, $spec in vr.$variants {
69
+ &.qo-badge-outline-#{$name} {
70
+ background-color: transparent;
71
+ border-color: map.get($spec, base);
72
+ color: map.get($spec, ink);
73
+ }
74
+ }
75
+
76
+ // A badge used as a filter chip is interactive; everything else is not.
77
+ &.qo-badge-action {
78
+ cursor: pointer;
79
+ transition: filter 0.2s ease, box-shadow 0.2s ease;
80
+ &:hover { filter: brightness(0.96); }
81
+ &:focus-visible { outline: 0; box-shadow: cl.$focus-ring; }
82
+ }
83
+ }
84
+
85
+ // A small count bubble — the "3" on a filter button.
86
+ .qo-badge-dot {
87
+ min-width: 18px;
88
+ height: 18px;
89
+ padding: 0 5px;
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ border-radius: bo.$border-radius-pill;
94
+ background-color: cl.$background-danger;
95
+ color: cl.$text-light;
96
+ font-family: ft.$font-family-primary;
97
+ font-size: ft.$font-size-xxs;
98
+ font-weight: ft.$font-weight-bold;
99
+ line-height: 1;
100
+ }