@graupl/core 1.0.0-beta.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 (303) hide show
  1. package/dist/css/base/button.css +2 -0
  2. package/dist/css/base/button.css.map +1 -0
  3. package/dist/css/base/form.css +2 -0
  4. package/dist/css/base/form.css.map +1 -0
  5. package/dist/css/base/link.css +2 -0
  6. package/dist/css/base/link.css.map +1 -0
  7. package/dist/css/base/table.css +2 -0
  8. package/dist/css/base/table.css.map +1 -0
  9. package/dist/css/base.css +2 -0
  10. package/dist/css/base.css.map +1 -0
  11. package/dist/css/component/accordion.css +5 -0
  12. package/dist/css/component/accordion.css.map +1 -0
  13. package/dist/css/component/alert.css +2 -0
  14. package/dist/css/component/alert.css.map +1 -0
  15. package/dist/css/component/card.css +2 -0
  16. package/dist/css/component/card.css.map +1 -0
  17. package/dist/css/component/carousel.css +2 -0
  18. package/dist/css/component/carousel.css.map +1 -0
  19. package/dist/css/component/input-group.css +2 -0
  20. package/dist/css/component/input-group.css.map +1 -0
  21. package/dist/css/component/list.css +2 -0
  22. package/dist/css/component/list.css.map +1 -0
  23. package/dist/css/component/menu.css +2 -0
  24. package/dist/css/component/menu.css.map +1 -0
  25. package/dist/css/component/navigation.css +2 -0
  26. package/dist/css/component/navigation.css.map +1 -0
  27. package/dist/css/component.css +5 -0
  28. package/dist/css/component.css.map +1 -0
  29. package/dist/css/graupl.css +5 -0
  30. package/dist/css/graupl.css.map +1 -0
  31. package/dist/css/init.css +2 -0
  32. package/dist/css/init.css.map +1 -0
  33. package/dist/css/layout/columns.css +2 -0
  34. package/dist/css/layout/columns.css.map +1 -0
  35. package/dist/css/layout/container.css +2 -0
  36. package/dist/css/layout/container.css.map +1 -0
  37. package/dist/css/layout/flex-columns.css +2 -0
  38. package/dist/css/layout/flex-columns.css.map +1 -0
  39. package/dist/css/layout.css +5 -0
  40. package/dist/css/layout.css.map +1 -0
  41. package/dist/css/normalize.css +2 -0
  42. package/dist/css/normalize.css.map +1 -0
  43. package/dist/css/state/focus.css +2 -0
  44. package/dist/css/state/focus.css.map +1 -0
  45. package/dist/css/state.css +2 -0
  46. package/dist/css/state.css.map +1 -0
  47. package/dist/css/theme/color.css +2 -0
  48. package/dist/css/theme/color.css.map +1 -0
  49. package/dist/css/theme/typography.css +2 -0
  50. package/dist/css/theme/typography.css.map +1 -0
  51. package/dist/css/theme.css +2 -0
  52. package/dist/css/theme.css.map +1 -0
  53. package/dist/css/utilities/alignment.css +2 -0
  54. package/dist/css/utilities/alignment.css.map +1 -0
  55. package/dist/css/utilities/background.css +2 -0
  56. package/dist/css/utilities/background.css.map +1 -0
  57. package/dist/css/utilities/border.css +2 -0
  58. package/dist/css/utilities/border.css.map +1 -0
  59. package/dist/css/utilities/color.css +2 -0
  60. package/dist/css/utilities/color.css.map +1 -0
  61. package/dist/css/utilities/container.css +2 -0
  62. package/dist/css/utilities/container.css.map +1 -0
  63. package/dist/css/utilities/display.css +2 -0
  64. package/dist/css/utilities/display.css.map +1 -0
  65. package/dist/css/utilities/flex.css +2 -0
  66. package/dist/css/utilities/flex.css.map +1 -0
  67. package/dist/css/utilities/gradient.css +2 -0
  68. package/dist/css/utilities/gradient.css.map +1 -0
  69. package/dist/css/utilities/height.css +2 -0
  70. package/dist/css/utilities/height.css.map +1 -0
  71. package/dist/css/utilities/inset.css +2 -0
  72. package/dist/css/utilities/inset.css.map +1 -0
  73. package/dist/css/utilities/justification.css +2 -0
  74. package/dist/css/utilities/justification.css.map +1 -0
  75. package/dist/css/utilities/list.css +2 -0
  76. package/dist/css/utilities/list.css.map +1 -0
  77. package/dist/css/utilities/order.css +2 -0
  78. package/dist/css/utilities/order.css.map +1 -0
  79. package/dist/css/utilities/position.css +2 -0
  80. package/dist/css/utilities/position.css.map +1 -0
  81. package/dist/css/utilities/ratio.css +2 -0
  82. package/dist/css/utilities/ratio.css.map +1 -0
  83. package/dist/css/utilities/spacing.css +2 -0
  84. package/dist/css/utilities/spacing.css.map +1 -0
  85. package/dist/css/utilities/typography.css +2 -0
  86. package/dist/css/utilities/typography.css.map +1 -0
  87. package/dist/css/utilities/visibility.css +2 -0
  88. package/dist/css/utilities/visibility.css.map +1 -0
  89. package/dist/css/utilities/visually-hidden.css +2 -0
  90. package/dist/css/utilities/visually-hidden.css.map +1 -0
  91. package/dist/css/utilities/width.css +2 -0
  92. package/dist/css/utilities/width.css.map +1 -0
  93. package/dist/css/utilities/z-index.css +2 -0
  94. package/dist/css/utilities/z-index.css.map +1 -0
  95. package/dist/css/utilities.css +2 -0
  96. package/dist/css/utilities.css.map +1 -0
  97. package/package.json +58 -0
  98. package/scss/base/button.scss +3 -0
  99. package/scss/base/form.scss +3 -0
  100. package/scss/base/link.scss +3 -0
  101. package/scss/base/table.scss +3 -0
  102. package/scss/base.scss +3 -0
  103. package/scss/component/accordion.scss +3 -0
  104. package/scss/component/alert.scss +3 -0
  105. package/scss/component/card.scss +3 -0
  106. package/scss/component/carousel.scss +3 -0
  107. package/scss/component/input-group.scss +3 -0
  108. package/scss/component/list.scss +3 -0
  109. package/scss/component/menu.scss +3 -0
  110. package/scss/component/navigation.scss +3 -0
  111. package/scss/component.scss +3 -0
  112. package/scss/graupl.scss +3 -0
  113. package/scss/init.scss +3 -0
  114. package/scss/layout/columns.scss +3 -0
  115. package/scss/layout/container.scss +3 -0
  116. package/scss/layout/flex-columns.scss +3 -0
  117. package/scss/layout.scss +3 -0
  118. package/scss/normalize.scss +3 -0
  119. package/scss/state/focus.scss +3 -0
  120. package/scss/state.scss +3 -0
  121. package/scss/theme/color.scss +3 -0
  122. package/scss/theme/typography.scss +3 -0
  123. package/scss/theme.scss +3 -0
  124. package/scss/utilities/alignment.scss +3 -0
  125. package/scss/utilities/background.scss +3 -0
  126. package/scss/utilities/border.scss +3 -0
  127. package/scss/utilities/color.scss +3 -0
  128. package/scss/utilities/container.scss +3 -0
  129. package/scss/utilities/display.scss +3 -0
  130. package/scss/utilities/flex.scss +3 -0
  131. package/scss/utilities/gradient.scss +3 -0
  132. package/scss/utilities/height.scss +3 -0
  133. package/scss/utilities/inset.scss +3 -0
  134. package/scss/utilities/justification.scss +3 -0
  135. package/scss/utilities/list.scss +3 -0
  136. package/scss/utilities/order.scss +3 -0
  137. package/scss/utilities/position.scss +3 -0
  138. package/scss/utilities/ratio.scss +3 -0
  139. package/scss/utilities/spacing.scss +3 -0
  140. package/scss/utilities/typography.scss +3 -0
  141. package/scss/utilities/visibility.scss +3 -0
  142. package/scss/utilities/visually-hidden.scss +3 -0
  143. package/scss/utilities/width.scss +3 -0
  144. package/scss/utilities/z-index.scss +3 -0
  145. package/scss/utilities.scss +3 -0
  146. package/src/js/accordion/Accordion.js +1163 -0
  147. package/src/js/accordion/AccordionItem.js +496 -0
  148. package/src/js/accordion/index.js +10 -0
  149. package/src/js/alert/Alert.js +581 -0
  150. package/src/js/alert/index.js +11 -0
  151. package/src/js/carousel/Carousel.js +1427 -0
  152. package/src/js/carousel/index.js +10 -0
  153. package/src/js/domHelpers.js +37 -0
  154. package/src/js/eventHandlers.js +39 -0
  155. package/src/js/navigation/index.js +36 -0
  156. package/src/js/storage.js +106 -0
  157. package/src/js/validate.js +225 -0
  158. package/src/scss/_defaults.scss +184 -0
  159. package/src/scss/_index.scss +15 -0
  160. package/src/scss/_init.scss +6 -0
  161. package/src/scss/_normalize.scss +197 -0
  162. package/src/scss/_variables.scss +95 -0
  163. package/src/scss/base/_index.scss +6 -0
  164. package/src/scss/base/button/_defaults.scss +49 -0
  165. package/src/scss/base/button/_index.scss +206 -0
  166. package/src/scss/base/button/_mixins.scss +104 -0
  167. package/src/scss/base/button/_variables.scss +252 -0
  168. package/src/scss/base/form/_defaults.scss +24 -0
  169. package/src/scss/base/form/_index.scss +227 -0
  170. package/src/scss/base/form/_variables.scss +245 -0
  171. package/src/scss/base/link/_defaults.scss +35 -0
  172. package/src/scss/base/link/_index.scss +245 -0
  173. package/src/scss/base/link/_variables.scss +370 -0
  174. package/src/scss/base/table/_defaults.scss +68 -0
  175. package/src/scss/base/table/_index.scss +314 -0
  176. package/src/scss/base/table/_variables.scss +309 -0
  177. package/src/scss/component/_index.scss +10 -0
  178. package/src/scss/component/accordion/_defaults.scss +40 -0
  179. package/src/scss/component/accordion/_index.scss +198 -0
  180. package/src/scss/component/accordion/_variables.scss +356 -0
  181. package/src/scss/component/alert/_defaults.scss +49 -0
  182. package/src/scss/component/alert/_index.scss +119 -0
  183. package/src/scss/component/alert/_variables.scss +200 -0
  184. package/src/scss/component/card/_defaults.scss +32 -0
  185. package/src/scss/component/card/_index.scss +212 -0
  186. package/src/scss/component/card/_variables.scss +216 -0
  187. package/src/scss/component/carousel/_defaults.scss +43 -0
  188. package/src/scss/component/carousel/_index.scss +192 -0
  189. package/src/scss/component/carousel/_variables.scss +104 -0
  190. package/src/scss/component/input-group/_defaults.scss +30 -0
  191. package/src/scss/component/input-group/_index.scss +47 -0
  192. package/src/scss/component/input-group/_variables.scss +66 -0
  193. package/src/scss/component/list/_defaults.scss +15 -0
  194. package/src/scss/component/list/_index.scss +52 -0
  195. package/src/scss/component/list/_variables.scss +236 -0
  196. package/src/scss/component/menu/_defaults.scss +57 -0
  197. package/src/scss/component/menu/_index.scss +308 -0
  198. package/src/scss/component/menu/_variables.scss +642 -0
  199. package/src/scss/component/navigation/_defaults.scss +23 -0
  200. package/src/scss/component/navigation/_index.scss +190 -0
  201. package/src/scss/component/navigation/_variables.scss +290 -0
  202. package/src/scss/functions/_container.scss +38 -0
  203. package/src/scss/functions/_important.scss +36 -0
  204. package/src/scss/functions/_screen.scss +38 -0
  205. package/src/scss/functions/_theme.scss +39 -0
  206. package/src/scss/functions/_utility.scss +28 -0
  207. package/src/scss/layout/_index.scss +5 -0
  208. package/src/scss/layout/columns/_defaults.scss +24 -0
  209. package/src/scss/layout/columns/_index.scss +137 -0
  210. package/src/scss/layout/columns/_variables.scss +55 -0
  211. package/src/scss/layout/container/_defaults.scss +35 -0
  212. package/src/scss/layout/container/_index.scss +628 -0
  213. package/src/scss/layout/container/_variables.scss +114 -0
  214. package/src/scss/layout/flex-columns/_defaults.scss +28 -0
  215. package/src/scss/layout/flex-columns/_index.scss +184 -0
  216. package/src/scss/layout/flex-columns/_variables.scss +30 -0
  217. package/src/scss/mixins/_animation.scss +15 -0
  218. package/src/scss/mixins/_container.scss +80 -0
  219. package/src/scss/mixins/_layer.scss +16 -0
  220. package/src/scss/mixins/_screen.scss +77 -0
  221. package/src/scss/mixins/_state.scss +18 -0
  222. package/src/scss/mixins/_theme.scss +15 -0
  223. package/src/scss/mixins/_utility.scss +185 -0
  224. package/src/scss/mixins/_visually-hidden.scss +30 -0
  225. package/src/scss/state/_index.scss +3 -0
  226. package/src/scss/state/focus/_defaults.scss +9 -0
  227. package/src/scss/state/focus/_index.scss +42 -0
  228. package/src/scss/state/focus/_mixins.scss +13 -0
  229. package/src/scss/state/focus/_variables.scss +50 -0
  230. package/src/scss/theme/_index.scss +4 -0
  231. package/src/scss/theme/color/_defaults.scss +143 -0
  232. package/src/scss/theme/color/_index.scss +42 -0
  233. package/src/scss/theme/color/_variables.scss +133 -0
  234. package/src/scss/theme/typography/_defaults.scss +54 -0
  235. package/src/scss/theme/typography/_index.scss +120 -0
  236. package/src/scss/theme/typography/_variables.scss +248 -0
  237. package/src/scss/utilities/_index.scss +23 -0
  238. package/src/scss/utilities/_template/_defaults.scss +41 -0
  239. package/src/scss/utilities/_template/_index.scss +171 -0
  240. package/src/scss/utilities/_template/_variables.scss +6 -0
  241. package/src/scss/utilities/alignment/_defaults.scss +76 -0
  242. package/src/scss/utilities/alignment/_index.scss +336 -0
  243. package/src/scss/utilities/alignment/_variables.scss +6 -0
  244. package/src/scss/utilities/background/_defaults.scss +122 -0
  245. package/src/scss/utilities/background/_index.scss +634 -0
  246. package/src/scss/utilities/background/_variables.scss +6 -0
  247. package/src/scss/utilities/border/_defaults.scss +73 -0
  248. package/src/scss/utilities/border/_index.scss +558 -0
  249. package/src/scss/utilities/border/_variables.scss +6 -0
  250. package/src/scss/utilities/color/_defaults.scss +49 -0
  251. package/src/scss/utilities/color/_index.scss +469 -0
  252. package/src/scss/utilities/color/_variables.scss +6 -0
  253. package/src/scss/utilities/container/_defaults.scss +40 -0
  254. package/src/scss/utilities/container/_index.scss +174 -0
  255. package/src/scss/utilities/container/_variables.scss +6 -0
  256. package/src/scss/utilities/display/_defaults.scss +47 -0
  257. package/src/scss/utilities/display/_index.scss +184 -0
  258. package/src/scss/utilities/display/_variables.scss +6 -0
  259. package/src/scss/utilities/flex/_defaults.scss +99 -0
  260. package/src/scss/utilities/flex/_index.scss +486 -0
  261. package/src/scss/utilities/flex/_variables.scss +6 -0
  262. package/src/scss/utilities/gradient/_defaults.scss +70 -0
  263. package/src/scss/utilities/gradient/_index.scss +696 -0
  264. package/src/scss/utilities/gradient/_variables.scss +29 -0
  265. package/src/scss/utilities/height/_defaults.scss +54 -0
  266. package/src/scss/utilities/height/_index.scss +525 -0
  267. package/src/scss/utilities/height/_variables.scss +6 -0
  268. package/src/scss/utilities/inset/_defaults.scss +55 -0
  269. package/src/scss/utilities/inset/_index.scss +258 -0
  270. package/src/scss/utilities/inset/_variables.scss +6 -0
  271. package/src/scss/utilities/justification/_defaults.scss +73 -0
  272. package/src/scss/utilities/justification/_index.scss +333 -0
  273. package/src/scss/utilities/justification/_variables.scss +6 -0
  274. package/src/scss/utilities/list/_defaults.scss +53 -0
  275. package/src/scss/utilities/list/_index.scss +253 -0
  276. package/src/scss/utilities/list/_variables.scss +6 -0
  277. package/src/scss/utilities/order/_defaults.scss +36 -0
  278. package/src/scss/utilities/order/_index.scss +246 -0
  279. package/src/scss/utilities/order/_variables.scss +6 -0
  280. package/src/scss/utilities/position/_defaults.scss +41 -0
  281. package/src/scss/utilities/position/_index.scss +178 -0
  282. package/src/scss/utilities/position/_variables.scss +6 -0
  283. package/src/scss/utilities/ratio/_defaults.scss +42 -0
  284. package/src/scss/utilities/ratio/_index.scss +188 -0
  285. package/src/scss/utilities/ratio/_variables.scss +9 -0
  286. package/src/scss/utilities/spacing/_defaults.scss +64 -0
  287. package/src/scss/utilities/spacing/_index.scss +970 -0
  288. package/src/scss/utilities/spacing/_variables.scss +6 -0
  289. package/src/scss/utilities/typography/_defaults.scss +58 -0
  290. package/src/scss/utilities/typography/_index.scss +1089 -0
  291. package/src/scss/utilities/typography/_variables.scss +6 -0
  292. package/src/scss/utilities/visibility/_defaults.scss +39 -0
  293. package/src/scss/utilities/visibility/_index.scss +173 -0
  294. package/src/scss/utilities/visibility/_variables.scss +6 -0
  295. package/src/scss/utilities/visually-hidden/_defaults.scss +29 -0
  296. package/src/scss/utilities/visually-hidden/_index.scss +189 -0
  297. package/src/scss/utilities/visually-hidden/_variables.scss +6 -0
  298. package/src/scss/utilities/width/_defaults.scss +54 -0
  299. package/src/scss/utilities/width/_index.scss +525 -0
  300. package/src/scss/utilities/width/_variables.scss +6 -0
  301. package/src/scss/utilities/z-index/_defaults.scss +40 -0
  302. package/src/scss/utilities/z-index/_index.scss +173 -0
  303. package/src/scss/utilities/z-index/_variables.scss +6 -0
@@ -0,0 +1,198 @@
1
+ // @graupl/core accordion component styles.
2
+
3
+ @use "defaults";
4
+ @use "variables" as *;
5
+ @use "../../base/button/mixins" as button-mixins;
6
+ @use "../../defaults" as root-defaults;
7
+ @use "../../mixins/layer" as *;
8
+ @use "../../state/focus/variables" as focus;
9
+ @use "sass:map";
10
+
11
+ @include layer(base) {
12
+ #{defaults.$accordion-item-toggle-selector} {
13
+ @include button-mixins.apply-base;
14
+ }
15
+ }
16
+
17
+ @include layer(component) {
18
+ #{defaults.$accordion-selector} {
19
+ display: flex;
20
+ flex-flow: column nowrap;
21
+ padding: $accordion-padding;
22
+ gap: $accordion-gap;
23
+
24
+ > #{defaults.$accordion-item-selector} {
25
+ &:not(:first-child) {
26
+ /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
27
+ margin-top: calc(
28
+ -1 *
29
+ min(
30
+ #{$accordion-item-border-top-width},
31
+ #{$accordion-item-border-bottom-width}
32
+ )
33
+ );
34
+ /* stylelint-enable scss/operator-no-newline-after */
35
+ }
36
+ }
37
+ }
38
+
39
+ #{defaults.$accordion-item-selector} {
40
+ overflow: hidden;
41
+ transition: $accordion-transition;
42
+ border-width: $accordion-item-border-width;
43
+ border-style: $accordion-item-border-style;
44
+ border-radius: $accordion-item-border-radius;
45
+ isolation: isolate;
46
+
47
+ &#{defaults.$accordion-item-close-selector}
48
+ #{defaults.$accordion-item-content-selector} {
49
+ display: none;
50
+ }
51
+
52
+ &#{defaults.$accordion-item-open-selector}
53
+ #{defaults.$accordion-item-content-selector} {
54
+ transform: $accordion-item-content-open-transform;
55
+ opacity: 1;
56
+ }
57
+
58
+ &#{defaults.$accordion-item-transition-selector}
59
+ #{defaults.$accordion-item-content-selector} {
60
+ display: flex;
61
+ }
62
+ }
63
+
64
+ #{defaults.$accordion-item-toggle-selector} {
65
+ z-index: 2;
66
+ padding: $accordion-item-toggle-padding;
67
+ transform: $accordion-item-toggle-transform;
68
+ transition: $accordion-item-toggle-transition;
69
+
70
+ @each $selector in map.get(root-defaults.$state-selectors, visited) {
71
+ &#{$selector} {
72
+ --#{root-defaults.$prefix}accordion-item-toggle-transform: #{$accordion-item-toggle-visited-transform};
73
+ }
74
+ }
75
+
76
+ @each $selector in map.get(root-defaults.$state-selectors, focus) {
77
+ &#{$selector} {
78
+ --#{root-defaults.$prefix}accordion-item-toggle-transform: #{$accordion-item-toggle-focus-transform};
79
+ }
80
+ }
81
+
82
+ @each $selector in map.get(root-defaults.$state-selectors, hover) {
83
+ &#{$selector} {
84
+ --#{root-defaults.$prefix}accordion-item-toggle-transform: #{$accordion-item-toggle-hover-transform};
85
+ }
86
+ }
87
+
88
+ @each $selector in map.get(root-defaults.$state-selectors, active) {
89
+ &#{$selector} {
90
+ --#{root-defaults.$prefix}accordion-item-toggle-transform: #{$accordion-item-toggle-active-transform};
91
+ }
92
+ }
93
+
94
+ @each $selector in map.get(root-defaults.$state-selectors, disabled) {
95
+ &#{$selector} {
96
+ --#{root-defaults.$prefix}accordion-item-toggle-transform: #{$accordion-item-toggle-disabled-transform};
97
+ }
98
+ }
99
+
100
+ &#{defaults.$accordion-item-toggle-pseudo-selector} {
101
+ content: defaults.$accordion-item-toggle-pseudo-content;
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ margin-left: auto;
106
+ transform: $accordion-item-toggle-pseudo-transform;
107
+ transition: $accordion-item-toggle-pseudo-transition;
108
+ }
109
+
110
+ &[aria-expanded="true"] {
111
+ &::after {
112
+ transform: $accordion-item-toggle-pseudo-open-transform;
113
+ }
114
+ }
115
+ }
116
+
117
+ #{defaults.$accordion-item-header-selector} {
118
+ margin: $accordion-item-header-margin;
119
+ padding: $accordion-item-header-padding;
120
+ }
121
+
122
+ #{defaults.$accordion-item-title-selector} {
123
+ margin: $accordion-item-title-margin;
124
+ padding: $accordion-item-title-padding;
125
+
126
+ &,
127
+ #{defaults.$accordion-item-toggle-selector} {
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: flex-start;
131
+ width: 100%;
132
+ }
133
+ }
134
+
135
+ #{defaults.$accordion-item-content-selector} {
136
+ display: flex;
137
+ flex-flow: column nowrap;
138
+ padding: $accordion-item-content-padding;
139
+ transform: $accordion-item-content-transform;
140
+ transition: $accordion-item-content-transition;
141
+ opacity: 0;
142
+ gap: $accordion-item-content-gap;
143
+ }
144
+
145
+ #{defaults.$accordion-item-body-selector} {
146
+ padding: $accordion-item-body-padding;
147
+ }
148
+
149
+ #{defaults.$accordion-item-footer-selector} {
150
+ padding: $accordion-item-footer-padding;
151
+ }
152
+ }
153
+
154
+ @include layer(state) {
155
+ #{defaults.$accordion-item-selector} {
156
+ #{defaults.$accordion-item-toggle-selector} {
157
+ /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
158
+ --#{root-defaults.$prefix}focus-outline-offset: calc(
159
+ -1 *
160
+ (
161
+ min(
162
+ #{$accordion-item-border-top-width},
163
+ #{$accordion-item-border-bottom-width},
164
+ #{$accordion-item-border-left-width},
165
+ #{$accordion-item-border-right-width}
166
+ ) +
167
+ #{focus.$focus-width}
168
+ )
169
+ );
170
+ /* stylelint-enable scss/operator-no-newline-after */
171
+ }
172
+ }
173
+ }
174
+
175
+ @include layer(theme) {
176
+ #{defaults.$accordion-selector} {
177
+ background: $accordion-background;
178
+ color: $accordion-color;
179
+ }
180
+
181
+ #{defaults.$accordion-item-selector} {
182
+ border-color: $accordion-item-border-color;
183
+ }
184
+
185
+ #{defaults.$accordion-item-toggle-selector} {
186
+ @include button-mixins.apply-theme;
187
+ }
188
+
189
+ #{defaults.$accordion-item-title-selector} {
190
+ &,
191
+ #{defaults.$accordion-item-toggle-selector} {
192
+ font-family: $accordion-title-font-family;
193
+ font-size: $accordion-title-font-size;
194
+ font-weight: $accordion-title-font-weight;
195
+ line-height: $accordion-title-line-height;
196
+ }
197
+ }
198
+ }
@@ -0,0 +1,356 @@
1
+ // @graupl/core accordion component 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
+ @use "../../variables" as root-variables;
9
+ @use "../../theme/color/variables" as color;
10
+ @use "../../theme/typography/variables" as typography;
11
+ @use "../../functions/theme";
12
+ @use "sass:map";
13
+ @use "../../base/button/variables" as button;
14
+
15
+ // Accordion properties.
16
+ $accordion-padding-x: var(
17
+ --#{root-defaults.$prefix}accordion-padding-x,
18
+ #{map.get(root-variables.$spacers, 0)}
19
+ );
20
+ $accordion-padding-y: var(
21
+ --#{root-defaults.$prefix}accordion-padding-y,
22
+ #{map.get(root-variables.$spacers, 0)}
23
+ );
24
+ $accordion-padding: var(
25
+ --#{root-defaults.$prefix}accordion-padding,
26
+ #{$accordion-padding-y} #{$accordion-padding-x}
27
+ );
28
+
29
+ // Accordion gap properties.
30
+ $accordion-column-gap: var(
31
+ --#{root-defaults.$prefix}accordion-column-gap,
32
+ #{map.get(root-variables.$spacers, 0)}
33
+ );
34
+ $accordion-row-gap: var(
35
+ --#{root-defaults.$prefix}accordion-row-gap,
36
+ #{map.get(root-variables.$spacers, 0)}
37
+ );
38
+ $accordion-gap: var(
39
+ --#{root-defaults.$prefix}accordion-gap,
40
+ #{$accordion-column-gap} #{$accordion-row-gap}
41
+ );
42
+
43
+ // Accordion color properties.
44
+ $accordion-color: var(
45
+ --#{root-defaults.$prefix}accordion-color,
46
+ #{color.$color}
47
+ );
48
+ $accordion-background: var(
49
+ --#{root-defaults.$prefix}accordion-background,
50
+ #{color.$background}
51
+ );
52
+
53
+ // Accordion item border properties.
54
+ $accordion-item-border-color: var(
55
+ --#{root-defaults.$prefix}accordion-item-border-color,
56
+ #{$accordion-color}
57
+ );
58
+ $accordion-item-border-top-left-radius: var(
59
+ --#{root-defaults.$prefix}accordion-item-border-top-left-radius,
60
+ #{root-variables.$border-top-left-radius}
61
+ );
62
+ $accordion-item-border-top-right-radius: var(
63
+ --#{root-defaults.$prefix}accordion-item-border-top-right-radius,
64
+ #{root-variables.$border-top-right-radius}
65
+ );
66
+ $accordion-item-border-bottom-left-radius: var(
67
+ --#{root-defaults.$prefix}accordion-item-border-bottom-left-radius,
68
+ #{root-variables.$border-bottom-left-radius}
69
+ );
70
+ $accordion-item-border-bottom-right-radius: var(
71
+ --#{root-defaults.$prefix}accordion-item-border-bottom-right-radius,
72
+ #{root-variables.$border-bottom-right-radius}
73
+ );
74
+ $accordion-item-border-radius: var(
75
+ --#{root-defaults.$prefix}accordion-item-border-radius,
76
+ #{$accordion-item-border-top-left-radius}
77
+ #{$accordion-item-border-top-right-radius}
78
+ #{$accordion-item-border-bottom-right-radius}
79
+ #{$accordion-item-border-bottom-left-radius}
80
+ );
81
+ $accordion-item-border-top-width: var(
82
+ --#{root-defaults.$prefix}accordion-item-border-top-width,
83
+ #{root-variables.$border-top-width}
84
+ );
85
+ $accordion-item-border-right-width: var(
86
+ --#{root-defaults.$prefix}accordion-item-border-right-width,
87
+ #{root-variables.$border-right-width}
88
+ );
89
+ $accordion-item-border-bottom-width: var(
90
+ --#{root-defaults.$prefix}accordion-item-border-bottom-width,
91
+ #{root-variables.$border-bottom-width}
92
+ );
93
+ $accordion-item-border-left-width: var(
94
+ --#{root-defaults.$prefix}accordion-item-border-left-width,
95
+ #{root-variables.$border-left-width}
96
+ );
97
+ $accordion-item-border-width: var(
98
+ --#{root-defaults.$prefix}accordion-item-border-width,
99
+ #{$accordion-item-border-top-width} #{$accordion-item-border-right-width}
100
+ #{$accordion-item-border-bottom-width} #{$accordion-item-border-left-width}
101
+ );
102
+ $accordion-item-border-top-style: var(
103
+ --#{root-defaults.$prefix}accordion-item-border-top-style,
104
+ #{root-variables.$border-top-style}
105
+ );
106
+ $accordion-item-border-right-style: var(
107
+ --#{root-defaults.$prefix}accordion-item-border-right-style,
108
+ #{root-variables.$border-right-style}
109
+ );
110
+ $accordion-item-border-bottom-style: var(
111
+ --#{root-defaults.$prefix}accordion-item-border-bottom-style,
112
+ #{root-variables.$border-bottom-style}
113
+ );
114
+ $accordion-item-border-left-style: var(
115
+ --#{root-defaults.$prefix}accordion-item-border-left-style,
116
+ #{root-variables.$border-left-style}
117
+ );
118
+ $accordion-item-border-style: var(
119
+ --#{root-defaults.$prefix}accordion-item-border-style,
120
+ #{$accordion-item-border-top-style} #{$accordion-item-border-right-style}
121
+ #{$accordion-item-border-bottom-style} #{$accordion-item-border-left-style}
122
+ );
123
+
124
+ // Accordion item properties.
125
+ $accordion-item-toggle-padding: var(
126
+ --#{root-defaults.$prefix}accordion-item-toggle-padding,
127
+ #{button.$button-padding}
128
+ );
129
+
130
+ // Transform properties.
131
+ $accordion-item-toggle-transform: var(
132
+ --#{root-defaults.$prefix}accordion-item-toggle-transform,
133
+ #{defaults.$accordion-item-toggle-transform}
134
+ );
135
+ $accordion-item-toggle-visited-transform: var(
136
+ --#{root-defaults.$prefix}accordion-item-toggle-visited-transform,
137
+ #{defaults.$accordion-item-toggle-visited-transform}
138
+ );
139
+ $accordion-item-toggle-focus-transform: var(
140
+ --#{root-defaults.$prefix}accordion-item-toggle-focus-transform,
141
+ #{defaults.$accordion-item-toggle-focus-transform}
142
+ );
143
+ $accordion-item-toggle-hover-transform: var(
144
+ --#{root-defaults.$prefix}accordion-item-toggle-hover-transform,
145
+ #{defaults.$accordion-item-toggle-hover-transform}
146
+ );
147
+ $accordion-item-toggle-active-transform: var(
148
+ --#{root-defaults.$prefix}accordion-item-toggle-active-transform,
149
+ #{defaults.$accordion-item-toggle-active-transform}
150
+ );
151
+ $accordion-item-toggle-disabled-transform: var(
152
+ --#{root-defaults.$prefix}accordion-item-toggle-disabled-transform,
153
+ #{defaults.$accordion-item-toggle-disabled-transform}
154
+ );
155
+ $accordion-item-toggle-transition: var(
156
+ --#{root-defaults.$prefix}accordion-item-toggle-transition,
157
+ background #{map.get(root-variables.$transition-durations, fast)}
158
+ #{root-variables.$transition-timing-function},
159
+ color #{map.get(root-variables.$transition-durations, fast)}
160
+ #{root-variables.$transition-timing-function},
161
+ transform #{map.get(root-variables.$transition-durations, fast)}
162
+ #{root-variables.$transition-timing-function}
163
+ );
164
+ $accordion-item-toggle-transition-reduced-motion: var(
165
+ --#{root-defaults.$prefix}accordion-item-toggle-transition-reduced-motion,
166
+ background #{map.get(root-variables.$transition-durations, none)}
167
+ #{root-variables.$transition-timing-function},
168
+ color #{map.get(root-variables.$transition-durations, none)}
169
+ #{root-variables.$transition-timing-function}
170
+ );
171
+
172
+ // Accordion item header properties.
173
+ $accordion-item-header-padding-x: var(
174
+ --#{root-defaults.$prefix}accordion-item-header-padding-x,
175
+ #{map.get(root-variables.$spacers, 0)}
176
+ );
177
+ $accordion-item-header-padding-y: var(
178
+ --#{root-defaults.$prefix}accordion-item-header-padding-y,
179
+ #{map.get(root-variables.$spacers, 0)}
180
+ );
181
+ $accordion-item-header-padding: var(
182
+ --#{root-defaults.$prefix}accordion-item-header-padding,
183
+ #{$accordion-item-header-padding-y} #{$accordion-item-header-padding-x}
184
+ );
185
+ /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
186
+ $accordion-item-header-margin: var(
187
+ --#{root-defaults.$prefix}accordion-item-header-margin,
188
+ calc(
189
+ -1 *
190
+ min(
191
+ #{$accordion-item-border-top-width},
192
+ #{$accordion-item-border-bottom-width},
193
+ #{$accordion-item-border-left-width},
194
+ #{$accordion-item-border-right-width}
195
+ )
196
+ )
197
+ );
198
+ /* stylelint-enable scss/operator-no-newline-after */
199
+
200
+ // Accordion item title properties.
201
+ $accordion-item-title-padding-x: var(
202
+ --#{root-defaults.$prefix}accordion-item-title-padding-x,
203
+ #{map.get(root-variables.$spacers, 0)}
204
+ );
205
+ $accordion-item-title-padding-y: var(
206
+ --#{root-defaults.$prefix}accordion-item-title-padding-y,
207
+ #{map.get(root-variables.$spacers, 0)}
208
+ );
209
+ $accordion-item-title-padding: var(
210
+ --#{root-defaults.$prefix}accordion-item-title-padding,
211
+ #{$accordion-item-title-padding-y} #{$accordion-item-title-padding-x}
212
+ );
213
+ $accordion-item-title-margin-x: var(
214
+ --#{root-defaults.$prefix}accordion-item-title-margin-x,
215
+ #{map.get(root-variables.$spacers, 0)}
216
+ );
217
+ $accordion-item-title-margin-y: var(
218
+ --#{root-defaults.$prefix}accordion-item-title-margin-y,
219
+ #{map.get(root-variables.$spacers, 0)}
220
+ );
221
+ $accordion-item-title-margin: var(
222
+ --#{root-defaults.$prefix}accordion-item-title-margin,
223
+ #{$accordion-item-title-margin-y} #{$accordion-item-title-margin-x}
224
+ );
225
+ $accordion-title-color: var(
226
+ --#{root-defaults.$prefix}accordion-title-color,
227
+ #{$accordion-color}
228
+ );
229
+ $accordion-title-font-size: var(
230
+ --#{root-defaults.$prefix}accordion-title-font-size,
231
+ #{typography.$h5-font-size}
232
+ );
233
+ $accordion-title-font-weight: var(
234
+ --#{root-defaults.$prefix}accordion-title-font-weight,
235
+ #{typography.$h5-font-weight}
236
+ );
237
+ $accordion-title-font-family: var(
238
+ --#{root-defaults.$prefix}accordion-title-font-family,
239
+ #{typography.$h5-font-family}
240
+ );
241
+ $accordion-title-line-height: var(
242
+ --#{root-defaults.$prefix}accordion-title-line-height,
243
+ #{typography.$h5-line-height}
244
+ );
245
+
246
+ // Accordion item content properties.
247
+ $accordion-item-content-padding-x: var(
248
+ --#{root-defaults.$prefix}accordion-item-content-padding-x,
249
+ #{map.get(root-variables.$spacers, 5)}
250
+ );
251
+ $accordion-item-content-padding-y: var(
252
+ --#{root-defaults.$prefix}accordion-item-content-padding-y,
253
+ #{map.get(root-variables.$spacers, 5)}
254
+ );
255
+ $accordion-item-content-padding: var(
256
+ --#{root-defaults.$prefix}accordion-item-content-padding,
257
+ #{$accordion-item-content-padding-y} #{$accordion-item-content-padding-x}
258
+ );
259
+ $accordion-item-content-column-gap: var(
260
+ --#{root-defaults.$prefix}accordion-item-content-column-gap,
261
+ #{map.get(root-variables.$spacers, 3)}
262
+ );
263
+ $accordion-item-content-row-gap: var(
264
+ --#{root-defaults.$prefix}accordion-item-content-row-gap,
265
+ #{map.get(root-variables.$spacers, 0)}
266
+ );
267
+ $accordion-item-content-gap: var(
268
+ --#{root-defaults.$prefix}accordion-item-content-gap,
269
+ #{$accordion-item-content-column-gap} #{$accordion-item-content-row-gap}
270
+ );
271
+
272
+ // Accordion item body properties.
273
+ $accordion-item-body-padding-x: var(
274
+ --#{root-defaults.$prefix}accordion-item-body-padding-x,
275
+ #{map.get(root-variables.$spacers, 0)}
276
+ );
277
+ $accordion-item-body-padding-y: var(
278
+ --#{root-defaults.$prefix}accordion-item-body-padding-y,
279
+ #{map.get(root-variables.$spacers, 0)}
280
+ );
281
+ $accordion-item-body-padding: var(
282
+ --#{root-defaults.$prefix}accordion-item-body-padding,
283
+ #{$accordion-item-body-padding-y} #{$accordion-item-body-padding-x}
284
+ );
285
+
286
+ // Accordion item footer properties.
287
+ $accordion-item-footer-padding-x: var(
288
+ --#{root-defaults.$prefix}accordion-item-footer-padding-x,
289
+ #{map.get(root-variables.$spacers, 0)}
290
+ );
291
+ $accordion-item-footer-padding-y: var(
292
+ --#{root-defaults.$prefix}accordion-item-footer-padding-y,
293
+ #{map.get(root-variables.$spacers, 0)}
294
+ );
295
+ $accordion-item-footer-padding: var(
296
+ --#{root-defaults.$prefix}accordion-item-footer-padding,
297
+ #{$accordion-item-footer-padding-y} #{$accordion-item-footer-padding-x}
298
+ );
299
+
300
+ // Accordion item transition properties.
301
+ $accordion-transition-duration: var(
302
+ --#{root-defaults.$prefix}accordion-transition-duration,
303
+ #{map.get(root-variables.$transition-durations, slow)}
304
+ );
305
+ $accordion-item-toggle-transition-duration: var(
306
+ --#{root-defaults.$prefix}accordion-item-toggle-transition-duration,
307
+ #{$accordion-transition-duration}
308
+ );
309
+ $accordion-transition: var(
310
+ --#{root-defaults.$prefix}accordion-transition,
311
+ height #{map.get(root-variables.$transition-durations, slow)}
312
+ #{root-variables.$transition-timing-function}
313
+ );
314
+ $accordion-transition-reduced-motion: var(
315
+ --#{root-defaults.$prefix}accordion-transition-reduced-motion,
316
+ none
317
+ );
318
+ $accordion-item-toggle-pseudo-transition: var(
319
+ --#{root-defaults.$prefix}accordion-transition,
320
+ transform #{map.get(root-variables.$transition-durations, slow)}
321
+ #{root-variables.$transition-timing-function}
322
+ );
323
+ $accordion-item-toggle-pseudo-transition-reduced-motion: var(
324
+ --#{root-defaults.$prefix}accordion-transition-reduced-motion,
325
+ none
326
+ );
327
+ $accordion-item-content-transition: var(
328
+ --#{root-defaults.$prefix}accordion-transition,
329
+ opacity #{map.get(root-variables.$transition-durations, slow)}
330
+ #{root-variables.$transition-timing-function} transform
331
+ #{map.get(root-variables.$transition-durations, slow)}
332
+ #{root-variables.$transition-timing-function}
333
+ );
334
+ $accordion-item-content-transition-reduced-motion: var(
335
+ --#{root-defaults.$prefix}accordion-transition-reduced-motion,
336
+ opacity #{map.get(root-variables.$transition-durations, slow)}
337
+ #{root-variables.$transition-timing-function}
338
+ );
339
+
340
+ // Accordion item transform properties.
341
+ $accordion-item-content-transform: var(
342
+ --#{root-defaults.$prefix}accordion-item-content-transform,
343
+ #{defaults.$accordion-item-content-transform}
344
+ );
345
+ $accordion-item-content-open-transform: var(
346
+ --#{root-defaults.$prefix}accordion-item-content-open-transform,
347
+ #{defaults.$accordion-item-content-open-transform}
348
+ );
349
+ $accordion-item-toggle-pseudo-transform: var(
350
+ --#{root-defaults.$prefix}accordion-item-toggle-pseudo-transform,
351
+ #{defaults.$accordion-item-toggle-pseudo-transform}
352
+ );
353
+ $accordion-item-toggle-pseudo-open-transform: var(
354
+ --#{root-defaults.$prefix}accordion-item-toggle-pseudo-open-transform,
355
+ #{defaults.$accordion-item-toggle-pseudo-open-transform}
356
+ );
@@ -0,0 +1,49 @@
1
+ // @graupl/core alert 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 "sass:map";
10
+
11
+ // Alert selectors.
12
+ $alert-selector: ".alert" !default;
13
+ $alert-theme-selector-prefix: "." !default;
14
+ $alert-body-selector: ".alert-body" !default;
15
+ $alert-header-selector: ".alert-header" !default;
16
+ $alert-footer-selector: ".alert-footer" !default;
17
+ $alert-title-selector: ".alert-title" !default;
18
+ $alert-dismisser-selector: ".alert-dismisser" !default;
19
+ $alert-hidden-selector: ".hide" !default;
20
+ $alert-shown-selector: ".show" !default;
21
+ $alert-transition-selector: ".transitioning" !default;
22
+
23
+ // Alert state theme defaults.
24
+ // This map is used to define the default colour shades for the
25
+ // themed alert components.
26
+ //
27
+ // e.g.
28
+ // Primary alerts will use primary--900 as the text colour, primary--100 as the background
29
+ // and primary--900 as the border colour.
30
+ //
31
+ // Secondary/tertiary alerts will use the same shade for their respective colours.
32
+ $base-alert-state-theme-map: (
33
+ color: 900,
34
+ background: 200,
35
+ border-color: 700,
36
+ title-color: 800,
37
+ button-border-color: transparent,
38
+ link-color: 800,
39
+ link-visited-color: 800,
40
+ link-focus-color: 800,
41
+ link-hover-color: 900,
42
+ link-active-color: 900,
43
+ link-disabled-color: 400,
44
+ );
45
+ $custom-alert-state-theme-map: () !default;
46
+ $alert-state-theme-map: map.merge(
47
+ $base-alert-state-theme-map,
48
+ $custom-alert-state-theme-map
49
+ );