@graupl/core 1.0.0-beta.19 → 1.0.0-beta.21

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 (89) hide show
  1. package/dist/css/component/badge.css +2 -0
  2. package/dist/css/component/badge.css.map +1 -0
  3. package/dist/css/component/disclosure.css +2 -0
  4. package/dist/css/component/disclosure.css.map +1 -0
  5. package/dist/css/component.css +1 -1
  6. package/dist/css/component.css.map +1 -1
  7. package/dist/css/graupl.css +1 -1
  8. package/dist/css/graupl.css.map +1 -1
  9. package/dist/css/layout.css +1 -1
  10. package/dist/css/layout.css.map +1 -1
  11. package/dist/js/accordion.js +2 -2
  12. package/dist/js/accordion.js.map +1 -1
  13. package/dist/js/alert.js.map +1 -1
  14. package/dist/js/carousel.js +2 -2
  15. package/dist/js/carousel.js.map +1 -1
  16. package/dist/js/component/accordion.cjs.js +2 -2
  17. package/dist/js/component/accordion.cjs.js.map +1 -1
  18. package/dist/js/component/accordion.es.js +2 -2
  19. package/dist/js/component/accordion.es.js.map +1 -1
  20. package/dist/js/component/accordion.iife.js +2 -2
  21. package/dist/js/component/accordion.iife.js.map +1 -1
  22. package/dist/js/component/alert.cjs.js.map +1 -1
  23. package/dist/js/component/alert.es.js.map +1 -1
  24. package/dist/js/component/alert.iife.js +2 -2
  25. package/dist/js/component/alert.iife.js.map +1 -1
  26. package/dist/js/component/carousel.cjs.js +2 -2
  27. package/dist/js/component/carousel.cjs.js.map +1 -1
  28. package/dist/js/component/carousel.es.js +2 -2
  29. package/dist/js/component/carousel.es.js.map +1 -1
  30. package/dist/js/component/carousel.iife.js +2 -2
  31. package/dist/js/component/carousel.iife.js.map +1 -1
  32. package/dist/js/component/disclosure.cjs.js +5 -0
  33. package/dist/js/component/disclosure.cjs.js.map +1 -0
  34. package/dist/js/component/disclosure.es.js +5 -0
  35. package/dist/js/component/disclosure.es.js.map +1 -0
  36. package/dist/js/component/disclosure.iife.js +5 -0
  37. package/dist/js/component/disclosure.iife.js.map +1 -0
  38. package/dist/js/generator/accordion.cjs.js +2 -2
  39. package/dist/js/generator/accordion.cjs.js.map +1 -1
  40. package/dist/js/generator/accordion.es.js +2 -2
  41. package/dist/js/generator/accordion.es.js.map +1 -1
  42. package/dist/js/generator/accordion.iife.js +2 -2
  43. package/dist/js/generator/accordion.iife.js.map +1 -1
  44. package/dist/js/generator/alert.cjs.js.map +1 -1
  45. package/dist/js/generator/alert.es.js.map +1 -1
  46. package/dist/js/generator/alert.iife.js +2 -2
  47. package/dist/js/generator/alert.iife.js.map +1 -1
  48. package/dist/js/generator/carousel.cjs.js +2 -2
  49. package/dist/js/generator/carousel.cjs.js.map +1 -1
  50. package/dist/js/generator/carousel.es.js +2 -2
  51. package/dist/js/generator/carousel.es.js.map +1 -1
  52. package/dist/js/generator/carousel.iife.js +2 -2
  53. package/dist/js/generator/carousel.iife.js.map +1 -1
  54. package/dist/js/generator/disclosure.cjs.js +5 -0
  55. package/dist/js/generator/disclosure.cjs.js.map +1 -0
  56. package/dist/js/generator/disclosure.es.js +5 -0
  57. package/dist/js/generator/disclosure.es.js.map +1 -0
  58. package/dist/js/generator/disclosure.iife.js +5 -0
  59. package/dist/js/generator/disclosure.iife.js.map +1 -0
  60. package/dist/js/generator/navigation.cjs.js.map +1 -1
  61. package/dist/js/generator/navigation.es.js.map +1 -1
  62. package/dist/js/generator/navigation.iife.js +1 -1
  63. package/dist/js/generator/navigation.iife.js.map +1 -1
  64. package/dist/js/graupl.js +6 -4
  65. package/dist/js/graupl.js.map +1 -1
  66. package/dist/js/navigation.js.map +1 -1
  67. package/package.json +1 -1
  68. package/scss/component/badge.scss +3 -0
  69. package/scss/component/disclosure.scss +3 -0
  70. package/src/js/TransactionalValue.js +140 -0
  71. package/src/js/accordion/Accordion.js +4 -4
  72. package/src/js/carousel/Carousel.js +1 -1
  73. package/src/js/disclosure/Disclosure.js +1378 -0
  74. package/src/js/disclosure/generator.js +47 -0
  75. package/src/js/disclosure/index.js +5 -0
  76. package/src/js/main.js +2 -0
  77. package/src/js/validate.js +7 -7
  78. package/src/scss/_index.scss +8 -8
  79. package/src/scss/base/_index.scss +4 -4
  80. package/src/scss/component/_index.scss +10 -8
  81. package/src/scss/component/badge/_defaults.scss +47 -0
  82. package/src/scss/component/badge/_index.scss +201 -0
  83. package/src/scss/component/badge/_variables.scss +112 -0
  84. package/src/scss/component/disclosure/_defaults.scss +45 -0
  85. package/src/scss/component/disclosure/_index.scss +214 -0
  86. package/src/scss/component/disclosure/_variables.scss +205 -0
  87. package/src/scss/layout/_index.scss +3 -3
  88. package/src/scss/theme/_index.scss +2 -2
  89. package/src/scss/utilities/_index.scss +21 -21
@@ -0,0 +1,47 @@
1
+ import Disclosure from "./Disclosure.js";
2
+ import once from "@drupal/once";
3
+
4
+ const generate = ({
5
+ options = {},
6
+ context = document,
7
+ disclosureSelector = ".disclosure",
8
+ controllerSelector = ".disclosure-toggle",
9
+ } = {}) => {
10
+ once("graupl-disclosure-generator", disclosureSelector, context).forEach(
11
+ (disclosureElement) => {
12
+ const disclosureOptions = disclosureElement.dataset
13
+ .grauplDisclosureOptions
14
+ ? JSON.parse(
15
+ disclosureElement.dataset.grauplDisclosureOptions.replace(/'/g, '"')
16
+ ) || {}
17
+ : {};
18
+
19
+ const targettedControllerSelector = `${controllerSelector}[data-graupl-disclosure-target="${disclosureElement.id}"]`;
20
+ const [controllerElement] = once(
21
+ "graupl-disclosure-generator",
22
+ targettedControllerSelector,
23
+ context
24
+ );
25
+
26
+ if (!controllerElement) {
27
+ console.warn(
28
+ `No controller found for disclosure with ID "${disclosureElement.id}". Please ensure there is an element with the selector "${targettedControllerSelector}".`
29
+ );
30
+
31
+ once.remove("graupl-disclosure-generator", disclosureElement);
32
+
33
+ return;
34
+ }
35
+
36
+ new Disclosure({
37
+ disclosureElement,
38
+ controllerElement,
39
+ initialize: true,
40
+ ...options,
41
+ ...disclosureOptions,
42
+ });
43
+ }
44
+ );
45
+ };
46
+
47
+ export default generate;
@@ -0,0 +1,5 @@
1
+ import generate from "./generator.js";
2
+
3
+ document.addEventListener("DOMContentLoaded", () => {
4
+ generate();
5
+ });
package/src/js/main.js CHANGED
@@ -2,10 +2,12 @@ import accordionGenerator from "./accordion/generator.js";
2
2
  import alertGenerator from "./alert/generator.js";
3
3
  import carouselGenerator from "./carousel/generator.js";
4
4
  import navigationGenerator from "./navigation/generator.js";
5
+ import disclosureGenerator from "./disclosure/generator.js";
5
6
 
6
7
  document.addEventListener("DOMContentLoaded", () => {
7
8
  accordionGenerator();
8
9
  alertGenerator();
9
10
  carouselGenerator();
10
11
  navigationGenerator();
12
+ disclosureGenerator();
11
13
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Check to see if the provided elements have a specific contructor.
2
+ * Check to see if the provided elements have a specific constructor.
3
3
  *
4
4
  * The values must be provided inside of an object
5
5
  * so the variable name can be retrieved in case of errors.
@@ -9,11 +9,11 @@
9
9
  *
10
10
  * Will return `{ status: true }` if the check is successful.
11
11
  *
12
- * @param {object} contructor - The constructor to check for.
13
- * @param {object} elements - The element(s) to check.
14
- * @return {Object<boolean, string>} - The result of the check.
12
+ * @param {object} constructor - The constructor to check for.
13
+ * @param {object} elements - The element(s) to check.
14
+ * @return {Object<boolean, string>} - The result of the check.
15
15
  */
16
- export function isValidInstance(contructor, elements) {
16
+ export function isValidInstance(constructor, elements) {
17
17
  try {
18
18
  if (typeof elements !== "object") {
19
19
  const elementsType = typeof elements;
@@ -24,10 +24,10 @@ export function isValidInstance(contructor, elements) {
24
24
  }
25
25
 
26
26
  for (const key in elements) {
27
- if (!(elements[key] instanceof contructor)) {
27
+ if (!(elements[key] instanceof constructor)) {
28
28
  const elementType = typeof elements[key];
29
29
  throw new TypeError(
30
- `${key} must be an instance of ${contructor.name}. "${elementType}" given.`
30
+ `${key} must be an instance of ${constructor.name}. "${elementType}" given.`
31
31
  );
32
32
  }
33
33
  }
@@ -1,15 +1,15 @@
1
1
  // @graupl/core styles.
2
2
 
3
3
  // Forward the layer initialization.
4
- @forward "init";
4
+ @use "init";
5
5
 
6
6
  // Forward normalize.
7
- @forward "normalize";
7
+ @use "normalize";
8
8
 
9
9
  // Forward all layers.
10
- @forward "base";
11
- @forward "layout";
12
- @forward "component";
13
- @forward "state";
14
- @forward "theme";
15
- @forward "utilities";
10
+ @use "base";
11
+ @use "layout";
12
+ @use "component";
13
+ @use "state";
14
+ @use "theme";
15
+ @use "utilities";
@@ -1,6 +1,6 @@
1
1
  // @graupl/core base styles.
2
2
 
3
- @forward "button";
4
- @forward "form";
5
- @forward "link";
6
- @forward "table";
3
+ @use "button";
4
+ @use "form";
5
+ @use "link";
6
+ @use "table";
@@ -1,10 +1,12 @@
1
1
  // @graupl/core component styles.
2
2
 
3
- @forward "alert";
4
- @forward "accordion";
5
- @forward "card";
6
- @forward "carousel";
7
- @forward "input-group";
8
- @forward "list";
9
- @forward "menu";
10
- @forward "navigation";
3
+ @use "alert";
4
+ @use "accordion";
5
+ @use "badge";
6
+ @use "card";
7
+ @use "carousel";
8
+ @use "disclosure";
9
+ @use "input-group";
10
+ @use "list";
11
+ @use "menu";
12
+ @use "navigation";
@@ -0,0 +1,47 @@
1
+ // @graupl/core badge base default values.
2
+ //
3
+ // Generally, these should not be used directly when styling bases unless a static value is needed.
4
+ // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
5
+ //
6
+ // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
+ // Those should be defined as custom properties in the `_variables.scss` file.
8
+
9
+ @use "../../defaults" as root-defaults;
10
+ @use "../../functions/theme";
11
+ @use "sass:map";
12
+
13
+ // Badge selectors.
14
+ $selector-base: root-defaults.$component-selector-base !default;
15
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
16
+ $generate-base-theme-map: root-defaults.$generate-base-theme-maps !default;
17
+ $badge-selector-base: $selector-base !default;
18
+ $badge-selector: "badge" !default;
19
+ $badge-theme-selector-base: $modifier-selector-base !default;
20
+ $badge-theme-selector-prefix: "" !default;
21
+
22
+ // Badge state theme defaults.
23
+ // This map is used to define the default colour shades for the
24
+ // themed badge bases.
25
+ //
26
+ // e.g.
27
+ // Primary badges will use primary--900 as the text colour, primary--100 as the background
28
+ // and primary--900 as the border colour.
29
+ //
30
+ // Secondary/tertiary badges will use the same shade for their respective colours.
31
+ $-badge-theme-mappings: (
32
+ color: 900,
33
+ border-color: 700,
34
+ );
35
+ $badge-theme-mappings: () !default;
36
+
37
+ // Merge the custom badge state theme map with the default one.
38
+ @if $generate-base-theme-map {
39
+ $badge-theme-mappings: map.merge(
40
+ $-badge-theme-mappings,
41
+ $badge-theme-mappings
42
+ );
43
+ }
44
+
45
+ $-badge-theme-map: theme.generate-property-map($badge-theme-mappings);
46
+ $badge-theme-map: () !default;
47
+ $badge-theme-map: map.deep-merge($-badge-theme-map, $badge-theme-map);
@@ -0,0 +1,201 @@
1
+ // @graupl/core badge base styles.
2
+ //
3
+ // This module provides the base styles for the badge component.
4
+ //
5
+ // The badge component is meant to be used on <badge> or <a> elements, but can be applied to anything.
6
+ //
7
+ // The following selectors are generated by default:
8
+ // - `.badge`: The badge component.
9
+ // - `.primary`: A component modifier to use the primary colour for the badge component.
10
+ // - `.secondary`: A component modifier to use the secondary colour for the badge component.
11
+ // - `.tertiary`: A component modifier to use the tertiary colour for the badge component.
12
+ // - `.link`: A component modifier to make the badge component look like a link component.
13
+ //
14
+ // The following custom properties can be used to customize the badge component:
15
+ // | Property | Description | Default Value |
16
+ // | --- | --- | --- |
17
+ // | `--graupl-badge-font-size` | The font size of the badge component. | `var(--graupl-font-sm)` |
18
+ // | `--graupl-badge-background` | The background colour of the badge component. | `var(--graupl-background)` |
19
+ // | `--graupl-badge-color` | The text colour of the badge component. | `var(--graupl-color)` |
20
+ // | `--graupl-badge-border-color` | The border colour of the badge component. | `var(--graupl-border-color)` |
21
+ // | `--graupl-badge-padding-x` | The horizontal padding of the badge component. | `var(--graupl-spacer-5)` |
22
+ // | `--graupl-badge-padding-y` | The vertical padding of the badge component. | `var(--graupl-spacer-3)` |
23
+ // | `--graupl-badge-padding` | The padding of the badge component (combines y and x padding). | `var(--graupl-badge-padding-y) var(--graupl-badge-padding-x)` |
24
+ // | `--graupl-badge-border-top-width` | The top border width of the badge component. | `var(--graupl-border-top-width)` |
25
+ // | `--graupl-badge-border-right-width` | The right border width of the badge component. | `var(--graupl-border-right-width)` |
26
+ // | `--graupl-badge-border-bottom-width` | The bottom border width of the badge component. | `var(--graupl-border-bottom-width)` |
27
+ // | `--graupl-badge-border-left-width` | The left border width of the badge component. | `var(--graupl-border-left-width)` |
28
+ // | `--graupl-badge-border-width` | The border width of the badge component (combines top, right, bottom, and left widths). | `var(--graupl-badge-border-top-width) var(--graupl-badge-border-right-width) var(--graupl-badge-border-bottom-width) var(--graupl-badge-border-left-width)` |
29
+ // | `--graupl-badge-border-top-style` | The top border style of the badge component. | `var(--graupl-border-top-style)` |
30
+ // | `--graupl-badge-border-right-style` | The right border style of the badge component. | `var(--graupl-border-right-style)` |
31
+ // | `--graupl-badge-border-bottom-style` | The bottom border style of the badge component. | `var(--graupl-border-bottom-style)` |
32
+ // | `--graupl-badge-border-left-style` | The left border style of the badge component. | `var(--graupl-border-left-style)` |
33
+ // | `--graupl-badge-border-style` | The border style of the badge component (combines top, right, bottom, and left styles). | `var(--graupl-badge-border-top-style) var(--graupl-badge-border-right-style) var(--graupl-badge-border-bottom-style) var(--graupl-badge-border-left-style)` |
34
+ // | `--graupl-badge-border-top-left-radius` | The top-left border radius of the badge component. | `var(--graupl-border-top-left-radius)` |
35
+ // | `--graupl-badge-border-top-right-radius` | The top-right border radius of the badge component. | `var(--graupl-border-top-right-radius)` |
36
+ // | `--graupl-badge-border-bottom-right-radius` | The bottom-right border radius of the badge component. | `var(--graupl-border-bottom-right-radius)` |
37
+ // | `--graupl-badge-border-bottom-left-radius` | The bottom-left border radius of the badge component. | `var(--graupl-border-bottom-left-radius)` |
38
+ // | `--graupl-badge-border-radius` | The border radius of the badge component (combines top-left, top-right, bottom-right, and bottom-left radii). | `var(--graupl-badge-border-top-left-radius) var(--graupl-badge-border-top-right-radius) var(--graupl-badge-border-bottom-right-radius) var(--graupl-badge-border-bottom-left-radius)` |
39
+ //
40
+ // The following sass variables can be used to customize the generation of the badge component:
41
+ // | Variable | Description | Default Value |
42
+ // | --- | --- | --- |
43
+ // | `$selector-base` | The selector base for the component. | `.` |
44
+ // | `$modifier-selector-base` | The selector base for component modifiers. | `.` |
45
+ // | `$generate-base-theme-map` | A flag to generate the base theme maps for badge variants. | `true` |
46
+ // | `$badge-selector-base` | The selector base for the badge component. | `$selector-base` |
47
+ // | `$badge-selector` | The badge component selector. | `badge` |
48
+ // | `$badge-theme-selector-base` | The selector base for the badge theme component modifiers. | `$modifier-selector-base` |
49
+ // | `$badge-theme-selector-prefix` | The badge theme component modifier selector prefix. | `""` |
50
+ // | `$badge-theme-mappings` | A map of properties and color shades used generate all badge variants. | `()` |
51
+ // | `$badge-theme-map` | A map of all properties, colors, and color shades used to generate all badge variants. | `()` |
52
+ //
53
+ // Using `$badge-theme-mappings`
54
+ //
55
+ // `$badge-theme-mappings` is a 1-level map of properties and shade values.
56
+ //
57
+ // e.g.
58
+ // ```scss
59
+ // $badge-theme-mappings: (
60
+ // border-color: 700,
61
+ // )
62
+ // ```
63
+ //
64
+ // This directly[1] maps to all badge variants, telling them what shade to use for said property.
65
+ // All badge variants will use the following based on the example above:
66
+ // - Primary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--primary--700`,
67
+ // - Secondary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--700`, and
68
+ // - Tertiary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--tertiary--700`.
69
+ //
70
+ // You can use this to customize _all_ badges variants in the same way.
71
+ //
72
+ // For example, if you use the following map:
73
+ // ```scss
74
+ // $badge-theme-mappings: (
75
+ // border-color: 500,
76
+ // )
77
+ // ```
78
+ //
79
+ // All badge variants will use the following:
80
+ // - Primary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--primary--500`,
81
+ // - Secondary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--500`, and
82
+ // - Tertiary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--tertiary--500`.
83
+ //
84
+ // [1] `$badge-theme-mappings` gets parsed into a larger, more explicit map: `$badge-theme-map`.
85
+ //
86
+ // Using `$badge-theme-map`
87
+ //
88
+ // `$badge-theme-map` is a multi-level map of properties, colors, and shade values.
89
+ //
90
+ // e.g.
91
+ // ```scss
92
+ // $badge-theme-map: (
93
+ // primary: (
94
+ // border-color: (
95
+ // color: primary,
96
+ // shade: 700
97
+ // ),
98
+ // ),
99
+ // secondary: (
100
+ // border-color: (
101
+ // color: secondary,
102
+ // shade: 700
103
+ // ),
104
+ // ),
105
+ // tertiary: (
106
+ // border-color: (
107
+ // color: tertiary,
108
+ // shade: 700
109
+ // ),
110
+ // ),
111
+ // )
112
+ // ```
113
+ //
114
+ // This directly maps to all badge variants, telling them what shade to use for said property.
115
+ // The badge variants will use the following based on the example above:
116
+ // - Primary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--primary--700`,
117
+ // - Secondary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--700`, and
118
+ // - Tertiary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--tertiary--700`.
119
+ //
120
+ // You can use this to customize badge variants individually.
121
+ //
122
+ // For example, if you use the following map:
123
+ //
124
+ // ```scss
125
+ // $badge-theme-map: (
126
+ // primary: (
127
+ // border-color: (
128
+ // color: secondary,
129
+ // shade: 700
130
+ // ),
131
+ // ),
132
+ // secondary: (
133
+ // border-color: (
134
+ // color: secondary,
135
+ // shade: 700
136
+ // ),
137
+ // ),
138
+ // tertiary: (
139
+ // border-color: (
140
+ // color: secondary,
141
+ // shade: 700
142
+ // ),
143
+ // ),
144
+ // )
145
+ // ```
146
+ //
147
+ // The badge variants will use the following:
148
+ // - Primary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--700`,
149
+ // - Secondary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--700`, and
150
+ // - Tertiary badges will have their `--graupl-badge-border-color` property set to `--graupl-theme-active--secondary--700`.
151
+ //
152
+ // @example
153
+ // <badge class="badge primary">Primary Badge</badge>
154
+ //
155
+ // @example
156
+ // <a class="badge secondary" href="#">Secondary Badge</a>
157
+ //
158
+ // @example
159
+ // <a class="badge tertiary" href="#">Tertiary Badge</a>
160
+
161
+ @use "../../defaults" as root-defaults;
162
+ @use "../../functions/theme";
163
+ @use "../../mixins/layer" as *;
164
+ @use "defaults";
165
+ @use "sass:map";
166
+ @use "variables" as *;
167
+
168
+ @include layer(component) {
169
+ // .badge
170
+ #{defaults.$badge-selector-base}#{defaults.$badge-selector} {
171
+ display: flex;
172
+ align-items: center;
173
+ justify-content: center;
174
+ padding: $badge-padding;
175
+ border-width: $badge-border-width;
176
+ border-style: $badge-border-style;
177
+ border-radius: $badge-border-radius;
178
+ font-size: $badge-font-size;
179
+ }
180
+ }
181
+
182
+ @include layer(theme) {
183
+ // .badge
184
+ #{defaults.$badge-selector-base}#{defaults.$badge-selector} {
185
+ border-color: $badge-border-color;
186
+ background: $badge-background;
187
+ color: $badge-color;
188
+
189
+ @each $color, $map in defaults.$badge-theme-map {
190
+ // e.g. &.primary, &.secondary, &.tertiary
191
+ &#{defaults.$badge-theme-selector-base}#{defaults.$badge-theme-selector-prefix}#{$color} {
192
+ @each $prop, $value in $map {
193
+ --#{root-defaults.$prefix}badge-#{$prop}: #{theme.get(
194
+ map.get($value, color),
195
+ map.get($value, shade)
196
+ )};
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
@@ -0,0 +1,112 @@
1
+ // @graupl/core badge base variables.
2
+ //
3
+ // These values are to be used to directly style bases and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @use "defaults";
7
+ @use "../../variables" as root-variables;
8
+ @use "../../defaults" as root-defaults;
9
+ @use "../../theme/color/variables" as color;
10
+ @use "../../theme/typography/variables" as typography;
11
+ @use "../../functions/theme";
12
+ @use "sass:map";
13
+
14
+ // Typography.
15
+ $badge-font-size: var(
16
+ --#{root-defaults.$prefix}badge-font-size,
17
+ #{map.get(typography.$font-sizes, sm)}
18
+ );
19
+
20
+ // Colors.
21
+ $badge-background: var(
22
+ --#{root-defaults.$prefix}badge-background,
23
+ #{color.$background}
24
+ );
25
+ $badge-color: var(--#{root-defaults.$prefix}badge-color, #{color.$color});
26
+ $badge-border-color: var(
27
+ --#{root-defaults.$prefix}badge-border-color,
28
+ #{color.$border-color}
29
+ );
30
+
31
+ // Spacing.
32
+ $badge-padding-x: var(
33
+ --#{root-defaults.$prefix}badge-padding-x,
34
+ #{map.get(root-variables.$spacers, 5)}
35
+ );
36
+ $badge-padding-y: var(
37
+ --#{root-defaults.$prefix}badge-padding-y,
38
+ #{map.get(root-variables.$spacers, 3)}
39
+ );
40
+ $badge-padding: var(
41
+ --#{root-defaults.$prefix}badge-padding,
42
+ #{$badge-padding-y} #{$badge-padding-x}
43
+ );
44
+
45
+ // Border widths.
46
+ $badge-border-top-width: var(
47
+ --#{root-defaults.$prefix}badge-border-top-width,
48
+ #{root-variables.$border-top-width}
49
+ );
50
+ $badge-border-right-width: var(
51
+ --#{root-defaults.$prefix}badge-border-right-width,
52
+ #{root-variables.$border-right-width}
53
+ );
54
+ $badge-border-bottom-width: var(
55
+ --#{root-defaults.$prefix}badge-border-bottom-width,
56
+ #{root-variables.$border-bottom-width}
57
+ );
58
+ $badge-border-left-width: var(
59
+ --#{root-defaults.$prefix}badge-border-left-width,
60
+ #{root-variables.$border-left-width}
61
+ );
62
+ $badge-border-width: var(
63
+ --#{root-defaults.$prefix}badge-border-width,
64
+ #{$badge-border-top-width} #{$badge-border-right-width}
65
+ #{$badge-border-bottom-width} #{$badge-border-left-width}
66
+ );
67
+
68
+ // Border styles.
69
+ $badge-border-top-style: var(
70
+ --#{root-defaults.$prefix}badge-border-top-style,
71
+ #{root-variables.$border-top-style}
72
+ );
73
+ $badge-border-right-style: var(
74
+ --#{root-defaults.$prefix}badge-border-right-style,
75
+ #{root-variables.$border-right-style}
76
+ );
77
+ $badge-border-bottom-style: var(
78
+ --#{root-defaults.$prefix}badge-border-bottom-style,
79
+ #{root-variables.$border-bottom-style}
80
+ );
81
+ $badge-border-left-style: var(
82
+ --#{root-defaults.$prefix}badge-border-left-style,
83
+ #{root-variables.$border-left-style}
84
+ );
85
+ $badge-border-style: var(
86
+ --#{root-defaults.$prefix}badge-border-style,
87
+ #{$badge-border-top-style} #{$badge-border-right-style}
88
+ #{$badge-border-bottom-style} #{$badge-border-left-style}
89
+ );
90
+
91
+ // Border radii.
92
+ $badge-border-top-left-radius: var(
93
+ --#{root-defaults.$prefix}badge-border-top-left-radius,
94
+ #{root-variables.$border-top-left-radius}
95
+ );
96
+ $badge-border-top-right-radius: var(
97
+ --#{root-defaults.$prefix}badge-border-top-right-radius,
98
+ #{root-variables.$border-top-right-radius}
99
+ );
100
+ $badge-border-bottom-right-radius: var(
101
+ --#{root-defaults.$prefix}badge-border-bottom-right-radius,
102
+ #{root-variables.$border-bottom-right-radius}
103
+ );
104
+ $badge-border-bottom-left-radius: var(
105
+ --#{root-defaults.$prefix}badge-border-bottom-left-radius,
106
+ #{root-variables.$border-bottom-left-radius}
107
+ );
108
+ $badge-border-radius: var(
109
+ --#{root-defaults.$prefix}badge-border-radius,
110
+ #{$badge-border-top-left-radius} #{$badge-border-top-right-radius}
111
+ #{$badge-border-bottom-right-radius} #{$badge-border-bottom-left-radius}
112
+ );
@@ -0,0 +1,45 @@
1
+ // @graupl/core disclosure component default values.
2
+ //
3
+ // Generally, these should not be used directly when styling components unless a static value is needed.
4
+ // They are mainly used to provide class selectors, fallbacks for custom properties, or loop values.
5
+ //
6
+ // They should not be used to define direct property values (i.e. font-size, color, etc.).
7
+ // Those should be defined as custom properties in the `_variables.scss` file.
8
+
9
+ @use "../../defaults" as root-defaults;
10
+
11
+ // Disclosure selectors.
12
+ $selector-base: root-defaults.$component-selector-base !default;
13
+ $modifier-selector-base: root-defaults.$modifier-selector-base !default;
14
+ $disclosure-selector-base: $selector-base !default;
15
+ $disclosure-selector: "disclosure" !default;
16
+ $disclosure-content-selector-base: $selector-base !default;
17
+ $disclosure-content-selector: "disclosure-content" !default;
18
+ $disclosure-toggle-selector-base: $modifier-selector-base !default;
19
+ $disclosure-toggle-selector: "disclosure-toggle" !default;
20
+ $disclosure-open-selector-base: $modifier-selector-base !default;
21
+ $disclosure-open-selector: "show" !default;
22
+ $disclosure-closed-selector-base: $modifier-selector-base !default;
23
+ $disclosure-closed-selector: "hide" !default;
24
+ $disclosure-transitioning-selector-base: $modifier-selector-base !default;
25
+ $disclosure-transitioning-selector: "transitioning" !default;
26
+
27
+ // Visibility properties.
28
+ $disclosure-show-display: flex !default;
29
+ $disclosure-hide-display: flex !default;
30
+ $disclosure-transitioning-display: $disclosure-show-display !default;
31
+
32
+ // Disclosure block-size properties.
33
+ $disclosure-show-block-size: 100% !default;
34
+ $disclosure-hide-block-size: 0 !default;
35
+ $disclosure-transitioning-block-size: $disclosure-hide-block-size !default;
36
+
37
+ // Opacity properties.
38
+ $disclosure-show-opacity: 1 !default;
39
+ $disclosure-hide-opacity: 0 !default;
40
+ $disclosure-transitioning-opacity: $disclosure-hide-opacity !default;
41
+
42
+ // Disclosure toggle properties.
43
+ $disclosure-toggle-content: "'↓'" !default;
44
+ $disclosure-toggle-transform: rotate(0deg) !default;
45
+ $disclosure-toggle-open-transform: rotate(-180deg) !default;