UNPKG

@accelint/design-toolkit

Version:

An open-source component library to serve as part of the entire ecosystem of UX for Accelint.

4 lines (3 loc) 2.48 kB
'use client'; import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {CancelFill}from'@accelint/icons';import {createContext,useContext}from'react';import {useContextProps,Tag,TagGroup,TagList,composeRenderProps,Button}from'react-aria-components';import {Icon}from'../icon/index.js';import {SelectableChipStyles,DeletableChipStyles,ChipStyles,ChipStylesDefaults}from'./styles.js';const m=createContext(null);function P({children:e,...t}){return jsx(m.Provider,{value:t,children:e})}P.displayName="Chip.Provider";const b=createContext(false);function x({ref:e,...t}){[t,e]=useContextProps(t,e??null,m);const{children:o,className:s,dependencies:r,items:a,renderEmptyState:n,size:l="medium",...h}=t;return jsx(b.Provider,{value:true,children:jsx(P,{size:l,children:jsx(TagGroup,{...h,children:jsx(TagList,{ref:e,className:composeRenderProps(s,d=>I({className:d})),dependencies:r,items:a,renderEmptyState:n,children:o})})})})}x.displayName="Chip.List";const{chip:R}=SelectableChipStyles();function f({ref:e,...t}){[t,e]=useContextProps(t,e??null,m);const{className:o,size:s="medium",...r}=t;return jsx(Tag,{...r,ref:e,className:composeRenderProps(o,a=>R({className:a,size:s})),"data-size":s})}f.displayName="Chip.Selectable";const{chip:V,remove:G}=DeletableChipStyles();function N({ref:e,...t}){[t,e]=useContextProps(t,e??null,m);const{children:o,classNames:s,size:r="medium",textValue:a=typeof o=="string"?o:void 0,...n}=t;return jsx(Tag,{...n,ref:e,className:composeRenderProps(s?.chip,l=>V({className:l,size:r})),textValue:a,"data-size":r,children:composeRenderProps(o,(l,{allowsRemoving:h})=>{if(!h)throw new Error("You have a <Chip.Deletable> in a <Chip.List> that does not specify an onRemove handler.");return jsxs(Fragment,{children:[l,jsx(Button,{slot:"remove",className:composeRenderProps(s?.remove,d=>G({className:d})),children:jsx(Icon,{size:"small",children:jsx(CancelFill,{})})})]})})})}N.displayName="Chip.Deletable";const{list:I,chip:w}=ChipStyles();function c({ref:e,...t}){[t,e]=useContextProps(t,e??null,m);const s=useContext(b)?Tag:"div",{className:r,size:a="medium",variant:n=ChipStylesDefaults.variant,...l}=t;return jsx(Icon.Provider,{size:a==="medium"?"small":"xsmall",children:jsx(s,{...l,ref:e,className:w({size:a,variant:n,className:r}),"data-size":a})})}c.displayName="Chip",c.Provider=P,c.List=x,c.Deletable=N,c.Selectable=f;export{c as Chip,m as ChipContext};//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map