@wordpress/components
Version:
UI components for WordPress.
8 lines (7 loc) • 2.02 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/item-group/item/hook.ts"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { useContextSystem } from '../../context';\nimport * as styles from '../styles';\nimport { useItemGroupContext } from '../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nexport function useItem(props) {\n const {\n as: asProp,\n className,\n onClick,\n role = 'listitem',\n size: sizeProp,\n ...otherProps\n } = useContextSystem(props, 'Item');\n const {\n spacedAround,\n size: contextSize\n } = useItemGroupContext();\n const size = sizeProp || contextSize;\n const as = asProp || (typeof onClick !== 'undefined' ? 'button' : 'div');\n const cx = useCx();\n const classes = useMemo(() => cx((as === 'button' || as === 'a') && styles.unstyledButton(as), styles.itemSizes[size] || styles.itemSizes.medium, styles.item, spacedAround && styles.spacedAround, className), [as, className, cx, size, spacedAround]);\n const wrapperClassName = cx(styles.itemWrapper);\n return {\n as,\n className: classes,\n onClick,\n wrapperClassName,\n role,\n ...otherProps\n };\n}"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAwB;AAMxB,qBAAiC;AACjC,aAAwB;AACxB,IAAAA,kBAAoC;AACpC,oBAAsB;AACf,SAAS,QAAQ,OAAO;AAC7B,QAAM;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,MAAM;AAAA,IACN,GAAG;AAAA,EACL,QAAI,iCAAiB,OAAO,MAAM;AAClC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,MAAM;AAAA,EACR,QAAI,qCAAoB;AACxB,QAAM,OAAO,YAAY;AACzB,QAAM,KAAK,WAAW,OAAO,YAAY,cAAc,WAAW;AAClE,QAAM,SAAK,qBAAM;AACjB,QAAM,cAAU,wBAAQ,MAAM,IAAI,OAAO,YAAY,OAAO,QAAe,sBAAe,EAAE,GAAU,iBAAU,IAAI,KAAY,iBAAU,QAAe,aAAMA,iBAAuB,qBAAc,SAAS,GAAG,CAAC,IAAI,WAAW,IAAI,MAAMA,aAAY,CAAC;AACvP,QAAM,mBAAmB,GAAU,kBAAW;AAC9C,SAAO;AAAA,IACL;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;",
"names": ["import_context", "spacedAround"]
}