@styleless-ui/react
Version:
Completely unstyled, headless and accessible React UI components.
1 lines • 1.98 kB
JavaScript
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var l,r=1,t=arguments.length;r<t;r++)for(var a in l=arguments[r])Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a]);return e},e.apply(this,arguments)},l=this&&this.__rest||function(e,l){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&l.indexOf(t)<0&&(r[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(t=Object.getOwnPropertySymbols(e);a<t.length;a++)l.indexOf(t[a])<0&&Object.prototype.propertyIsEnumerable.call(e,t[a])&&(r[t[a]]=e[t[a]])}return r};import{jsx as r,Fragment as t,jsxs as a}from"react/jsx-runtime";import*as i from"react";import{componentWithForwardedRef as n,useDeterministicId as s}from"../../utils";import o from"../context";import{ListLabel as b,ListRoot as c}from"../slots";import d from"../Tab";var p=n((function(n,p){var f=n.label,u=n.children,y=n.id,m=n.classes,v=l(n,["label","children","id","classes"]),h=i.useContext(o),O=s(y,"styleless-ui__tablist"),L=O?"".concat(O,"__label"):void 0,g=function(e){var l={};if("string"==typeof e)l.visibleLabel=e;else if("screenReaderLabel"in e)l.srOnlyLabel=e.screenReaderLabel;else{if(!("labelledBy"in e))throw new Error(["[StylelessUI][TabGroup.List]: Invalid `label` property.","The `label` property must be either a `string` or in shape of `{ screenReaderLabel: string; } | { labelledBy: string; }`"].join("\n"));l.labelledBy=e.labelledBy}return l}(f),j=0,x=i.Children.map(u,(function(e){if(!i.isValidElement(e))return null;if(e.type===d){var l={"data-index":j++};return i.cloneElement(e,l)}return e}));return a(t,{children:[g.visibleLabel&&r("span",e({id:L,"data-slot":b,className:null==m?void 0:m.label},{children:g.visibleLabel})),r("div",e({},v,{id:O,ref:p,role:"tablist","data-slot":c,className:null==m?void 0:m.root,"aria-label":g.srOnlyLabel,"aria-labelledby":g.visibleLabel?L:g.labelledBy,"aria-orientation":null==h?void 0:h.orientation},{children:x}))]})}));export default p;