{"version":3,"file":"preset-line-clamp.dev.cjs","sources":["../src/line-clamp.ts"],"sourcesContent":["import { DEV } from 'distilt/env'\nimport {\n  AutocompleteProvider,\n  BaseTheme,\n  CSSObject,\n  Preset,\n  RuleResolver,\n  withAutocomplete,\n} from '@twind/core'\n\nimport { fromTheme } from '@twind/core'\n\nexport interface LineClampTheme extends BaseTheme {\n  lineClamp: Record<string, string>\n}\n\n// indirection wrapper to remove autocomplete functions from production bundles\nfunction withAutocomplete$(\n  resolver: RuleResolver<LineClampTheme>,\n  autocomplete: AutocompleteProvider<LineClampTheme> | false,\n): RuleResolver<LineClampTheme> {\n  if (DEV) {\n    return withAutocomplete(resolver, autocomplete)\n  }\n\n  return resolver\n}\n\nexport default function presetLineClamp(): Preset<LineClampTheme> {\n  return {\n    rules: [\n      ['line-clamp-none', { '-webkit-line-clamp': 'unset' }],\n      ['line-clamp-', fromTheme('lineClamp', ({ _ }) => lineClamp(_))],\n      [\n        'line-clamp-(\\\\d+)',\n        withAutocomplete$(\n          ({ 1: _ }) => lineClamp(_),\n          DEV && (() => ['1', '2', '3', '4', '5', '6']),\n        ),\n      ],\n    ],\n  }\n}\n\nfunction lineClamp(lines: string | number): CSSObject {\n  return {\n    overflow: 'hidden',\n    display: '-webkit-box',\n    '-webkit-box-orient': 'vertical',\n    '-webkit-line-clamp': `${lines}`,\n  }\n}\n"],"names":["lineClamp","lines","overflow","display","resolver","autocomplete","rules","fromTheme","_","withAutocomplete"],"mappings":";;AA4CA,SAASA,UAAUC,KAAsB,EAAa;IACpD,OAAO;QACLC,UAAU;QACVC,SAAS;QACT,sBAAsB;QACtB,sBAAsB,CAAC,EAAEF,MAAM,CAAC;IAClC;AACF;iBAvBe,WAAmD;QAZlE,+EAAA;IAEEG,UACAC;IAUA,OAAO;QACLC,OAAO;YACL;gBAAC;gBAAmB;oBAAE,sBAAsB;gBAAQ;aAAE;YACtD;gBAAC;gBAAeC,KAAAA,SAAAA,CAAU,aAAa,CAAC,EAAEC,EAAC,EAAE,GAAKR,UAAUQ;aAAI;YAChE;gBACE;iBAhBNJ,WAkBQ,CAAC,EAAE,GAAGI,EAAAA,EAAG,GAAKR,UAAUQ,IAjBhCH,eAkBgB,IAAM;wBAAC;wBAAK;wBAAK;wBAAK;wBAAK;wBAAK;qBAAI,EAf3CI,sBAAiBL,UAAUC;aAiB/B;SACF;IACH;AACF"}