@stamcat/craftsman 0.0.27-alpha.2 → 0.0.27-alpha.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 (221) hide show
  1. package/AGENTS.md +19 -344
  2. package/Components.esm.js +72 -11
  3. package/README.md +5 -0
  4. package/Styles.esm.js +7 -7
  5. package/Utilities.esm.js +2 -2
  6. package/_virtual/_rolldown/runtime.esm.js +18 -6
  7. package/package.json +75 -6
  8. package/src/components/Button/AGENTS.md +65 -0
  9. package/src/components/{Button.d.ts → Button/Button.d.ts} +1 -1
  10. package/src/components/Button/Button.esm.js +20 -0
  11. package/src/components/Carousel/AGENTS.md +41 -0
  12. package/src/components/Carousel/Carousel.css +1 -0
  13. package/src/components/Carousel/Carousel.d.ts +11 -0
  14. package/src/components/Carousel/Carousel.scss +34 -0
  15. package/src/components/Carousel/Carousel2.esm.js +75 -0
  16. package/src/components/Checkbox/AGENTS.md +34 -0
  17. package/src/components/Checkbox/Checkbox.d.ts +8 -0
  18. package/src/components/Checkbox/Checkbox.esm.js +18 -0
  19. package/src/components/DatePicker/AGENTS.md +36 -0
  20. package/src/components/DatePicker/DatePicker.css +1 -0
  21. package/src/components/DatePicker/DatePicker.d.ts +8 -0
  22. package/src/components/DatePicker/DatePicker.scss +61 -0
  23. package/src/components/DatePicker/DatePicker2.esm.js +29 -0
  24. package/src/components/DatePicker/ReactCalendar.css +1 -0
  25. package/src/components/DatePicker/ReactCalendar.scss +158 -0
  26. package/src/components/DatePicker/_DatePicker.scss +73 -0
  27. package/src/components/DateRangePicker/AGENTS.md +38 -0
  28. package/src/components/DateRangePicker/DateRangePicker.css +1 -0
  29. package/src/components/DateRangePicker/DateRangePicker.d.ts +8 -0
  30. package/src/components/DateRangePicker/DateRangePicker.scss +62 -0
  31. package/src/components/DateRangePicker/DateRangePicker2.esm.js +29 -0
  32. package/src/components/DateTimePicker/AGENTS.md +41 -0
  33. package/src/components/DateTimePicker/DateTimePicker.css +1 -0
  34. package/src/components/DateTimePicker/DateTimePicker.d.ts +13 -0
  35. package/src/components/DateTimePicker/DateTimePicker.scss +86 -0
  36. package/src/components/DateTimePicker/DateTimePicker2.esm.js +82 -0
  37. package/src/components/Icons/IconAmazonPay.d.ts +2 -0
  38. package/src/components/Icons/IconAmazonPay.esm.js +76 -0
  39. package/src/components/Icons/IconAmex.d.ts +2 -0
  40. package/src/components/Icons/IconAmex.esm.js +87 -0
  41. package/src/components/Icons/IconApplePay.d.ts +2 -0
  42. package/src/components/Icons/IconApplePay.esm.js +26 -0
  43. package/src/components/Icons/IconDiscover.d.ts +2 -0
  44. package/src/components/Icons/IconDiscover.esm.js +129 -0
  45. package/src/components/Icons/IconGooglePay.d.ts +2 -0
  46. package/src/components/Icons/IconGooglePay.esm.js +64 -0
  47. package/src/components/Icons/IconMaestro.d.ts +2 -0
  48. package/src/components/Icons/IconMaestro.esm.js +38 -0
  49. package/src/components/Icons/IconMastercard.d.ts +2 -0
  50. package/src/components/Icons/IconMastercard.esm.js +27 -0
  51. package/src/components/Icons/IconPayPal.d.ts +2 -0
  52. package/src/components/Icons/IconPayPal.esm.js +52 -0
  53. package/src/components/Icons/IconSepa.d.ts +2 -0
  54. package/src/components/Icons/IconSepa.esm.js +272 -0
  55. package/src/components/Icons/IconShopPay.d.ts +2 -0
  56. package/src/components/Icons/IconShopPay.esm.js +35 -0
  57. package/src/components/Icons/IconSquare.d.ts +2 -0
  58. package/src/components/Icons/IconSquare.esm.js +11 -0
  59. package/src/components/Icons/IconStripe.d.ts +2 -0
  60. package/src/components/Icons/IconStripe.esm.js +57 -0
  61. package/src/components/Icons/IconUnionPay.d.ts +2 -0
  62. package/src/components/Icons/IconUnionPay.esm.js +28 -0
  63. package/src/components/Icons/IconVenmo.d.ts +2 -0
  64. package/src/components/Icons/IconVenmo.esm.js +21 -0
  65. package/src/components/Icons/IconVisa.d.ts +2 -0
  66. package/src/components/Icons/IconVisa.esm.js +14 -0
  67. package/src/components/Icons/index.d.ts +15 -0
  68. package/src/components/Icons/index.esm.js +16 -0
  69. package/src/components/Icons/types.d.ts +4 -0
  70. package/src/components/Input/AGENTS.md +30 -0
  71. package/src/components/Input/Input.css +1 -0
  72. package/src/components/Input/Input.d.ts +6 -0
  73. package/src/components/Input/Input.scss +176 -0
  74. package/src/components/Input/Input2.esm.js +42 -0
  75. package/src/components/Input/InputWrapper.d.ts +11 -0
  76. package/src/components/Input/InputWrapper.esm.js +22 -0
  77. package/src/components/InputNumber/AGENTS.md +37 -0
  78. package/src/components/InputNumber/InputNumber.css +1 -0
  79. package/src/components/InputNumber/InputNumber.d.ts +10 -0
  80. package/src/components/InputNumber/InputNumber.scss +29 -0
  81. package/src/components/InputNumber/InputNumber2.esm.js +36 -0
  82. package/src/components/InputPassword/AGENTS.md +29 -0
  83. package/src/components/{InputPassword.d.ts → InputPassword/InputPassword.d.ts} +2 -2
  84. package/src/components/InputPassword/InputPassword.esm.js +30 -0
  85. package/src/components/InputPhone/AGENTS.md +35 -0
  86. package/src/components/InputPhone/InputPhone.css +1 -0
  87. package/src/components/InputPhone/InputPhone.d.ts +7 -0
  88. package/src/components/InputPhone/InputPhone.scss +266 -0
  89. package/src/components/InputPhone/InputPhone2.esm.js +27 -0
  90. package/src/components/Loader/AGENTS.md +31 -0
  91. package/src/components/{Loader.d.ts → Loader/Loader.d.ts} +1 -2
  92. package/src/components/Loader/Loader.esm.js +19 -0
  93. package/src/components/Loader/loaders.module.css +1 -0
  94. package/src/components/Loader/loaders.module.esm.js +21 -0
  95. package/src/{styles/global/components → components/Loader}/loaders.module.scss +2 -1
  96. package/src/components/Modal/AGENTS.md +47 -0
  97. package/src/components/Modal/Modal.css +1 -0
  98. package/src/components/{Modal.d.ts → Modal/Modal.d.ts} +0 -1
  99. package/src/components/Modal/Modal.scss +150 -0
  100. package/src/components/Modal/Modal2.esm.js +53 -0
  101. package/src/components/Notice/AGENTS.md +42 -0
  102. package/src/components/Notice/Notice.css +1 -0
  103. package/src/components/Notice/Notice.d.ts +13 -0
  104. package/src/components/Notice/Notice.scss +76 -0
  105. package/src/components/Notice/Notice2.esm.js +56 -0
  106. package/src/components/Pagination/AGENTS.md +38 -0
  107. package/src/components/Pagination/Pagination.css +1 -0
  108. package/src/components/Pagination/Pagination.d.ts +10 -0
  109. package/src/components/Pagination/Pagination.scss +22 -0
  110. package/src/components/Pagination/Pagination2.esm.js +64 -0
  111. package/src/components/RadioButton/AGENTS.md +44 -0
  112. package/src/components/RadioButton/RadioButton.d.ts +9 -0
  113. package/src/components/RadioButton/RadioButton.esm.js +18 -0
  114. package/src/components/Select/AGENTS.md +36 -0
  115. package/src/components/Select/Select.d.ts +14 -0
  116. package/src/components/Select/Select.esm.js +26 -0
  117. package/src/components/SortableList/AGENTS.md +45 -0
  118. package/src/components/SortableList/ListItem.d.ts +10 -0
  119. package/src/components/SortableList/ListItem.esm.js +67 -0
  120. package/src/components/SortableList/SortableList.css +1 -0
  121. package/src/components/SortableList/SortableList.d.ts +23 -0
  122. package/src/components/SortableList/SortableList.scss +41 -0
  123. package/src/components/SortableList/SortableList2.esm.js +54 -0
  124. package/src/components/SortableList/utilities.d.ts +7 -0
  125. package/src/components/SortableList/utilities.esm.js +4 -0
  126. package/src/components/Text/AGENTS.md +32 -0
  127. package/src/components/Text/Text.css +1 -0
  128. package/src/components/Text/Text.d.ts +10 -0
  129. package/src/components/Text/Text.scss +80 -0
  130. package/src/components/Text/Text2.esm.js +23 -0
  131. package/src/components/Textarea/AGENTS.md +32 -0
  132. package/src/components/Textarea/Textarea.d.ts +3 -0
  133. package/src/components/Textarea/Textarea.esm.js +23 -0
  134. package/src/components/TimePicker/AGENTS.md +42 -0
  135. package/src/components/TimePicker/TimePicker.css +1 -0
  136. package/src/components/TimePicker/TimePicker.d.ts +13 -0
  137. package/src/components/TimePicker/TimePicker.scss +226 -0
  138. package/src/components/TimePicker/TimePicker2.esm.js +98 -0
  139. package/src/components/TimePicker/TimePickerDisplay.d.ts +16 -0
  140. package/src/components/TimePicker/TimePickerDisplay.esm.js +54 -0
  141. package/src/components/TimePicker/TimePickerWheel.d.ts +13 -0
  142. package/src/components/TimePicker/TimePickerWheel.esm.js +61 -0
  143. package/src/components/TimePicker/constants.d.ts +7 -0
  144. package/src/components/TimePicker/constants.esm.js +3 -0
  145. package/src/components/TimePicker/utilities.d.ts +15 -0
  146. package/src/components/TimePicker/utilities.esm.js +20 -0
  147. package/src/components/Toggle/AGENTS.md +33 -0
  148. package/src/components/Toggle/Toggle.css +1 -0
  149. package/src/components/Toggle/Toggle.d.ts +5 -0
  150. package/src/components/Toggle/Toggle.scss +64 -0
  151. package/src/components/Toggle/Toggle2.esm.js +19 -0
  152. package/src/components/Tooltip/AGENTS.md +41 -0
  153. package/src/components/Tooltip/Tooltip.css +1 -0
  154. package/src/components/Tooltip/Tooltip.d.ts +12 -0
  155. package/src/components/Tooltip/Tooltip.scss +29 -0
  156. package/src/components/Tooltip/Tooltip2.esm.js +65 -0
  157. package/src/components/index.d.ts +23 -7
  158. package/src/stories/assets/Stam.jpg +0 -0
  159. package/src/stories/assets/kaluah.jpg +0 -0
  160. package/src/stories/assets/stam2.jpg +0 -0
  161. package/src/stories/assets/tito.jpg +0 -0
  162. package/src/stories/documentation/AboutUs.mdx +21 -0
  163. package/src/stories/documentation/GettingStarted.mdx +117 -0
  164. package/src/stories/documentation/Introduction.mdx +29 -0
  165. package/src/stories/documentation/Themes.mdx +264 -0
  166. package/src/stories/documentation/ToDo.mdx +15 -0
  167. package/src/stories/molecules/Carousel.scss +21 -0
  168. package/src/stories/utilities/DeviceDetection.mdx +59 -0
  169. package/src/styles/_config.scss +30 -0
  170. package/src/styles/components/ThemeProvider.esm.js +1 -1
  171. package/src/styles/global/components/_button.scss +56 -52
  172. package/src/styles/global/components/_checkbox.scss +64 -59
  173. package/src/styles/global/components/_code.scss +19 -15
  174. package/src/styles/global/components/_input.scss +29 -37
  175. package/src/styles/global/components/_radioButton.scss +30 -26
  176. package/src/styles/global/components/_select.scss +56 -0
  177. package/src/styles/global/components/_typography.scss +97 -6
  178. package/src/styles/global/globalStyles.module.scss +1 -129
  179. package/src/styles/global/globalStyles.scss +87 -1
  180. package/src/styles/index.d.ts +1 -1
  181. package/src/styles/theme/components.esm.js +11 -7
  182. package/src/styles/theme/theme.esm.js +31 -41
  183. package/src/styles/theme/types.d.ts +4 -1
  184. package/src/styles/utilities/_functions.scss +117 -0
  185. package/src/styles/utilities/_mixins.scss +0 -0
  186. package/src/styles/utilities/_placeholders.scss +6 -0
  187. package/src/styles/utilities/color.d.ts +1 -1
  188. package/src/styles/utilities/constants.d.ts +1 -1
  189. package/src/styles/utilities/layout.d.ts +1 -1
  190. package/src/styles/utilities/layout.esm.js +3 -3
  191. package/src/{styles/utilities → utilities}/types.d.ts +61 -3
  192. package/src/utilities/types.esm.js +85 -0
  193. package/src/utilities/validations.d.ts +5 -0
  194. package/src/utilities/validations.esm.js +19 -1
  195. package/src/components/Button.esm.js +0 -28
  196. package/src/components/Button.module.css +0 -1
  197. package/src/components/Button.module.esm.js +0 -9
  198. package/src/components/Button.module.scss +0 -5
  199. package/src/components/Checkbox.d.ts +0 -7
  200. package/src/components/Checkbox.esm.js +0 -11
  201. package/src/components/Input.d.ts +0 -11
  202. package/src/components/Input.esm.js +0 -41
  203. package/src/components/Input.module.css +0 -1
  204. package/src/components/Input.module.esm.js +0 -11
  205. package/src/components/Input.module.scss +0 -141
  206. package/src/components/InputPassword.esm.js +0 -33
  207. package/src/components/Loader.esm.js +0 -21
  208. package/src/components/Modal.esm.js +0 -62
  209. package/src/components/Modal.module.css +0 -1
  210. package/src/components/Modal.module.esm.js +0 -13
  211. package/src/components/Modal.module.scss +0 -133
  212. package/src/components/RadioButton.d.ts +0 -7
  213. package/src/components/RadioButton.esm.js +0 -11
  214. package/src/styles/global/components/_mixins.scss +0 -2
  215. package/src/styles/global/components/button.d.ts +0 -7
  216. package/src/styles/global/components/loaders.module.css +0 -1
  217. package/src/styles/global/components/loaders.module.esm.js +0 -21
  218. package/src/styles/utilities/types.esm.js +0 -54
  219. package/src/{styles/global/components/loaders.d.ts → components/Loader/types.d.ts} +1 -1
  220. /package/src/{styles/global/components/loaders.esm.js → components/Loader/types.esm.js} +0 -0
  221. /package/src/components/{Progress.d.ts → Progress/Progress.d.ts} +0 -0
@@ -1,78 +1,83 @@
1
- %checkbox {
2
- appearance: none;
3
- box-sizing: border-box;
4
- position: relative;
5
- display: inline-block;
6
- vertical-align: baseline;
7
- top: 0.08em;
8
- margin: 0;
9
- padding: 0;
10
- height: 16px;
11
- width: 16px;
12
- border-radius: 4px;
13
- border: 1px solid var(--blue500);
14
- background: #fff;
1
+ @use "../../utilities/functions" as u;
15
2
 
16
- &::before {
17
- content: "";
18
- position: absolute;
19
- inset: 0;
3
+ @layer craftsman-base {
4
+ %checkbox {
5
+ appearance: none;
6
+ box-sizing: border-box;
7
+ position: relative;
8
+ display: inline-block;
9
+ vertical-align: baseline;
10
+ top: 0.08em;
11
+ margin: 0;
12
+ padding: 0;
13
+ --checkbox-size: 1;
14
+ height: calc(#{u.width("gutter")} * var(--checkbox-size));
15
+ width: calc(#{u.width("gutter")} * var(--checkbox-size));
20
16
  border-radius: 4px;
21
- background: transparent;
22
- transition: background-color 0.15s ease;
23
- }
24
-
25
- &::after {
26
- position: absolute;
27
- left: 50%;
28
- top: 45%;
29
- width: 5px;
30
- height: 8px;
31
- content: "";
32
- display: block;
33
- border: solid white;
34
- border-width: 0 2px 2px 0;
35
- transform: translate(-50%, -58%) rotate(45deg) scale(0);
36
- transform-origin: center;
37
- transition: transform 0.15s ease;
38
- }
39
-
40
- &:checked {
41
- border-color: var(--blue500);
17
+ border: 1px solid var(--blue500);
18
+ background: #fff;
42
19
 
43
20
  &::before {
44
- background-color: var(--blue500);
45
- border-radius: unset;
21
+ content: "";
22
+ position: absolute;
23
+ inset: 0;
24
+ border-radius: 4px;
25
+ background: transparent;
26
+ transition: background-color 0.15s ease;
46
27
  }
47
28
 
48
29
  &::after {
49
- transform: translate(-50%, -58%) rotate(45deg) scale(1);
30
+ position: absolute;
31
+ left: 50%;
32
+ top: 45%;
33
+ width: calc(5px * var(--checkbox-size));
34
+ height: calc(8px * var(--checkbox-size));
35
+ content: "";
36
+ display: block;
37
+ border: solid white;
38
+ border-width: 0 2px 2px 0;
39
+ transform: translate(-50%, -58%) rotate(45deg) scale(0);
40
+ transform-origin: center;
41
+ transition: transform 0.15s ease;
50
42
  }
51
- }
52
43
 
53
- &:disabled {
54
- border-color: var(--gray500);
44
+ &:checked {
45
+ border-color: var(--blue500);
55
46
 
56
- &::before {
57
- background-color: var(--gray200);
58
- }
47
+ &::before {
48
+ background-color: var(--blue500);
49
+ border-radius: unset;
50
+ }
59
51
 
60
- &::after {
61
- border-color: var(--gray200);
62
- transform: translate(-50%, -58%) rotate(45deg) scale(1);
52
+ &::after {
53
+ transform: translate(-50%, -58%) rotate(45deg) scale(1);
54
+ }
63
55
  }
64
- }
65
56
 
66
- &:checked:disabled {
67
- border-color: var(--gray400);
57
+ &:disabled {
58
+ border-color: var(--gray500);
68
59
 
69
- &::before {
70
- background: var(--gray400);
60
+ &::before {
61
+ background-color: var(--gray200);
62
+ }
63
+
64
+ &::after {
65
+ border-color: var(--gray200);
66
+ transform: translate(-50%, -58%) rotate(45deg) scale(1);
67
+ }
71
68
  }
72
69
 
73
- &::after {
74
- border-color: var(--white);
75
- transform: translate(-50%, -58%) rotate(45deg) scale(1);
70
+ &:checked:disabled {
71
+ border-color: var(--gray400);
72
+
73
+ &::before {
74
+ background: var(--gray400);
75
+ }
76
+
77
+ &::after {
78
+ border-color: var(--white);
79
+ transform: translate(-50%, -58%) rotate(45deg) scale(1);
80
+ }
76
81
  }
77
82
  }
78
83
  }
@@ -1,19 +1,23 @@
1
- %code {
2
- background-color: var(--gray200);
3
- color: var(--gray800);
4
- padding: calc(var(--w-gutter, 16px) * 0.125) calc(var(--w-gutter, 16px) * 0.25);
5
- margin: calc(var(--w-gutter, 16px) * 0.125);
6
- display: inline-block;
7
- font-size: var(--w-text, 14px);
1
+ @use "../../utilities/functions" as u;
8
2
 
9
- &:has(pre) {
10
- padding: var(--w-gutter, 16px);
11
- border-radius: calc(var(--w-gutter, 16px) * 0.5);
12
- background-color: var(--gray800);
13
- color: var(--gray200);
14
- }
3
+ @layer craftsman-base {
4
+ %code {
5
+ background-color: var(--gray200);
6
+ color: var(--gray800);
7
+ padding: #{u.width(gutter, 0.125)} #{u.width(gutter, 0.25)};
8
+ margin: #{u.width(gutter, 0.125)};
9
+ display: inline-block;
10
+ font-size: var(--w-text, 14px);
11
+
12
+ &:has(pre) {
13
+ padding: #{u.width(gutter)};
14
+ border-radius: #{u.width(gutter, 0.5)};
15
+ background-color: var(--gray800);
16
+ color: var(--gray200);
17
+ }
15
18
 
16
- &:has(pre) pre {
17
- margin: 0;
19
+ &:has(pre) pre {
20
+ margin: 0;
21
+ }
18
22
  }
19
23
  }
@@ -1,46 +1,38 @@
1
- %inside-input-label-base {
2
- --react-international-phone-height: 50px;
3
- --react-international-phone-border-radius: 8px;
4
- --react-international-phone-border-color: #c0c0c0ff;
5
- position: relative;
6
- }
1
+ @use "../../utilities/functions" as u;
7
2
 
8
- %inside-input-label-floating {
9
- top: -0.5rem;
10
- left: calc(var(--w-gutter, 16px) * 0.25);
11
- font-size: calc(var(--w-text, 14px) * 0.75);
12
- }
3
+ @layer craftsman-base {
13
4
 
14
- %interactive-focus-reset {
15
- &:focus {
16
- outline: 0;
17
- box-shadow: none;
5
+ %interactive-focus-reset {
6
+ &:focus {
7
+ outline: 0;
8
+ box-shadow: none;
9
+ }
18
10
  }
19
- }
20
11
 
21
- %input-base {
22
- color: var(--text);
23
- border-radius: 3px;
24
- border: 1px solid var(--gray400);
25
- padding: calc(var(--w-gutter, 16px) * 0.5);
26
- background-color: var(--white);
12
+ %input-base {
13
+ color: var(--text);
14
+ border-radius: 6px;
15
+ border: 1px solid var(--gray400);
16
+ padding: #{u.width("gutter", 0.5)};
17
+ background-color: var(--white);
27
18
 
28
- &[type="number"]::-webkit-outer-spin-button,
29
- &[type="number"]::-webkit-inner-spin-button {
30
- -webkit-appearance: none;
31
- margin: 0;
32
- }
19
+ &[type="number"]::-webkit-outer-spin-button,
20
+ &[type="number"]::-webkit-inner-spin-button {
21
+ -webkit-appearance: none;
22
+ margin: 0;
23
+ }
33
24
 
34
- &[type="number"] {
35
- -moz-appearance: textfield;
36
- appearance: textfield;
37
- }
25
+ &[type="number"] {
26
+ -moz-appearance: textfield;
27
+ appearance: textfield;
28
+ }
38
29
 
39
- &:disabled,
40
- &.disabled {
41
- border-color: var(--gray200);
42
- background-color: var(--gray100);
43
- }
30
+ &:disabled,
31
+ &.disabled {
32
+ border-color: var(--gray200);
33
+ background-color: var(--gray100);
34
+ }
44
35
 
45
- @extend %interactive-focus-reset;
36
+ @extend %interactive-focus-reset;
37
+ }
46
38
  }
@@ -1,33 +1,37 @@
1
- %radio {
2
- --radio-btn-size: 16px;
3
- transition: border-color 0.2s ease;
4
- appearance: none;
5
- cursor: pointer;
6
- position: relative;
7
- display: inline-grid;
8
- place-content: center;
9
- padding: 0;
10
- width: var(--radio-btn-size);
11
- height: var(--radio-btn-size);
12
- border: 1px solid var(--blue600);
13
- border-radius: 50%;
14
- box-sizing: border-box;
1
+ @use "../../utilities/functions" as u;
15
2
 
16
- &::before {
17
- content: "";
18
- width: calc(var(--radio-btn-size) * 0.5);
19
- height: calc(var(--radio-btn-size) * 0.5);
3
+ @layer craftsman-base {
4
+ %radio {
5
+ transition: border-color 0.2s ease;
6
+ appearance: none;
7
+ cursor: pointer;
8
+ position: relative;
9
+ display: inline-grid;
10
+ place-content: center;
11
+ padding: 0;
12
+ --radio-size: 1;
13
+ width: calc(#{u.width("gutter")} * var(--radio-size));
14
+ height: calc(#{u.width("gutter")} * var(--radio-size));
15
+ border: 1px solid var(--blue600);
20
16
  border-radius: 50%;
21
- transform: scale(0);
22
- transition: transform 0.2s ease;
23
- background-color: var(--blue600);
24
- }
25
-
26
- &:checked {
27
- border-color: var(--gray500);
17
+ box-sizing: border-box;
28
18
 
29
19
  &::before {
30
- transform: scale(1);
20
+ content: "";
21
+ width: calc(#{u.width("gutter", 0.5)} * var(--radio-size));
22
+ height: calc(#{u.width("gutter", 0.5)} * var(--radio-size));
23
+ border-radius: 50%;
24
+ transform: scale(0);
25
+ transition: transform 0.2s ease;
26
+ background-color: var(--blue600);
27
+ }
28
+
29
+ &:checked {
30
+ border-color: var(--gray500);
31
+
32
+ &::before {
33
+ transform: scale(1);
34
+ }
31
35
  }
32
36
  }
33
37
  }
@@ -0,0 +1,56 @@
1
+ @use "../../utilities/functions" as u;
2
+ @layer craftsman-base {
3
+ select,
4
+ ::picker(select) {
5
+ appearance: base-select;
6
+ background: #{u.color("white")};
7
+ color: #{u.color("text")};
8
+ border: 1px solid #{u.color("gray200")};
9
+ border-radius: 6px;
10
+ }
11
+ select {
12
+ padding: 10px 40px 10px 14px;
13
+ position: relative;
14
+ &:hover,
15
+ &:focus {
16
+ outline: none;
17
+ border-color: #{u.color("gray200")};
18
+ }
19
+ &:focus-visible {
20
+ outline: none;
21
+ }
22
+ &:-moz-focusring {
23
+ color: transparent;
24
+ text-shadow: 0 0 0 #{u.color("text")};
25
+ }
26
+ &::picker-icon {
27
+ color: #999999;
28
+ transition: 0.2s rotate;
29
+ content: "";
30
+ display: inline-block;
31
+ width: 10px;
32
+ height: 10px;
33
+ border-style: solid;
34
+ border-width: 0 2px 2px 0;
35
+ transform: rotate(45deg);
36
+ margin: 0px 2px 0 12px;
37
+ position: absolute;
38
+ right: 16px;
39
+ top: 12px;
40
+ }
41
+ &:open::picker-icon {
42
+ margin-top: 6px;
43
+ rotate: 180deg;
44
+ }
45
+ option {
46
+ padding: #{u.width("gutter", 0.5)};
47
+ &:hover,
48
+ &:focus {
49
+ background: #{u.color("gray100")};
50
+ }
51
+ &::checkmark {
52
+ content: "";
53
+ }
54
+ }
55
+ }
56
+ }
@@ -1,7 +1,98 @@
1
- %body-typography {
2
- font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
3
- color: var(--text);
4
- line-height: 1.5;
5
- font-weight: 400;
6
- font-size: var(--w-text, 14px);
1
+ @use "../../utilities/functions" as u;
2
+
3
+ @mixin body-typography {
4
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
5
+ color: var(--text);
6
+ line-height: 1.5;
7
+ font-weight: 400;
8
+ font-size: var(--w-text, 14px);
9
+ }
10
+
11
+ @mixin h1 {
12
+ font-size: #{u.width(text, 3.125)};
13
+ line-height: 1.2;
14
+ margin: 0 0 #{u.width(gutter)} 0;
15
+ }
16
+ @mixin h2 {
17
+ font-size: #{u.width(text, 2.625)};
18
+ font-weight: 625;
19
+ line-height: 1.1;
20
+ margin: 0 0 #{u.width(gutter)} 0;
21
+ }
22
+ @mixin h3 {
23
+ font-size: #{u.width(text, 1.625)};
24
+ line-height: 1.1;
25
+ margin: 0 0 #{u.width(gutter, 0.75)} 0;
26
+ }
27
+ @mixin h4 {
28
+ font-size: #{u.width(text, 1.25)};
29
+ line-height: 1.1;
30
+ margin: 0 0 #{u.width(gutter, 0.5)} 0;
31
+ }
32
+ @mixin h5 {
33
+ font-size: var(--w-text);
34
+ line-height: 1.2;
35
+ margin: 0 0 #{u.width(gutter, 0.5)} 0;
36
+ }
37
+ @mixin h6 {
38
+ font-size: #{u.width(text, 0.875)};
39
+ line-height: 1.2;
40
+ font-weight: 600;
41
+ margin: 0;
42
+ }
43
+ @mixin p {
44
+ font-style: normal;
45
+ font-size: var(--w-text);
46
+ line-height: 1.5;
47
+ margin: 0;
48
+ }
49
+ @mixin small {
50
+ font-size: #{u.width(text, 0.75)};
51
+ }
52
+ @mixin xsmall {
53
+ font-size: #{u.width(text, 0.5)};
54
+ }
55
+
56
+ @layer craftsman-base {
57
+ // TODO: These h* declarations need to be moved somewhere not-terrible
58
+ h1 {
59
+ @include h1;
60
+ }
61
+
62
+ h2 {
63
+ @include h2;
64
+ }
65
+
66
+ h3 {
67
+ @include h3;
68
+ }
69
+
70
+ h4 {
71
+ @include h4;
72
+ }
73
+
74
+ h5 {
75
+ @include h5;
76
+ }
77
+
78
+ h6 {
79
+ @include h6;
80
+ }
81
+
82
+ p {
83
+ @include p;
84
+ }
85
+ small {
86
+ @include small;
87
+ }
88
+
89
+ @include u.breakpoint(mobileMax) {
90
+ h4 {
91
+ font-size: var(--w-text, 14px);
92
+ }
93
+
94
+ p {
95
+ font-size: calc(var(--w-text, 14px) * 0.875);
96
+ }
97
+ }
7
98
  }
@@ -1,129 +1 @@
1
- @use "./components/typography";
2
- @use "./components/code";
3
- @use "./components/mixins" as mixins;
4
- @use "./components/checkbox";
5
- @use "./components/radioButton";
6
- @use "./components/button";
7
- @use "./components/input";
8
-
9
- :global {
10
- :root {
11
- color-scheme: light dark;
12
- font-synthesis: none;
13
- text-rendering: optimizeLegibility;
14
- -webkit-font-smoothing: antialiased;
15
- -moz-osx-font-smoothing: grayscale;
16
- }
17
-
18
- ::-webkit-scrollbar {
19
- width: 4px;
20
- height: 4px;
21
- }
22
-
23
- ::-webkit-scrollbar-track {
24
- background: #ddd;
25
- }
26
-
27
- ::-webkit-scrollbar-thumb {
28
- background: #000;
29
- border-radius: 6px;
30
- }
31
-
32
- ::-webkit-scrollbar-thumb:hover {
33
- background: #555;
34
- }
35
-
36
- body {
37
- @extend %body-typography;
38
- }
39
- body,
40
- ul {
41
- margin: 0;
42
- padding: 0;
43
- }
44
-
45
- body {
46
- background-color: #fff;
47
- -webkit-overflow-scrolling: touch;
48
- overscroll-behavior: contain;
49
- }
50
-
51
- fieldset {
52
- padding: 0;
53
- border: 0;
54
- }
55
-
56
- code {
57
- @extend %code;
58
- }
59
-
60
- button {
61
- @extend %button-styles;
62
- }
63
-
64
- input {
65
- @extend %input-base;
66
-
67
- &[type="radio"] {
68
- @extend %radio;
69
- }
70
-
71
- &[type="checkbox"] {
72
- @extend %checkbox;
73
- }
74
- }
75
-
76
- a {
77
- @extend %text-link;
78
- }
79
-
80
- h1 {
81
- font-size: calc(var(--w-text, 14px) * 3.125);
82
- line-height: 1.2;
83
- }
84
-
85
- h2 {
86
- font-size: calc(var(--w-text, 14px) * 2.625);
87
- font-weight: 625;
88
- line-height: 1.1;
89
- }
90
-
91
- h3 {
92
- font-size: calc(var(--w-text, 14px) * 1.625);
93
- line-height: 1.1;
94
- }
95
-
96
- h4 {
97
- font-size: calc(var(--w-text, 14px) * 1.25);
98
- line-height: 1.1;
99
- margin: calc(var(--w-gutter, 16px) * 0.5) 0;
100
- }
101
-
102
- h5 {
103
- font-size: var(--w-text, 14px);
104
- line-height: 1.2;
105
- }
106
-
107
- h6 {
108
- font-size: calc(var(--w-text, 14px) * 0.875);
109
- line-height: 1.2;
110
- font-weight: 600;
111
- }
112
-
113
- p {
114
- font-style: normal;
115
- font-size: var(--w-text, 14px);
116
- line-height: 1.5;
117
- margin: 0;
118
- }
119
-
120
- @media (max-width: 659.99999px) {
121
- h4 {
122
- font-size: var(--w-text, 14px);
123
- }
124
-
125
- p {
126
- font-size: calc(var(--w-text, 14px) * 0.875);
127
- }
128
- }
129
- }
1
+ @use "./globalStyles.scss";
@@ -1 +1,87 @@
1
- @use "./globalStyles.module.scss";
1
+ @use "../config";
2
+ @use "./components/typography" as t;
3
+ @use "./components/code";
4
+ @use "./components/checkbox";
5
+ @use "./components/radioButton";
6
+ @use "./components/button";
7
+ @use "./components/input";
8
+ @use "./components/select";
9
+ @layer craftsman-base, craftsman-component, craftsman-theme;
10
+
11
+ @layer craftsman-base {
12
+ :root {
13
+ color-scheme: light dark;
14
+ font-synthesis: none;
15
+ text-rendering: optimizeLegibility;
16
+ -webkit-font-smoothing: antialiased;
17
+ -moz-osx-font-smoothing: grayscale;
18
+ }
19
+
20
+ ::-webkit-scrollbar {
21
+ width: 4px;
22
+ height: 4px;
23
+ }
24
+
25
+ ::-webkit-scrollbar-track {
26
+ background: #ddd;
27
+ }
28
+
29
+ ::-webkit-scrollbar-thumb {
30
+ background: #000;
31
+ border-radius: 6px;
32
+ }
33
+
34
+ ::-webkit-scrollbar-thumb:hover {
35
+ background: #555;
36
+ }
37
+ body,
38
+ ul {
39
+ margin: 0;
40
+ padding: 0;
41
+ }
42
+ ul {
43
+ list-style: none;
44
+ }
45
+ body {
46
+ @include t.body-typography;
47
+ background-color: #fff;
48
+ -webkit-overflow-scrolling: touch;
49
+ overscroll-behavior: contain;
50
+ }
51
+
52
+ fieldset {
53
+ padding: 0;
54
+ border: 0;
55
+ }
56
+
57
+ code {
58
+ @extend %code;
59
+ }
60
+
61
+ button {
62
+ @extend %button-styles;
63
+ }
64
+
65
+ input {
66
+ @extend %input-base;
67
+ &[type="checkbox"] {
68
+ @extend %checkbox;
69
+ }
70
+
71
+ &[type="radio"] {
72
+ @extend %radio;
73
+ }
74
+ }
75
+ figure {
76
+ margin: 0;
77
+
78
+ }
79
+ textarea {
80
+ @extend %input-base;
81
+ }
82
+
83
+ a {
84
+ @extend %text-link;
85
+ }
86
+
87
+ }