@graupl/graupl 1.0.0-alpha.12 → 1.0.0-alpha.14

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 (180) hide show
  1. package/.github/workflows/codeql-analysis.yml +3 -3
  2. package/.husky/commit-msg +0 -1
  3. package/.husky/pre-commit +0 -1
  4. package/CHANGELOG.md +65 -0
  5. package/dist/base/button.css +1 -1
  6. package/dist/base/button.css.map +1 -1
  7. package/dist/base/form.css +1 -1
  8. package/dist/base/form.css.map +1 -1
  9. package/dist/base/link.css +1 -1
  10. package/dist/base/link.css.map +1 -1
  11. package/dist/base/table.css +1 -1
  12. package/dist/base/table.css.map +1 -1
  13. package/dist/base.css +1 -1
  14. package/dist/base.css.map +1 -1
  15. package/dist/component/alert.css +2 -0
  16. package/dist/component/alert.css.map +1 -0
  17. package/dist/component/card.css +2 -0
  18. package/dist/component/card.css.map +1 -0
  19. package/dist/component/carousel.css +2 -0
  20. package/dist/component/carousel.css.map +1 -0
  21. package/dist/component/input-group.css +1 -1
  22. package/dist/component/input-group.css.map +1 -1
  23. package/dist/component/menu.css +2 -0
  24. package/dist/component/menu.css.map +1 -0
  25. package/dist/component/navigation.css +2 -0
  26. package/dist/component/navigation.css.map +1 -0
  27. package/dist/component.css +1 -1
  28. package/dist/component.css.map +1 -1
  29. package/dist/graupl.css +1 -1
  30. package/dist/graupl.css.map +1 -1
  31. package/dist/layout/columns.css +1 -1
  32. package/dist/layout/columns.css.map +1 -1
  33. package/dist/layout/container.css.map +1 -1
  34. package/dist/layout/flex-columns.css +2 -0
  35. package/dist/layout/flex-columns.css.map +1 -0
  36. package/dist/layout.css +1 -1
  37. package/dist/layout.css.map +1 -1
  38. package/dist/normalize.css.map +1 -1
  39. package/dist/state/focus.css.map +1 -1
  40. package/dist/state.css.map +1 -1
  41. package/dist/theme/color.css.map +1 -1
  42. package/dist/theme/typography.css +1 -1
  43. package/dist/theme/typography.css.map +1 -1
  44. package/dist/theme.css +1 -1
  45. package/dist/theme.css.map +1 -1
  46. package/dist/utilities/alignment.css.map +1 -1
  47. package/dist/utilities/color.css.map +1 -1
  48. package/dist/utilities/display.css +1 -1
  49. package/dist/utilities/display.css.map +1 -1
  50. package/dist/utilities/flex.css.map +1 -1
  51. package/dist/utilities/height.css +2 -0
  52. package/dist/utilities/height.css.map +1 -0
  53. package/dist/utilities/inset.css.map +1 -1
  54. package/dist/utilities/justification.css.map +1 -1
  55. package/dist/utilities/list.css.map +1 -1
  56. package/dist/utilities/order.css +2 -0
  57. package/dist/utilities/order.css.map +1 -0
  58. package/dist/utilities/postion.css.map +1 -1
  59. package/dist/utilities/spacing.css +1 -1
  60. package/dist/utilities/spacing.css.map +1 -1
  61. package/dist/utilities/typography.css +1 -1
  62. package/dist/utilities/typography.css.map +1 -1
  63. package/dist/utilities/visibility.css.map +1 -1
  64. package/dist/utilities/width.css +2 -0
  65. package/dist/utilities/width.css.map +1 -0
  66. package/dist/utilities.css +1 -1
  67. package/dist/utilities.css.map +1 -1
  68. package/docs/.vitepress/config.js +39 -12
  69. package/docs/components/alert.md +130 -0
  70. package/docs/components/button.md +84 -0
  71. package/docs/components/card.md +369 -0
  72. package/docs/components/index.md +1 -0
  73. package/docs/components/inputgroup.md +159 -0
  74. package/docs/components/menu.md +326 -0
  75. package/docs/components/navigation.md +158 -0
  76. package/docs/content.md +237 -0
  77. package/docs/defaults.md +121 -0
  78. package/docs/forms.md +79 -0
  79. package/docs/functions.md +9 -0
  80. package/docs/getting-started.md +1 -0
  81. package/docs/index.md +1 -7
  82. package/docs/introduction.md +22 -2
  83. package/docs/layout.md +200 -0
  84. package/docs/mixins.md +47 -0
  85. package/docs/state.md +67 -0
  86. package/docs/theme.md +258 -0
  87. package/docs/utilities.md +357 -0
  88. package/eslint.config.js +1 -0
  89. package/index.html +760 -325
  90. package/package.json +5 -6
  91. package/scss/component/alert.scss +3 -0
  92. package/scss/component/card.scss +3 -0
  93. package/scss/component/carousel.scss +3 -0
  94. package/scss/component/menu.scss +3 -0
  95. package/scss/component/navigation.scss +3 -0
  96. package/scss/layout/flex-columns.scss +3 -0
  97. package/scss/utilities/height.scss +3 -0
  98. package/scss/utilities/order.scss +3 -0
  99. package/scss/utilities/width.scss +3 -0
  100. package/src/js/alert/Alert.js +511 -0
  101. package/src/js/alert/index.js +21 -0
  102. package/src/js/carousel/Carousel.js +1376 -0
  103. package/src/js/carousel/index.js +20 -0
  104. package/src/js/domHelpers.js +37 -0
  105. package/src/js/eventHandlers.js +32 -0
  106. package/src/js/navigation.js +34 -0
  107. package/src/js/validate.js +225 -0
  108. package/src/scss/_defaults.scss +15 -1
  109. package/src/scss/base/_index.scss +1 -1
  110. package/src/scss/base/button/_defaults.scss +15 -3
  111. package/src/scss/base/button/_index.scss +80 -120
  112. package/src/scss/base/button/_mixins.scss +164 -0
  113. package/src/scss/base/button/_variables.scss +43 -11
  114. package/src/scss/base/form/_index.scss +3 -5
  115. package/src/scss/base/form/_variables.scss +8 -0
  116. package/src/scss/base/link/_defaults.scss +37 -6
  117. package/src/scss/base/link/_index.scss +73 -13
  118. package/src/scss/base/link/_variables.scss +175 -18
  119. package/src/scss/base/table/_index.scss +3 -5
  120. package/src/scss/base/table/_variables.scss +8 -0
  121. package/src/scss/component/_index.scss +6 -1
  122. package/src/scss/component/alert/_defaults.scss +49 -0
  123. package/src/scss/component/alert/_index.scss +118 -0
  124. package/src/scss/component/alert/_variables.scss +170 -0
  125. package/src/scss/component/card/_defaults.scss +32 -0
  126. package/src/scss/component/card/_index.scss +177 -0
  127. package/src/scss/component/card/_variables.scss +185 -0
  128. package/src/scss/component/carousel/_defaults.scss +43 -0
  129. package/src/scss/component/carousel/_index.scss +182 -0
  130. package/src/scss/component/carousel/_variables.scss +104 -0
  131. package/src/scss/component/input-group/_index.scss +1 -1
  132. package/src/scss/component/menu/_defaults.scss +66 -0
  133. package/src/scss/component/menu/_index.scss +305 -0
  134. package/src/scss/component/menu/_variables.scss +495 -0
  135. package/src/scss/component/navigation/_defaults.scss +29 -0
  136. package/src/scss/component/navigation/_index.scss +189 -0
  137. package/src/scss/component/navigation/_variables.scss +237 -0
  138. package/src/scss/functions/_theme.scss +16 -0
  139. package/src/scss/layout/_index.scss +2 -1
  140. package/src/scss/layout/columns/_index.scss +23 -1
  141. package/src/scss/layout/container/_index.scss +1 -1
  142. package/src/scss/layout/flex-columns/_defaults.scss +18 -0
  143. package/src/scss/layout/flex-columns/_index.scss +77 -0
  144. package/src/scss/layout/flex-columns/_variables.scss +26 -0
  145. package/src/scss/mixins/_layer.scss +2 -4
  146. package/src/scss/mixins/_media-queries.scss +8 -0
  147. package/src/scss/mixins/_visually-hidden.scss +20 -0
  148. package/src/scss/state/_index.scss +1 -1
  149. package/src/scss/state/focus/_index.scss +1 -1
  150. package/src/scss/theme/_index.scss +1 -1
  151. package/src/scss/theme/color/_index.scss +1 -1
  152. package/src/scss/theme/typography/_defaults.scss +1 -1
  153. package/src/scss/theme/typography/_index.scss +1 -1
  154. package/src/scss/theme/typography/_variables.scss +5 -2
  155. package/src/scss/utilities/_index.scss +5 -1
  156. package/src/scss/utilities/alignment/_index.scss +1 -1
  157. package/src/scss/utilities/color/_index.scss +1 -1
  158. package/src/scss/utilities/display/_defaults.scss +2 -0
  159. package/src/scss/utilities/display/_index.scss +11 -1
  160. package/src/scss/utilities/flex/_index.scss +1 -1
  161. package/src/scss/utilities/height/_defaults.scss +38 -0
  162. package/src/scss/utilities/height/_index.scss +23 -0
  163. package/src/scss/utilities/height/_variables.scss +6 -0
  164. package/src/scss/utilities/inset/_index.scss +1 -1
  165. package/src/scss/utilities/justification/_index.scss +1 -1
  166. package/src/scss/utilities/list/_index.scss +1 -1
  167. package/src/scss/utilities/order/_defaults.scss +19 -0
  168. package/src/scss/utilities/order/_index.scss +35 -0
  169. package/src/scss/utilities/order/_variables.scss +6 -0
  170. package/src/scss/utilities/position/_index.scss +1 -1
  171. package/src/scss/utilities/ratio/_defaults.scss +25 -0
  172. package/src/scss/utilities/ratio/_index.scss +34 -0
  173. package/src/scss/utilities/ratio/_variables.scss +9 -0
  174. package/src/scss/utilities/spacing/_index.scss +34 -17
  175. package/src/scss/utilities/typography/_index.scss +1 -1
  176. package/src/scss/utilities/visibility/_index.scss +1 -1
  177. package/src/scss/utilities/width/_defaults.scss +38 -0
  178. package/src/scss/utilities/width/_index.scss +23 -0
  179. package/src/scss/utilities/width/_variables.scss +6 -0
  180. package/stylelint.config.js +1 -0
@@ -0,0 +1,23 @@
1
+ // @graupl/graupl height utilities styles.
2
+
3
+ @use "variables" as *;
4
+ @use "defaults";
5
+ @use "../../mixins/layer" as *;
6
+ @use "../../functions/important";
7
+
8
+ @include layer(utilities) {
9
+ // For each height property, create a utility class.
10
+ @each $height, $value in defaults.$height-values {
11
+ .#{defaults.$height-class-prefix}#{$height} {
12
+ height: important.insert($value);
13
+ }
14
+
15
+ .#{defaults.$max-height-class-prefix}#{$height} {
16
+ max-height: important.insert($value);
17
+ }
18
+
19
+ .#{defaults.$min-height-class-prefix}#{$height} {
20
+ min-height: important.insert($value);
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,6 @@
1
+ // @graupl/graupl height utilities variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @forward "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl inset utilities styles.
1
+ // @graupl/graupl inset utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl justification utilities styles.
1
+ // @graupl/graupl justification utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl list utilities styles.
1
+ // @graupl/graupl list utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -0,0 +1,19 @@
1
+ // @graupl/graupl order utilities 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 "sass:map";
10
+
11
+ // Order properties.
12
+ $order-class-prefix: "order-" !default;
13
+ $base-order-properties: (
14
+ "none": 0,
15
+ "first": -9999,
16
+ "last": 9999,
17
+ );
18
+ $custom-order-properties: () !default;
19
+ $order-properties: map.merge($base-order-properties, $custom-order-properties);
@@ -0,0 +1,35 @@
1
+ // @graupl/graupl order utilities styles.
2
+
3
+ @use "variables" as *;
4
+ @use "defaults" as defaults;
5
+ @use "../../layout/columns/defaults" as columns-defaults;
6
+ @use "../../layout/flex-columns/defaults" as flex-columns-defaults;
7
+ @use "../../mixins/layer" as *;
8
+ @use "../../functions/important";
9
+
10
+ @include layer(utilities) {
11
+ @each $order-property, $order-value in $order-properties {
12
+ .#{$order-class-prefix}#{$order-property} {
13
+ order: $order-value;
14
+ }
15
+ }
16
+
17
+ $order-max-count: 0;
18
+
19
+ /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
20
+ @if (
21
+ columns-defaults.$columns-max-count >
22
+ flex-columns-defaults.$flex-columns-max-count
23
+ ) {
24
+ $order-max-count: columns-defaults.$columns-max-count;
25
+ } @else {
26
+ $order-max-count: flex-columns-defaults.$flex-columns-max-count;
27
+ }
28
+ /* stylelint-enable scss/operator-no-newline-after */
29
+
30
+ @for $i from 1 through $order-max-count {
31
+ .#{$order-class-prefix}#{$i} {
32
+ order: $i;
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,6 @@
1
+ // @graupl/graupl order utilities variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @forward "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl position utilities styles.
1
+ // @graupl/graupl position utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -0,0 +1,25 @@
1
+ // @graupl/graupl ratio utilities 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 "sass:map";
10
+
11
+ // Ratio utilities.
12
+ $ratio-selector: ".ratio" !default;
13
+ $ratio-variant-selector-prefix: "." !default;
14
+ $force-ratio-selector: ".force-ratio" !default;
15
+ $base-ratios: (
16
+ "one-by-one": 100%,
17
+ "two-by-one": 50%,
18
+ "four-by-three": 75%,
19
+ "four-by-one": 25%,
20
+ "sixteen-by-nine": calc(9 / 16 * 100%),
21
+ "three-by-two": calc(2 / 3 * 100%),
22
+ "eight-by-five": calc(5 / 8 * 100%),
23
+ );
24
+ $custom-ratios: () !default;
25
+ $ratios: map.merge($base-ratios, $custom-ratios);
@@ -0,0 +1,34 @@
1
+ // @graupl/graupl ratio utilities styles.
2
+
3
+ @use "variables" as *;
4
+ @use "defaults" as defaults;
5
+ @use "../../defaults" as root-defaults;
6
+ @use "../../mixins/layer" as *;
7
+ @use "../../functions/important";
8
+
9
+ @include layer(utilities) {
10
+ #{defaults.$ratio-selector} {
11
+ position: relative;
12
+ width: 100%;
13
+
14
+ &::before {
15
+ content: "";
16
+ display: block;
17
+ padding-top: $ratio;
18
+ }
19
+
20
+ #{defaults.$force-ratio-selector} {
21
+ position: absolute;
22
+ inset: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ object-fit: cover;
26
+ }
27
+ }
28
+
29
+ @each $ratio-selector, $value in defaults.$ratios {
30
+ #{defaults.$ratio-variant-selector-prefix}#{$ratio-selector} {
31
+ --#{root-defaults.$prefix}-ratio: #{$value};
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,9 @@
1
+ // @graupl/graupl ratio utilities variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @use "defaults";
7
+ @use "../../defaults" as root-defaults;
8
+
9
+ $ratio: var(--#{root-defaults.$prefix}-ratio);
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl spacing utilities styles.
1
+ // @graupl/graupl spacing utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -6,16 +6,18 @@
6
6
  @use "../../functions/important";
7
7
  @use "../../variables" as root-variables;
8
8
  @use "../../defaults" as root-defaults;
9
+ @use "../../layout/columns/defaults" as columns-defaults;
10
+ @use "../../layout/flex-columns/defaults" as flex-columns-defaults;
9
11
 
10
12
  @include layer(utilities) {
11
13
  // For each spacing property, create a utility class.
12
14
  @each $name, $property in defaults.$spacing-properties {
13
15
  @each $key, $value in root-variables.$spacers {
14
16
  .#{$name}-#{$key} {
15
- // If we're dealing with gap, column-gap, or row-gap inside of .columns, we should update
17
+ // If we're dealing with gap, column-gap, or row-gap inside of #{columns-defaults.$columns-selector}, we should update
16
18
  // the columns-column-gap property instead of the raw property.
17
19
  @if $name == "g" {
18
- &.columns {
20
+ &#{columns-defaults.$columns-selector} {
19
21
  --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
20
22
  $value
21
23
  )};
@@ -24,34 +26,49 @@
24
26
  )};
25
27
  }
26
28
 
27
- &:not(.columns) {
28
- @each $prop in $property {
29
- #{$prop}: important.insert($value);
30
- }
29
+ &#{flex-columns-defaults.$flex-columns-selector} {
30
+ --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
31
+ $value
32
+ )};
33
+ --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
34
+ $value
35
+ )};
36
+ }
37
+
38
+ @each $prop in $property {
39
+ #{$prop}: important.insert($value);
31
40
  }
32
41
  } @else if $name == "cg" {
33
- &.columns {
42
+ &#{columns-defaults.$columns-selector} {
34
43
  --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
35
44
  $value
36
45
  )};
37
46
  }
38
47
 
39
- &:not(.columns) {
40
- @each $prop in $property {
41
- #{$prop}: important.insert($value);
42
- }
48
+ &#{flex-columns-defaults.$flex-columns-selector} {
49
+ --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
50
+ $value
51
+ )};
52
+ }
53
+
54
+ @each $prop in $property {
55
+ #{$prop}: important.insert($value);
43
56
  }
44
57
  } @else if $name == "rg" {
45
- &.columns {
58
+ &#{columns-defaults.$columns-selector} {
46
59
  --#{root-defaults.$prefix}-columns-row-gap: #{important.insert(
47
60
  $value
48
61
  )};
49
62
  }
50
63
 
51
- &:not(.columns) {
52
- @each $prop in $property {
53
- #{$prop}: important.insert($value);
54
- }
64
+ &#{flex-columns-defaults.$flex-columns-selector} {
65
+ --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
66
+ $value
67
+ )};
68
+ }
69
+
70
+ @each $prop in $property {
71
+ #{$prop}: important.insert($value);
55
72
  }
56
73
  } @else {
57
74
  @each $prop in $property {
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl typography utilities styles.
1
+ // @graupl/graupl typography utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults";
@@ -1,4 +1,4 @@
1
- // @gruapl/graupl visibility utilities styles.
1
+ // @graupl/graupl visibility utilities styles.
2
2
 
3
3
  @use "variables" as *;
4
4
  @use "defaults" as defaults;
@@ -0,0 +1,38 @@
1
+ // @graupl/graupl width utilities 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 "sass:map";
10
+
11
+ // Width properties.
12
+ $width-class-prefix: "w-" !default;
13
+ $max-width-class-prefix: "max-w-" !default;
14
+ $min-width-class-prefix: "min-w-" !default;
15
+
16
+ // Width values.
17
+ $base-width-values: (
18
+ auto: auto,
19
+ fit-content: fit-content,
20
+ max-content: max-content,
21
+ min-content: min-content,
22
+ stretch: stretch,
23
+ 0: 0,
24
+ full: 100%,
25
+ quarter: 25%,
26
+ half: 50%,
27
+ three-quarters: 75%,
28
+ third: calc(100% / 3),
29
+ two-thirds: calc(100% / 1.5),
30
+ half-screen: 50vw,
31
+ third-screen: calc(100vw / 3),
32
+ two-thirds-screen: calc(100vw / 1.5),
33
+ quarter-screen: 25vw,
34
+ three-quarters-screen: 75vw,
35
+ full-screen: 100vw,
36
+ );
37
+ $custom-width-values: () !default;
38
+ $width-values: map.merge($base-width-values, $custom-width-values);
@@ -0,0 +1,23 @@
1
+ // @graupl/graupl width utilities styles.
2
+
3
+ @use "variables" as *;
4
+ @use "defaults";
5
+ @use "../../mixins/layer" as *;
6
+ @use "../../functions/important";
7
+
8
+ @include layer(utilities) {
9
+ // For each width property, create a utility class.
10
+ @each $width, $value in defaults.$width-values {
11
+ .#{defaults.$width-class-prefix}#{$width} {
12
+ width: important.insert($value);
13
+ }
14
+
15
+ .#{defaults.$max-width-class-prefix}#{$width} {
16
+ max-width: important.insert($value);
17
+ }
18
+
19
+ .#{defaults.$min-width-class-prefix}#{$width} {
20
+ min-width: important.insert($value);
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,6 @@
1
+ // @graupl/graupl width utilities variables.
2
+ //
3
+ // These values are to be used to directly style components and provide a
4
+ // cleaner way to reference custom properties.
5
+
6
+ @forward "defaults";
@@ -9,6 +9,7 @@ const config = {
9
9
  "prettier/prettier": true,
10
10
  "scss/comment-no-empty": null,
11
11
  "selector-max-compound-selectors": 4,
12
+ "max-nesting-depth": 4,
12
13
  "selector-no-qualifying-type": null,
13
14
  },
14
15
  };