diff --git a/packages/system/src/spacing/index.ts b/packages/system/src/spacing/index.ts new file mode 100644 index 0000000000..a776ad2c9a --- /dev/null +++ b/packages/system/src/spacing/index.ts @@ -0,0 +1,2 @@ +export * from './spacing'; +export type { Spacing } from './types'; diff --git a/packages/system/src/spacing.test.js b/packages/system/src/spacing/spacing.test.js similarity index 100% rename from packages/system/src/spacing.test.js rename to packages/system/src/spacing/spacing.test.js diff --git a/packages/system/src/spacing.js b/packages/system/src/spacing/spacing.ts similarity index 97% rename from packages/system/src/spacing.js rename to packages/system/src/spacing/spacing.ts index 8355f39bd2..84992521f0 100644 --- a/packages/system/src/spacing.js +++ b/packages/system/src/spacing/spacing.ts @@ -1,5 +1,5 @@ -import { toPx } from './unit'; -import { getSpacing, generator, compose } from './theme'; +import { toPx } from '../unit'; +import { getSpacing, generator, compose } from '../theme'; const margin = props => generator({ diff --git a/packages/system/src/spacing/types.ts b/packages/system/src/spacing/types.ts new file mode 100644 index 0000000000..e50cade9e6 --- /dev/null +++ b/packages/system/src/spacing/types.ts @@ -0,0 +1,128 @@ +import { spacing } from '@gympass/yoga-tokens'; + +type SpacingValues = typeof spacing | number | string; + +type Margin = { + margin?: SpacingValues; + m?: SpacingValues; +}; + +type MarginTop = { + marginTop?: SpacingValues; + mt?: SpacingValues; +}; + +type MarginRight = { + marginRight?: SpacingValues; + mr?: SpacingValues; +}; + +type MarginBottom = { + marginBottom?: SpacingValues; + mb?: SpacingValues; +}; + +type MarginLeft = { + marginLeft?: SpacingValues; + ml?: SpacingValues; +}; + +type MarginHorizontal = { + marginHorizontal?: SpacingValues; + mx?: SpacingValues; + mh?: SpacingValues; +}; + +type MarginVertical = { + marginVertical?: SpacingValues; + my?: SpacingValues; + mv?: SpacingValues; +}; + +type Padding = { + padding?: SpacingValues; + p?: SpacingValues; +}; + +type PaddingTop = { + paddingTop?: SpacingValues; + pt?: SpacingValues; +}; + +type PaddingRight = { + paddingRight?: SpacingValues; + pr?: SpacingValues; +}; + +type PaddingBottom = { + paddingBottom?: SpacingValues; + pb?: SpacingValues; +}; + +type PaddingLeft = { + paddingLeft?: SpacingValues; + pl?: SpacingValues; +}; + +type PaddingHorizontal = { + paddingHorizontal?: SpacingValues; + px?: SpacingValues; + ph?: SpacingValues; +}; + +type PaddingVertical = { + paddingVertical?: SpacingValues; + py?: SpacingValues; + pv?: SpacingValues; +}; + +type Width = { + width?: SpacingValues; + w?: SpacingValues; +}; + +type MaxWidth = { + maxWidth?: SpacingValues; + maxW?: SpacingValues; +}; + +type MinWidth = { + minWidth?: SpacingValues; + minW?: SpacingValues; +}; + +type Height = { + height?: SpacingValues; + h?: SpacingValues; +}; + +type MaxHeight = { + maxHeight?: SpacingValues; + maxH?: SpacingValues; +}; + +type MinHeight = { + minHeight?: SpacingValues; + minH?: SpacingValues; +}; + +export type Spacing = Margin & + MarginTop & + MarginRight & + MarginBottom & + MarginLeft & + MarginHorizontal & + MarginVertical & + Padding & + PaddingTop & + PaddingRight & + PaddingBottom & + PaddingLeft & + PaddingHorizontal & + PaddingVertical & + Width & + MaxWidth & + MinWidth & + Height & + MaxHeight & + MinHeight;