twind-logical
Version:
A CSS Logical Properties and Values plugin for twind.
8 lines (7 loc) • 15.2 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../src/index.ts", "../node_modules/distilt/shim-node-cjs.js"],
"sourcesContent": ["import type { Negatable, FromTheme, Plugin, Join } from 'twind'\n\ndeclare module 'twind' {\n interface Plugins {\n float: 'start' | 'end'\n clear: 'start' | 'end'\n text: 'start' | 'end'\n resize: 'block' | 'inline'\n\n overscroll: Join<'b' | 'i', 'auto' | 'contain' | 'none'>\n\n bs: FromTheme<'width'>\n is: FromTheme<'width'>\n min: Join<'is' | 'bs', FromTheme<'minWidth'>>\n max: Join<'is' | 'bs', FromTheme<'maxWidth'>>\n\n mlb: Negatable<FromTheme<'margin'>>\n mli: Negatable<FromTheme<'margin'>>\n\n mbs: Negatable<FromTheme<'margin'>>\n mbe: Negatable<FromTheme<'margin'>>\n mis: Negatable<FromTheme<'margin'>>\n mie: Negatable<FromTheme<'margin'>>\n\n plb: Negatable<FromTheme<'padding'>>\n pli: Negatable<FromTheme<'padding'>>\n\n pbs: Negatable<FromTheme<'padding'>>\n pbe: Negatable<FromTheme<'padding'>>\n pis: Negatable<FromTheme<'padding'>>\n pie: Negatable<FromTheme<'padding'>>\n\n space: Negatable<Join<'i' | 'b', FromTheme<'space'>>> | Join<'i' | 'b', 'reverse'>\n divide: Negatable<Join<'i' | 'b', FromTheme<'divideWidth'>>> | Join<'i' | 'b', 'reverse'>\n\n inset: Join<'block' | 'inline', FromTheme<'inset'>>\n block: Join<'start' | 'end', FromTheme<'inset'>>\n inline: Join<'start' | 'end', FromTheme<'inset'>>\n\n border: Join<'bs' | 'be' | 'is' | 'ie', FromTheme<'borderWidth'>>\n rounded: Join<'bs' | 'be' | 'is' | 'ie' | 'ss' | 'se' | 'es' | 'ee', FromTheme<'borderRadius'>>\n }\n}\n\nconst twindLogical: Record<string, Plugin> = {\n // Float (Not working)\n 'float-start': { float: 'inline-start' },\n 'float-end': { float: 'inline-end' },\n\n // Clear (Not working)\n 'clear-start': { clear: 'inline-start' },\n 'clear-end': { clear: 'inline-end' },\n\n // text align\n 'text-start': { textAlign: 'start' },\n 'text-end': { textAlign: 'end' },\n\n // resize (Not working)\n 'resize-block': { resize: 'block' },\n 'resize-inline': { resize: 'inline' },\n\n // overscroll\n 'overscroll-b-auto': { overscrollBehaviorBlock: 'auto' },\n 'overscroll-b-contain': { overscrollBehaviorBlock: 'contain' },\n 'overscroll-b-none': { overscrollBehaviorBlock: 'none' },\n 'overscroll-i-auto': { overscrollBehaviorInline: 'auto' },\n 'overscroll-i-contain': { overscrollBehaviorInline: 'contain' },\n 'overscroll-i-none': { overscrollBehaviorInline: 'none' },\n\n // block size\n bs: (params, { theme }) => {\n const value = theme('width', params)\n return value && { blockSize: value }\n },\n\n // min block size\n 'min-bs': (params, { theme }) => {\n const value = theme('minWidth', params)\n return value && { minBlockSize: value }\n },\n\n // max block size\n 'max-bs': (params, { theme }) => {\n const value = theme('maxWidth', params)\n return value && { maxBlockSize: value }\n },\n\n // inline size\n is: (params, { theme }) => {\n const value = theme('width', params)\n return value && { inlineSize: value }\n },\n\n // min inline size\n 'min-is': (params, { theme }) => {\n const value = theme('minWidth', params)\n return value && { minInlineSize: value }\n },\n\n // max inline size\n 'max-is': (params, { theme }) => {\n const value = theme('maxWidth', params)\n return value && { maxInlineSize: value }\n },\n\n // margin shorthand\n mlb: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginBlock: value }\n },\n mli: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginInline: value }\n },\n\n // margin single side\n mbs: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginBlockStart: value }\n },\n mbe: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginBlockEnd: value }\n },\n mis: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginInlineStart: value }\n },\n mie: (params, { theme }) => {\n const value = theme('margin', params)\n return value && { marginInlineEnd: value }\n },\n\n // padding shorthand\n plb: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingBlock: value }\n },\n pli: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingInline: value }\n },\n\n // padding single side\n pbs: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingBlockStart: value }\n },\n pbe: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingBlockEnd: value }\n },\n pis: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingInlineStart: value }\n },\n pie: (params, { theme }) => {\n const value = theme('padding', params)\n return value && { paddingInlineEnd: value }\n },\n\n // space between\n 'space-b': (params, { theme }) => {\n const value = theme('space', params)\n return (\n value && {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-b-reverse': '0',\n marginBlockStart: `calc(${value} * calc(1 - var(--tw-space-b-reverse)))`,\n marginBlockEnd: `calc(${value} * var(--tw-space-b-reverse))`,\n },\n }\n )\n },\n 'space-b-reverse': {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-b-reverse': '1',\n },\n },\n 'space-i': (params, { theme }) => {\n const value = theme('space', params)\n return (\n value && {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-i-reverse': '0',\n marginInlineStart: `calc(${value} * calc(1 - var(--tw-space-i-reverse)))`,\n marginInlineEnd: `calc(${value} * var(--tw-space-i-reverse))`,\n },\n }\n )\n },\n 'space-i-reverse': {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-space-i-reverse': '1',\n },\n },\n\n // inset\n 'inset-block': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetBlock: value }\n },\n 'inset-inline': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetInline: value }\n },\n\n // inset single value\n 'block-start': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetBlockStart: value }\n },\n 'block-end': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetBlockEnd: value }\n },\n 'inline-start': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetInlineStart: value }\n },\n 'inline-end': (params, { theme }) => {\n const value = theme('inset', params)\n return value && { insetInlineEnd: value }\n },\n\n // border width\n 'border-bs': (params, { theme }) => {\n const value = theme('borderWidth', params)\n return value && { borderBlockStartWidth: value }\n },\n 'border-be': (params, { theme }) => {\n const value = theme('borderWidth', params)\n return value && { borderBlockEndWidth: value }\n },\n 'border-is': (params, { theme }) => {\n const value = theme('borderWidth', params)\n return value && { borderInlineStartWidth: value }\n },\n 'border-ie': (params, { theme }) => {\n const value = theme('borderWidth', params)\n return value && { borderInlineEndWidth: value }\n },\n\n // border radius side\n 'rounded-bs': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderStartStartRadius: value, borderStartEndRadius: value }\n },\n 'rounded-be': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderEndStartRadius: value, borderEndEndRadius: value }\n },\n 'rounded-is': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderStartStartRadius: value, borderEndStartRadius: value }\n },\n 'rounded-ie': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderStartEndRadius: value, borderEndEndRadius: value }\n },\n\n // border radius corder\n 'rounded-ss': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderStartStartRadius: value }\n },\n 'rounded-se': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderStartEndRadius: value }\n },\n 'rounded-es': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderEndStartRadius: value }\n },\n 'rounded-ee': (params, { theme }) => {\n const value = theme('borderRadius', params)\n return value && { borderEndEndRadius: value }\n },\n\n // divide\n 'divide-b': (params, { theme }) => {\n const value = theme('divideWidth', params)\n return (\n value && {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-b-reverse': '0',\n borderBlockStartWidth: `calc(${value} * calc(1 - var(--tw-divide-b-reverse)))`,\n borderBlockEndWidth: `calc(${value} * var(--tw-divide-b-reverse))`,\n },\n }\n )\n },\n 'divide-b-reverse': {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-b-reverse': '1',\n },\n },\n 'divide-i': (params, { theme }) => {\n const value = theme('divideWidth', params)\n return (\n value && {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-i-reverse': '0',\n borderInlineStartWidth: `calc(${value} * calc(1 - var(--tw-divide-i-reverse)))`,\n borderInlineEndWidth: `calc(${value} * var(--tw-divide-i-reverse))`,\n },\n }\n )\n },\n 'divide-i-reverse': {\n '> :not([hidden]) ~ :not([hidden])': {\n '--tw-divide-i-reverse': '1',\n },\n },\n}\n\nexport default twindLogical\n", "import { pathToFileURL } from 'url'\n\nexport const shim_import_meta_url = pathToFileURL(__filename)\n"],
"mappings": "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",
"names": []
}