shimmer 0.0.29 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,81 @@
1
+ import React from "react";
2
+ import classnames from "classnames";
3
+ import "./stack.scss";
4
+
5
+ type Justify =
6
+ | "start"
7
+ | "center"
8
+ | "end"
9
+ | "space-between"
10
+ | "space-around"
11
+ | "stretch"
12
+ | "equal-size";
13
+ type Align = "start" | "center" | "end" | "stretch" | "baseline";
14
+
15
+ export interface Props {
16
+ children: React.ReactNode;
17
+ gap?: number;
18
+ gapTablet?: number;
19
+ gapDesktop?: number;
20
+ gapWidescreen?: number;
21
+ line?: boolean;
22
+ lineTablet?: boolean;
23
+ lineDesktop?: boolean;
24
+ lineWidescreen?: boolean;
25
+ align?: Align;
26
+ alignTablet?: Align;
27
+ alignDesktop?: Align;
28
+ alignWidescreen?: Align;
29
+ justify?: Justify;
30
+ justifyTablet?: Justify;
31
+ justifyDesktop?: Justify;
32
+ justifyWidescreen?: Justify;
33
+ }
34
+
35
+ export function Stack({
36
+ children,
37
+ gap = 8,
38
+ gapTablet,
39
+ gapDesktop,
40
+ gapWidescreen,
41
+ line,
42
+ lineTablet,
43
+ lineDesktop,
44
+ lineWidescreen,
45
+ align,
46
+ alignTablet,
47
+ alignDesktop,
48
+ alignWidescreen,
49
+ justify,
50
+ justifyTablet,
51
+ justifyDesktop,
52
+ justifyWidescreen,
53
+ }: Props): JSX.Element {
54
+ return (
55
+ <div
56
+ className={classnames(
57
+ "stack",
58
+ gap && `stack--${gap}`,
59
+ gapTablet && `stack--tablet-${gapTablet}`,
60
+ gapDesktop && `stack--desktop-${gapDesktop}`,
61
+ gapWidescreen && `stack--widescreen-${gapWidescreen}`,
62
+ align && `stack--align-${align}`,
63
+ alignTablet && `stack--align-tablet-${alignTablet}`,
64
+ alignDesktop && `stack--align-desktop-${alignDesktop}`,
65
+ alignWidescreen && `stack--align-widescreen-${alignWidescreen}`,
66
+ justify && `stack--justify-${justify}`,
67
+ justifyTablet && `stack--justify-tablet-${justifyTablet}`,
68
+ justifyDesktop && `stack--justify-desktop-${justifyDesktop}`,
69
+ justifyWidescreen && `stack--justify-widescreen-${justifyWidescreen}`,
70
+ {
71
+ "stack--line": line,
72
+ "stack--line-tablet": lineTablet,
73
+ "stack--line-desktop": lineDesktop,
74
+ "stack--line-widescreen": lineWidescreen,
75
+ }
76
+ )}
77
+ >
78
+ {children}
79
+ </div>
80
+ );
81
+ }
data/src/modal.ts CHANGED
@@ -66,7 +66,11 @@ export class Modal {
66
66
  closeButton.style.display = close ?? true ? "block" : "none";
67
67
  root.classList.add("modal--open");
68
68
  root.classList.add("modal--loading");
69
- root.classList.toggle("modal--small", size === "small");
69
+
70
+ if (size) {
71
+ root.classList.add(`modal--${size}`);
72
+ }
73
+
70
74
  frame.innerHTML = await getHTML(url);
71
75
  root.classList.remove("modal--loading");
72
76
  }
data/stack.png ADDED
Binary file
data/tsconfig.json CHANGED
@@ -21,8 +21,9 @@
21
21
  "suppressImplicitAnyIndexErrors": true,
22
22
  "target": "es6",
23
23
  "isolatedModules": true,
24
- "declaration": true
24
+ "declaration": true,
25
+ "jsx": "react"
25
26
  },
26
27
  "exclude": ["node_modules", "dist"],
27
- "files": ["src/index.ts"]
28
+ "files": ["src/index.ts", "src/components/stack.tsx"]
28
29
  }