@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,6 +1,6 @@
1
1
  export * from './utilities/color';
2
2
  export * from './utilities/constants';
3
3
  export * from './utilities/layout';
4
- export * from './utilities/types';
4
+ export * from '../utilities/types';
5
5
  export * from './theme/theme';
6
6
  export { ThemeProvider } from './components/ThemeProvider';
@@ -1,12 +1,16 @@
1
- import { htmlTagNames as e } from "./constants.esm.js";
2
- import { components_exports as t } from "../../../Components.esm.js";
1
+ import { components_exports as e } from "../../../Components.esm.js";
2
+ import { htmlTagNames as t } from "./constants.esm.js";
3
3
  //#region src/styles/theme/components.ts
4
- function n(e) {
4
+ var n = {
5
+ checkbox: "input[type='checkbox']",
6
+ radioButton: "input[type='radio']"
7
+ };
8
+ function r(e) {
5
9
  return e.charAt(0).toLowerCase() + e.slice(1);
6
10
  }
7
- function r(t) {
8
- return e.has(t) ? `${t}, .${t}` : `.${t}`;
11
+ function i(e) {
12
+ return n[e] || (t.has(e) ? `${e}, .${e}` : `.${e}`);
9
13
  }
10
- var i = Object.keys(t).map(n), a = Object.fromEntries(i.map((e) => [e, r(e)]));
14
+ var a = Object.keys(e).map(r), o = Object.fromEntries(a.map((e) => [e, i(e)]));
11
15
  //#endregion
12
- export { a as componentSelectors };
16
+ export { o as componentSelectors };
@@ -2,54 +2,44 @@ import { componentSelectors as e } from "./components.esm.js";
2
2
  import { cssObjectToCssText as t, toCSSObject as n } from "./utilities.esm.js";
3
3
  import { colors as r, widths as i } from "../global/variables.esm.js";
4
4
  //#region src/styles/theme/theme.ts
5
- var a = /* @__PURE__ */ new Map();
6
- function o(e) {
7
- if (typeof document > "u") return;
8
- let t = `.${e}`, n = {}, r = !1, i = (e) => {
9
- for (let a of Array.from(e)) {
10
- if (a instanceof CSSStyleRule) {
11
- if (!a.selectorText.split(",").map((e) => e.trim()).includes(t)) continue;
12
- r = !0;
13
- for (let e of Array.from(a.style)) n[e] = a.style.getPropertyValue(e);
14
- continue;
15
- }
16
- a instanceof CSSGroupingRule && i(a.cssRules);
5
+ function a(e) {
6
+ if (e) {
7
+ if (typeof e == "string") {
8
+ let t = e.trim();
9
+ return t.includes("{") ? t : `:root { ${t} }`;
17
10
  }
18
- };
19
- for (let e of Array.from(document.styleSheets)) try {
20
- e.cssRules && i(e.cssRules);
21
- } catch {}
22
- return r ? n : void 0;
11
+ return t(":root", n(e));
12
+ }
23
13
  }
24
- function s(e) {
25
- if (a.has(e)) return a.get(e) ?? void 0;
26
- let t = o(e);
27
- return a.set(e, t ?? null), t;
14
+ function o(e, r) {
15
+ if (typeof r == "string") {
16
+ let t = r.trim();
17
+ return t.includes("{") ? t : `${e} { ${t} }`;
18
+ }
19
+ return t(e, n(r));
28
20
  }
29
- function c(r) {
30
- let i = [];
31
- return Object.keys(e).forEach((a) => {
32
- let o = r?.[a];
33
- if (o) {
34
- if (typeof o == "string") {
35
- let n = s(o);
36
- if (!n) return;
37
- i.push(t(e[a], n));
38
- return;
39
- }
40
- i.push(t(e[a], n(o)));
41
- }
42
- }), i;
21
+ function s(t) {
22
+ return Object.keys(e).map((n) => {
23
+ let r = t?.[n];
24
+ return r ? o(e[n], r) : void 0;
25
+ }).filter((e) => !!e);
26
+ }
27
+ function c(e) {
28
+ if (!(!e || Object.keys(e).length === 0)) return `:root { ${Object.entries(e).map(([e, t]) => `--w-${e}: ${t}px;`).join(" ")} }`;
43
29
  }
44
30
  function l(e) {
45
- let a = t(":root", {
46
- ...e.colors || {},
47
- ...e.root ? n(e.root) : {}
48
- });
31
+ let n = [
32
+ t(":root", { ...e.colors || {} }),
33
+ c(e.widths),
34
+ a(e.root),
35
+ ...s(e.components)
36
+ ].filter(Boolean).join("\n");
49
37
  return [
50
38
  `:root { ${i} ${r} }`,
51
- a,
52
- ...c(e.components)
39
+ "@layer craftsman-base, craftsman-theme;",
40
+ "@layer craftsman-theme {",
41
+ n,
42
+ "}"
53
43
  ].filter(Boolean).join("\n");
54
44
  }
55
45
  //#endregion
@@ -1,5 +1,6 @@
1
1
  import { ColorKey } from '../utilities/color';
2
2
  import { componentSelectors } from './components';
3
+ import { LayoutWidthsType } from '../../utilities/types';
3
4
  export type ColorVariableName = `--${ColorKey}`;
4
5
  export type CSSObject = {
5
6
  [key: string]: string | number | CSSObject | undefined;
@@ -14,9 +15,11 @@ export type ComponentThemeOverrides = {
14
15
  [K in RegisteredComponent]?: CSSObject | LegacySerializedStyles | string;
15
16
  };
16
17
  export type Colors = Partial<Record<ColorVariableName, string>>;
18
+ export type WidthOverrides = Partial<Record<LayoutWidthsType, number>>;
17
19
  export type Theme = {
18
20
  colors?: Colors;
19
- root?: CSSObject | LegacySerializedStyles;
21
+ widths?: WidthOverrides;
22
+ root?: CSSObject | LegacySerializedStyles | string;
20
23
  components?: ComponentThemeOverrides;
21
24
  };
22
25
  export type ThemeProviderProps = {
@@ -0,0 +1,117 @@
1
+ @use "sass:map";
2
+ @use "sass:string";
3
+ @use "../config" as cfg;
4
+
5
+ $width-defaults: (
6
+ text: cfg.$w-text,
7
+ gutter: cfg.$w-gutter,
8
+ column: cfg.$w-column,
9
+ mobileMax: cfg.$bp-mobileMax,
10
+ tablet: cfg.$bp-tablet,
11
+ tabletMax: cfg.$bp-tabletMax,
12
+ desktop: cfg.$bp-desktop,
13
+ desktopMax: cfg.$bp-desktopMax,
14
+ extDesktop: cfg.$bp-extDesktop,
15
+ );
16
+
17
+ @function color($name, $type: hex, $alpha: 1) {
18
+ @if $type == rgba {
19
+ @return string.unquote("rgb(from var(--#{$name}) r g b / #{$alpha})");
20
+ }
21
+
22
+ @return string.unquote("var(--#{$name})");
23
+ }
24
+ // internal function
25
+ @function width-var($name) {
26
+ @if not map.has-key($width-defaults, $name) {
27
+ @error "Unknown width key `#{$name}`.";
28
+ }
29
+ @return string.unquote("var(--w-#{$name})");
30
+ // $fallback: map.get($width-defaults, $name);
31
+ // @return string.unquote("var(--w-#{$name}, #{$fallback}px)");
32
+ }
33
+
34
+ @function width($name, $multiplier: 1, $px: true) {
35
+ $value: width-var($name);
36
+
37
+ @if $name == column {
38
+ $gutter-steps: $multiplier - 1;
39
+ $gutter: width-var(gutter);
40
+
41
+ @if $px {
42
+ @return string.unquote("calc((#{$value} * #{$multiplier}) + (#{$gutter} * #{$gutter-steps}))");
43
+ }
44
+
45
+ @return string.unquote("calc((#{$value} * #{$multiplier}) + (#{$gutter} * #{$gutter-steps}))");
46
+ }
47
+
48
+ @if $px {
49
+ @if $multiplier == 1 {
50
+ @return $value;
51
+ }
52
+
53
+ @return string.unquote("calc(#{$value} * #{$multiplier})");
54
+ }
55
+
56
+ @if $multiplier == 1 {
57
+ @return string.unquote("#{$value}");
58
+ }
59
+
60
+ @return string.unquote("calc(#{$value} * #{$multiplier})");
61
+ }
62
+ // internal function
63
+ @function media($bp) {
64
+ @if $bp == mobile {
65
+ @return string.unquote("(min-width: 0px)");
66
+ }
67
+
68
+ @if $bp == mobileMax {
69
+ @return string.unquote("(max-width: #{cfg.$bp-mobileMax}px)");
70
+ }
71
+
72
+ @if $bp == tablet {
73
+ @return string.unquote("(min-width: #{cfg.$bp-tablet}px)");
74
+ }
75
+
76
+ @if $bp == tabletMax {
77
+ @return string.unquote("(max-width: #{cfg.$bp-tabletMax}px)");
78
+ }
79
+
80
+ @if $bp == desktop {
81
+ @return string.unquote("(min-width: #{cfg.$bp-desktop}px)");
82
+ }
83
+
84
+ @if $bp == desktopMax {
85
+ @return string.unquote("(max-width: #{cfg.$bp-desktopMax}px)");
86
+ }
87
+
88
+ @if $bp == extDesktop {
89
+ @return string.unquote("(min-width: #{cfg.$bp-extDesktop}px)");
90
+ }
91
+
92
+ @if $bp == mobileOnly {
93
+ @return string.unquote("(min-width: 0px) and (max-width: #{cfg.$bp-mobileMax}px)");
94
+ }
95
+
96
+ @if $bp == tabletOnly {
97
+ @return string.unquote("(min-width: #{cfg.$bp-tablet}px) and (max-width: #{cfg.$bp-tabletMax}px)");
98
+ }
99
+
100
+ @if $bp == mobileTablet {
101
+ @return string.unquote("(min-width: 0px) and (max-width: #{cfg.$bp-tabletMax}px)");
102
+ }
103
+
104
+ @if $bp == desktopOnly {
105
+ @return string.unquote("(min-width: #{cfg.$bp-desktop}px) and (max-width: #{cfg.$bp-desktopMax}px)");
106
+ }
107
+
108
+ @error "Unknown breakpoint `#{$bp}`.";
109
+ }
110
+
111
+ @mixin breakpoint($bp) {
112
+ @media #{media($bp)} {
113
+ @content;
114
+ }
115
+ }
116
+
117
+
File without changes
@@ -0,0 +1,6 @@
1
+
2
+ %border-box {
3
+ -moz-box-sizing: border-box;
4
+ -webkit-box-sizing: border-box;
5
+ box-sizing: border-box;
6
+ }
@@ -1,4 +1,4 @@
1
- import { ColorType } from './types';
1
+ import { ColorType } from '../../utilities/types';
2
2
  export declare const colors: {
3
3
  red990: string;
4
4
  red950: string;
@@ -1,4 +1,4 @@
1
- import { LayoutWidthsType } from './types';
1
+ import { LayoutWidthsType } from '../../utilities/types';
2
2
  export declare const defaultColors: {
3
3
  red990: string;
4
4
  red950: string;
@@ -1,4 +1,4 @@
1
- import { Breakpoint, LayoutWidthsType } from './types';
1
+ import { Breakpoint, LayoutWidthsType } from '../../utilities/types';
2
2
  export declare const widths: Record<LayoutWidthsType, string>;
3
3
  export declare const media: {
4
4
  readonly mobile: string;
@@ -1,7 +1,7 @@
1
- import { defaultWidths as e } from "./constants.esm.js";
2
- import { LayoutWidthsSchema as t } from "./types.esm.js";
1
+ import { LayoutWidthsSchema as e } from "../../utilities/types.esm.js";
2
+ import { defaultWidths as t } from "./constants.esm.js";
3
3
  //#region src/styles/utilities/layout.ts
4
- var n = Object.fromEntries(t.options.map((t) => [t, `var(--w-${t}, ${e[t]}px)`])), r = {
4
+ var n = Object.fromEntries(e.options.map((e) => [e, `var(--w-${e}, ${t[e]}px)`])), r = {
5
5
  get mobile() {
6
6
  return "(min-width: 0px)";
7
7
  },
@@ -26,7 +26,6 @@ export declare const BreakpointSchema: z.ZodEnum<{
26
26
  desktopOnly: "desktopOnly";
27
27
  }>;
28
28
  export declare const LayoutWidthsSchema: z.ZodEnum<{
29
- text: "text";
30
29
  gutter: "gutter";
31
30
  column: "column";
32
31
  tablet: "tablet";
@@ -35,6 +34,7 @@ export declare const LayoutWidthsSchema: z.ZodEnum<{
35
34
  mobileMax: "mobileMax";
36
35
  tabletMax: "tabletMax";
37
36
  desktopMax: "desktopMax";
37
+ text: "text";
38
38
  }>;
39
39
  export type BaseWidth = z.infer<typeof BaseWidthSchema>;
40
40
  export type ScreenWidth = z.infer<typeof ScreenWidthSchema>;
@@ -52,6 +52,8 @@ export type TextInputExclusions = z.infer<typeof zTextInputExclusions>;
52
52
  export declare const zTextInputTypes: readonly ["color", "date", "datetime-local", "email", "file", "hidden", "image", "month", "number", "password", "range", "reset", "search", "submit", "tel", "text", "time", "url", "week", "radio", "checkbox"];
53
53
  export declare const zTextInputType: z.ZodEnum<{
54
54
  number: "number";
55
+ search: "search";
56
+ month: "month";
55
57
  text: "text";
56
58
  checkbox: "checkbox";
57
59
  radio: "radio";
@@ -62,11 +64,9 @@ export declare const zTextInputType: z.ZodEnum<{
62
64
  file: "file";
63
65
  hidden: "hidden";
64
66
  image: "image";
65
- month: "month";
66
67
  password: "password";
67
68
  range: "range";
68
69
  reset: "reset";
69
- search: "search";
70
70
  submit: "submit";
71
71
  tel: "tel";
72
72
  time: "time";
@@ -83,3 +83,61 @@ export declare const zLabelPosition: z.ZodEnum<{
83
83
  inside: "inside";
84
84
  }>;
85
85
  export type LabelPosition = z.infer<typeof zLabelPosition>;
86
+ export declare const zCheckboxLabelPosition: z.ZodEnum<{
87
+ top: "top";
88
+ left: "left";
89
+ bottom: "bottom";
90
+ right: "right";
91
+ }>;
92
+ export type CheckboxLabelPosition = z.infer<typeof zCheckboxLabelPosition>;
93
+ export declare const zRadioLabelPosition: z.ZodEnum<{
94
+ left: "left";
95
+ right: "right";
96
+ }>;
97
+ export type RadioLabelPosition = z.infer<typeof zRadioLabelPosition>;
98
+ export declare const ButtonType: z.ZodEnum<{
99
+ text: "text";
100
+ primary: "primary";
101
+ default: "default";
102
+ }>;
103
+ export type ButtonType = z.infer<typeof ButtonType>;
104
+ export declare const TextTags: z.ZodEnum<{
105
+ h1: "h1";
106
+ h2: "h2";
107
+ h3: "h3";
108
+ h4: "h4";
109
+ h5: "h5";
110
+ p: "p";
111
+ span: "span";
112
+ div: "div";
113
+ }>;
114
+ export type TextTags = z.infer<typeof TextTags>;
115
+ export declare const TextType: z.ZodEnum<{
116
+ display: "display";
117
+ heading: "heading";
118
+ paragraph: "paragraph";
119
+ caption: "caption";
120
+ "small-title": "small-title";
121
+ }>;
122
+ export type TextType = z.infer<typeof TextType>;
123
+ export declare const TextSize: z.ZodEnum<{
124
+ small: "small";
125
+ xlarge: "xlarge";
126
+ large: "large";
127
+ medium: "medium";
128
+ xsmall: "xsmall";
129
+ }>;
130
+ export type TextSize = z.infer<typeof TextSize>;
131
+ export declare const CarouselPageType: z.ZodEnum<{
132
+ dots: "dots";
133
+ numbers: "numbers";
134
+ }>;
135
+ export type CarouselPageType = z.infer<typeof CarouselPageType>;
136
+ export declare const NoticeType: z.ZodEnum<{
137
+ help: "help";
138
+ info: "info";
139
+ success: "success";
140
+ error: "error";
141
+ none: "none";
142
+ }>;
143
+ export type NoticeType = z.infer<typeof NoticeType>;
@@ -0,0 +1,85 @@
1
+ import e from "zod";
2
+ //#region src/utilities/types.ts
3
+ var t = e.enum(["gutter", "column"]), n = e.enum([
4
+ "tablet",
5
+ "desktop",
6
+ "extDesktop"
7
+ ]), r = e.enum([
8
+ "mobileMax",
9
+ "tabletMax",
10
+ "desktopMax"
11
+ ]), i = e.enum([
12
+ ...n.options,
13
+ ...r.options,
14
+ "mobileOnly",
15
+ "tabletOnly",
16
+ "mobileTablet",
17
+ "desktopOnly"
18
+ ]), a = e.enum([
19
+ ...t.options,
20
+ ...n.options,
21
+ ...r.options,
22
+ "text"
23
+ ]), o = e.enum(["checkbox", "radio"]), s = [
24
+ "color",
25
+ "date",
26
+ "datetime-local",
27
+ "email",
28
+ "file",
29
+ "hidden",
30
+ "image",
31
+ "month",
32
+ "number",
33
+ "password",
34
+ "range",
35
+ "reset",
36
+ "search",
37
+ "submit",
38
+ "tel",
39
+ "text",
40
+ "time",
41
+ "url",
42
+ "week",
43
+ "radio",
44
+ "checkbox"
45
+ ], c = e.enum(s), l = e.enum([
46
+ "top",
47
+ "left",
48
+ "bottom",
49
+ "right",
50
+ "inside",
51
+ "hidden"
52
+ ]), u = l.exclude(["inside", "hidden"]), d = l.extract(["left", "right"]), f = e.enum([
53
+ "primary",
54
+ "default",
55
+ "text"
56
+ ]), p = e.enum([
57
+ "h1",
58
+ "h2",
59
+ "h3",
60
+ "h4",
61
+ "h5",
62
+ "p",
63
+ "span",
64
+ "div"
65
+ ]), m = e.enum([
66
+ "display",
67
+ "heading",
68
+ "paragraph",
69
+ "caption",
70
+ "small-title"
71
+ ]), h = e.enum([
72
+ "xlarge",
73
+ "large",
74
+ "medium",
75
+ "small",
76
+ "xsmall"
77
+ ]), g = e.enum(["dots", "numbers"]), _ = e.enum([
78
+ "help",
79
+ "info",
80
+ "success",
81
+ "error",
82
+ "none"
83
+ ]);
84
+ //#endregion
85
+ export { t as BaseWidthSchema, i as BreakpointSchema, f as ButtonType, g as CarouselPageType, a as LayoutWidthsSchema, r as MaxScreenWidthSchema, _ as NoticeType, n as ScreenWidthSchema, h as TextSize, p as TextTags, m as TextType, u as zCheckboxLabelPosition, l as zLabelPosition, d as zRadioLabelPosition, o as zTextInputExclusions, c as zTextInputType, s as zTextInputTypes };
@@ -1,2 +1,7 @@
1
+ import { DateTimePickerProps } from 'react-datetime-picker';
1
2
  export declare function isEmpty(value: unknown): boolean;
2
3
  export declare function validateEmail(value: string): boolean;
4
+ export declare const getUnitLabel: (locale: Intl.LocalesArgument, unit: Intl.NumberFormatOptions["unit"], override?: string) => string;
5
+ export declare const is24HourFormat: (locale: Intl.LocalesArgument) => boolean;
6
+ export declare const getAmPmLabels: (locale: Intl.LocalesArgument) => [string, string];
7
+ export declare const formatTime: (value: DateTimePickerProps["value"], locale: Intl.LocalesArgument) => string;
@@ -5,5 +5,23 @@ function e(e) {
5
5
  function t(e) {
6
6
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
7
7
  }
8
+ var n = (e, t, n) => n ?? new Intl.NumberFormat(e, {
9
+ style: "unit",
10
+ unit: t,
11
+ unitDisplay: "long"
12
+ }).formatToParts(1).find((e) => e.type === "unit")?.value ?? String(t), r = (e) => {
13
+ let t = new Intl.DateTimeFormat(e, { hour: "numeric" }).resolvedOptions();
14
+ return t.hourCycle === "h23" || t.hourCycle === "h24";
15
+ }, i = (e) => {
16
+ let t = new Intl.DateTimeFormat(e, {
17
+ hour: "numeric",
18
+ hour12: !0
19
+ });
20
+ return [t.formatToParts(new Date(2e3, 0, 1, 9)).find((e) => e.type === "dayPeriod")?.value ?? "AM", t.formatToParts(new Date(2e3, 0, 1, 21)).find((e) => e.type === "dayPeriod")?.value ?? "PM"];
21
+ }, a = (e, t) => e instanceof Date ? new Intl.DateTimeFormat(t, {
22
+ hour: "2-digit",
23
+ minute: "2-digit",
24
+ hour12: !1
25
+ }).format(e) : "--:--";
8
26
  //#endregion
9
- export { e as isEmpty, t as validateEmail };
27
+ export { a as formatTime, i as getAmPmLabels, n as getUnitLabel, r as is24HourFormat, e as isEmpty, t as validateEmail };
@@ -1,28 +0,0 @@
1
- "use client";
2
- import { isEmpty as e } from "../utilities/validations.esm.js";
3
- import { width as t } from "../styles/utilities/layout.esm.js";
4
- import "../../Styles.esm.js";
5
- import n from "./Button.module.esm.js";
6
- import r from "clsx";
7
- import { Fragment as i, jsx as a } from "react/jsx-runtime";
8
- //#region src/components/Button.tsx
9
- var o = (o) => {
10
- let { type: s = "button", variant: c = "default", size: l, styles: u, className: d, style: f, ...p } = o, m = typeof l == "number" ? Math.min(10, Math.max(.1, l)) : void 0, h = e(u) ? void 0 : u, g = m ? {
11
- borderRadius: `calc(var(--btn-border-radius) * ${m})`,
12
- padding: `calc(var(--btn-pad-y) * ${m}) calc(var(--btn-pad-x) * ${m})`,
13
- fontSize: `max(10px, calc(${t("text")} * ${m}))`
14
- } : {};
15
- return e(o.children) ? /* @__PURE__ */ a(i, {}) : /* @__PURE__ */ a("button", {
16
- type: s,
17
- "data-variant": c,
18
- className: r(n.button, "button", d),
19
- style: {
20
- ...g,
21
- ...h,
22
- ...f
23
- },
24
- ...p
25
- });
26
- };
27
- //#endregion
28
- export { o as Button };
@@ -1 +0,0 @@
1
- ._text_1l9fp_1._button_1l9fp_1,[data-variant=text]._button_1l9fp_1{color:var(--blue500);background:0 0;border:none;padding:0}._text_1l9fp_1._button_1l9fp_1:not(:disabled):not(._disabled_1l9fp_7):hover,[data-variant=text]._button_1l9fp_1:not(:disabled):not(._disabled_1l9fp_7):hover{color:var(--teal700);cursor:pointer;background-color:#0000;text-decoration:underline}._button_1l9fp_1{--btn-pad-y:calc(var(--w-gutter,16px) * .5);--btn-pad-x:calc(var(--w-gutter,16px) * .75);--btn-border-radius:calc(var(--w-gutter,16px) * .75);color:var(--blue600);cursor:pointer;padding:var(--btn-pad-y) var(--btn-pad-x);border-radius:var(--btn-border-radius);border:none;border:1px solid var(--blue500);background-color:var(--white);flex-flow:wrap;align-items:center;font-weight:500;transition:all .125s;display:inline-flex}._button_1l9fp_1:not(:disabled):not(._disabled_1l9fp_7):hover{background-color:var(--teal200)}._button_1l9fp_1:disabled,._disabled_1l9fp_7._button_1l9fp_1{cursor:not-allowed;border-color:var(--gray200);color:var(--gray400)}._button_1l9fp_1:disabled._primary_1l9fp_39,._button_1l9fp_1:disabled[data-variant=primary],._disabled_1l9fp_7._primary_1l9fp_39._button_1l9fp_1,._disabled_1l9fp_7[data-variant=primary]._button_1l9fp_1{border-color:var(--gray200);background-color:var(--gray400);color:var(--gray200)}._primary_1l9fp_39._button_1l9fp_1,[data-variant=primary]._button_1l9fp_1{color:var(--white);background-color:var(--blue500)}._primary_1l9fp_39._button_1l9fp_1:not(:disabled):not(._disabled_1l9fp_7):hover,[data-variant=primary]._button_1l9fp_1:not(:disabled):not(._disabled_1l9fp_7):hover{background-color:var(--blue700)}
@@ -1,9 +0,0 @@
1
- import './Button.module.css';//#region src/components/Button.module.scss
2
- var e = "_text_1l9fp_1", t = "_button_1l9fp_1", n = "_disabled_1l9fp_7", r = "_primary_1l9fp_39", i = {
3
- text: e,
4
- button: t,
5
- disabled: n,
6
- primary: r
7
- };
8
- //#endregion
9
- export { t as button, i as default, n as disabled, r as primary, e as text };
@@ -1,5 +0,0 @@
1
- @use "../styles/global/components/button";
2
-
3
- .button {
4
- @extend %button-styles;
5
- }
@@ -1,7 +0,0 @@
1
- import { InputProps } from './Input';
2
- type CheckboxProps = InputProps & {
3
- type?: "checkbox";
4
- labelPosition?: "left" | "right" | "top" | "bottom";
5
- };
6
- export declare const Checkbox: React.FC<CheckboxProps>;
7
- export {};
@@ -1,11 +0,0 @@
1
- "use client";
2
- import { Input as e } from "./Input.esm.js";
3
- import { jsx as t } from "react/jsx-runtime";
4
- //#region src/components/Checkbox.tsx
5
- var n = ({ type: n = "checkbox", labelPosition: r = "right", ...i }) => /* @__PURE__ */ t(e, {
6
- type: n,
7
- labelPosition: r,
8
- ...i
9
- });
10
- //#endregion
11
- export { n as Checkbox };
@@ -1,11 +0,0 @@
1
- import { LabelPosition, TextInputType } from '../styles/utilities/types';
2
- export type InputProps = React.ComponentProps<"input"> & {
3
- label?: string | React.ReactNode;
4
- labelPosition?: LabelPosition;
5
- error?: string | boolean | React.ReactNode;
6
- required?: boolean;
7
- styles?: React.CSSProperties;
8
- endAdornment?: React.ReactNode;
9
- type?: TextInputType;
10
- };
11
- export declare const Input: React.FC<InputProps>;
@@ -1,41 +0,0 @@
1
- "use client";
2
- import { isEmpty as e } from "../utilities/validations.esm.js";
3
- import t from "./Input.module.esm.js";
4
- import n from "clsx";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
- import { useId as a } from "react";
7
- //#region src/components/Input.tsx
8
- var o = ({ label: o, id: s, labelPosition: c = "top", required: l = !1, type: u = "text", error: d, styles: f, className: p, style: m, endAdornment: h, ...g }) => {
9
- let _ = a(), v = s || _, y = !e(g.value) || !e(g.defaultValue), b = e(f) ? void 0 : f, x = /* @__PURE__ */ i("span", {
10
- className: t.inputField,
11
- "data-has-end-adornment": !e(h),
12
- children: [/* @__PURE__ */ r("input", {
13
- id: v,
14
- type: u,
15
- className: t.input,
16
- ...g
17
- }), !e(h) && /* @__PURE__ */ r("span", {
18
- className: t.inputAdornment,
19
- children: h
20
- })]
21
- });
22
- return /* @__PURE__ */ i("div", {
23
- "data-label-position": c,
24
- "data-required": l,
25
- "data-has-input": y,
26
- className: n(t.wrapper, p),
27
- style: {
28
- ...b,
29
- ...m
30
- },
31
- children: [e(o) ? x : /* @__PURE__ */ i("label", { children: [c !== "hidden" && /* @__PURE__ */ r("div", {
32
- className: t.inputLabel,
33
- children: o
34
- }), x] }), !e(d) && /* @__PURE__ */ r("div", {
35
- className: t.error,
36
- children: d
37
- })]
38
- });
39
- };
40
- //#endregion
41
- export { o as Input };
@@ -1 +0,0 @@
1
- ._wrapper_h3ihm_1[data-label-position=inside]{--react-international-phone-height:50px;--react-international-phone-border-radius:8px;--react-international-phone-border-color:silver;position:relative}._wrapper_h3ihm_1[data-label-position=inside]:focus-within ._inputLabel_h3ihm_8,._wrapper_h3ihm_1[data-label-position=inside][data-has-input=true] ._inputLabel_h3ihm_8{top:-.5rem;left:calc(var(--w-gutter,16px) * .25);font-size:calc(var(--w-text,14px) * .75)}._wrapper_h3ihm_1[data-label-position=inside]:has(._input_h3ihm_8:not(:placeholder-shown)) ._inputLabel_h3ihm_8{top:-.5rem;left:calc(var(--w-gutter,16px) * .25);font-size:calc(var(--w-text,14px) * .75)}._wrapper_h3ihm_1[data-label-position=inside]:has(._input_h3ihm_8:-webkit-autofill) ._inputLabel_h3ihm_8{top:-.5rem;left:calc(var(--w-gutter,16px) * .25);font-size:calc(var(--w-text,14px) * .75)}._wrapper_h3ihm_1 label ._inputLabel_h3ihm_8{margin-bottom:calc(var(--w-gutter,16px) * .25)}._wrapper_h3ihm_1[data-required=true] label ._inputLabel_h3ihm_8:after{content:"*";color:var(--red700)}._wrapper_h3ihm_1[data-label-position=left] label{align-items:center;display:inline-flex}._wrapper_h3ihm_1[data-label-position=left] label ._inputLabel_h3ihm_8{width:fit-content;margin-right:calc(var(--w-gutter,16px) * .75)}._wrapper_h3ihm_1[data-label-position=bottom] label{flex-direction:column-reverse;align-items:flex-start;display:inline-flex}._wrapper_h3ihm_1[data-label-position=bottom] label ._inputLabel_h3ihm_8{margin-bottom:0;margin-top:calc(var(--w-gutter,16px) * .25)}._wrapper_h3ihm_1[data-label-position=right] label{flex-direction:row-reverse;align-items:baseline;display:inline-flex}._wrapper_h3ihm_1[data-label-position=right] label ._inputLabel_h3ihm_8{margin-left:calc(var(--w-gutter,16px) * .25);margin-bottom:0}._wrapper_h3ihm_1[data-label-position=inside] ._inputLabel_h3ihm_8{background-color:var(--white);z-index:1;width:fit-content;top:calc(var(--w-gutter,16px) * .25);left:calc(var(--w-gutter,16px) * .25);pointer-events:none;padding:0 5px;transition:top .15s,left .15s,font-size .15s,color .15s;position:absolute}._wrapper_h3ihm_1[data-label-position=inside]>label>._inputField_h3ihm_58>._input_h3ihm_8,._wrapper_h3ihm_1[data-label-position=inside]>._input_h3ihm_8{transition:border-color .2s}._wrapper_h3ihm_1[data-label-position=inside]:focus-within ._inputLabel_h3ihm_8{color:var(--blue500)}._wrapper_h3ihm_1[data-label-position=inside]:focus-within ._input_h3ihm_8{border-color:var(--blue500)}._wrapper_h3ihm_1[data-label-position=inside]:focus-within ._input_h3ihm_8::placeholder{opacity:1}._wrapper_h3ihm_1[data-label-position=inside] ._input_h3ihm_8[type=tel]{width:100%}._wrapper_h3ihm_1[data-label-position=inside] ._input_h3ihm_8::placeholder{opacity:0;transition:opacity .2s}._inputField_h3ihm_58{align-items:center;display:inline-flex;position:relative}._inputField_h3ihm_58[data-has-end-adornment=true]>._input_h3ihm_8{width:100%;padding-right:calc(var(--w-gutter,16px) * .5 + 24px + var(--w-gutter,16px) * .5)}._inputAdornment_h3ihm_89{right:calc(var(--w-gutter,16px) * .5);z-index:1;align-items:center;margin-top:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}._error_h3ihm_100{margin-top:calc(var(--w-gutter,16px) * .25);font-size:calc(var(--w-text,14px) * .75);color:var(--red600)}