UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

1 lines 3.27 kB
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,l){void 0===l&&(l=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,l,i)}:function(e,t,r,l){void 0===l&&(l=r),e[l]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var r={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&t.indexOf(l)<0&&(r[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(l=Object.getOwnPropertySymbols(e);i<l.length;i++)t.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(e,l[i])&&(r[l[i]]=e[l[i]])}return r},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var jsx_runtime_1=require("react/jsx-runtime"),utils_1=require("../utils"),context_1=__importDefault(require("./context")),Slots=__importStar(require("./slots")),getLabelInfo=function(e){var t={};if("string"==typeof e)t.visibleLabel=e;else if("screenReaderLabel"in e)t.srOnlyLabel=e.screenReaderLabel;else{if(!("labelledBy"in e))throw new Error(["[StylelessUI][CheckGroup]: Invalid `label` property.","The `label` property must be either a `string` or in shape of `{ screenReaderLabel: string; } | { labelledBy: string; }`"].join("\n"));t.labelledBy=e.labelledBy}return t},CheckGroupBase=function(e,t){var r=e.label,l=e.children,i=e.id,n=e.classes,a=e.defaultValue,o=e.value,s=e.onChange,u=e.orientation,_=void 0===u?"vertical":u,c=__rest(e,["label","children","id","classes","defaultValue","value","onChange","orientation"]),d=(0,utils_1.useDeterministicId)(i,"styleless-ui__check-group"),f=d?"".concat(d,"__label"):void 0,b=getLabelInfo(r),p=(0,utils_1.useControlledProp)(o,a,[]),h=p[0],v=p[1];return(0,jsx_runtime_1.jsx)("div",__assign({},c,{id:d,ref:t,className:null==n?void 0:n.root,"data-slot":Slots.Root},{children:(0,jsx_runtime_1.jsxs)(context_1.default.Provider,__assign({value:{value:h,onChange:function(e,t){var r=e?h.concat(t):h.filter((function(e){return e!==t}));v(r),null==s||s(r)}}},{children:[b.visibleLabel&&(0,jsx_runtime_1.jsx)("span",__assign({id:f,"data-slot":Slots.Label,className:null==n?void 0:n.label},{children:b.visibleLabel})),(0,jsx_runtime_1.jsx)("div",__assign({role:"group","data-slot":Slots.Group,className:null==n?void 0:n.group,"aria-label":b.srOnlyLabel,"aria-orientation":_,"aria-labelledby":b.visibleLabel?f:b.labelledBy},{children:l}))]}))}))},CheckGroup=(0,utils_1.componentWithForwardedRef)(CheckGroupBase);exports.default=CheckGroup;