@cleartrip/ct-design-checkbox 4.0.0-TEST.3 → 4.1.0-SNAPSHOT-native-main.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/dist/Checkbox.d.ts +2 -8
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.native.d.ts +5 -0
- package/dist/Checkbox.native.d.ts.map +1 -0
- package/dist/ct-design-checkbox.browser.cjs.js +1 -1
- package/dist/ct-design-checkbox.browser.cjs.js.map +1 -1
- package/dist/ct-design-checkbox.browser.esm.js +1 -1
- package/dist/ct-design-checkbox.browser.esm.js.map +1 -1
- package/dist/ct-design-checkbox.cjs.js +103 -50
- package/dist/ct-design-checkbox.cjs.js.map +1 -1
- package/dist/ct-design-checkbox.esm.js +104 -46
- package/dist/ct-design-checkbox.esm.js.map +1 -1
- package/dist/ct-design-checkbox.umd.js +1737 -138
- package/dist/ct-design-checkbox.umd.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.native.d.ts +3 -0
- package/dist/index.native.d.ts.map +1 -0
- package/dist/style.d.ts +10 -12
- package/dist/style.d.ts.map +1 -1
- package/dist/type.d.ts +18 -13
- package/dist/type.d.ts.map +1 -1
- package/package.json +22 -12
- package/src/Checkbox.native.tsx +104 -0
- package/src/Checkbox.tsx +127 -0
- package/src/index.native.ts +2 -0
- package/src/index.ts +2 -0
- package/src/style.ts +54 -0
- package/src/type.ts +58 -0
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Checkbox
|
|
2
|
+
|
|
3
|
+
A form control that allows users to select multiple options.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @cleartrip/ct-design-checkbox
|
|
11
|
+
# or
|
|
12
|
+
pnpm add @cleartrip/ct-design-checkbox
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Peer dependencies
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Required for all targets
|
|
19
|
+
npm install react
|
|
20
|
+
|
|
21
|
+
# Web only
|
|
22
|
+
npm install react-dom
|
|
23
|
+
|
|
24
|
+
# React Native only
|
|
25
|
+
npm install react-native
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
### Basic
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { Checkbox } from '@cleartrip/ct-design-checkbox';
|
|
36
|
+
|
|
37
|
+
function Example() {
|
|
38
|
+
return (
|
|
39
|
+
<Checkbox>
|
|
40
|
+
{/* Basic usage */}
|
|
41
|
+
</Checkbox>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Accessibility
|
|
49
|
+
|
|
50
|
+
- The component follows accessibility best practices
|
|
51
|
+
- Ensure proper ARIA attributes are provided where needed
|
|
52
|
+
- Test with screen readers to ensure usability
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Migration
|
|
57
|
+
|
|
58
|
+
If migrating from a previous version:
|
|
59
|
+
|
|
60
|
+
```diff
|
|
61
|
+
- import { Checkbox } from 'yagami/core/components';
|
|
62
|
+
+ import { Checkbox } from '@cleartrip/ct-design-checkbox';
|
|
63
|
+
```
|
package/dist/Checkbox.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { ForwardRefComponentWithStyle } from '@cleartrip/ct-design-types';
|
|
4
|
-
type PolymorphicCheckbox = ForwardRefComponentWithStyle<'input', CheckboxProps>;
|
|
5
|
-
export declare const Input: import("styled-components").StyledComponent<"input", import("styled-components").DefaultTheme, {
|
|
6
|
-
css?: CSSProperties | undefined;
|
|
7
|
-
}, never>;
|
|
8
|
-
declare const Checkbox: PolymorphicCheckbox;
|
|
1
|
+
import { ICheckbox } from './type';
|
|
2
|
+
declare const Checkbox: import("react").ForwardRefExoticComponent<ICheckbox & import("react").RefAttributes<HTMLInputElement>>;
|
|
9
3
|
export default Checkbox;
|
|
10
4
|
//# sourceMappingURL=Checkbox.d.ts.map
|
package/dist/Checkbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../packages/components/Checkbox/src/Checkbox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../packages/components/Checkbox/src/Checkbox.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAsCnC,QAAA,MAAM,QAAQ,wGA4Eb,CAAC;AAIF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.native.d.ts","sourceRoot":"","sources":["../packages/components/Checkbox/src/Checkbox.native.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAQ/C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAsBnC,QAAA,MAAM,QAAQ,4FAmEb,CAAC;AAIF,eAAe,QAAQ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),r=require("react"),o=require("@cleartrip/ct-design-container"),n=require("@cleartrip/ct-design-typography"),i=require("@cleartrip/ct-design-icons"),t=require("@cleartrip/ct-design-style-manager"),l=require("@emotion/css");const a=(e,r,o)=>{switch(!0){case o:return r?{borderWidth:e.border.width.none,backgroundColor:e.color.background.disabledSecondary,cursor:"not-allowed"}:{borderWidth:e.border.width.sm,borderColor:e.color.border.disabled,cursor:"not-allowed",backgroundColor:e.color.background.disabled};case r:return{borderWidth:e.border.width.none,backgroundColor:e.color.background.primary,cursor:"pointer"};default:return{borderWidth:e.border.width.sm,borderColor:e.color.border.defaultDark,backgroundColor:e.color.background.neutral,cursor:"pointer"}}},d={disabledRoot:l.css({cursor:"not-allowed"})},c=t.makeStyles(e=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:null==e?void 0:e.spacing[2],cursor:"pointer",userSelect:"none"},hiddenInput:{position:"absolute",opacity:0,width:0,height:0,margin:0,padding:0,border:"none",pointerEvents:"none"},checkboxIconContainer:{width:null==e?void 0:e.spacing[5],height:null==e?void 0:e.spacing[5],borderRadius:null==e?void 0:e.border.radius[4],borderStyle:null==e?void 0:e.border.style.solid,display:"flex",alignItems:"center",justifyContent:"center"}})),s=r.forwardRef(({id:r,label:l,disabled:s=!1,onChange:b,checked:u=!1,styleConfig:h,isFullClickEnabled:g=!0,rootProps:p={}},y)=>{const C=t.useStyles(e=>{return{checkboxIconContainer:a(e,u,s),label:{color:(r=s,r?n.TypographyColor.DISABLED:n.TypographyColor.PRIMARY)}};var r},[u,s]),{root:k=[],checkboxIconContainer:x=[],labelContainer:m=[]}=h||{},f=()=>{s||null==b||b({id:r,label:l,disabled:s,checked:!u})},w=t.useWebMergeStyles([c.root,...s?[d.disabledRoot]:[],...k],[s,k]),I=t.useWebMergeStyles([c.hiddenInput],[]),v=t.useWebMergeStyles([c.checkboxIconContainer,C.checkboxIconContainer,...x],[C.checkboxIconContainer,x]);return e.jsxs("div",Object.assign({id:`${r}-root`,className:w,onClick:()=>{!s&&g&&f()}},p,{children:[e.jsx("input",{ref:y,id:r,type:"checkbox",checked:u,disabled:s,onChange:f,className:I,"aria-labelledby":`${r}-label`}),e.jsx("span",{className:v,onClick:e=>{g||(e.stopPropagation(),f())},children:u&&e.jsx(i.CheckboxTick,{})}),e.jsx(o.Container,{styleConfig:{root:m},children:"string"==typeof l?e.jsx(n.Typography,{variant:n.TypographyVariant.P2,styleConfig:{root:[C.label]},children:l}):l})]}))});s.displayName="Checkbox",exports.Checkbox=s;
|
|
2
2
|
//# sourceMappingURL=ct-design-checkbox.browser.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-checkbox.browser.cjs.js","sources":["../packages/components/Checkbox/src/
|
|
1
|
+
{"version":3,"file":"ct-design-checkbox.browser.cjs.js","sources":["../packages/components/Checkbox/src/style.ts","../packages/components/Checkbox/src/Checkbox.tsx"],"sourcesContent":[null,null],"names":["getBorderStyles","theme","isSelected","isDisabled","borderWidth","border","width","none","backgroundColor","color","background","disabledSecondary","cursor","sm","borderColor","disabled","primary","defaultDark","neutral","webStaticStyles","disabledRoot","css","staticCheckboxStyles","makeStyles","root","display","flexDirection","alignItems","gap","spacing","userSelect","hiddenInput","position","opacity","height","margin","padding","pointerEvents","checkboxIconContainer","borderRadius","radius","borderStyle","style","solid","justifyContent","Checkbox","forwardRef","id","label","onChange","checked","styleConfig","isFullClickEnabled","rootProps","ref","dynamicStyles","useStyles","TypographyColor","DISABLED","PRIMARY","customRootStyles","customCheckboxIconStyles","labelContainer","customLabelContainerStyles","handleCheckboxChange","mergedRootClassName","useWebMergeStyles","mergedInputClassName","mergedCheckboxIconClassName","_jsxs","jsxs","Object","assign","className","onClick","children","_jsx","jsx","type","event","stopPropagation","CheckboxTick","Container","Typography","variant","TypographyVariant","P2","displayName"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as o,jsx as r}from"react/jsx-runtime";import{forwardRef as e}from"react";import{Container as n}from"@cleartrip/ct-design-container";import{TypographyColor as i,Typography as t,TypographyVariant as d}from"@cleartrip/ct-design-typography";import{CheckboxTick as l}from"@cleartrip/ct-design-icons";import{makeStyles as c,useStyles as a,useWebMergeStyles as s}from"@cleartrip/ct-design-style-manager";import{css as b}from"@emotion/css";const p=(o,r,e)=>{switch(!0){case e:return r?{borderWidth:o.border.width.none,backgroundColor:o.color.background.disabledSecondary,cursor:"not-allowed"}:{borderWidth:o.border.width.sm,borderColor:o.color.border.disabled,cursor:"not-allowed",backgroundColor:o.color.background.disabled};case r:return{borderWidth:o.border.width.none,backgroundColor:o.color.background.primary,cursor:"pointer"};default:return{borderWidth:o.border.width.sm,borderColor:o.color.border.defaultDark,backgroundColor:o.color.background.neutral,cursor:"pointer"}}},u={disabledRoot:b({cursor:"not-allowed"})},h=c(o=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:null==o?void 0:o.spacing[2],cursor:"pointer",userSelect:"none"},hiddenInput:{position:"absolute",opacity:0,width:0,height:0,margin:0,padding:0,border:"none",pointerEvents:"none"},checkboxIconContainer:{width:null==o?void 0:o.spacing[5],height:null==o?void 0:o.spacing[5],borderRadius:null==o?void 0:o.border.radius[4],borderStyle:null==o?void 0:o.border.style.solid,display:"flex",alignItems:"center",justifyContent:"center"}})),g=e(({id:e,label:c,disabled:b=!1,onChange:g,checked:m=!1,styleConfig:k,isFullClickEnabled:C=!0,rootProps:f={}},y)=>{const x=a(o=>{return{checkboxIconContainer:p(o,m,b),label:{color:(r=b,r?i.DISABLED:i.PRIMARY)}};var r},[m,b]),{root:I=[],checkboxIconContainer:w=[],labelContainer:v=[]}=k||{},R=()=>{b||null==g||g({id:e,label:c,disabled:b,checked:!m})},D=s([h.root,...b?[u.disabledRoot]:[],...I],[b,I]),N=s([h.hiddenInput],[]),P=s([h.checkboxIconContainer,x.checkboxIconContainer,...w],[x.checkboxIconContainer,w]);return o("div",Object.assign({id:`${e}-root`,className:D,onClick:()=>{!b&&C&&R()}},f,{children:[r("input",{ref:y,id:e,type:"checkbox",checked:m,disabled:b,onChange:R,className:N,"aria-labelledby":`${e}-label`}),r("span",{className:P,onClick:o=>{C||(o.stopPropagation(),R())},children:m&&r(l,{})}),r(n,{styleConfig:{root:v},children:"string"==typeof c?r(t,{variant:d.P2,styleConfig:{root:[x.label]},children:c}):c})]}))});g.displayName="Checkbox";export{g as Checkbox};
|
|
2
2
|
//# sourceMappingURL=ct-design-checkbox.browser.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-checkbox.browser.esm.js","sources":["../packages/components/Checkbox/src/style.ts","../packages/components/Checkbox/src/Checkbox.tsx"],"sourcesContent":[null,null],"names":["
|
|
1
|
+
{"version":3,"file":"ct-design-checkbox.browser.esm.js","sources":["../packages/components/Checkbox/src/style.ts","../packages/components/Checkbox/src/Checkbox.tsx"],"sourcesContent":[null,null],"names":["getBorderStyles","theme","isSelected","isDisabled","borderWidth","border","width","none","backgroundColor","color","background","disabledSecondary","cursor","sm","borderColor","disabled","primary","defaultDark","neutral","webStaticStyles","disabledRoot","css","staticCheckboxStyles","makeStyles","root","display","flexDirection","alignItems","gap","spacing","userSelect","hiddenInput","position","opacity","height","margin","padding","pointerEvents","checkboxIconContainer","borderRadius","radius","borderStyle","style","solid","justifyContent","Checkbox","forwardRef","id","label","onChange","checked","styleConfig","isFullClickEnabled","rootProps","ref","dynamicStyles","useStyles","TypographyColor","DISABLED","PRIMARY","customRootStyles","customCheckboxIconStyles","labelContainer","customLabelContainerStyles","handleCheckboxChange","mergedRootClassName","useWebMergeStyles","mergedInputClassName","mergedCheckboxIconClassName","_jsxs","Object","assign","className","onClick","children","_jsx","type","event","stopPropagation","CheckboxTick","Container","Typography","variant","TypographyVariant","P2","displayName"],"mappings":"4bASO,MAAMA,EAAkB,CAACC,EAAcC,EAAqBC,KACjE,QAAQ,GACN,KAAKA,EACH,OAAID,EACK,CACLE,YAAaH,EAAMI,OAAOC,MAAMC,KAChCC,gBAAiBP,EAAMQ,MAAMC,WAAWC,kBAExCC,OAAQ,eAGL,CACLR,YAAaH,EAAMI,OAAOC,MAAMO,GAChCC,YAAab,EAAMQ,MAAMJ,OAAOU,SAEhCH,OAAQ,cACRJ,gBAAiBP,EAAMQ,MAAMC,WAAWK,UAG5C,KAAKb,EACH,MAAO,CACLE,YAAaH,EAAMI,OAAOC,MAAMC,KAChCC,gBAAiBP,EAAMQ,MAAMC,WAAWM,QAExCJ,OAAQ,WAGZ,QACE,MAAO,CACLR,YAAaH,EAAMI,OAAOC,MAAMO,GAChCC,YAAab,EAAMQ,MAAMJ,OAAOY,YAChCT,gBAAiBP,EAAMQ,MAAMC,WAAWQ,QAExCN,OAAQ,aC/BVO,EAAkB,CACtBC,aAAcC,EAAI,CAChBT,OAAQ,iBAGNU,EAAuBC,EAAYtB,IAAW,CAClDuB,KAAM,CACJC,QAAS,OACTC,cAAe,MACfC,WAAY,SACZC,IAAK3B,aAAK,EAALA,EAAO4B,QAAQ,GACpBjB,OAAQ,UACRkB,WAAY,QAEdC,YAAa,CACXC,SAAU,WACVC,QAAS,EACT3B,MAAO,EACP4B,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACT/B,OAAQ,OACRgC,cAAe,QAEjBC,sBAAuB,CACrBhC,MAAOL,aAAK,EAALA,EAAO4B,QAAQ,GACtBK,OAAQjC,aAAK,EAALA,EAAO4B,QAAQ,GACvBU,aAActC,aAAA,EAAAA,EAAOI,OAAOmC,OAAO,GACnCC,YAAaxC,aAAK,EAALA,EAAOI,OAAOqC,MAAMC,MACjClB,QAAS,OACTE,WAAY,SACZiB,eAAgB,aAIdC,EAAWC,EACf,EACIC,KAAIC,QAAOjC,YAAW,EAAOkC,WAAUC,WAAU,EAAOC,cAAaC,sBAAqB,EAAMC,YAAY,CAAA,GAC9GC,KAEA,MAAMC,EAAgBC,EACnBvD,IAAW,OACVqC,sBAAuBtC,EAAgBC,EAAOiD,EAASnC,GACvDiC,MAAO,CACLvC,ODPoBN,ECOCY,EDNzBZ,EACKsD,EAAgBC,SAElBD,EAAgBE,WAJI,IAACxD,GCUxB,CAAC+C,EAASnC,KAIVS,KAAMoC,EAAmB,GACzBtB,sBAAuBuB,EAA2B,GAClDC,eAAgBC,EAA6B,IAC3CZ,GAAe,CAAA,EAEba,EAAuB,KACvBjD,GACJkC,SAAAA,EAAW,CAAEF,KAAIC,QAAOjC,WAAUmC,SAAUA,KAcxCe,EAAsBC,EAC1B,CAAC5C,EAAqBE,QAAUT,EAAW,CAACI,EAAgBC,cAAgB,MAAQwC,GACpF,CAAC7C,EAAU6C,IAGPO,EAAuBD,EAAkB,CAAC5C,EAAqBS,aAAc,IAE7EqC,EAA8BF,EAClC,CAAC5C,EAAqBgB,sBAAuBiB,EAAcjB,yBAA0BuB,GACrF,CAACN,EAAcjB,sBAAuBuB,IAGxC,OACEQ,EAAK,MAAAC,OAAAC,OAAA,CAAAxB,GAAI,GAAGA,SAAWyB,UAAWP,EAAqBQ,QAxBjC,MAClB1D,GAAaqC,GACjBY,MAsBqFX,EACnF,CAAAqB,SAAA,CAAAC,EAAA,QAAA,CACErB,IAAKA,EACLP,GAAIA,EACJ6B,KAAK,WACL1B,QAASA,EACTnC,SAAUA,EACVkC,SAAUe,EACVQ,UAAWL,EACM,kBAAA,GAAGpB,YAEtB4B,EAAM,OAAA,CAAAH,UAAWJ,EAA6BK,QA9BzBI,IACnBzB,IACJyB,EAAMC,kBACNd,eA4BKd,GAAWyB,EAACI,EAAe,CAAA,KAE9BJ,EAACK,EAAS,CAAC7B,YAAa,CAAE3B,KAAMuC,GAA4BW,SACxC,iBAAV1B,EACN2B,EAACM,EAAW,CAAAC,QAASC,EAAkBC,GAAIjC,YAAa,CAAE3B,KAAM,CAAC+B,EAAcP,QAAQ0B,SACpF1B,IAGH,UAQZH,EAASwC,YAAc"}
|
|
@@ -1,65 +1,118 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib = require('tslib');
|
|
4
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
4
|
var react = require('react');
|
|
6
|
-
var styled = require('styled-components');
|
|
7
5
|
var ctDesignContainer = require('@cleartrip/ct-design-container');
|
|
6
|
+
var ctDesignTypography = require('@cleartrip/ct-design-typography');
|
|
8
7
|
var ctDesignIcons = require('@cleartrip/ct-design-icons');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var classNames = require('classnames');
|
|
8
|
+
var ctDesignStyleManager = require('@cleartrip/ct-design-style-manager');
|
|
9
|
+
var css = require('@emotion/css');
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
const getBorderStyles = (theme, isSelected, isDisabled) => {
|
|
12
|
+
switch (true) {
|
|
13
|
+
case isDisabled: {
|
|
14
|
+
if (isSelected) {
|
|
15
|
+
return {
|
|
16
|
+
borderWidth: theme.border.width.none,
|
|
17
|
+
backgroundColor: theme.color.background.disabledSecondary,
|
|
18
|
+
cursor: 'not-allowed',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
borderWidth: theme.border.width.sm,
|
|
23
|
+
borderColor: theme.color.border.disabled,
|
|
24
|
+
cursor: 'not-allowed',
|
|
25
|
+
backgroundColor: theme.color.background.disabled,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
case isSelected: {
|
|
29
|
+
return {
|
|
30
|
+
borderWidth: theme.border.width.none,
|
|
31
|
+
backgroundColor: theme.color.background.primary,
|
|
32
|
+
cursor: 'pointer',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
default: {
|
|
36
|
+
return {
|
|
37
|
+
borderWidth: theme.border.width.sm,
|
|
38
|
+
borderColor: theme.color.border.defaultDark,
|
|
39
|
+
backgroundColor: theme.color.background.neutral,
|
|
40
|
+
cursor: 'pointer',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
25
44
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
: theme.color.background.neutral,
|
|
32
|
-
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
33
|
-
}); };
|
|
34
|
-
var getCheckboxStyles = function (_a) {
|
|
35
|
-
var width = _a.width, height = _a.height, theme = _a.theme, checked = _a.checked, disabled = _a.disabled, rest = tslib.__rest(_a, ["width", "height", "theme", "checked", "disabled"]);
|
|
36
|
-
return (tslib.__assign(tslib.__assign({ position: 'absolute', left: 0, borderRadius: '4px', border: !checked
|
|
37
|
-
? "1px solid ".concat(disabled ? theme.color.border.disabledDark : theme.color.border.defaultDark)
|
|
38
|
-
: "1px solid transparent", width: width, height: height, display: 'flex', justifyContent: 'center', alignItems: 'center', marginRight: theme.spacing[3] }, getCheckboxColor(theme, !!disabled, !!checked)), rest));
|
|
45
|
+
const getLabelColor = (isDisabled) => {
|
|
46
|
+
if (isDisabled) {
|
|
47
|
+
return ctDesignTypography.TypographyColor.DISABLED;
|
|
48
|
+
}
|
|
49
|
+
return ctDesignTypography.TypographyColor.PRIMARY;
|
|
39
50
|
};
|
|
40
51
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
const webStaticStyles = {
|
|
53
|
+
disabledRoot: css.css({
|
|
54
|
+
cursor: 'not-allowed',
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
const staticCheckboxStyles = ctDesignStyleManager.makeStyles((theme) => ({
|
|
58
|
+
root: {
|
|
59
|
+
display: 'flex',
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
gap: theme === null || theme === void 0 ? void 0 : theme.spacing[2],
|
|
63
|
+
cursor: 'pointer',
|
|
64
|
+
userSelect: 'none',
|
|
65
|
+
},
|
|
66
|
+
hiddenInput: {
|
|
67
|
+
position: 'absolute',
|
|
68
|
+
opacity: 0,
|
|
69
|
+
width: 0,
|
|
70
|
+
height: 0,
|
|
71
|
+
margin: 0,
|
|
72
|
+
padding: 0,
|
|
73
|
+
border: 'none',
|
|
74
|
+
pointerEvents: 'none',
|
|
75
|
+
},
|
|
76
|
+
checkboxIconContainer: {
|
|
77
|
+
width: theme === null || theme === void 0 ? void 0 : theme.spacing[5],
|
|
78
|
+
height: theme === null || theme === void 0 ? void 0 : theme.spacing[5],
|
|
79
|
+
borderRadius: theme === null || theme === void 0 ? void 0 : theme.border.radius[4],
|
|
80
|
+
borderStyle: theme === null || theme === void 0 ? void 0 : theme.border.style.solid,
|
|
81
|
+
display: 'flex',
|
|
82
|
+
alignItems: 'center',
|
|
83
|
+
justifyContent: 'center',
|
|
84
|
+
},
|
|
85
|
+
}));
|
|
86
|
+
const Checkbox = react.forwardRef(({ id, label, disabled = false, onChange, checked = false, styleConfig, isFullClickEnabled = true, rootProps = {} }, ref) => {
|
|
87
|
+
const dynamicStyles = ctDesignStyleManager.useStyles((theme) => ({
|
|
88
|
+
checkboxIconContainer: getBorderStyles(theme, checked, disabled),
|
|
89
|
+
label: {
|
|
90
|
+
color: getLabelColor(disabled),
|
|
91
|
+
},
|
|
92
|
+
}), [checked, disabled]);
|
|
93
|
+
const { root: customRootStyles = [], checkboxIconContainer: customCheckboxIconStyles = [], labelContainer: customLabelContainerStyles = [], } = styleConfig || {};
|
|
94
|
+
const handleCheckboxChange = () => {
|
|
95
|
+
if (disabled)
|
|
96
|
+
return;
|
|
97
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ id, label, disabled, checked: !checked });
|
|
98
|
+
};
|
|
99
|
+
const handleRootClick = () => {
|
|
100
|
+
if (disabled || !isFullClickEnabled)
|
|
101
|
+
return;
|
|
102
|
+
handleCheckboxChange();
|
|
103
|
+
};
|
|
104
|
+
const handleIconClick = (event) => {
|
|
105
|
+
if (isFullClickEnabled)
|
|
106
|
+
return;
|
|
107
|
+
event.stopPropagation();
|
|
108
|
+
handleCheckboxChange();
|
|
60
109
|
};
|
|
61
|
-
|
|
110
|
+
const mergedRootClassName = ctDesignStyleManager.useWebMergeStyles([staticCheckboxStyles.root, ...(disabled ? [webStaticStyles.disabledRoot] : []), ...customRootStyles], [disabled, customRootStyles]);
|
|
111
|
+
const mergedInputClassName = ctDesignStyleManager.useWebMergeStyles([staticCheckboxStyles.hiddenInput], []);
|
|
112
|
+
const mergedCheckboxIconClassName = ctDesignStyleManager.useWebMergeStyles([staticCheckboxStyles.checkboxIconContainer, dynamicStyles.checkboxIconContainer, ...customCheckboxIconStyles], [dynamicStyles.checkboxIconContainer, customCheckboxIconStyles]);
|
|
113
|
+
return (jsxRuntime.jsxs("div", Object.assign({ id: `${id}-root`, className: mergedRootClassName, onClick: handleRootClick }, rootProps, { children: [jsxRuntime.jsx("input", { ref: ref, id: id, type: 'checkbox', checked: checked, disabled: disabled, onChange: handleCheckboxChange, className: mergedInputClassName, "aria-labelledby": `${id}-label` }), jsxRuntime.jsx("span", { className: mergedCheckboxIconClassName, onClick: handleIconClick, children: checked && jsxRuntime.jsx(ctDesignIcons.CheckboxTick, {}) }), jsxRuntime.jsx(ctDesignContainer.Container, { styleConfig: { root: customLabelContainerStyles }, children: typeof label === 'string' ? (jsxRuntime.jsx(ctDesignTypography.Typography, { variant: ctDesignTypography.TypographyVariant.P2, styleConfig: { root: [dynamicStyles.label] }, children: label })) : (label) })] })));
|
|
62
114
|
});
|
|
115
|
+
Checkbox.displayName = 'Checkbox';
|
|
63
116
|
|
|
64
117
|
exports.Checkbox = Checkbox;
|
|
65
118
|
//# sourceMappingURL=ct-design-checkbox.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ct-design-checkbox.cjs.js","sources":["../packages/components/Checkbox/src/style.ts","../packages/components/Checkbox/src/Checkbox.tsx"],"sourcesContent":[null,null],"names":["
|
|
1
|
+
{"version":3,"file":"ct-design-checkbox.cjs.js","sources":["../packages/components/Checkbox/src/style.ts","../packages/components/Checkbox/src/Checkbox.tsx"],"sourcesContent":[null,null],"names":["TypographyColor","css","makeStyles","forwardRef","useStyles","useWebMergeStyles","_jsxs","_jsx","CheckboxTick","Container","Typography","TypographyVariant"],"mappings":"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"}
|