{
  "version": 3,
  "sources": ["../../../../../src/lib/ui/components/primitives/Button.tsx"],
  "sourcesContent": ["import classnames from 'classnames'\nimport * as React from 'react'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { Spinner } from '../Spinner'\nimport { Icon } from './Icon'\nimport { Kbd } from './Kbd'\n\n/** @public */\nexport interface TLUiButtonProps extends React.HTMLAttributes<HTMLButtonElement> {\n\tloading?: boolean // TODO: loading spinner\n\tdisabled?: boolean\n\tlabel?: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\ticon?: TLUiIconType | Exclude<string, TLUiIconType>\n\tspinner?: boolean\n\ticonLeft?: TLUiIconType | Exclude<string, TLUiIconType>\n\tsmallIcon?: boolean\n\tkbd?: string\n\tisChecked?: boolean\n\tinvertIcon?: boolean\n\ttype: 'normal' | 'primary' | 'danger' | 'low' | 'icon' | 'tool' | 'menu' | 'help'\n}\n\n/** @public */\nexport const Button = React.forwardRef<HTMLButtonElement, TLUiButtonProps>(function Button(\n\t{\n\t\tlabel,\n\t\ticon,\n\t\tinvertIcon,\n\t\ticonLeft,\n\t\tsmallIcon,\n\t\tkbd,\n\t\tisChecked = false,\n\t\ttype,\n\t\tchildren,\n\t\tspinner,\n\t\t...props\n\t},\n\tref\n) {\n\tconst msg = useTranslation()\n\tconst labelStr = label ? msg(label) : ''\n\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\tdraggable={false}\n\t\t\ttype=\"button\"\n\t\t\t{...props}\n\t\t\ttitle={props.title ?? labelStr}\n\t\t\tclassName={classnames('tlui-button', `tlui-button__${type}`, props.className)}\n\t\t>\n\t\t\t{iconLeft && <Icon icon={iconLeft} className=\"tlui-button__icon-left\" small />}\n\t\t\t{children}\n\t\t\t{label && (\n\t\t\t\t<span className=\"tlui-button__label\" draggable={false}>\n\t\t\t\t\t{labelStr}\n\t\t\t\t\t{isChecked && <Icon icon=\"check\" />}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t{kbd && <Kbd>{kbd}</Kbd>}\n\t\t\t{icon && !spinner && (\n\t\t\t\t<Icon icon={icon} small={!!label || smallIcon} invertIcon={invertIcon} />\n\t\t\t)}\n\t\t\t{spinner && <Spinner />}\n\t\t</button>\n\t)\n})\n"],
  "mappings": "AAqDgB,cAGZ,YAHY;AArDhB,OAAO,gBAAgB;AACvB,YAAY,WAAW;AAEvB,SAAS,sBAAsB;AAE/B,SAAS,eAAe;AACxB,SAAS,YAAY;AACrB,SAAS,WAAW;AAkBb,MAAM,SAAS,MAAM,WAA+C,SAASA,QACnF;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GACA,KACC;AACD,QAAM,MAAM,eAAe;AAC3B,QAAM,WAAW,QAAQ,IAAI,KAAK,IAAI;AAEtC,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,MAAK;AAAA,MACJ,GAAG;AAAA,MACJ,OAAO,MAAM,SAAS;AAAA,MACtB,WAAW,WAAW,eAAe,gBAAgB,IAAI,IAAI,MAAM,SAAS;AAAA,MAE3E;AAAA,oBAAY,oBAAC,QAAK,MAAM,UAAU,WAAU,0BAAyB,OAAK,MAAC;AAAA,QAC3E;AAAA,QACA,SACA,qBAAC,UAAK,WAAU,sBAAqB,WAAW,OAC9C;AAAA;AAAA,UACA,aAAa,oBAAC,QAAK,MAAK,SAAQ;AAAA,WAClC;AAAA,QAEA,OAAO,oBAAC,OAAK,eAAI;AAAA,QACjB,QAAQ,CAAC,WACT,oBAAC,QAAK,MAAY,OAAO,CAAC,CAAC,SAAS,WAAW,YAAwB;AAAA,QAEvE,WAAW,oBAAC,WAAQ;AAAA;AAAA;AAAA,EACtB;AAEF,CAAC;",
  "names": ["Button"]
}
