@marigold/system 0.3.3 → 0.4.0

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.
package/src/variant.ts DELETED
@@ -1,54 +0,0 @@
1
- const isNil = (value: any): value is null | undefined =>
2
- value === null || value === undefined;
3
-
4
- /**
5
- * Ensures that the `val` is an array. Will return an empty array if `val` is falsy.
6
- */
7
- export const ensureArray = <T>(val?: T | T[]) =>
8
- isNil(val) ? [] : Array.isArray(val) ? val : [val];
9
-
10
- /**
11
- * Removes trailing dot from variant, if necessary. This is necessary to support
12
- * `__default` styles. See https://github.com/system-ui/theme-ui/pull/951
13
- */
14
- export const ensureVariantDefault = (val: string) => val.replace(/\.$/, '');
15
-
16
- /**
17
- * Ensures that the `variant` is an array and supports the `__default` key.
18
- */
19
- export const ensureArrayVariant = <T extends string>(variant?: T | T[]) =>
20
- ensureArray(variant).map(ensureVariantDefault);
21
-
22
- export type State = {
23
- checked?: boolean;
24
- focus?: boolean;
25
- hover?: boolean;
26
- disabled?: boolean;
27
- error?: boolean;
28
- };
29
-
30
- /**
31
- * Appends given `state` to a `variant`.
32
- */
33
- export const appendVariantState = (variant: string, state: keyof State) => {
34
- return `${ensureVariantDefault(variant)}.:${state}`;
35
- };
36
-
37
- /**
38
- * Create a variant array from a `variant` and `state` containing
39
- * passed states, if they are truthy.
40
- */
41
- export const conditional = (
42
- variant: string,
43
- { disabled = false, ...states }: State
44
- ) => {
45
- const entries = [...Object.entries(states), ['disabled', disabled]] as [
46
- keyof State,
47
- boolean
48
- ][];
49
- const stateVariants = entries
50
- .filter(([, val]) => Boolean(val))
51
- .map(([key]) => appendVariantState(variant, key));
52
-
53
- return [variant, ...stateVariants];
54
- };
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "@marigold/tsconfig"
3
- }