@bone-ui/checkbox
Advanced tools
@@ -16,6 +16,5 @@ 'use strict'; | ||
| function _extends() { | ||
| _extends = Object.assign || function (target) { | ||
| _extends = Object.assign ? Object.assign.bind() : function (target) { | ||
| for (var i = 1; i < arguments.length; i++) { | ||
| var source = arguments[i]; | ||
| for (var key in source) { | ||
@@ -27,9 +26,6 @@ if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
| } | ||
| return target; | ||
| }; | ||
| return _extends.apply(this, arguments); | ||
| } | ||
| function _objectWithoutPropertiesLoose(source, excluded) { | ||
@@ -40,3 +36,2 @@ if (source == null) return {}; | ||
| var key, i; | ||
| for (i = 0; i < sourceKeys.length; i++) { | ||
@@ -47,3 +42,2 @@ key = sourceKeys[i]; | ||
| } | ||
| return target; | ||
@@ -60,4 +54,4 @@ } | ||
| var _e$target = e.target, | ||
| checked = _e$target.checked, | ||
| targeValue = _e$target.value; | ||
| checked = _e$target.checked, | ||
| targeValue = _e$target.value; | ||
| return checked ? [].concat(currentGroupValue, [targeValue]) : currentGroupValue.filter(function (i) { | ||
@@ -70,9 +64,6 @@ return i !== targeValue; | ||
| var _props$disabled; | ||
| var inputProps = {}; | ||
| var _useState = React.useState((_props$disabled = props.disabled) != null ? _props$disabled : false), | ||
| disabled = _useState[0], | ||
| setDisabled = _useState[1]; | ||
| disabled = _useState[0], | ||
| setDisabled = _useState[1]; | ||
| var context = useCheckboxGroupContext(); | ||
@@ -82,21 +73,16 @@ /** | ||
| */ | ||
| if (context != null && context.controlled) { | ||
| var _context$value; | ||
| props.checked = (_context$value = context.value) == null ? void 0 : _context$value.includes(props.value); | ||
| } | ||
| var _useState2 = React.useState(function () { | ||
| if (!context) return props.defaultChecked; | ||
| var groupvalue = context.value; | ||
| return groupvalue == null ? void 0 : groupvalue.includes(props.value); | ||
| }), | ||
| checkedState = _useState2[0], | ||
| setCheckedState = _useState2[1]; | ||
| if (!context) return props.defaultChecked; | ||
| var groupvalue = context.value; | ||
| return groupvalue == null ? void 0 : groupvalue.includes(props.value); | ||
| }), | ||
| checkedState = _useState2[0], | ||
| setCheckedState = _useState2[1]; | ||
| var _useControlledInfo = hooks.useControlledInfo(props.checked, checkedState), | ||
| controlled = _useControlledInfo.controlled, | ||
| checked = _useControlledInfo.value; | ||
| controlled = _useControlledInfo.controlled, | ||
| checked = _useControlledInfo.value; | ||
| hooks.useSafeLayoutEffect(function () { | ||
@@ -106,3 +92,2 @@ if (typeof props.disabled !== 'boolean') return; | ||
| }, [props.disabled]); | ||
| inputProps.onChange = function (e) { | ||
@@ -116,10 +101,7 @@ /** no context */ | ||
| /** has context */ | ||
| var _context$value2 = context.value, | ||
| groupValue = _context$value2 === void 0 ? [] : _context$value2; | ||
| groupValue = _context$value2 === void 0 ? [] : _context$value2; | ||
| var _e$target = e.target, | ||
| targetChecked = _e$target.checked, | ||
| targetValue = _e$target.value; | ||
| targetChecked = _e$target.checked, | ||
| targetValue = _e$target.value; | ||
| if (controlled) { | ||
@@ -131,6 +113,4 @@ setCheckedState(targetChecked); | ||
| } | ||
| props.onChange == null ? void 0 : props.onChange(e); | ||
| }; | ||
| inputProps.disabled = disabled; | ||
@@ -149,5 +129,4 @@ if (controlled) inputProps.checked = checked; | ||
| var checked = _ref.checked, | ||
| colorScheme = _ref.colorScheme; | ||
| colorScheme = _ref.colorScheme; | ||
| var atomicProps = {}; | ||
| if (!!checked) { | ||
@@ -157,3 +136,2 @@ atomicProps.borderColor = colorScheme; | ||
| } | ||
| return React__default.createElement(react.Box, Object.assign({ | ||
@@ -176,12 +154,10 @@ toCenter: true, | ||
| var children = props.children, | ||
| _props$colorScheme = props.colorScheme, | ||
| colorScheme = _props$colorScheme === void 0 ? 'brand500' : _props$colorScheme, | ||
| _props$render = props.render, | ||
| render = _props$render === void 0 ? checkboxDefaultRender : _props$render, | ||
| value = props.value, | ||
| defaultChecked = props.defaultChecked, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded); | ||
| _props$colorScheme = props.colorScheme, | ||
| colorScheme = _props$colorScheme === void 0 ? 'brand500' : _props$colorScheme, | ||
| _props$render = props.render, | ||
| render = _props$render === void 0 ? checkboxDefaultRender : _props$render, | ||
| value = props.value, | ||
| defaultChecked = props.defaultChecked, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded); | ||
| var context = useCheckboxGroupContext(); | ||
| var onChange = function onChange(e) { | ||
@@ -191,13 +167,10 @@ context == null ? void 0 : context.onChange(e); | ||
| }; | ||
| var _useCheckbox = useCheckbox(_extends({}, props, { | ||
| onChange: onChange | ||
| })), | ||
| inputProps = _useCheckbox.inputProps, | ||
| state = _useCheckbox.state; | ||
| var disabled = state.disabled; // TODO: need refactor | ||
| onChange: onChange | ||
| })), | ||
| inputProps = _useCheckbox.inputProps, | ||
| state = _useCheckbox.state; | ||
| var disabled = state.disabled; | ||
| // TODO: need refactor | ||
| var checkedProps = {}; | ||
| if (Reflect.has(props, 'defaultChecked')) { | ||
@@ -208,3 +181,2 @@ checkedProps.defaultChecked = defaultChecked; | ||
| } | ||
| return React__default.createElement(react.Box, Object.assign({ | ||
@@ -236,14 +208,12 @@ as: "label", | ||
| var _props$defaultValue = props.defaultValue, | ||
| defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue, | ||
| onChangeProp = props.onChange; // checkGroup inner state | ||
| defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue, | ||
| onChangeProp = props.onChange; | ||
| // checkGroup inner state | ||
| var _useState = React.useState(defaultValue), | ||
| state = _useState[0], | ||
| setState = _useState[1]; | ||
| state = _useState[0], | ||
| setState = _useState[1]; | ||
| var _useControlledInfo = hooks.useControlledInfo(props.value, state), | ||
| controlled = _useControlledInfo.controlled, | ||
| _useControlledInfo$va = _useControlledInfo.value, | ||
| groupValue = _useControlledInfo$va === void 0 ? [] : _useControlledInfo$va; | ||
| controlled = _useControlledInfo.controlled, | ||
| _useControlledInfo$va = _useControlledInfo.value, | ||
| groupValue = _useControlledInfo$va === void 0 ? [] : _useControlledInfo$va; | ||
| var setValue = React.useCallback(function (nextValue) { | ||
@@ -254,3 +224,2 @@ if (!controlled) setState(nextValue); | ||
| /** @example <CheckGroup onChange={...}></CheckGroup> */ | ||
| var onChange = React.useCallback(function (e) { | ||
@@ -271,10 +240,8 @@ var nextValue = getNextCheckboxGroupValue(e, groupValue); | ||
| var children = props.children, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded$1); | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded$1); | ||
| var _useCheckboxGroup = useCheckboxGroup(props), | ||
| value = _useCheckboxGroup.value, | ||
| onChange = _useCheckboxGroup.onChange, | ||
| setValue = _useCheckboxGroup.setValue, | ||
| controlled = _useCheckboxGroup.controlled; | ||
| value = _useCheckboxGroup.value, | ||
| onChange = _useCheckboxGroup.onChange, | ||
| setValue = _useCheckboxGroup.setValue, | ||
| controlled = _useCheckboxGroup.controlled; | ||
| var contextValue = React.useMemo(function () { | ||
@@ -281,0 +248,0 @@ return { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"checkbox.cjs.development.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/useCheckboxGroup.tsx","../src/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, InputProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","target","checked","targeValue","value","filter","i","useCheckbox","props","inputProps","useState","disabled","setDisabled","context","controlled","includes","defaultChecked","groupvalue","checkedState","setCheckedState","useControlledInfo","useSafeLayoutEffect","onChange","groupValue","targetChecked","targetValue","nextValue","state","checkboxDefaultRender","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","render","propDisabled","rest","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","useCheckboxGroup","defaultValue","onChangeProp","setState","setValue","useCallback","CheckboxGroup","contextValue","useMemo"],"mappings":"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"} | ||
| {"version":3,"file":"checkbox.cjs.development.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/useCheckboxGroup.tsx","../src/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target as any\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\ntype InputProps = React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e:any) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest as any}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","_e$target","target","checked","targeValue","value","concat","filter","i","useCheckbox","props","inputProps","_useState","useState","_props$disabled","disabled","setDisabled","context","controlled","_context$value","includes","_useState2","defaultChecked","groupvalue","checkedState","setCheckedState","_useControlledInfo","useControlledInfo","useSafeLayoutEffect","onChange","_context$value2","groupValue","targetChecked","targetValue","nextValue","state","checkboxDefaultRender","_ref","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","_props$colorScheme","_props$render","render","propDisabled","rest","_objectWithoutPropertiesLoose","_excluded","_useCheckbox","_extends","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","useCheckboxGroup","_props$defaultValue","defaultValue","onChangeProp","setState","_useControlledInfo$va","setValue","useCallback","CheckboxGroup","_useCheckboxGroup","contextValue","useMemo"],"mappings":"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"} |
@@ -1,2 +0,2 @@ | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),r=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,o=require("@bone-ui/utils"),t=require("@fower/core"),l=require("@fower/react"),a=require("@bone-ui/hooks"),u=require("@bone-ui/icons");function c(){return(c=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e}).apply(this,arguments)}function i(e,n){if(null==e)return{};var r,o,t={},l=Object.keys(e);for(o=0;o<l.length;o++)n.indexOf(r=l[o])>=0||(t[r]=e[r]);return t}var d=n.createContext(null),s=d.Provider;function h(){return n.useContext(d)}function f(e,n){var r=e.target,o=r.value;return r.checked?[].concat(n,[o]):n.filter((function(e){return e!==o}))}function v(e){var r,o,t={},l=n.useState(null!=(r=e.disabled)&&r),u=l[0],c=l[1],i=h();null!=i&&i.controlled&&(e.checked=null==(o=i.value)?void 0:o.includes(e.value));var d=n.useState((function(){if(!i)return e.defaultChecked;var n=i.value;return null==n?void 0:n.includes(e.value)})),s=d[1],v=a.useControlledInfo(e.checked,d[0]),b=v.controlled,C=v.value;return a.useSafeLayoutEffect((function(){"boolean"==typeof e.disabled&&c(!!e.disabled)}),[e.disabled]),t.onChange=function(n){if(!i)return b||s(n.target.checked),void(null==e||null==e.onChange||e.onChange(n));var r=i.value,o=void 0===r?[]:r,t=n.target,l=t.value;if(b)s(t.checked);else{var a=f(n,o);s(a.includes(l))}null==e.onChange||e.onChange(n)},t.disabled=u,b&&(t.checked=C),{inputProps:t,state:{disabled:u,checked:C}}}var b=function(e){var n=e.checked,o=e.colorScheme,t={};return n&&(t.borderColor=o,t.bg=o),r.createElement(l.Box,Object.assign({toCenter:!0,"square-20":!0,"border-2":!0,"rounded-4":!0,borderGray400:!n},t),r.createElement(u.CheckOutline,{white:!0,"square-20":!0,strokeWidth:4,hidden:!n}))},C=["children","colorScheme","render","value","defaultChecked","disabled","onChange"],k=o.forwardRef((function(e,n){var a=e.children,u=e.colorScheme,d=void 0===u?"brand500":u,s=e.render,f=void 0===s?b:s,k=e.value,p=e.defaultChecked,x=i(e,C),g=h(),m=v(c({},e,{onChange:function(n){return null==g||g.onChange(n),null==e||null==e.onChange?void 0:e.onChange(n)}})),y=m.inputProps,O=m.state,j=O.disabled,q={};return Reflect.has(e,"defaultChecked")?q.defaultChecked=p:q.checked=O.checked,r.createElement(l.Box,Object.assign({as:"label",className:"bone-checkbox",inlineFlex:!0,toCenterY:!0,toLeft:!0,cursorPointer:!j,cursorNotAllowed:j,"opacity-50":j},x),r.createElement("input",Object.assign({ref:n,className:o.cx("bone-checkbox-input",t.css("square0","opacity-0","hidden")),type:"checkbox",value:k},q,y)),f(c({},O,{children:a,colorScheme:d})),a&&r.createElement(l.Box,{className:"bone-checkbox-label","ml-8":!0,"leading-1em":!0},a))})),p=["defaultValue","value","onChange","options","name","children"],x=o.forwardRef((function(e,o){var t=e.children,u=i(e,p),c=function(e){var r=e.defaultValue,o=e.onChange,t=n.useState(void 0===r?[]:r),l=t[1],u=a.useControlledInfo(e.value,t[0]),c=u.controlled,i=u.value,d=void 0===i?[]:i,s=n.useCallback((function(e){c||l(e),null==o||o(e)}),[c,o]),h=n.useCallback((function(e){var n=f(e,d);s(n)}),[d,s]);return{controlled:c,value:d,onChange:h,setValue:s}}(e),d=c.value,h=c.onChange,v=c.setValue,b=c.controlled,C=n.useMemo((function(){return{controlled:b,onChange:h,value:d,setValue:v}}),[b,d,h,v]);return r.createElement(s,{value:C},r.createElement(l.Box,Object.assign({ref:o,toLeft:!0,"spaceX-8":!0},u),t))}));exports.Checkbox=k,exports.CheckboxGroup=x,exports.CheckboxGroupProvider=s,exports.checkboxGroupContext=d,exports.useCheckbox=v,exports.useCheckboxGroupContext=h; | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),r=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,t=require("@bone-ui/utils"),o=require("@fower/core"),l=require("@fower/react"),a=require("@bone-ui/hooks"),u=require("@bone-ui/icons");function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function i(e,n){if(null==e)return{};var r,t,o={},l=Object.keys(e);for(t=0;t<l.length;t++)n.indexOf(r=l[t])>=0||(o[r]=e[r]);return o}var d=n.createContext(null),s=d.Provider;function h(){return n.useContext(d)}function f(e,n){var r=e.target,t=r.value;return r.checked?[].concat(n,[t]):n.filter((function(e){return e!==t}))}function v(e){var r,t,o={},l=n.useState(null!=(r=e.disabled)&&r),u=l[0],c=l[1],i=h();null!=i&&i.controlled&&(e.checked=null==(t=i.value)?void 0:t.includes(e.value));var d=n.useState((function(){if(!i)return e.defaultChecked;var n=i.value;return null==n?void 0:n.includes(e.value)})),s=d[1],v=a.useControlledInfo(e.checked,d[0]),b=v.controlled,C=v.value;return a.useSafeLayoutEffect((function(){"boolean"==typeof e.disabled&&c(!!e.disabled)}),[e.disabled]),o.onChange=function(n){if(!i)return b||s(n.target.checked),void(null==e||null==e.onChange||e.onChange(n));var r=i.value,t=void 0===r?[]:r,o=n.target,l=o.value;if(b)s(o.checked);else{var a=f(n,t);s(a.includes(l))}null==e.onChange||e.onChange(n)},o.disabled=u,b&&(o.checked=C),{inputProps:o,state:{disabled:u,checked:C}}}var b=function(e){var n=e.checked,t=e.colorScheme,o={};return n&&(o.borderColor=t,o.bg=t),r.createElement(l.Box,Object.assign({toCenter:!0,"square-20":!0,"border-2":!0,"rounded-4":!0,borderGray400:!n},o),r.createElement(u.CheckOutline,{white:!0,"square-20":!0,strokeWidth:4,hidden:!n}))},C=["children","colorScheme","render","value","defaultChecked","disabled","onChange"],k=t.forwardRef((function(e,n){var a=e.children,u=e.colorScheme,d=void 0===u?"brand500":u,s=e.render,f=void 0===s?b:s,k=e.value,p=e.defaultChecked,g=i(e,C),x=h(),m=v(c({},e,{onChange:function(n){return null==x||x.onChange(n),null==e||null==e.onChange?void 0:e.onChange(n)}})),y=m.inputProps,O=m.state,j=O.disabled,q={};return Reflect.has(e,"defaultChecked")?q.defaultChecked=p:q.checked=O.checked,r.createElement(l.Box,Object.assign({as:"label",className:"bone-checkbox",inlineFlex:!0,toCenterY:!0,toLeft:!0,cursorPointer:!j,cursorNotAllowed:j,"opacity-50":j},g),r.createElement("input",Object.assign({ref:n,className:t.cx("bone-checkbox-input",o.css("square0","opacity-0","hidden")),type:"checkbox",value:k},q,y)),f(c({},O,{children:a,colorScheme:d})),a&&r.createElement(l.Box,{className:"bone-checkbox-label","ml-8":!0,"leading-1em":!0},a))})),p=["defaultValue","value","onChange","options","name","children"],g=t.forwardRef((function(e,t){var o=e.children,u=i(e,p),c=function(e){var r=e.defaultValue,t=e.onChange,o=n.useState(void 0===r?[]:r),l=o[1],u=a.useControlledInfo(e.value,o[0]),c=u.controlled,i=u.value,d=void 0===i?[]:i,s=n.useCallback((function(e){c||l(e),null==t||t(e)}),[c,t]),h=n.useCallback((function(e){var n=f(e,d);s(n)}),[d,s]);return{controlled:c,value:d,onChange:h,setValue:s}}(e),d=c.value,h=c.onChange,v=c.setValue,b=c.controlled,C=n.useMemo((function(){return{controlled:b,onChange:h,value:d,setValue:v}}),[b,d,h,v]);return r.createElement(s,{value:C},r.createElement(l.Box,Object.assign({ref:t,toLeft:!0,"spaceX-8":!0},u),o))}));exports.Checkbox=k,exports.CheckboxGroup=g,exports.CheckboxGroupProvider=s,exports.checkboxGroupContext=d,exports.useCheckbox=v,exports.useCheckboxGroupContext=h; | ||
| //# sourceMappingURL=checkbox.cjs.production.min.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"checkbox.cjs.production.min.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/CheckboxGroup.tsx","../src/useCheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, InputProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","target","targeValue","value","checked","filter","i","useCheckbox","props","inputProps","useState","disabled","setDisabled","context","controlled","_context$value","includes","defaultChecked","groupvalue","setCheckedState","useControlledInfo","useSafeLayoutEffect","onChange","groupValue","targetValue","nextValue","state","checkboxDefaultRender","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","render","rest","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","CheckboxGroup","defaultValue","onChangeProp","setState","setValue","useCallback","useCheckboxGroup","contextValue","useMemo"],"mappings":"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"} | ||
| {"version":3,"file":"checkbox.cjs.production.min.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/CheckboxGroup.tsx","../src/useCheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target as any\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\ntype InputProps = React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e:any) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest as any}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","_e$target","target","targeValue","value","checked","concat","filter","i","useCheckbox","props","_context$value","inputProps","_useState","useState","_props$disabled","disabled","setDisabled","context","controlled","includes","_useState2","defaultChecked","groupvalue","setCheckedState","_useControlledInfo","useControlledInfo","useSafeLayoutEffect","onChange","_context$value2","groupValue","targetValue","nextValue","state","checkboxDefaultRender","_ref","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","_props$colorScheme","_props$render","render","rest","_objectWithoutPropertiesLoose","_excluded","_useCheckbox","_extends","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","CheckboxGroup","_useCheckboxGroup","_props$defaultValue","defaultValue","onChangeProp","setState","_useControlledInfo$va","setValue","useCallback","useCheckboxGroup","contextValue","useMemo"],"mappings":"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"} |
+43
-76
@@ -9,6 +9,5 @@ import React, { createContext, useContext, useState, useCallback, useMemo } from 'react'; | ||
| function _extends() { | ||
| _extends = Object.assign || function (target) { | ||
| _extends = Object.assign ? Object.assign.bind() : function (target) { | ||
| for (var i = 1; i < arguments.length; i++) { | ||
| var source = arguments[i]; | ||
| for (var key in source) { | ||
@@ -20,9 +19,6 @@ if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
| } | ||
| return target; | ||
| }; | ||
| return _extends.apply(this, arguments); | ||
| } | ||
| function _objectWithoutPropertiesLoose(source, excluded) { | ||
@@ -33,3 +29,2 @@ if (source == null) return {}; | ||
| var key, i; | ||
| for (i = 0; i < sourceKeys.length; i++) { | ||
@@ -40,3 +35,2 @@ key = sourceKeys[i]; | ||
| } | ||
| return target; | ||
@@ -53,4 +47,4 @@ } | ||
| var _e$target = e.target, | ||
| checked = _e$target.checked, | ||
| targeValue = _e$target.value; | ||
| checked = _e$target.checked, | ||
| targeValue = _e$target.value; | ||
| return checked ? [].concat(currentGroupValue, [targeValue]) : currentGroupValue.filter(function (i) { | ||
@@ -63,9 +57,6 @@ return i !== targeValue; | ||
| var _props$disabled; | ||
| var inputProps = {}; | ||
| var _useState = useState((_props$disabled = props.disabled) != null ? _props$disabled : false), | ||
| disabled = _useState[0], | ||
| setDisabled = _useState[1]; | ||
| disabled = _useState[0], | ||
| setDisabled = _useState[1]; | ||
| var context = useCheckboxGroupContext(); | ||
@@ -75,21 +66,16 @@ /** | ||
| */ | ||
| if (context != null && context.controlled) { | ||
| var _context$value; | ||
| props.checked = (_context$value = context.value) == null ? void 0 : _context$value.includes(props.value); | ||
| } | ||
| var _useState2 = useState(function () { | ||
| if (!context) return props.defaultChecked; | ||
| var groupvalue = context.value; | ||
| return groupvalue == null ? void 0 : groupvalue.includes(props.value); | ||
| }), | ||
| checkedState = _useState2[0], | ||
| setCheckedState = _useState2[1]; | ||
| if (!context) return props.defaultChecked; | ||
| var groupvalue = context.value; | ||
| return groupvalue == null ? void 0 : groupvalue.includes(props.value); | ||
| }), | ||
| checkedState = _useState2[0], | ||
| setCheckedState = _useState2[1]; | ||
| var _useControlledInfo = useControlledInfo(props.checked, checkedState), | ||
| controlled = _useControlledInfo.controlled, | ||
| checked = _useControlledInfo.value; | ||
| controlled = _useControlledInfo.controlled, | ||
| checked = _useControlledInfo.value; | ||
| useSafeLayoutEffect(function () { | ||
@@ -99,3 +85,2 @@ if (typeof props.disabled !== 'boolean') return; | ||
| }, [props.disabled]); | ||
| inputProps.onChange = function (e) { | ||
@@ -109,10 +94,7 @@ /** no context */ | ||
| /** has context */ | ||
| var _context$value2 = context.value, | ||
| groupValue = _context$value2 === void 0 ? [] : _context$value2; | ||
| groupValue = _context$value2 === void 0 ? [] : _context$value2; | ||
| var _e$target = e.target, | ||
| targetChecked = _e$target.checked, | ||
| targetValue = _e$target.value; | ||
| targetChecked = _e$target.checked, | ||
| targetValue = _e$target.value; | ||
| if (controlled) { | ||
@@ -124,6 +106,4 @@ setCheckedState(targetChecked); | ||
| } | ||
| props.onChange == null ? void 0 : props.onChange(e); | ||
| }; | ||
| inputProps.disabled = disabled; | ||
@@ -142,5 +122,4 @@ if (controlled) inputProps.checked = checked; | ||
| var checked = _ref.checked, | ||
| colorScheme = _ref.colorScheme; | ||
| colorScheme = _ref.colorScheme; | ||
| var atomicProps = {}; | ||
| if (!!checked) { | ||
@@ -150,3 +129,2 @@ atomicProps.borderColor = colorScheme; | ||
| } | ||
| return React.createElement(Box, Object.assign({ | ||
@@ -169,12 +147,10 @@ toCenter: true, | ||
| var children = props.children, | ||
| _props$colorScheme = props.colorScheme, | ||
| colorScheme = _props$colorScheme === void 0 ? 'brand500' : _props$colorScheme, | ||
| _props$render = props.render, | ||
| render = _props$render === void 0 ? checkboxDefaultRender : _props$render, | ||
| value = props.value, | ||
| defaultChecked = props.defaultChecked, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded); | ||
| _props$colorScheme = props.colorScheme, | ||
| colorScheme = _props$colorScheme === void 0 ? 'brand500' : _props$colorScheme, | ||
| _props$render = props.render, | ||
| render = _props$render === void 0 ? checkboxDefaultRender : _props$render, | ||
| value = props.value, | ||
| defaultChecked = props.defaultChecked, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded); | ||
| var context = useCheckboxGroupContext(); | ||
| var onChange = function onChange(e) { | ||
@@ -184,13 +160,10 @@ context == null ? void 0 : context.onChange(e); | ||
| }; | ||
| var _useCheckbox = useCheckbox(_extends({}, props, { | ||
| onChange: onChange | ||
| })), | ||
| inputProps = _useCheckbox.inputProps, | ||
| state = _useCheckbox.state; | ||
| var disabled = state.disabled; // TODO: need refactor | ||
| onChange: onChange | ||
| })), | ||
| inputProps = _useCheckbox.inputProps, | ||
| state = _useCheckbox.state; | ||
| var disabled = state.disabled; | ||
| // TODO: need refactor | ||
| var checkedProps = {}; | ||
| if (Reflect.has(props, 'defaultChecked')) { | ||
@@ -201,3 +174,2 @@ checkedProps.defaultChecked = defaultChecked; | ||
| } | ||
| return React.createElement(Box, Object.assign({ | ||
@@ -229,14 +201,12 @@ as: "label", | ||
| var _props$defaultValue = props.defaultValue, | ||
| defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue, | ||
| onChangeProp = props.onChange; // checkGroup inner state | ||
| defaultValue = _props$defaultValue === void 0 ? [] : _props$defaultValue, | ||
| onChangeProp = props.onChange; | ||
| // checkGroup inner state | ||
| var _useState = useState(defaultValue), | ||
| state = _useState[0], | ||
| setState = _useState[1]; | ||
| state = _useState[0], | ||
| setState = _useState[1]; | ||
| var _useControlledInfo = useControlledInfo(props.value, state), | ||
| controlled = _useControlledInfo.controlled, | ||
| _useControlledInfo$va = _useControlledInfo.value, | ||
| groupValue = _useControlledInfo$va === void 0 ? [] : _useControlledInfo$va; | ||
| controlled = _useControlledInfo.controlled, | ||
| _useControlledInfo$va = _useControlledInfo.value, | ||
| groupValue = _useControlledInfo$va === void 0 ? [] : _useControlledInfo$va; | ||
| var setValue = useCallback(function (nextValue) { | ||
@@ -247,3 +217,2 @@ if (!controlled) setState(nextValue); | ||
| /** @example <CheckGroup onChange={...}></CheckGroup> */ | ||
| var onChange = useCallback(function (e) { | ||
@@ -264,10 +233,8 @@ var nextValue = getNextCheckboxGroupValue(e, groupValue); | ||
| var children = props.children, | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded$1); | ||
| rest = _objectWithoutPropertiesLoose(props, _excluded$1); | ||
| var _useCheckboxGroup = useCheckboxGroup(props), | ||
| value = _useCheckboxGroup.value, | ||
| onChange = _useCheckboxGroup.onChange, | ||
| setValue = _useCheckboxGroup.setValue, | ||
| controlled = _useCheckboxGroup.controlled; | ||
| value = _useCheckboxGroup.value, | ||
| onChange = _useCheckboxGroup.onChange, | ||
| setValue = _useCheckboxGroup.setValue, | ||
| controlled = _useCheckboxGroup.controlled; | ||
| var contextValue = useMemo(function () { | ||
@@ -274,0 +241,0 @@ return { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"checkbox.esm.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/useCheckboxGroup.tsx","../src/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, InputProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","target","checked","targeValue","value","filter","i","useCheckbox","props","inputProps","useState","disabled","setDisabled","context","controlled","includes","defaultChecked","groupvalue","checkedState","setCheckedState","useControlledInfo","useSafeLayoutEffect","onChange","groupValue","targetChecked","targetValue","nextValue","state","checkboxDefaultRender","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","render","propDisabled","rest","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","useCheckboxGroup","defaultValue","onChangeProp","setState","setValue","useCallback","CheckboxGroup","contextValue","useMemo"],"mappings":"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"} | ||
| {"version":3,"file":"checkbox.esm.js","sources":["../src/checkboxGroupContext.ts","../src/utils.ts","../src/useCheckbox.tsx","../src/checkboxDefaultRender.tsx","../src/Checkbox.tsx","../src/useCheckboxGroup.tsx","../src/CheckboxGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport { CheckboxGroupContext } from './types'\n\nexport const checkboxGroupContext = createContext<CheckboxGroupContext | null>(null)\n\nexport const CheckboxGroupProvider = checkboxGroupContext.Provider\n\nexport function useCheckboxGroupContext() {\n return useContext(checkboxGroupContext)\n}\n","import { ChangeEvent } from 'react'\nimport { CheckboxGroupValue } from './types'\n\nexport function getNextCheckboxGroupValue(\n e: ChangeEvent<HTMLInputElement>,\n currentGroupValue: CheckboxGroupValue,\n) {\n const { checked, value: targeValue } = e.target as any\n\n return checked\n ? [...currentGroupValue, targeValue]\n : currentGroupValue.filter((i) => i !== targeValue)\n}\n","import { useState } from 'react'\nimport { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { CheckboxProps, UseCheckboxReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\ntype InputProps = React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>\n\nexport function useCheckbox(props: CheckboxProps): UseCheckboxReturn {\n let inputProps: InputProps = {}\n const [disabled, setDisabled] = useState(props.disabled ?? false)\n const context = useCheckboxGroupContext()\n\n /**\n * If <CheckboxGroup/> is controlled, set <Checkbox/> to be controlled too\n */\n if (context?.controlled) {\n props.checked = context.value?.includes(props.value as any)\n }\n\n const [checkedState, setCheckedState] = useState(() => {\n if (!context) return props.defaultChecked\n\n const { value: groupvalue } = context\n return groupvalue?.includes(props.value as any)\n })\n\n const { controlled, value: checked } = useControlledInfo(props.checked, checkedState)\n\n useSafeLayoutEffect(() => {\n if (typeof props.disabled !== 'boolean') return\n setDisabled(!!props.disabled)\n }, [props.disabled])\n\n inputProps.onChange = (e:any) => {\n /** no context */\n if (!context) {\n if (!controlled) setCheckedState(e.target.checked)\n props?.onChange?.(e)\n return\n }\n\n /** has context */\n const { value: groupValue = [] } = context\n const { checked: targetChecked, value: targetValue } = e.target\n if (controlled) {\n setCheckedState(targetChecked)\n } else {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setCheckedState(nextValue.includes(targetValue))\n }\n\n props.onChange?.(e)\n }\n\n inputProps.disabled = disabled\n if (controlled) inputProps.checked = checked\n\n return {\n inputProps,\n state: { disabled, checked },\n }\n}\n","import React from 'react'\nimport { Box } from '@fower/react'\nimport { CheckOutline } from '@bone-ui/icons'\nimport { CheckboxStatus } from './types'\n\nexport const checkboxDefaultRender = ({\n checked,\n colorScheme,\n}: CheckboxStatus & { colorScheme: string }) => {\n const atomicProps: any = {}\n if (!!checked) {\n atomicProps.borderColor = colorScheme\n atomicProps.bg = colorScheme\n }\n return (\n <Box toCenter square-20 border-2 rounded-4 borderGray400={!checked} {...atomicProps}>\n <CheckOutline white square-20 strokeWidth={4} hidden={!checked}></CheckOutline>\n </Box>\n )\n}\n","import React, { ChangeEvent, FC } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { cx } from '@bone-ui/utils'\nimport { css } from '@fower/core'\nimport { Box } from '@fower/react'\nimport { useCheckbox } from './useCheckbox'\nimport { CheckboxProps } from './types'\nimport { useCheckboxGroupContext } from './checkboxGroupContext'\nimport { checkboxDefaultRender } from './checkboxDefaultRender'\n\nexport const Checkbox: FC<CheckboxProps> = forwardRef((props: CheckboxProps, ref) => {\n const {\n children,\n colorScheme = 'brand500',\n render = checkboxDefaultRender,\n value,\n defaultChecked,\n disabled: propDisabled,\n onChange: propOnChnage,\n ...rest\n } = props\n const context = useCheckboxGroupContext()\n\n const onChange = (e: ChangeEvent<HTMLInputElement>) => {\n context?.onChange(e)\n return props?.onChange?.(e)\n }\n\n const { inputProps, state } = useCheckbox({ ...props, onChange })\n const { disabled } = state\n\n // TODO: need refactor\n let checkedProps: any = {}\n if (Reflect.has(props, 'defaultChecked')) {\n checkedProps.defaultChecked = defaultChecked\n } else {\n checkedProps.checked = state.checked\n }\n\n return (\n <Box\n as=\"label\"\n className=\"bone-checkbox\"\n inlineFlex\n toCenterY\n toLeft\n cursorPointer={!disabled}\n cursorNotAllowed={disabled}\n opacity-50={disabled}\n {...rest as any}\n >\n <input\n ref={ref}\n className={cx('bone-checkbox-input', css('square0', 'opacity-0', 'hidden'))}\n type=\"checkbox\"\n value={value}\n {...checkedProps}\n {...inputProps}\n />\n\n {render({ ...state, children, colorScheme })}\n\n {children && (\n <Box className=\"bone-checkbox-label\" ml-8 leading-1em>\n {children}\n </Box>\n )}\n </Box>\n )\n})\n","import { ChangeEvent, useCallback, useState } from 'react'\nimport { useControlledInfo } from '@bone-ui/hooks'\nimport { CheckboxGroupValue, CheckboxGroupProps, UseCheckboxGroupReturn } from './types'\nimport { getNextCheckboxGroupValue } from './utils'\n\nexport function useCheckboxGroup(props: CheckboxGroupProps): UseCheckboxGroupReturn {\n const { defaultValue = [], onChange: onChangeProp } = props\n // checkGroup inner state\n const [state, setState] = useState<CheckboxGroupValue>(defaultValue)\n const { controlled, value: groupValue = [] } = useControlledInfo(props.value, state)\n\n const setValue = useCallback(\n (nextValue: CheckboxGroupValue) => {\n if (!controlled) setState(nextValue)\n onChangeProp?.(nextValue)\n },\n [controlled, onChangeProp],\n )\n\n /** @example <CheckGroup onChange={...}></CheckGroup> */\n const onChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const nextValue = getNextCheckboxGroupValue(e, groupValue)\n setValue(nextValue)\n },\n [groupValue, setValue],\n )\n\n return {\n controlled,\n value: groupValue,\n onChange,\n setValue,\n }\n}\n","import React, { FC, useMemo } from 'react'\nimport { forwardRef } from '@bone-ui/utils'\nimport { Box } from '@fower/react'\nimport { CheckboxGroupProvider } from './checkboxGroupContext'\nimport { useCheckboxGroup } from './useCheckboxGroup'\nimport { CheckboxGroupProps, CheckboxGroupContext } from './types'\n\nexport const CheckboxGroup: FC<CheckboxGroupProps> = forwardRef((props, ref) => {\n const {\n defaultValue,\n value: propValue,\n onChange: onChangeProp,\n options,\n name,\n children,\n ...rest\n } = props\n const { value, onChange, setValue, controlled } = useCheckboxGroup(props)\n\n const contextValue: CheckboxGroupContext = useMemo(\n () => ({ controlled, onChange, value, setValue }),\n [controlled, value, onChange, setValue],\n )\n\n return (\n <CheckboxGroupProvider value={contextValue}>\n <Box ref={ref} toLeft spaceX-8 {...(rest as any)}>\n {children}\n </Box>\n </CheckboxGroupProvider>\n )\n})\n"],"names":["checkboxGroupContext","createContext","CheckboxGroupProvider","Provider","useCheckboxGroupContext","useContext","getNextCheckboxGroupValue","e","currentGroupValue","_e$target","target","checked","targeValue","value","concat","filter","i","useCheckbox","props","inputProps","_useState","useState","_props$disabled","disabled","setDisabled","context","controlled","_context$value","includes","_useState2","defaultChecked","groupvalue","checkedState","setCheckedState","_useControlledInfo","useControlledInfo","useSafeLayoutEffect","onChange","_context$value2","groupValue","targetChecked","targetValue","nextValue","state","checkboxDefaultRender","_ref","colorScheme","atomicProps","borderColor","bg","React","Box","toCenter","borderGray400","CheckOutline","white","strokeWidth","hidden","Checkbox","forwardRef","ref","children","_props$colorScheme","_props$render","render","propDisabled","rest","_objectWithoutPropertiesLoose","_excluded","_useCheckbox","_extends","checkedProps","Reflect","has","as","className","inlineFlex","toCenterY","toLeft","cursorPointer","cursorNotAllowed","cx","css","type","useCheckboxGroup","_props$defaultValue","defaultValue","onChangeProp","setState","_useControlledInfo$va","setValue","useCallback","CheckboxGroup","_useCheckboxGroup","contextValue","useMemo"],"mappings":"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"} |
+1
-1
| import { FowerColor, FowerHTMLProps } from '@fower/core'; | ||
| import { ReactNode } from 'react'; | ||
| export declare type InputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>; | ||
| declare type InputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>; | ||
| declare type StringOrNumber = string | number; | ||
@@ -5,0 +5,0 @@ export declare type CheckboxGroupValue = StringOrNumber[]; |
+1
-1
| import { ChangeEvent } from 'react'; | ||
| import { CheckboxGroupValue } from './types'; | ||
| export declare function getNextCheckboxGroupValue(e: ChangeEvent<HTMLInputElement>, currentGroupValue: CheckboxGroupValue): (string | number)[]; | ||
| export declare function getNextCheckboxGroupValue(e: ChangeEvent<HTMLInputElement>, currentGroupValue: CheckboxGroupValue): any[]; |
+4
-5
| { | ||
| "name": "@bone-ui/checkbox", | ||
| "version": "0.25.0", | ||
| "version": "0.29.0", | ||
| "license": "MIT", | ||
@@ -23,6 +23,5 @@ "main": "dist/index.js", | ||
| "dependencies": { | ||
| "@bone-ui/icons": "^0.25.0", | ||
| "@bone-ui/utils": "^0.25.0" | ||
| }, | ||
| "gitHead": "39b7d355e13975accaae6ac2ecc011a68e3078ff" | ||
| "@bone-ui/icons": "^0.29.0", | ||
| "@bone-ui/utils": "^0.29.0" | ||
| } | ||
| } |
+1
-1
@@ -50,3 +50,3 @@ import React, { ChangeEvent, FC } from 'react' | ||
| opacity-50={disabled} | ||
| {...rest} | ||
| {...rest as any} | ||
| > | ||
@@ -53,0 +53,0 @@ <input |
+1
-1
| import { FowerColor, FowerHTMLProps } from '@fower/core' | ||
| import { ReactNode } from 'react' | ||
| export type InputProps = React.DetailedHTMLProps< | ||
| type InputProps = React.DetailedHTMLProps< | ||
| React.InputHTMLAttributes<HTMLInputElement>, | ||
@@ -6,0 +6,0 @@ HTMLInputElement |
| import { useState } from 'react' | ||
| import { useControlledInfo, useSafeLayoutEffect } from '@bone-ui/hooks' | ||
| import { useCheckboxGroupContext } from './checkboxGroupContext' | ||
| import { CheckboxProps, InputProps, UseCheckboxReturn } from './types' | ||
| import { CheckboxProps, UseCheckboxReturn } from './types' | ||
| import { getNextCheckboxGroupValue } from './utils' | ||
| type InputProps = React.DetailedHTMLProps< | ||
| React.InputHTMLAttributes<HTMLInputElement>, | ||
| HTMLInputElement | ||
| > | ||
| export function useCheckbox(props: CheckboxProps): UseCheckboxReturn { | ||
@@ -33,3 +38,3 @@ let inputProps: InputProps = {} | ||
| inputProps.onChange = (e) => { | ||
| inputProps.onChange = (e:any) => { | ||
| /** no context */ | ||
@@ -36,0 +41,0 @@ if (!context) { |
+1
-1
@@ -8,3 +8,3 @@ import { ChangeEvent } from 'react' | ||
| ) { | ||
| const { checked, value: targeValue } = e.target | ||
| const { checked, value: targeValue } = e.target as any | ||
@@ -11,0 +11,0 @@ return checked |
-21
| MIT License | ||
| Copyright (c) 2020 forsigner | ||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
74930
1.09%841
0.96%27
-3.57%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated