@marigold/system 0.1.0 → 0.2.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/dist/Element.d.ts +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/normalize.d.ts +110 -0
- package/dist/system.cjs.development.js +246 -45
- package/dist/system.cjs.development.js.map +1 -1
- package/dist/system.cjs.production.min.js +1 -1
- package/dist/system.cjs.production.min.js.map +1 -1
- package/dist/system.esm.js +239 -39
- package/dist/system.esm.js.map +1 -1
- package/package.json +5 -6
- package/src/Colors.stories.mdx +614 -446
- package/src/Element.test.tsx +203 -0
- package/src/Element.tsx +59 -0
- package/src/concepts-principles.mdx +1 -1
- package/src/index.ts +1 -0
- package/src/normalize.test.tsx +42 -0
- package/src/normalize.ts +131 -0
- package/src/reset.ts +3 -3
- package/src/useStyles.stories.mdx +24 -0
- package/src/writeComponent.stories.mdx +0 -126
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.cjs.production.min.js","sources":["../src/useTheme.tsx","../src/useClassname.ts","../src/reset.ts","../src/useStyles.ts"],"sourcesContent":["import React, { createContext, useCallback, useContext } from 'react';\nimport { css as themeUi } from '@theme-ui/css';\nimport { Theme } from '@marigold/system';\n\nimport { StyleObject } from './types';\n\nconst Context = createContext<Theme>({});\n\nexport const useTheme = () => {\n const theme = useContext(Context);\n const css = useCallback(\n (style: StyleObject) => themeUi(style)(theme),\n [theme]\n );\n return { theme, css };\n};\n\nexport type ThemeProviderProps = { theme: any };\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme,\n children,\n}) => <Context.Provider value={theme}>{children}</Context.Provider>;\n","import { css as emotion } from '@emotion/css';\nimport { StyleObject } from './types';\nimport { useTheme } from './useTheme';\n\n// 🤫 https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object\n// lodash.isEmpty is tooo much KBs!\nconst isEmpty = (val: any) =>\n val && Object.keys(val).length === 0 && val.constructor === Object;\n\nexport const useClassname = (...styles: StyleObject[]) => {\n const { css } = useTheme();\n return styles\n .map(style => {\n /**\n * emotion will create a `css-0` class whenever an empty object is\n * passed. Since this makes debugging harder we'll do not pass empty\n * objects to emotion.\n */\n const themedStyle = css(style);\n return isEmpty(themedStyle) ? '' : emotion(themedStyle);\n })\n .join(' ');\n};\n","import { css } from '@emotion/css';\n\nconst base = css({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n font: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n});\n\n// Content\n// ---------------\nconst block = css({\n display: 'block',\n});\n\nconst list = css({\n listStyle: 'none',\n});\n\nconst table = css({\n borderCollapse: 'collapse',\n borderSpacing: 0,\n});\n\n// Typography\n// ---------------\nconst a = css({\n textDecoration: 'none',\n touchAction: 'manipulation'\n});\n\nconst quote = css({\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n});\n\n// Form Elements\n// ---------------\nconst button = css({\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation'\n});\n\nconst input = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n});\n\nconst select = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n});\n\nconst textarea = css({\n display: 'block',\n appearance: 'none',\n});\n\n// Reset\n// ---------------\nexport const reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n","import { ElementType } from 'react';\nimport { reset } from './reset';\nimport { CSSObject } from './types';\nimport { useClassname } from './useClassname';\n\nexport type UseStyleInput = {\n element?: ElementType;\n css?: Omit<CSSObject, 'variant' | 'element'> & {\n variant?: never;\n element?: never;\n };\n variant?: string | string[];\n className?: string;\n};\n\n/**\n * Hook that can adds base styles, reset for certain elements, variants and custom styles\n */\nexport const useStyles = ({\n element,\n css: styles = {},\n variant,\n className = '',\n}: UseStyleInput) => {\n /**\n * Get reset styles. Base is always applied. An additional reset maybe applied\n * based on the passed element.\n *\n * We check the passed className if it already includes the reset styles so no\n * duplicates are applied.\n */\n const baseClassName = className.includes(reset.base) ? '' : reset.base;\n const resetClassName =\n typeof element === 'string'\n ? className.includes((reset as { [key: string]: string })[element])\n ? ''\n : (reset as { [key: string]: string })[element]\n : '';\n\n /**\n * Get variant styles (from theme).\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n const variantsClassName = useClassname(...variants);\n\n /**\n * Custom styles are applied \"on runtime\". They are usually controlled via component\n * props and can change between component instances.\n */\n const customClassName = useClassname(styles);\n\n return [\n baseClassName,\n resetClassName,\n variantsClassName,\n customClassName,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n};\n"],"names":["Context","createContext","useTheme","theme","useContext","css","useCallback","style","themeUi","isEmpty","val","Object","keys","length","constructor","useClassname","styles","map","themedStyle","emotion","join","base","boxSizing","margin","padding","minWidth","fontSize","font","verticalAlign","WebkitTapHighlightColor","block","display","list","listStyle","table","borderCollapse","borderSpacing","a","textDecoration","touchAction","quote","quotes","selectors","content","button","appearance","background","textAlign","input","WebkitAppearance","reset","article","aside","details","figcaption","figure","footer","header","hgroup","menu","nav","section","ul","ol","blockquote","q","select","textarea","React","Provider","value","children","element","variant","className","baseClassName","includes","resetClassName","variants","Array","isArray","v","filter","Boolean"],"mappings":"kJAMMA,EAAUC,gBAAqB,IAExBC,EAAW,eAChBC,EAAQC,aAAWJ,GACnBK,EAAMC,eACV,SAACC,UAAuBC,MAAQD,EAARC,CAAeL,KACvC,CAACA,UAEI,CAAEA,MAAAA,EAAOE,IAAAA,ICRZI,EAAU,SAACC,UACfA,GAAmC,IAA5BC,OAAOC,KAAKF,GAAKG,QAAgBH,EAAII,cAAgBH,QAEjDI,EAAe,qBACVb,IAARG,IAAAA,uBADsBW,2BAAAA,yBAEvBA,EACJC,KAAI,SAAAV,OAMGW,EAAcb,EAAIE,UACjBE,EAAQS,GAAe,GAAKC,MAAQD,MAE5CE,KAAK,MCnBJC,EAAOhB,MAAI,CACfiB,UAAW,aACXC,OAAQ,EACRC,QAAS,EACTC,SAAU,EACVC,SAAU,OACVC,KAAM,UACNC,cAAe,WACfC,wBAAyB,gBAKrBC,EAAQzB,MAAI,CAChB0B,QAAS,UAGLC,EAAO3B,MAAI,CACf4B,UAAW,SAGPC,EAAQ7B,MAAI,CAChB8B,eAAgB,WAChBC,cAAe,IAKXC,EAAIhC,MAAI,CACZiC,eAAgB,OAChBC,YAAa,iBAGTC,EAAQnC,MAAI,CAChBoC,OAAQ,OACRC,UAAW,qBACY,CACnBC,QAAS,SAOTC,EAASvC,MAAI,CACjB0B,QAAS,QACTc,WAAY,OACZC,WAAY,cACZC,UAAW,SACXR,YAAa,iBAGTS,EAAQ3C,MAAI,CAChB0B,QAAS,QACTc,WAAY,OACZH,UAAW,gBACO,CACdX,QAAS,0CAEwB,CACjCkB,iBAAkB,WAsBXC,EAAQ,CACnBC,QAASrB,EACTsB,MAAOtB,EACPuB,QAASvB,EACTwB,WAAYxB,EACZyB,OAAQzB,EACR0B,OAAQ1B,EACR2B,OAAQ3B,EACR4B,OAAQ5B,EACR6B,KAAM7B,EACN8B,IAAK9B,EACL+B,QAAS/B,EACTgC,GAAI9B,EACJ+B,GAAI/B,EACJgC,WAAYxB,EACZyB,EAAGzB,EACHH,EAAAA,EACAhB,KAAAA,EACAa,MAAAA,EACAgC,OApCa7D,MAAI,CACjB0B,QAAS,QACTc,WAAY,OACZH,UAAW,iBACQ,CACfX,QAAS,WAgCba,OAAAA,EACAuB,SA5Be9D,MAAI,CACnB0B,QAAS,QACTc,WAAY,SA2BZG,MAAAA,+GFxFyD,mBAGrDoB,gBAACpE,EAAQqE,UAASC,QAFtBnE,SACAoE,oDGFuB,gBACvBC,IAAAA,YACAnE,IAAKW,aAAS,KACdyD,IAAAA,YACAC,UAAAA,aAAY,KASNC,EAAgBD,EAAUE,SAAS1B,EAAM7B,MAAQ,GAAK6B,EAAM7B,KAC5DwD,EACe,iBAAZL,EACHE,EAAUE,SAAU1B,EAAoCsB,IACtD,GACCtB,EAAoCsB,GACvC,GAKAM,EAAWC,MAAMC,QAAQP,GAC3BA,EAAQxD,KAAI,SAAAgE,SAAM,CAAER,QAASQ,MAC7B,CAAC,CAAER,QAAAA,UASA,CACLE,EACAE,EAVwB9D,eAAgB+D,GAMlB/D,EAAaC,GAOnC0D,GAECQ,OAAOC,SACP/D,KAAK"}
|
|
1
|
+
{"version":3,"file":"system.cjs.production.min.js","sources":["../src/normalize.ts","../src/useTheme.tsx","../src/Element.tsx","../src/useClassname.ts","../src/reset.ts","../src/useStyles.ts"],"sourcesContent":["import { ElementType } from 'react';\n\nconst base = {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n fontFamily: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n} as const;\n\n// Content\n// ---------------\nconst block = {\n display: 'block',\n} as const;\n\nconst list = {\n // empty\n} as const;\n\nconst table = {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n} as const;\n\n// Typography\n// ---------------\nconst a = {\n textDecoration: 'none',\n touchAction: 'manipulation',\n} as const;\n\nconst quote = {\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n} as const;\n\n// Form Elements\n// ---------------\nconst button = {\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation',\n} as const;\n\nconst input = {\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n} as const;\n\nconst select = {\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n} as const;\n\nconst textarea = {\n display: 'block',\n appearance: 'none',\n} as const;\n\n// Reset\n// ---------------\nconst reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n\nexport type NormalizedElement = keyof typeof reset;\nconst isKnownElement = (input: string): input is NormalizedElement =>\n input in reset;\n\n/**\n * Helper to conveniently get reset styles.\n */\nexport const getNormalizedStyles = (input?: ElementType): object => {\n /**\n * If a React component is given, we don't apply any reset styles\n * and return the base reset.\n */\n if (typeof input !== 'string') {\n return reset.base;\n }\n\n /**\n * Try to find the reset style for a HTML element. If the element\n * is not included return empty styles.\n */\n return isKnownElement(input) ? reset[input] : {};\n};\n","import React, { createContext, useCallback, useContext } from 'react';\nimport { css as themeUi } from '@theme-ui/css';\nimport { Theme } from '@marigold/system';\n\nimport { StyleObject } from './types';\n\nconst Context = createContext<Theme>({});\n\nexport const useTheme = () => {\n const theme = useContext(Context);\n const css = useCallback(\n (style: StyleObject) => themeUi(style)(theme),\n [theme]\n );\n return { theme, css };\n};\n\nexport type ThemeProviderProps = { theme: any };\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme,\n children,\n}) => <Context.Provider value={theme}>{children}</Context.Provider>;\n","import { jsx } from '@emotion/react';\nimport { forwardRef } from 'react';\nimport {\n PolymorphicPropsWithRef,\n PolymorphicComponentWithRef,\n} from '@marigold/types';\n\nimport { getNormalizedStyles } from './normalize';\nimport { CSSObject } from './types';\nimport { useTheme } from './useTheme';\n\nexport type ElementOwnProps = {\n css?: CSSObject;\n variant?: string | string[];\n};\n\nexport type ElementProps = PolymorphicPropsWithRef<ElementOwnProps, 'div'>;\n\n/**\n * Function expression to check if there is any falsy value or empty object\n */\nconst isNotEmpty = (val: any) =>\n !(val && Object.keys(val).length === 0 && val.constructor === Object);\n\n/**\n * Get the normalized base styles\n */\nconst baseStyles = getNormalizedStyles('base');\n\nexport const Element: PolymorphicComponentWithRef<ElementOwnProps, 'div'> =\n forwardRef(\n ({ as = 'div', css: styles = {}, variant, children, ...props }, ref) => {\n const { css } = useTheme();\n\n /**\n * Transform variant input for `@theme-ui/css`\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n\n return jsx(\n as,\n {\n ...props,\n ...{\n css: [\n baseStyles,\n getNormalizedStyles(as),\n ...variants.map(v => css(v)),\n css(styles),\n ].filter(isNotEmpty),\n },\n ref,\n },\n children\n );\n }\n );\n","import { css as emotion } from '@emotion/css';\nimport { StyleObject } from './types';\nimport { useTheme } from './useTheme';\n\n// 🤫 https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object\n// lodash.isEmpty is tooo much KBs!\nconst isEmpty = (val: any) =>\n val && Object.keys(val).length === 0 && val.constructor === Object;\n\nexport const useClassname = (...styles: StyleObject[]) => {\n const { css } = useTheme();\n return styles\n .map(style => {\n /**\n * emotion will create a `css-0` class whenever an empty object is\n * passed. Since this makes debugging harder we'll do not pass empty\n * objects to emotion.\n */\n const themedStyle = css(style);\n return isEmpty(themedStyle) ? '' : emotion(themedStyle);\n })\n .join(' ');\n};\n","import { css } from '@emotion/css';\n\nconst base = css({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n font: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n});\n\n// Content\n// ---------------\nconst block = css({\n display: 'block',\n});\n\nconst list = css({\n // empty\n});\n\nconst table = css({\n borderCollapse: 'collapse',\n borderSpacing: 0,\n});\n\n// Typography\n// ---------------\nconst a = css({\n textDecoration: 'none',\n touchAction: 'manipulation',\n});\n\nconst quote = css({\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n});\n\n// Form Elements\n// ---------------\nconst button = css({\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation',\n});\n\nconst input = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n});\n\nconst select = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n});\n\nconst textarea = css({\n display: 'block',\n appearance: 'none',\n});\n\n// Reset\n// ---------------\nexport const reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n","import { ElementType } from 'react';\nimport { reset } from './reset';\nimport { CSSObject } from './types';\nimport { useClassname } from './useClassname';\n\nexport type UseStyleInput = {\n element?: ElementType;\n css?: Omit<CSSObject, 'variant' | 'element'> & {\n variant?: never;\n element?: never;\n };\n variant?: string | string[];\n className?: string;\n};\n\n/**\n * Hook that can adds base styles, reset for certain elements, variants and custom styles\n */\nexport const useStyles = ({\n element,\n css: styles = {},\n variant,\n className = '',\n}: UseStyleInput) => {\n /**\n * Get reset styles. Base is always applied. An additional reset maybe applied\n * based on the passed element.\n *\n * We check the passed className if it already includes the reset styles so no\n * duplicates are applied.\n */\n const baseClassName = className.includes(reset.base) ? '' : reset.base;\n const resetClassName =\n typeof element === 'string'\n ? className.includes((reset as { [key: string]: string })[element])\n ? ''\n : (reset as { [key: string]: string })[element]\n : '';\n\n /**\n * Get variant styles (from theme).\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n const variantsClassName = useClassname(...variants);\n\n /**\n * Custom styles are applied \"on runtime\". They are usually controlled via component\n * props and can change between component instances.\n */\n const customClassName = useClassname(styles);\n\n return [\n baseClassName,\n resetClassName,\n variantsClassName,\n customClassName,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n};\n"],"names":["block","display","list","quote","quotes","selectors","content","reset","article","aside","details","figcaption","figure","footer","header","hgroup","menu","nav","section","ul","ol","blockquote","q","a","textDecoration","touchAction","base","boxSizing","margin","padding","minWidth","fontSize","fontFamily","verticalAlign","WebkitTapHighlightColor","table","borderCollapse","borderSpacing","select","appearance","button","background","textAlign","textarea","input","WebkitAppearance","getNormalizedStyles","isKnownElement","Context","createContext","useTheme","theme","useContext","css","useCallback","style","themeUi","isNotEmpty","val","Object","keys","length","constructor","baseStyles","Element","forwardRef","ref","as","styles","variant","children","props","variants","Array","isArray","map","v","jsx","filter","isEmpty","useClassname","themedStyle","emotion","join","font","React","Provider","value","element","className","baseClassName","includes","resetClassName","Boolean"],"mappings":"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"}
|
package/dist/system.esm.js
CHANGED
|
@@ -1,7 +1,162 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import React, { useContext, useCallback, createContext, forwardRef } from 'react';
|
|
3
|
+
import { css } from '@theme-ui/css';
|
|
1
4
|
import { css as css$1 } from '@emotion/css';
|
|
2
5
|
export { cache } from '@emotion/css';
|
|
3
|
-
|
|
4
|
-
|
|
6
|
+
|
|
7
|
+
function _extends() {
|
|
8
|
+
_extends = Object.assign || function (target) {
|
|
9
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
10
|
+
var source = arguments[i];
|
|
11
|
+
|
|
12
|
+
for (var key in source) {
|
|
13
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
14
|
+
target[key] = source[key];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
return _extends.apply(this, arguments);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
26
|
+
if (source == null) return {};
|
|
27
|
+
var target = {};
|
|
28
|
+
var sourceKeys = Object.keys(source);
|
|
29
|
+
var key, i;
|
|
30
|
+
|
|
31
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
32
|
+
key = sourceKeys[i];
|
|
33
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
34
|
+
target[key] = source[key];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return target;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var base = {
|
|
41
|
+
boxSizing: 'border-box',
|
|
42
|
+
margin: 0,
|
|
43
|
+
padding: 0,
|
|
44
|
+
minWidth: 0,
|
|
45
|
+
fontSize: '100%',
|
|
46
|
+
fontFamily: 'inherit',
|
|
47
|
+
verticalAlign: 'baseline',
|
|
48
|
+
WebkitTapHighlightColor: 'transparent'
|
|
49
|
+
}; // Content
|
|
50
|
+
// ---------------
|
|
51
|
+
|
|
52
|
+
var block = {
|
|
53
|
+
display: 'block'
|
|
54
|
+
};
|
|
55
|
+
var list = {// empty
|
|
56
|
+
};
|
|
57
|
+
var table = {
|
|
58
|
+
borderCollapse: 'collapse',
|
|
59
|
+
borderSpacing: 0
|
|
60
|
+
}; // Typography
|
|
61
|
+
// ---------------
|
|
62
|
+
|
|
63
|
+
var a = {
|
|
64
|
+
textDecoration: 'none',
|
|
65
|
+
touchAction: 'manipulation'
|
|
66
|
+
};
|
|
67
|
+
var quote = {
|
|
68
|
+
quotes: 'none',
|
|
69
|
+
selectors: {
|
|
70
|
+
'&:before, &:after': {
|
|
71
|
+
content: "''"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}; // Form Elements
|
|
75
|
+
// ---------------
|
|
76
|
+
|
|
77
|
+
var button = {
|
|
78
|
+
display: 'block',
|
|
79
|
+
appearance: 'none',
|
|
80
|
+
background: 'transparent',
|
|
81
|
+
textAlign: 'center',
|
|
82
|
+
touchAction: 'manipulation'
|
|
83
|
+
};
|
|
84
|
+
var input = {
|
|
85
|
+
display: 'block',
|
|
86
|
+
appearance: 'none',
|
|
87
|
+
selectors: {
|
|
88
|
+
'&::-ms-clear': {
|
|
89
|
+
display: 'none'
|
|
90
|
+
},
|
|
91
|
+
'&::-webkit-search-cancel-button': {
|
|
92
|
+
WebkitAppearance: 'none'
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
var select = {
|
|
97
|
+
display: 'block',
|
|
98
|
+
appearance: 'none',
|
|
99
|
+
selectors: {
|
|
100
|
+
'&::-ms-expand': {
|
|
101
|
+
display: 'none'
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
var textarea = {
|
|
106
|
+
display: 'block',
|
|
107
|
+
appearance: 'none'
|
|
108
|
+
}; // Reset
|
|
109
|
+
// ---------------
|
|
110
|
+
|
|
111
|
+
var reset = {
|
|
112
|
+
article: block,
|
|
113
|
+
aside: block,
|
|
114
|
+
details: block,
|
|
115
|
+
figcaption: block,
|
|
116
|
+
figure: block,
|
|
117
|
+
footer: block,
|
|
118
|
+
header: block,
|
|
119
|
+
hgroup: block,
|
|
120
|
+
menu: block,
|
|
121
|
+
nav: block,
|
|
122
|
+
section: block,
|
|
123
|
+
ul: list,
|
|
124
|
+
ol: list,
|
|
125
|
+
blockquote: quote,
|
|
126
|
+
q: quote,
|
|
127
|
+
a: a,
|
|
128
|
+
base: base,
|
|
129
|
+
table: table,
|
|
130
|
+
select: select,
|
|
131
|
+
button: button,
|
|
132
|
+
textarea: textarea,
|
|
133
|
+
input: input
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var isKnownElement = function isKnownElement(input) {
|
|
137
|
+
return input in reset;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Helper to conveniently get reset styles.
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
var getNormalizedStyles = function getNormalizedStyles(input) {
|
|
145
|
+
/**
|
|
146
|
+
* If a React component is given, we don't apply any reset styles
|
|
147
|
+
* and return the base reset.
|
|
148
|
+
*/
|
|
149
|
+
if (typeof input !== 'string') {
|
|
150
|
+
return reset.base;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Try to find the reset style for a HTML element. If the element
|
|
154
|
+
* is not included return empty styles.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
return isKnownElement(input) ? reset[input] : {};
|
|
159
|
+
};
|
|
5
160
|
|
|
6
161
|
var Context = /*#__PURE__*/createContext({});
|
|
7
162
|
var useTheme = function useTheme() {
|
|
@@ -22,6 +177,52 @@ var ThemeProvider = function ThemeProvider(_ref) {
|
|
|
22
177
|
}, children);
|
|
23
178
|
};
|
|
24
179
|
|
|
180
|
+
var _excluded = ["as", "css", "variant", "children"];
|
|
181
|
+
/**
|
|
182
|
+
* Function expression to check if there is any falsy value or empty object
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
var isNotEmpty = function isNotEmpty(val) {
|
|
186
|
+
return !(val && Object.keys(val).length === 0 && val.constructor === Object);
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Get the normalized base styles
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
var baseStyles = /*#__PURE__*/getNormalizedStyles('base');
|
|
194
|
+
var Element = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
195
|
+
var _ref$as = _ref.as,
|
|
196
|
+
as = _ref$as === void 0 ? 'div' : _ref$as,
|
|
197
|
+
_ref$css = _ref.css,
|
|
198
|
+
styles = _ref$css === void 0 ? {} : _ref$css,
|
|
199
|
+
variant = _ref.variant,
|
|
200
|
+
children = _ref.children,
|
|
201
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
202
|
+
|
|
203
|
+
var _useTheme = useTheme(),
|
|
204
|
+
css = _useTheme.css;
|
|
205
|
+
/**
|
|
206
|
+
* Transform variant input for `@theme-ui/css`
|
|
207
|
+
*/
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
var variants = Array.isArray(variant) ? variant.map(function (v) {
|
|
211
|
+
return {
|
|
212
|
+
variant: v
|
|
213
|
+
};
|
|
214
|
+
}) : [{
|
|
215
|
+
variant: variant
|
|
216
|
+
}];
|
|
217
|
+
return jsx(as, _extends({}, props, {
|
|
218
|
+
css: [baseStyles, getNormalizedStyles(as)].concat(variants.map(function (v) {
|
|
219
|
+
return css(v);
|
|
220
|
+
}), [css(styles)]).filter(isNotEmpty)
|
|
221
|
+
}, {
|
|
222
|
+
ref: ref
|
|
223
|
+
}), children);
|
|
224
|
+
});
|
|
225
|
+
|
|
25
226
|
// lodash.isEmpty is tooo much KBs!
|
|
26
227
|
|
|
27
228
|
var isEmpty = function isEmpty(val) {
|
|
@@ -47,7 +248,7 @@ var useClassname = function useClassname() {
|
|
|
47
248
|
}).join(' ');
|
|
48
249
|
};
|
|
49
250
|
|
|
50
|
-
var base = /*#__PURE__*/css$1({
|
|
251
|
+
var base$1 = /*#__PURE__*/css$1({
|
|
51
252
|
boxSizing: 'border-box',
|
|
52
253
|
margin: 0,
|
|
53
254
|
padding: 0,
|
|
@@ -59,23 +260,22 @@ var base = /*#__PURE__*/css$1({
|
|
|
59
260
|
}); // Content
|
|
60
261
|
// ---------------
|
|
61
262
|
|
|
62
|
-
var block = /*#__PURE__*/css$1({
|
|
263
|
+
var block$1 = /*#__PURE__*/css$1({
|
|
63
264
|
display: 'block'
|
|
64
265
|
});
|
|
65
|
-
var list = /*#__PURE__*/css$1({
|
|
66
|
-
listStyle: 'none'
|
|
266
|
+
var list$1 = /*#__PURE__*/css$1({// empty
|
|
67
267
|
});
|
|
68
|
-
var table = /*#__PURE__*/css$1({
|
|
268
|
+
var table$1 = /*#__PURE__*/css$1({
|
|
69
269
|
borderCollapse: 'collapse',
|
|
70
270
|
borderSpacing: 0
|
|
71
271
|
}); // Typography
|
|
72
272
|
// ---------------
|
|
73
273
|
|
|
74
|
-
var a = /*#__PURE__*/css$1({
|
|
274
|
+
var a$1 = /*#__PURE__*/css$1({
|
|
75
275
|
textDecoration: 'none',
|
|
76
276
|
touchAction: 'manipulation'
|
|
77
277
|
});
|
|
78
|
-
var quote = /*#__PURE__*/css$1({
|
|
278
|
+
var quote$1 = /*#__PURE__*/css$1({
|
|
79
279
|
quotes: 'none',
|
|
80
280
|
selectors: {
|
|
81
281
|
'&:before, &:after': {
|
|
@@ -85,14 +285,14 @@ var quote = /*#__PURE__*/css$1({
|
|
|
85
285
|
}); // Form Elements
|
|
86
286
|
// ---------------
|
|
87
287
|
|
|
88
|
-
var button = /*#__PURE__*/css$1({
|
|
288
|
+
var button$1 = /*#__PURE__*/css$1({
|
|
89
289
|
display: 'block',
|
|
90
290
|
appearance: 'none',
|
|
91
291
|
background: 'transparent',
|
|
92
292
|
textAlign: 'center',
|
|
93
293
|
touchAction: 'manipulation'
|
|
94
294
|
});
|
|
95
|
-
var input = /*#__PURE__*/css$1({
|
|
295
|
+
var input$1 = /*#__PURE__*/css$1({
|
|
96
296
|
display: 'block',
|
|
97
297
|
appearance: 'none',
|
|
98
298
|
selectors: {
|
|
@@ -104,7 +304,7 @@ var input = /*#__PURE__*/css$1({
|
|
|
104
304
|
}
|
|
105
305
|
}
|
|
106
306
|
});
|
|
107
|
-
var select = /*#__PURE__*/css$1({
|
|
307
|
+
var select$1 = /*#__PURE__*/css$1({
|
|
108
308
|
display: 'block',
|
|
109
309
|
appearance: 'none',
|
|
110
310
|
selectors: {
|
|
@@ -113,35 +313,35 @@ var select = /*#__PURE__*/css$1({
|
|
|
113
313
|
}
|
|
114
314
|
}
|
|
115
315
|
});
|
|
116
|
-
var textarea = /*#__PURE__*/css$1({
|
|
316
|
+
var textarea$1 = /*#__PURE__*/css$1({
|
|
117
317
|
display: 'block',
|
|
118
318
|
appearance: 'none'
|
|
119
319
|
}); // Reset
|
|
120
320
|
// ---------------
|
|
121
321
|
|
|
122
|
-
var reset = {
|
|
123
|
-
article: block,
|
|
124
|
-
aside: block,
|
|
125
|
-
details: block,
|
|
126
|
-
figcaption: block,
|
|
127
|
-
figure: block,
|
|
128
|
-
footer: block,
|
|
129
|
-
header: block,
|
|
130
|
-
hgroup: block,
|
|
131
|
-
menu: block,
|
|
132
|
-
nav: block,
|
|
133
|
-
section: block,
|
|
134
|
-
ul: list,
|
|
135
|
-
ol: list,
|
|
136
|
-
blockquote: quote,
|
|
137
|
-
q: quote,
|
|
138
|
-
a: a,
|
|
139
|
-
base: base,
|
|
140
|
-
table: table,
|
|
141
|
-
select: select,
|
|
142
|
-
button: button,
|
|
143
|
-
textarea: textarea,
|
|
144
|
-
input: input
|
|
322
|
+
var reset$1 = {
|
|
323
|
+
article: block$1,
|
|
324
|
+
aside: block$1,
|
|
325
|
+
details: block$1,
|
|
326
|
+
figcaption: block$1,
|
|
327
|
+
figure: block$1,
|
|
328
|
+
footer: block$1,
|
|
329
|
+
header: block$1,
|
|
330
|
+
hgroup: block$1,
|
|
331
|
+
menu: block$1,
|
|
332
|
+
nav: block$1,
|
|
333
|
+
section: block$1,
|
|
334
|
+
ul: list$1,
|
|
335
|
+
ol: list$1,
|
|
336
|
+
blockquote: quote$1,
|
|
337
|
+
q: quote$1,
|
|
338
|
+
a: a$1,
|
|
339
|
+
base: base$1,
|
|
340
|
+
table: table$1,
|
|
341
|
+
select: select$1,
|
|
342
|
+
button: button$1,
|
|
343
|
+
textarea: textarea$1,
|
|
344
|
+
input: input$1
|
|
145
345
|
};
|
|
146
346
|
|
|
147
347
|
/**
|
|
@@ -163,8 +363,8 @@ var useStyles = function useStyles(_ref) {
|
|
|
163
363
|
* We check the passed className if it already includes the reset styles so no
|
|
164
364
|
* duplicates are applied.
|
|
165
365
|
*/
|
|
166
|
-
var baseClassName = className.includes(reset.base) ? '' : reset.base;
|
|
167
|
-
var resetClassName = typeof element === 'string' ? className.includes(reset[element]) ? '' : reset[element] : '';
|
|
366
|
+
var baseClassName = className.includes(reset$1.base) ? '' : reset$1.base;
|
|
367
|
+
var resetClassName = typeof element === 'string' ? className.includes(reset$1[element]) ? '' : reset$1[element] : '';
|
|
168
368
|
/**
|
|
169
369
|
* Get variant styles (from theme).
|
|
170
370
|
*/
|
|
@@ -186,5 +386,5 @@ var useStyles = function useStyles(_ref) {
|
|
|
186
386
|
return [baseClassName, resetClassName, variantsClassName, customClassName, className].filter(Boolean).join(' ');
|
|
187
387
|
};
|
|
188
388
|
|
|
189
|
-
export { ThemeProvider, useClassname, useStyles, useTheme };
|
|
389
|
+
export { Element, ThemeProvider, useClassname, useStyles, useTheme };
|
|
190
390
|
//# sourceMappingURL=system.esm.js.map
|
package/dist/system.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.esm.js","sources":["../src/useTheme.tsx","../src/useClassname.ts","../src/reset.ts","../src/useStyles.ts"],"sourcesContent":["import React, { createContext, useCallback, useContext } from 'react';\nimport { css as themeUi } from '@theme-ui/css';\nimport { Theme } from '@marigold/system';\n\nimport { StyleObject } from './types';\n\nconst Context = createContext<Theme>({});\n\nexport const useTheme = () => {\n const theme = useContext(Context);\n const css = useCallback(\n (style: StyleObject) => themeUi(style)(theme),\n [theme]\n );\n return { theme, css };\n};\n\nexport type ThemeProviderProps = { theme: any };\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme,\n children,\n}) => <Context.Provider value={theme}>{children}</Context.Provider>;\n","import { css as emotion } from '@emotion/css';\nimport { StyleObject } from './types';\nimport { useTheme } from './useTheme';\n\n// 🤫 https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object\n// lodash.isEmpty is tooo much KBs!\nconst isEmpty = (val: any) =>\n val && Object.keys(val).length === 0 && val.constructor === Object;\n\nexport const useClassname = (...styles: StyleObject[]) => {\n const { css } = useTheme();\n return styles\n .map(style => {\n /**\n * emotion will create a `css-0` class whenever an empty object is\n * passed. Since this makes debugging harder we'll do not pass empty\n * objects to emotion.\n */\n const themedStyle = css(style);\n return isEmpty(themedStyle) ? '' : emotion(themedStyle);\n })\n .join(' ');\n};\n","import { css } from '@emotion/css';\n\nconst base = css({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n font: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n});\n\n// Content\n// ---------------\nconst block = css({\n display: 'block',\n});\n\nconst list = css({\n listStyle: 'none',\n});\n\nconst table = css({\n borderCollapse: 'collapse',\n borderSpacing: 0,\n});\n\n// Typography\n// ---------------\nconst a = css({\n textDecoration: 'none',\n touchAction: 'manipulation'\n});\n\nconst quote = css({\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n});\n\n// Form Elements\n// ---------------\nconst button = css({\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation'\n});\n\nconst input = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n});\n\nconst select = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n});\n\nconst textarea = css({\n display: 'block',\n appearance: 'none',\n});\n\n// Reset\n// ---------------\nexport const reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n","import { ElementType } from 'react';\nimport { reset } from './reset';\nimport { CSSObject } from './types';\nimport { useClassname } from './useClassname';\n\nexport type UseStyleInput = {\n element?: ElementType;\n css?: Omit<CSSObject, 'variant' | 'element'> & {\n variant?: never;\n element?: never;\n };\n variant?: string | string[];\n className?: string;\n};\n\n/**\n * Hook that can adds base styles, reset for certain elements, variants and custom styles\n */\nexport const useStyles = ({\n element,\n css: styles = {},\n variant,\n className = '',\n}: UseStyleInput) => {\n /**\n * Get reset styles. Base is always applied. An additional reset maybe applied\n * based on the passed element.\n *\n * We check the passed className if it already includes the reset styles so no\n * duplicates are applied.\n */\n const baseClassName = className.includes(reset.base) ? '' : reset.base;\n const resetClassName =\n typeof element === 'string'\n ? className.includes((reset as { [key: string]: string })[element])\n ? ''\n : (reset as { [key: string]: string })[element]\n : '';\n\n /**\n * Get variant styles (from theme).\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n const variantsClassName = useClassname(...variants);\n\n /**\n * Custom styles are applied \"on runtime\". They are usually controlled via component\n * props and can change between component instances.\n */\n const customClassName = useClassname(styles);\n\n return [\n baseClassName,\n resetClassName,\n variantsClassName,\n customClassName,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n};\n"],"names":["Context","createContext","useTheme","theme","useContext","css","useCallback","style","themeUi","ThemeProvider","children","React","Provider","value","isEmpty","val","Object","keys","length","constructor","useClassname","styles","map","themedStyle","emotion","join","base","boxSizing","margin","padding","minWidth","fontSize","font","verticalAlign","WebkitTapHighlightColor","block","display","list","listStyle","table","borderCollapse","borderSpacing","a","textDecoration","touchAction","quote","quotes","selectors","content","button","appearance","background","textAlign","input","WebkitAppearance","select","textarea","reset","article","aside","details","figcaption","figure","footer","header","hgroup","menu","nav","section","ul","ol","blockquote","q","useStyles","element","variant","className","baseClassName","includes","resetClassName","variants","Array","isArray","v","variantsClassName","customClassName","filter","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system.esm.js","sources":["../src/normalize.ts","../src/useTheme.tsx","../src/Element.tsx","../src/useClassname.ts","../src/reset.ts","../src/useStyles.ts"],"sourcesContent":["import { ElementType } from 'react';\n\nconst base = {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n fontFamily: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n} as const;\n\n// Content\n// ---------------\nconst block = {\n display: 'block',\n} as const;\n\nconst list = {\n // empty\n} as const;\n\nconst table = {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n} as const;\n\n// Typography\n// ---------------\nconst a = {\n textDecoration: 'none',\n touchAction: 'manipulation',\n} as const;\n\nconst quote = {\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n} as const;\n\n// Form Elements\n// ---------------\nconst button = {\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation',\n} as const;\n\nconst input = {\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n} as const;\n\nconst select = {\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n} as const;\n\nconst textarea = {\n display: 'block',\n appearance: 'none',\n} as const;\n\n// Reset\n// ---------------\nconst reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n\nexport type NormalizedElement = keyof typeof reset;\nconst isKnownElement = (input: string): input is NormalizedElement =>\n input in reset;\n\n/**\n * Helper to conveniently get reset styles.\n */\nexport const getNormalizedStyles = (input?: ElementType): object => {\n /**\n * If a React component is given, we don't apply any reset styles\n * and return the base reset.\n */\n if (typeof input !== 'string') {\n return reset.base;\n }\n\n /**\n * Try to find the reset style for a HTML element. If the element\n * is not included return empty styles.\n */\n return isKnownElement(input) ? reset[input] : {};\n};\n","import React, { createContext, useCallback, useContext } from 'react';\nimport { css as themeUi } from '@theme-ui/css';\nimport { Theme } from '@marigold/system';\n\nimport { StyleObject } from './types';\n\nconst Context = createContext<Theme>({});\n\nexport const useTheme = () => {\n const theme = useContext(Context);\n const css = useCallback(\n (style: StyleObject) => themeUi(style)(theme),\n [theme]\n );\n return { theme, css };\n};\n\nexport type ThemeProviderProps = { theme: any };\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme,\n children,\n}) => <Context.Provider value={theme}>{children}</Context.Provider>;\n","import { jsx } from '@emotion/react';\nimport { forwardRef } from 'react';\nimport {\n PolymorphicPropsWithRef,\n PolymorphicComponentWithRef,\n} from '@marigold/types';\n\nimport { getNormalizedStyles } from './normalize';\nimport { CSSObject } from './types';\nimport { useTheme } from './useTheme';\n\nexport type ElementOwnProps = {\n css?: CSSObject;\n variant?: string | string[];\n};\n\nexport type ElementProps = PolymorphicPropsWithRef<ElementOwnProps, 'div'>;\n\n/**\n * Function expression to check if there is any falsy value or empty object\n */\nconst isNotEmpty = (val: any) =>\n !(val && Object.keys(val).length === 0 && val.constructor === Object);\n\n/**\n * Get the normalized base styles\n */\nconst baseStyles = getNormalizedStyles('base');\n\nexport const Element: PolymorphicComponentWithRef<ElementOwnProps, 'div'> =\n forwardRef(\n ({ as = 'div', css: styles = {}, variant, children, ...props }, ref) => {\n const { css } = useTheme();\n\n /**\n * Transform variant input for `@theme-ui/css`\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n\n return jsx(\n as,\n {\n ...props,\n ...{\n css: [\n baseStyles,\n getNormalizedStyles(as),\n ...variants.map(v => css(v)),\n css(styles),\n ].filter(isNotEmpty),\n },\n ref,\n },\n children\n );\n }\n );\n","import { css as emotion } from '@emotion/css';\nimport { StyleObject } from './types';\nimport { useTheme } from './useTheme';\n\n// 🤫 https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object\n// lodash.isEmpty is tooo much KBs!\nconst isEmpty = (val: any) =>\n val && Object.keys(val).length === 0 && val.constructor === Object;\n\nexport const useClassname = (...styles: StyleObject[]) => {\n const { css } = useTheme();\n return styles\n .map(style => {\n /**\n * emotion will create a `css-0` class whenever an empty object is\n * passed. Since this makes debugging harder we'll do not pass empty\n * objects to emotion.\n */\n const themedStyle = css(style);\n return isEmpty(themedStyle) ? '' : emotion(themedStyle);\n })\n .join(' ');\n};\n","import { css } from '@emotion/css';\n\nconst base = css({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n minWidth: 0,\n fontSize: '100%',\n font: 'inherit',\n verticalAlign: 'baseline',\n WebkitTapHighlightColor: 'transparent',\n});\n\n// Content\n// ---------------\nconst block = css({\n display: 'block',\n});\n\nconst list = css({\n // empty\n});\n\nconst table = css({\n borderCollapse: 'collapse',\n borderSpacing: 0,\n});\n\n// Typography\n// ---------------\nconst a = css({\n textDecoration: 'none',\n touchAction: 'manipulation',\n});\n\nconst quote = css({\n quotes: 'none',\n selectors: {\n '&:before, &:after': {\n content: \"''\",\n },\n },\n});\n\n// Form Elements\n// ---------------\nconst button = css({\n display: 'block',\n appearance: 'none',\n background: 'transparent',\n textAlign: 'center',\n touchAction: 'manipulation',\n});\n\nconst input = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-clear': {\n display: 'none',\n },\n '&::-webkit-search-cancel-button': {\n WebkitAppearance: 'none',\n },\n },\n});\n\nconst select = css({\n display: 'block',\n appearance: 'none',\n selectors: {\n '&::-ms-expand': {\n display: 'none',\n },\n },\n});\n\nconst textarea = css({\n display: 'block',\n appearance: 'none',\n});\n\n// Reset\n// ---------------\nexport const reset = {\n article: block,\n aside: block,\n details: block,\n figcaption: block,\n figure: block,\n footer: block,\n header: block,\n hgroup: block,\n menu: block,\n nav: block,\n section: block,\n ul: list,\n ol: list,\n blockquote: quote,\n q: quote,\n a,\n base,\n table,\n select,\n button,\n textarea,\n input,\n} as const;\n","import { ElementType } from 'react';\nimport { reset } from './reset';\nimport { CSSObject } from './types';\nimport { useClassname } from './useClassname';\n\nexport type UseStyleInput = {\n element?: ElementType;\n css?: Omit<CSSObject, 'variant' | 'element'> & {\n variant?: never;\n element?: never;\n };\n variant?: string | string[];\n className?: string;\n};\n\n/**\n * Hook that can adds base styles, reset for certain elements, variants and custom styles\n */\nexport const useStyles = ({\n element,\n css: styles = {},\n variant,\n className = '',\n}: UseStyleInput) => {\n /**\n * Get reset styles. Base is always applied. An additional reset maybe applied\n * based on the passed element.\n *\n * We check the passed className if it already includes the reset styles so no\n * duplicates are applied.\n */\n const baseClassName = className.includes(reset.base) ? '' : reset.base;\n const resetClassName =\n typeof element === 'string'\n ? className.includes((reset as { [key: string]: string })[element])\n ? ''\n : (reset as { [key: string]: string })[element]\n : '';\n\n /**\n * Get variant styles (from theme).\n */\n const variants = Array.isArray(variant)\n ? variant.map(v => ({ variant: v }))\n : [{ variant }];\n const variantsClassName = useClassname(...variants);\n\n /**\n * Custom styles are applied \"on runtime\". They are usually controlled via component\n * props and can change between component instances.\n */\n const customClassName = useClassname(styles);\n\n return [\n baseClassName,\n resetClassName,\n variantsClassName,\n customClassName,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n};\n"],"names":["base","boxSizing","margin","padding","minWidth","fontSize","fontFamily","verticalAlign","WebkitTapHighlightColor","block","display","list","table","borderCollapse","borderSpacing","a","textDecoration","touchAction","quote","quotes","selectors","content","button","appearance","background","textAlign","input","WebkitAppearance","select","textarea","reset","article","aside","details","figcaption","figure","footer","header","hgroup","menu","nav","section","ul","ol","blockquote","q","isKnownElement","getNormalizedStyles","Context","createContext","useTheme","theme","useContext","css","useCallback","style","themeUi","ThemeProvider","children","React","Provider","value","isNotEmpty","val","Object","keys","length","constructor","baseStyles","Element","forwardRef","ref","as","styles","variant","props","variants","Array","isArray","map","v","jsx","filter","isEmpty","useClassname","themedStyle","emotion","join","font","useStyles","element","className","baseClassName","includes","resetClassName","variantsClassName","customClassName","Boolean"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marigold/system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Marigold System Library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/system.esm.js",
|
|
7
7
|
"typings": "dist/index.d.ts",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@emotion/css": "11.
|
|
11
|
-
"@
|
|
10
|
+
"@emotion/css": "11.5.0",
|
|
11
|
+
"@emotion/react": "11.5.0",
|
|
12
|
+
"@theme-ui/css": "0.12.0",
|
|
13
|
+
"csstype": "3.0.9"
|
|
12
14
|
},
|
|
13
15
|
"peerDependencies": {
|
|
14
16
|
"react": "^16.x || ^17.0.0",
|
|
15
17
|
"react-dom": "^16.x || ^17.0.0"
|
|
16
18
|
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"csstype": "3.0.8"
|
|
19
|
-
},
|
|
20
19
|
"scripts": {
|
|
21
20
|
"build": "tsdx build --tsconfig tsconfig.build.json --transpileOnly",
|
|
22
21
|
"watch": "tsdx watch --tsconfig tsconfig.build.json --transpileOnly"
|