diff --git a/components/checkbox/__tests__/__snapshots__/group.test.tsx.snap b/components/checkbox/__tests__/__snapshots__/group.test.tsx.snap index 499b31f..9318552 100644 --- a/components/checkbox/__tests__/__snapshots__/group.test.tsx.snap +++ b/components/checkbox/__tests__/__snapshots__/group.test.tsx.snap @@ -15,9 +15,7 @@ initialize { Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -52,8 +50,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -95,20 +93,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -171,16 +170,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -191,8 +186,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -234,20 +229,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -303,9 +299,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -339,16 +333,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -384,20 +374,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -447,8 +438,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -467,9 +458,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -503,16 +492,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -549,20 +534,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -611,8 +597,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -631,9 +617,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -667,16 +651,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -706,20 +686,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -779,8 +760,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -799,9 +780,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -835,16 +814,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -881,7 +856,8 @@ initialize { Object { "data": " .group :global(label) { - margin-right: 1.875rem; + margin-right: calc(.875rem * 2); + --checkbox-size: .875rem; } ", "next": null, @@ -915,7 +891,8 @@ initialize { Object { "data": " .group :global(label) { - margin-right: 1.875rem; + margin-right: calc(.875rem * 2); + --checkbox-size: .875rem; } ", "next": null, @@ -936,9 +913,7 @@ initialize { Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -973,8 +948,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -1016,20 +991,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -1092,16 +1068,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -1112,8 +1084,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -1155,20 +1127,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -1224,9 +1197,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -1260,16 +1231,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -1305,20 +1272,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -1368,8 +1336,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -1388,9 +1356,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -1424,16 +1390,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -1470,20 +1432,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -1532,8 +1495,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -1552,9 +1515,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -1588,16 +1549,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -1627,20 +1584,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -1700,8 +1658,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -1720,9 +1678,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -1756,16 +1712,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -1849,3 +1801,191 @@ initialize { }, } `; + +exports[`Checkbox Group should work correctly with different sizes 1`] = ` +"
" +`; diff --git a/components/checkbox/__tests__/__snapshots__/index.test.tsx.snap b/components/checkbox/__tests__/__snapshots__/index.test.tsx.snap index d66d815..72e8f6a 100644 --- a/components/checkbox/__tests__/__snapshots__/index.test.tsx.snap +++ b/components/checkbox/__tests__/__snapshots__/index.test.tsx.snap @@ -10,9 +10,7 @@ initialize { Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -47,8 +45,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -90,20 +88,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -166,16 +165,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -186,8 +181,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -229,20 +224,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -298,9 +294,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -334,16 +328,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -379,20 +369,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -442,8 +433,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -462,9 +453,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -498,16 +487,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -544,20 +529,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -606,8 +592,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -626,9 +612,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -662,16 +646,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -701,20 +681,21 @@ initialize { Object { "data": " label { - height: 0.875rem; - line-height: 0.875rem; + --checkbox-size: .875rem; display: inline-flex; justify-content: center; align-items: center; width: auto; cursor: pointer; opacity: 1; + height: var(--checkbox-size); + line-height: var(--checkbox-size); } .text { - font-size: 0.875rem; - line-height: 0.875rem; - padding-left: 0.5rem; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); + padding-left: calc(var(--checkbox-size) * 0.57); user-select: none; cursor: pointer; } @@ -774,8 +755,8 @@ initialize { "data": " svg { display: inline-flex; - width: 12px; - height: 12px; + width: calc(0.86 * var(--checkbox-size)); + height: calc(0.86 * var(--checkbox-size)); user-select: none; opacity: 1; cursor: pointer; @@ -794,9 +775,7 @@ initialize { "prev": Object { "attribs": Object { "fill": "none", - "height": "12px", "viewBox": "0 0 12 12", - "width": "12px", "xmlns": "http://www.w3.org/2000/svg", }, "children": Array [ @@ -830,16 +809,12 @@ initialize { "type": "tag", "x-attribsNamespace": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "http://www.w3.org/2000/xmlns/", }, "x-attribsPrefix": Object { "fill": undefined, - "height": undefined, "viewBox": undefined, - "width": undefined, "xmlns": "", }, }, @@ -905,3 +880,171 @@ initialize { }, } `; + +exports[`Checkbox should work correctly with different sizes 1`] = ` +"
" +`; diff --git a/components/checkbox/__tests__/group.test.tsx b/components/checkbox/__tests__/group.test.tsx index 896a815..abf36b6 100644 --- a/components/checkbox/__tests__/group.test.tsx +++ b/components/checkbox/__tests__/group.test.tsx @@ -18,6 +18,27 @@ describe('Checkbox Group', () => { expect(rendered).toMatchSnapshot() }) + it('should work correctly with different sizes', () => { + const wrapper = mount( +
+ + Sydney + + + Sydney + + + Sydney + + + Sydney + +
, + ) + expect(wrapper.html()).toMatchSnapshot() + expect(() => wrapper.unmount()).not.toThrow() + }) + it('should work correctly with initial value', () => { let wrapper = mount( diff --git a/components/checkbox/__tests__/index.test.tsx b/components/checkbox/__tests__/index.test.tsx index ef46cd9..acd1f71 100644 --- a/components/checkbox/__tests__/index.test.tsx +++ b/components/checkbox/__tests__/index.test.tsx @@ -10,6 +10,19 @@ describe('Checkbox', () => { expect(rendered).toMatchSnapshot() }) + it('should work correctly with different sizes', () => { + const wrapper = mount( +
+ mini + small + medium + large +
, + ) + expect(wrapper.html()).toMatchSnapshot() + expect(() => wrapper.unmount()).not.toThrow() + }) + it('should work correctly with initial value', () => { let wrapper = mount(Sydney) let input = wrapper.find('input').getDOMNode() diff --git a/components/checkbox/checkbox-group.tsx b/components/checkbox/checkbox-group.tsx index 4f99df8..6a3f3db 100644 --- a/components/checkbox/checkbox-group.tsx +++ b/components/checkbox/checkbox-group.tsx @@ -2,26 +2,40 @@ import React, { useEffect, useMemo, useState } from 'react' import withDefaults from '../utils/with-defaults' import { CheckboxContext } from './checkbox-context' import useWarning from '../utils/use-warning' +import { NormalSizes } from '../utils/prop-types' interface Props { value: string[] disabled?: boolean + size?: NormalSizes onChange?: (values: string[]) => void className?: string } const defaultProps = { disabled: false, + size: 'small' as NormalSizes, className: '', } type NativeAttrs = Omit, keyof Props> export type CheckboxGroupProps = Props & typeof defaultProps & NativeAttrs +export const getCheckboxSize = (size: NormalSizes): string => { + const sizes: { [key in NormalSizes]: string } = { + mini: '.75rem', + small: '.875rem', + medium: '1rem', + large: '1.125rem', + } + return sizes[size] +} + const CheckboxGroup: React.FC> = ({ disabled, onChange, value, + size, children, className, ...props @@ -47,6 +61,7 @@ const CheckboxGroup: React.FC> = ({ values: selfVal, } }, [disabled, selfVal]) + const fontSize = useMemo(() => getCheckboxSize(size), [size]) useEffect(() => { setSelfVal(value) @@ -58,7 +73,8 @@ const CheckboxGroup: React.FC> = ({ {children} diff --git a/components/checkbox/checkbox.icon.tsx b/components/checkbox/checkbox.icon.tsx index 4c7bbb7..a89dd37 100644 --- a/components/checkbox/checkbox.icon.tsx +++ b/components/checkbox/checkbox.icon.tsx @@ -20,12 +20,7 @@ const CheckboxIcon: React.FC = ({ disabled, checked }) => { return ( <> {checked ? ( - + = ({ disabled, checked }) => { ) : ( - + = ({ disabled, checked }) => {