@mirohq/design-system-checkbox 1.0.0-checkbox.0 → 1.0.0-checkbox.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/dist/main.js CHANGED
@@ -27,27 +27,52 @@ const StyledCheckboxContent = designSystemStitches.styled(designSystemPrimitive.
27
27
  boxSizing: "border-box"
28
28
  });
29
29
  const checkboxContentSelector = `& ${StyledCheckboxContent}`;
30
+ const checkedAndIndeterminate = '&[data-state="checked"], &[data-state="indeterminate"]';
31
+ const ariaDisabledCheckedIndeterminate = [
32
+ '&[aria-disabled="true"][data-state="checked"]',
33
+ '&:disabled[data-state="checked"]',
34
+ '&[aria-disabled="true"][data-state="indeterminate"]',
35
+ '&:disabled[data-state="indeterminate"]'
36
+ ].join(" ,");
37
+ const hoverCheckedIndeterminate = '&:hover[data-state="checked"], &:hover[data-state="indeterminate"]';
38
+ const ariaDisabledUnChecked = '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]';
39
+ const hoverCheckedIndeterminateDisabled = [
40
+ '&:hover[data-state="checked"][aria-disabled="true"]',
41
+ '&:hover[data-state="checked"]&:disabled',
42
+ '&:hover[data-state="indeterminate"][aria-disabled="true"]',
43
+ '&:hover[data-state="indeterminate"]&:disabled'
44
+ ].join(" ,");
45
+ const hoverAriaDisabled = [
46
+ '&:hover[data-state="unchecked"][aria-disabled="true"]',
47
+ '&:hover[data-state="unchecked"]&:disabled',
48
+ ...hoverCheckedIndeterminateDisabled.split(" ,")
49
+ ].join(" ,");
30
50
  const StyledCheckbox = designSystemStitches.styled(reactCheckbox.Root, {
31
51
  all: "unset",
32
52
  square: "$6",
33
53
  color: "$icon-primary-inverted",
34
54
  "&:focus": {
35
55
  [checkboxContentSelector]: {
36
- boxShadow: "0px 0px 0px 1px $colors$white, 0px 0px 0px 3px $colors$blue-500, 0px 0px 0px 5px $colors$blue-200"
56
+ boxShadow: "$focus-controls"
37
57
  }
38
58
  },
39
- '&:hover[data-state="checked"][aria-disabled="true"], &:hover[data-state="checked"]&:disabled': {
59
+ [hoverCheckedIndeterminateDisabled]: {
40
60
  [checkboxContentSelector]: {
41
61
  backgroundColor: "$background-neutrals-controls-disabled"
42
62
  }
43
63
  },
44
- '&[aria-disabled="true"][data-state="checked"], &:disabled[data-state="checked"]': {
64
+ [hoverAriaDisabled]: {
65
+ [checkboxContentSelector]: {
66
+ color: "$icon-neutrals-disabled"
67
+ }
68
+ },
69
+ [ariaDisabledCheckedIndeterminate]: {
45
70
  [checkboxContentSelector]: {
46
71
  backgroundColor: "$background-neutrals-controls-disabled",
47
72
  color: "$icon-neutrals-disabled"
48
73
  }
49
74
  },
50
- '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]': {
75
+ [ariaDisabledUnChecked]: {
51
76
  [checkboxContentSelector]: {
52
77
  backgroundColor: "$background-neutrals",
53
78
  color: "$icon-neutrals-disabled"
@@ -56,18 +81,18 @@ const StyledCheckbox = designSystemStitches.styled(reactCheckbox.Root, {
56
81
  variants: {
57
82
  variant: {
58
83
  "solid-prominent": {
59
- '&[data-state="checked"]': {
84
+ '&[data-state="unchecked"]': {
60
85
  [checkboxContentSelector]: {
61
- backgroundColor: "$background-primary-prominent",
62
- color: "$icon-primary-inverted"
86
+ border: "1px solid $border-neutrals-controls"
63
87
  }
64
88
  },
65
- '&[data-state="unchecked"]': {
89
+ [checkedAndIndeterminate]: {
66
90
  [checkboxContentSelector]: {
67
- border: "1px solid $border-neutrals-controls"
91
+ backgroundColor: "$background-primary-prominent",
92
+ color: "$icon-primary-inverted"
68
93
  }
69
94
  },
70
- '&:hover[data-state="checked"]': {
95
+ [hoverCheckedIndeterminate]: {
71
96
  [checkboxContentSelector]: {
72
97
  backgroundColor: "$background-primary-prominent-hover"
73
98
  }
@@ -76,10 +101,15 @@ const StyledCheckbox = designSystemStitches.styled(reactCheckbox.Root, {
76
101
  [checkboxContentSelector]: {
77
102
  border: "1px solid $border-primary"
78
103
  }
104
+ },
105
+ [ariaDisabledUnChecked]: {
106
+ [checkboxContentSelector]: {
107
+ border: "1px solid $border-neutrals-controls-disabled"
108
+ }
79
109
  }
80
110
  },
81
111
  "solid-subtle": {
82
- '&[data-state="checked"]': {
112
+ [checkedAndIndeterminate]: {
83
113
  [checkboxContentSelector]: {
84
114
  backgroundColor: "$background-primary-subtle",
85
115
  color: "$icon-primary"
@@ -90,30 +120,35 @@ const StyledCheckbox = designSystemStitches.styled(reactCheckbox.Root, {
90
120
  backgroundColor: "$background-primary-subtle"
91
121
  }
92
122
  },
93
- '&:hover[data-state="checked"], &:hover[data-state="unchecked"]': {
123
+ [`${hoverCheckedIndeterminate}, &:hover[data-state="unchecked"]`]: {
94
124
  [checkboxContentSelector]: {
95
125
  backgroundColor: "$background-primary-subtle-hover",
96
126
  color: "$icon-primary-hover"
97
127
  }
98
128
  },
99
- '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]': {
129
+ [ariaDisabledUnChecked]: {
100
130
  [checkboxContentSelector]: {
101
131
  backgroundColor: "$background-neutrals-controls-disabled"
102
132
  }
103
133
  }
104
134
  },
105
135
  ghost: {
106
- '&[data-state="checked"]': {
136
+ [checkedAndIndeterminate]: {
107
137
  [checkboxContentSelector]: {
108
138
  color: "$icon-primary"
109
139
  }
110
140
  },
111
- '&:hover[data-state="checked"]': {
141
+ [hoverCheckedIndeterminate]: {
112
142
  [checkboxContentSelector]: {
113
143
  color: "$icon-primary-hover"
114
144
  }
115
145
  },
116
- '&[aria-disabled="true"][data-state="checked"], &:disabled[data-state="checked"]': {
146
+ [ariaDisabledCheckedIndeterminate]: {
147
+ [checkboxContentSelector]: {
148
+ backgroundColor: "$background-neutrals"
149
+ }
150
+ },
151
+ [hoverCheckedIndeterminateDisabled]: {
117
152
  [checkboxContentSelector]: {
118
153
  backgroundColor: "$background-neutrals"
119
154
  }
@@ -149,7 +184,7 @@ const markStyles = {
149
184
  };
150
185
  const StyledDisabledMark = designSystemStitches.styled(designSystemIcons.IconProhibit, markStyles);
151
186
  const StyledCheckMark = designSystemStitches.styled(designSystemIcons.IconCheckMark, markStyles);
152
- designSystemStitches.styled(designSystemIcons.IconMinus, markStyles);
187
+ const StyledIndeterminateMark = designSystemStitches.styled(designSystemIcons.IconMinus, markStyles);
153
188
 
154
189
  const Checkbox = React__default["default"].forwardRef(
155
190
  ({
@@ -157,6 +192,9 @@ const Checkbox = React__default["default"].forwardRef(
157
192
  checked,
158
193
  defaultChecked = false,
159
194
  disabled,
195
+ onChecked,
196
+ onUnChecked,
197
+ onIndeterminate,
160
198
  onClick,
161
199
  onKeyDown,
162
200
  size = "large",
@@ -164,11 +202,17 @@ const Checkbox = React__default["default"].forwardRef(
164
202
  ...restProps
165
203
  }, forwardRef) => {
166
204
  const [checkedState, setCheckedState] = React.useState(defaultChecked);
167
- const disabledUnChecked = (disabled === true || ariaDisabled) && (checked != null ? checked : !checkedState);
205
+ const internalChecked = checked != null ? checked : checkedState;
206
+ const disabledUnChecked = (disabled === true || ariaDisabled) && internalChecked === false;
207
+ const checkedStateEvents = {
208
+ true: onChecked,
209
+ false: onUnChecked,
210
+ indeterminate: onIndeterminate
211
+ };
168
212
  return /* @__PURE__ */ React__default["default"].createElement(StyledCheckbox, {
169
213
  ...restProps,
170
214
  "aria-disabled": ariaDisabled,
171
- checked: checked != null ? checked : checkedState,
215
+ checked: internalChecked,
172
216
  defaultChecked,
173
217
  disabled,
174
218
  size,
@@ -178,11 +222,17 @@ const Checkbox = React__default["default"].forwardRef(
178
222
  e.preventDefault();
179
223
  return;
180
224
  }
181
- setCheckedState((prevChecked) => !prevChecked);
182
225
  onClick == null ? void 0 : onClick(e);
183
226
  },
227
+ onCheckedChange: (checked2) => {
228
+ var _a;
229
+ setCheckedState(checked2);
230
+ (_a = checkedStateEvents[`${checked2}`]) == null ? void 0 : _a.call(checkedStateEvents);
231
+ },
184
232
  ref: forwardRef
185
- }, /* @__PURE__ */ React__default["default"].createElement(StyledCheckboxContent, null, /* @__PURE__ */ React__default["default"].createElement(Indicator, null, /* @__PURE__ */ React__default["default"].createElement(StyledCheckMark, {
233
+ }, /* @__PURE__ */ React__default["default"].createElement(StyledCheckboxContent, null, /* @__PURE__ */ React__default["default"].createElement(Indicator, null, internalChecked === "indeterminate" && /* @__PURE__ */ React__default["default"].createElement(StyledIndeterminateMark, {
234
+ size
235
+ }), internalChecked === true && /* @__PURE__ */ React__default["default"].createElement(StyledCheckMark, {
186
236
  size
187
237
  })), disabledUnChecked && /* @__PURE__ */ React__default["default"].createElement(StyledDisabledMark, {
188
238
  size
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/partials/indicator.tsx","../src/checkbox.styled.tsx","../src/partials/status-marks.styled.tsx","../src/checkbox.tsx"],"sourcesContent":["import React from 'react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ElementRef } from 'react'\nimport { Indicator as RadixIndicator } from '@radix-ui/react-checkbox'\n\nconst StyledIndicator = styled(RadixIndicator)\ntype StyledIndicatorProps = StrictComponentProps<typeof StyledIndicator>\n\nexport const Indicator = React.forwardRef<\n ElementRef<typeof StyledIndicator>,\n StyledIndicatorProps\n>((props, forwardRef) => <StyledIndicator {...props} ref={forwardRef} />)\n","import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-checkbox'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledCheckboxContent = styled(Primitive.div, {\n display: 'block',\n pointerEvents: 'none',\n borderRadius: '$50',\n position: 'relative',\n margin: 'auto',\n boxSizing: 'border-box',\n})\n\nconst checkboxContentSelector = `& ${StyledCheckboxContent}`\n\nexport const StyledCheckbox = styled(Root, {\n all: 'unset',\n square: '$6',\n color: '$icon-primary-inverted',\n\n '&:focus': {\n [checkboxContentSelector]: {\n boxShadow:\n '0px 0px 0px 1px $colors$white, 0px 0px 0px 3px $colors$blue-500, 0px 0px 0px 5px $colors$blue-200',\n },\n },\n '&:hover[data-state=\"checked\"][aria-disabled=\"true\"], &:hover[data-state=\"checked\"]&:disabled':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"checked\"], &:disabled[data-state=\"checked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n color: '$icon-neutrals-disabled',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n color: '$icon-neutrals-disabled',\n },\n },\n variants: {\n variant: {\n 'solid-prominent': {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent',\n color: '$icon-primary-inverted',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls',\n },\n },\n '&:hover[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n '&:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-primary',\n },\n },\n },\n 'solid-subtle': {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n color: '$icon-primary',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n },\n },\n '&:hover[data-state=\"checked\"], &:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$icon-primary-hover',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n },\n ghost: {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n color: '$icon-primary',\n },\n },\n\n '&:hover[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n color: '$icon-primary-hover',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"checked\"], &:disabled[data-state=\"checked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n },\n },\n size: {\n large: {\n [checkboxContentSelector]: {\n square: '$5',\n },\n },\n small: {\n [checkboxContentSelector]: {\n square: '$4',\n },\n },\n },\n },\n})\n\nexport type StyledCheckboxProps = ComponentPropsWithRef<typeof StyledCheckbox>\n","import {\n IconProhibit,\n IconCheckMark,\n IconMinus,\n} from '@mirohq/design-system-icons'\nimport { styled } from '@mirohq/design-system-stitches'\n\nconst markStyles = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n variants: {\n size: {\n large: { width: '18px' },\n small: { width: '12px' },\n },\n },\n}\n\nexport const StyledDisabledMark = styled(IconProhibit, markStyles)\n\nexport const StyledCheckMark = styled(IconCheckMark, markStyles)\n\nexport const StyledIndeterminateMark = styled(IconMinus, markStyles)\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { Indicator } from './partials/indicator'\nimport { StyledCheckboxContent, StyledCheckbox } from './checkbox.styled'\nimport {\n StyledCheckMark,\n StyledDisabledMark,\n} from './partials/status-marks.styled'\nimport type { StyledCheckboxProps } from './checkbox.styled'\n\nexport interface CheckboxProps extends StyledCheckboxProps {\n /**\n * The checked state of the checkbox when it is initially rendered. Use when\n * you do not need to control its checked state.\n */\n defaultChecked?: boolean\n\n /**\n * The style of the checkbox.\n */\n variant?: StyledCheckboxProps['variant']\n\n /**\n * The size of the checkbox.\n */\n size?: StyledCheckboxProps['size']\n\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction\n * with onCheckedChange.\n */\n checked?: boolean\n\n /**\n * When true, indicates that the user must check the checkbox before the\n * owning form can be submitted.\n */\n required?: boolean\n\n /**\n * The name of the checkbox. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the checked state of the checkbox changes.\n */\n onCheckedChange?: (checked: boolean | 'indeterminate') => void\n\n /**\n * When true, prevents the user from interacting with the checkbox but focus\n * is still possible.\n */\n 'aria-disabled'?: boolean\n}\n\nexport const Checkbox = React.forwardRef<\n ElementRef<typeof StyledCheckbox>,\n CheckboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled = false,\n checked,\n defaultChecked = false,\n disabled,\n onClick,\n onKeyDown,\n size = 'large',\n variant = 'solid-prominent',\n ...restProps\n },\n forwardRef\n ) => {\n const [checkedState, setCheckedState] = useState(defaultChecked)\n const disabledUnChecked =\n (disabled === true || ariaDisabled) && (checked ?? !checkedState)\n return (\n <StyledCheckbox\n {...restProps}\n aria-disabled={ariaDisabled}\n checked={checked ?? checkedState}\n defaultChecked={defaultChecked}\n disabled={disabled}\n size={size}\n variant={variant}\n onClick={e => {\n if (ariaDisabled) {\n e.preventDefault()\n return\n }\n setCheckedState(prevChecked => !prevChecked)\n onClick?.(e)\n }}\n ref={forwardRef}\n >\n <StyledCheckboxContent>\n <Indicator>\n <StyledCheckMark size={size} />\n </Indicator>\n {disabledUnChecked && <StyledDisabledMark size={size} />}\n </StyledCheckboxContent>\n </StyledCheckbox>\n )\n }\n)\n"],"names":["styled","RadixIndicator","React","Primitive","Root","IconProhibit","IconCheckMark","IconMinus","useState"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/partials/indicator.tsx","../src/checkbox.styled.tsx","../src/partials/status-marks.styled.tsx","../src/checkbox.tsx"],"sourcesContent":["import React from 'react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ElementRef } from 'react'\nimport { Indicator as RadixIndicator } from '@radix-ui/react-checkbox'\n\nconst StyledIndicator = styled(RadixIndicator)\ntype StyledIndicatorProps = StrictComponentProps<typeof StyledIndicator>\n\nexport const Indicator = React.forwardRef<\n ElementRef<typeof StyledIndicator>,\n StyledIndicatorProps\n>((props, forwardRef) => <StyledIndicator {...props} ref={forwardRef} />)\n","import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-checkbox'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledCheckboxContent = styled(Primitive.div, {\n display: 'block',\n pointerEvents: 'none',\n borderRadius: '$50',\n position: 'relative',\n margin: 'auto',\n boxSizing: 'border-box',\n})\n\nconst checkboxContentSelector = `& ${StyledCheckboxContent}`\n\nconst checkedAndIndeterminate =\n '&[data-state=\"checked\"], &[data-state=\"indeterminate\"]'\nconst ariaDisabledCheckedIndeterminate = [\n '&[aria-disabled=\"true\"][data-state=\"checked\"]',\n '&:disabled[data-state=\"checked\"]',\n '&[aria-disabled=\"true\"][data-state=\"indeterminate\"]',\n '&:disabled[data-state=\"indeterminate\"]',\n].join(' ,')\nconst hoverCheckedIndeterminate =\n '&:hover[data-state=\"checked\"], &:hover[data-state=\"indeterminate\"]'\nconst ariaDisabledUnChecked =\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]'\nconst hoverCheckedIndeterminateDisabled = [\n '&:hover[data-state=\"checked\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"checked\"]&:disabled',\n '&:hover[data-state=\"indeterminate\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"indeterminate\"]&:disabled',\n].join(' ,')\n\nconst hoverAriaDisabled = [\n '&:hover[data-state=\"unchecked\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"unchecked\"]&:disabled',\n ...hoverCheckedIndeterminateDisabled.split(' ,'),\n].join(' ,')\n\nexport const StyledCheckbox = styled(Root, {\n all: 'unset',\n square: '$6',\n color: '$icon-primary-inverted',\n\n '&:focus': {\n [checkboxContentSelector]: {\n boxShadow: '$focus-controls',\n },\n },\n [hoverCheckedIndeterminateDisabled]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n\n [hoverAriaDisabled]: {\n [checkboxContentSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n [ariaDisabledCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n color: '$icon-neutrals-disabled',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n color: '$icon-neutrals-disabled',\n },\n },\n variants: {\n variant: {\n 'solid-prominent': {\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls',\n },\n },\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent',\n color: '$icon-primary-inverted',\n },\n },\n [hoverCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n '&:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-primary',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls-disabled',\n },\n },\n },\n 'solid-subtle': {\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n color: '$icon-primary',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n },\n },\n [`${hoverCheckedIndeterminate}, &:hover[data-state=\"unchecked\"]`]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$icon-primary-hover',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n },\n ghost: {\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n color: '$icon-primary',\n },\n },\n [hoverCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [ariaDisabledCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n [hoverCheckedIndeterminateDisabled]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n },\n },\n size: {\n large: {\n [checkboxContentSelector]: {\n square: '$5',\n },\n },\n small: {\n [checkboxContentSelector]: {\n square: '$4',\n },\n },\n },\n },\n})\n\nexport type StyledCheckboxProps = ComponentPropsWithRef<typeof StyledCheckbox>\n","import {\n IconProhibit,\n IconCheckMark,\n IconMinus,\n} from '@mirohq/design-system-icons'\nimport { styled } from '@mirohq/design-system-stitches'\n\nconst markStyles = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n variants: {\n size: {\n large: { width: '18px' },\n small: { width: '12px' },\n },\n },\n}\n\nexport const StyledDisabledMark = styled(IconProhibit, markStyles)\n\nexport const StyledCheckMark = styled(IconCheckMark, markStyles)\n\nexport const StyledIndeterminateMark = styled(IconMinus, markStyles)\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { Indicator } from './partials/indicator'\nimport { StyledCheckboxContent, StyledCheckbox } from './checkbox.styled'\nimport {\n StyledCheckMark,\n StyledDisabledMark,\n StyledIndeterminateMark,\n} from './partials/status-marks.styled'\nimport type { StyledCheckboxProps } from './checkbox.styled'\n\nexport interface CheckboxProps extends StyledCheckboxProps {\n /**\n * The checked state of the checkbox when it is initially rendered. Use when\n * you do not need to control its checked state.\n */\n defaultChecked?: boolean\n\n /**\n * The style of the checkbox.\n */\n variant?: StyledCheckboxProps['variant']\n\n /**\n * The size of the checkbox.\n */\n size?: StyledCheckboxProps['size']\n\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction\n * with onCheckedChange.\n */\n checked?: boolean | 'indeterminate'\n\n /**\n * When true, indicates that the user must check the checkbox before the\n * owning form can be submitted.\n */\n required?: boolean\n\n /**\n * The name of the checkbox. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the checked state equals true.\n */\n onChecked?: () => void\n\n /**\n * Event handler called when the checked state equals false.\n */\n onUnChecked?: () => void\n\n /**\n * Event handler called when the checked state equals indeterminate.\n */\n onIndeterminate?: () => void\n\n /**\n * When true, prevents the user from interacting with the checkbox but focus\n * is still possible.\n */\n 'aria-disabled'?: boolean\n}\n\nexport const Checkbox = React.forwardRef<\n ElementRef<typeof StyledCheckbox>,\n CheckboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled = false,\n checked,\n defaultChecked = false,\n disabled,\n onChecked,\n onUnChecked,\n onIndeterminate,\n onClick,\n onKeyDown,\n size = 'large',\n variant = 'solid-prominent',\n ...restProps\n },\n forwardRef\n ) => {\n const [checkedState, setCheckedState] =\n useState<CheckboxProps['checked']>(defaultChecked)\n const internalChecked = checked ?? checkedState\n const disabledUnChecked =\n (disabled === true || ariaDisabled) && internalChecked === false\n const checkedStateEvents = {\n true: onChecked,\n false: onUnChecked,\n indeterminate: onIndeterminate,\n }\n\n return (\n <StyledCheckbox\n {...restProps}\n aria-disabled={ariaDisabled}\n checked={internalChecked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n size={size}\n variant={variant}\n onClick={e => {\n if (ariaDisabled) {\n e.preventDefault()\n return\n }\n onClick?.(e)\n }}\n onCheckedChange={checked => {\n setCheckedState(checked)\n\n checkedStateEvents[`${checked}`]?.()\n }}\n ref={forwardRef}\n >\n <StyledCheckboxContent>\n <Indicator>\n {internalChecked === 'indeterminate' && (\n <StyledIndeterminateMark size={size} />\n )}\n {internalChecked === true && <StyledCheckMark size={size} />}\n </Indicator>\n {disabledUnChecked && <StyledDisabledMark size={size} />}\n </StyledCheckboxContent>\n </StyledCheckbox>\n )\n }\n)\n"],"names":["styled","RadixIndicator","React","Primitive","Root","IconProhibit","IconCheckMark","IconMinus","useState","checked"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -19,27 +19,52 @@ const StyledCheckboxContent = styled(Primitive.div, {
19
19
  boxSizing: "border-box"
20
20
  });
21
21
  const checkboxContentSelector = `& ${StyledCheckboxContent}`;
22
+ const checkedAndIndeterminate = '&[data-state="checked"], &[data-state="indeterminate"]';
23
+ const ariaDisabledCheckedIndeterminate = [
24
+ '&[aria-disabled="true"][data-state="checked"]',
25
+ '&:disabled[data-state="checked"]',
26
+ '&[aria-disabled="true"][data-state="indeterminate"]',
27
+ '&:disabled[data-state="indeterminate"]'
28
+ ].join(" ,");
29
+ const hoverCheckedIndeterminate = '&:hover[data-state="checked"], &:hover[data-state="indeterminate"]';
30
+ const ariaDisabledUnChecked = '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]';
31
+ const hoverCheckedIndeterminateDisabled = [
32
+ '&:hover[data-state="checked"][aria-disabled="true"]',
33
+ '&:hover[data-state="checked"]&:disabled',
34
+ '&:hover[data-state="indeterminate"][aria-disabled="true"]',
35
+ '&:hover[data-state="indeterminate"]&:disabled'
36
+ ].join(" ,");
37
+ const hoverAriaDisabled = [
38
+ '&:hover[data-state="unchecked"][aria-disabled="true"]',
39
+ '&:hover[data-state="unchecked"]&:disabled',
40
+ ...hoverCheckedIndeterminateDisabled.split(" ,")
41
+ ].join(" ,");
22
42
  const StyledCheckbox = styled(Root, {
23
43
  all: "unset",
24
44
  square: "$6",
25
45
  color: "$icon-primary-inverted",
26
46
  "&:focus": {
27
47
  [checkboxContentSelector]: {
28
- boxShadow: "0px 0px 0px 1px $colors$white, 0px 0px 0px 3px $colors$blue-500, 0px 0px 0px 5px $colors$blue-200"
48
+ boxShadow: "$focus-controls"
29
49
  }
30
50
  },
31
- '&:hover[data-state="checked"][aria-disabled="true"], &:hover[data-state="checked"]&:disabled': {
51
+ [hoverCheckedIndeterminateDisabled]: {
32
52
  [checkboxContentSelector]: {
33
53
  backgroundColor: "$background-neutrals-controls-disabled"
34
54
  }
35
55
  },
36
- '&[aria-disabled="true"][data-state="checked"], &:disabled[data-state="checked"]': {
56
+ [hoverAriaDisabled]: {
57
+ [checkboxContentSelector]: {
58
+ color: "$icon-neutrals-disabled"
59
+ }
60
+ },
61
+ [ariaDisabledCheckedIndeterminate]: {
37
62
  [checkboxContentSelector]: {
38
63
  backgroundColor: "$background-neutrals-controls-disabled",
39
64
  color: "$icon-neutrals-disabled"
40
65
  }
41
66
  },
42
- '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]': {
67
+ [ariaDisabledUnChecked]: {
43
68
  [checkboxContentSelector]: {
44
69
  backgroundColor: "$background-neutrals",
45
70
  color: "$icon-neutrals-disabled"
@@ -48,18 +73,18 @@ const StyledCheckbox = styled(Root, {
48
73
  variants: {
49
74
  variant: {
50
75
  "solid-prominent": {
51
- '&[data-state="checked"]': {
76
+ '&[data-state="unchecked"]': {
52
77
  [checkboxContentSelector]: {
53
- backgroundColor: "$background-primary-prominent",
54
- color: "$icon-primary-inverted"
78
+ border: "1px solid $border-neutrals-controls"
55
79
  }
56
80
  },
57
- '&[data-state="unchecked"]': {
81
+ [checkedAndIndeterminate]: {
58
82
  [checkboxContentSelector]: {
59
- border: "1px solid $border-neutrals-controls"
83
+ backgroundColor: "$background-primary-prominent",
84
+ color: "$icon-primary-inverted"
60
85
  }
61
86
  },
62
- '&:hover[data-state="checked"]': {
87
+ [hoverCheckedIndeterminate]: {
63
88
  [checkboxContentSelector]: {
64
89
  backgroundColor: "$background-primary-prominent-hover"
65
90
  }
@@ -68,10 +93,15 @@ const StyledCheckbox = styled(Root, {
68
93
  [checkboxContentSelector]: {
69
94
  border: "1px solid $border-primary"
70
95
  }
96
+ },
97
+ [ariaDisabledUnChecked]: {
98
+ [checkboxContentSelector]: {
99
+ border: "1px solid $border-neutrals-controls-disabled"
100
+ }
71
101
  }
72
102
  },
73
103
  "solid-subtle": {
74
- '&[data-state="checked"]': {
104
+ [checkedAndIndeterminate]: {
75
105
  [checkboxContentSelector]: {
76
106
  backgroundColor: "$background-primary-subtle",
77
107
  color: "$icon-primary"
@@ -82,30 +112,35 @@ const StyledCheckbox = styled(Root, {
82
112
  backgroundColor: "$background-primary-subtle"
83
113
  }
84
114
  },
85
- '&:hover[data-state="checked"], &:hover[data-state="unchecked"]': {
115
+ [`${hoverCheckedIndeterminate}, &:hover[data-state="unchecked"]`]: {
86
116
  [checkboxContentSelector]: {
87
117
  backgroundColor: "$background-primary-subtle-hover",
88
118
  color: "$icon-primary-hover"
89
119
  }
90
120
  },
91
- '&[aria-disabled="true"][data-state="unchecked"], &:disabled[data-state="unchecked"]': {
121
+ [ariaDisabledUnChecked]: {
92
122
  [checkboxContentSelector]: {
93
123
  backgroundColor: "$background-neutrals-controls-disabled"
94
124
  }
95
125
  }
96
126
  },
97
127
  ghost: {
98
- '&[data-state="checked"]': {
128
+ [checkedAndIndeterminate]: {
99
129
  [checkboxContentSelector]: {
100
130
  color: "$icon-primary"
101
131
  }
102
132
  },
103
- '&:hover[data-state="checked"]': {
133
+ [hoverCheckedIndeterminate]: {
104
134
  [checkboxContentSelector]: {
105
135
  color: "$icon-primary-hover"
106
136
  }
107
137
  },
108
- '&[aria-disabled="true"][data-state="checked"], &:disabled[data-state="checked"]': {
138
+ [ariaDisabledCheckedIndeterminate]: {
139
+ [checkboxContentSelector]: {
140
+ backgroundColor: "$background-neutrals"
141
+ }
142
+ },
143
+ [hoverCheckedIndeterminateDisabled]: {
109
144
  [checkboxContentSelector]: {
110
145
  backgroundColor: "$background-neutrals"
111
146
  }
@@ -141,7 +176,7 @@ const markStyles = {
141
176
  };
142
177
  const StyledDisabledMark = styled(IconProhibit, markStyles);
143
178
  const StyledCheckMark = styled(IconCheckMark, markStyles);
144
- styled(IconMinus, markStyles);
179
+ const StyledIndeterminateMark = styled(IconMinus, markStyles);
145
180
 
146
181
  const Checkbox = React.forwardRef(
147
182
  ({
@@ -149,6 +184,9 @@ const Checkbox = React.forwardRef(
149
184
  checked,
150
185
  defaultChecked = false,
151
186
  disabled,
187
+ onChecked,
188
+ onUnChecked,
189
+ onIndeterminate,
152
190
  onClick,
153
191
  onKeyDown,
154
192
  size = "large",
@@ -156,11 +194,17 @@ const Checkbox = React.forwardRef(
156
194
  ...restProps
157
195
  }, forwardRef) => {
158
196
  const [checkedState, setCheckedState] = useState(defaultChecked);
159
- const disabledUnChecked = (disabled === true || ariaDisabled) && (checked != null ? checked : !checkedState);
197
+ const internalChecked = checked != null ? checked : checkedState;
198
+ const disabledUnChecked = (disabled === true || ariaDisabled) && internalChecked === false;
199
+ const checkedStateEvents = {
200
+ true: onChecked,
201
+ false: onUnChecked,
202
+ indeterminate: onIndeterminate
203
+ };
160
204
  return /* @__PURE__ */ React.createElement(StyledCheckbox, {
161
205
  ...restProps,
162
206
  "aria-disabled": ariaDisabled,
163
- checked: checked != null ? checked : checkedState,
207
+ checked: internalChecked,
164
208
  defaultChecked,
165
209
  disabled,
166
210
  size,
@@ -170,11 +214,17 @@ const Checkbox = React.forwardRef(
170
214
  e.preventDefault();
171
215
  return;
172
216
  }
173
- setCheckedState((prevChecked) => !prevChecked);
174
217
  onClick == null ? void 0 : onClick(e);
175
218
  },
219
+ onCheckedChange: (checked2) => {
220
+ var _a;
221
+ setCheckedState(checked2);
222
+ (_a = checkedStateEvents[`${checked2}`]) == null ? void 0 : _a.call(checkedStateEvents);
223
+ },
176
224
  ref: forwardRef
177
- }, /* @__PURE__ */ React.createElement(StyledCheckboxContent, null, /* @__PURE__ */ React.createElement(Indicator, null, /* @__PURE__ */ React.createElement(StyledCheckMark, {
225
+ }, /* @__PURE__ */ React.createElement(StyledCheckboxContent, null, /* @__PURE__ */ React.createElement(Indicator, null, internalChecked === "indeterminate" && /* @__PURE__ */ React.createElement(StyledIndeterminateMark, {
226
+ size
227
+ }), internalChecked === true && /* @__PURE__ */ React.createElement(StyledCheckMark, {
178
228
  size
179
229
  })), disabledUnChecked && /* @__PURE__ */ React.createElement(StyledDisabledMark, {
180
230
  size
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/partials/indicator.tsx","../src/checkbox.styled.tsx","../src/partials/status-marks.styled.tsx","../src/checkbox.tsx"],"sourcesContent":["import React from 'react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ElementRef } from 'react'\nimport { Indicator as RadixIndicator } from '@radix-ui/react-checkbox'\n\nconst StyledIndicator = styled(RadixIndicator)\ntype StyledIndicatorProps = StrictComponentProps<typeof StyledIndicator>\n\nexport const Indicator = React.forwardRef<\n ElementRef<typeof StyledIndicator>,\n StyledIndicatorProps\n>((props, forwardRef) => <StyledIndicator {...props} ref={forwardRef} />)\n","import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-checkbox'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledCheckboxContent = styled(Primitive.div, {\n display: 'block',\n pointerEvents: 'none',\n borderRadius: '$50',\n position: 'relative',\n margin: 'auto',\n boxSizing: 'border-box',\n})\n\nconst checkboxContentSelector = `& ${StyledCheckboxContent}`\n\nexport const StyledCheckbox = styled(Root, {\n all: 'unset',\n square: '$6',\n color: '$icon-primary-inverted',\n\n '&:focus': {\n [checkboxContentSelector]: {\n boxShadow:\n '0px 0px 0px 1px $colors$white, 0px 0px 0px 3px $colors$blue-500, 0px 0px 0px 5px $colors$blue-200',\n },\n },\n '&:hover[data-state=\"checked\"][aria-disabled=\"true\"], &:hover[data-state=\"checked\"]&:disabled':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"checked\"], &:disabled[data-state=\"checked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n color: '$icon-neutrals-disabled',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n color: '$icon-neutrals-disabled',\n },\n },\n variants: {\n variant: {\n 'solid-prominent': {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent',\n color: '$icon-primary-inverted',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls',\n },\n },\n '&:hover[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n '&:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-primary',\n },\n },\n },\n 'solid-subtle': {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n color: '$icon-primary',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n },\n },\n '&:hover[data-state=\"checked\"], &:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$icon-primary-hover',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n },\n ghost: {\n '&[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n color: '$icon-primary',\n },\n },\n\n '&:hover[data-state=\"checked\"]': {\n [checkboxContentSelector]: {\n color: '$icon-primary-hover',\n },\n },\n '&[aria-disabled=\"true\"][data-state=\"checked\"], &:disabled[data-state=\"checked\"]':\n {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n },\n },\n size: {\n large: {\n [checkboxContentSelector]: {\n square: '$5',\n },\n },\n small: {\n [checkboxContentSelector]: {\n square: '$4',\n },\n },\n },\n },\n})\n\nexport type StyledCheckboxProps = ComponentPropsWithRef<typeof StyledCheckbox>\n","import {\n IconProhibit,\n IconCheckMark,\n IconMinus,\n} from '@mirohq/design-system-icons'\nimport { styled } from '@mirohq/design-system-stitches'\n\nconst markStyles = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n variants: {\n size: {\n large: { width: '18px' },\n small: { width: '12px' },\n },\n },\n}\n\nexport const StyledDisabledMark = styled(IconProhibit, markStyles)\n\nexport const StyledCheckMark = styled(IconCheckMark, markStyles)\n\nexport const StyledIndeterminateMark = styled(IconMinus, markStyles)\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { Indicator } from './partials/indicator'\nimport { StyledCheckboxContent, StyledCheckbox } from './checkbox.styled'\nimport {\n StyledCheckMark,\n StyledDisabledMark,\n} from './partials/status-marks.styled'\nimport type { StyledCheckboxProps } from './checkbox.styled'\n\nexport interface CheckboxProps extends StyledCheckboxProps {\n /**\n * The checked state of the checkbox when it is initially rendered. Use when\n * you do not need to control its checked state.\n */\n defaultChecked?: boolean\n\n /**\n * The style of the checkbox.\n */\n variant?: StyledCheckboxProps['variant']\n\n /**\n * The size of the checkbox.\n */\n size?: StyledCheckboxProps['size']\n\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction\n * with onCheckedChange.\n */\n checked?: boolean\n\n /**\n * When true, indicates that the user must check the checkbox before the\n * owning form can be submitted.\n */\n required?: boolean\n\n /**\n * The name of the checkbox. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the checked state of the checkbox changes.\n */\n onCheckedChange?: (checked: boolean | 'indeterminate') => void\n\n /**\n * When true, prevents the user from interacting with the checkbox but focus\n * is still possible.\n */\n 'aria-disabled'?: boolean\n}\n\nexport const Checkbox = React.forwardRef<\n ElementRef<typeof StyledCheckbox>,\n CheckboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled = false,\n checked,\n defaultChecked = false,\n disabled,\n onClick,\n onKeyDown,\n size = 'large',\n variant = 'solid-prominent',\n ...restProps\n },\n forwardRef\n ) => {\n const [checkedState, setCheckedState] = useState(defaultChecked)\n const disabledUnChecked =\n (disabled === true || ariaDisabled) && (checked ?? !checkedState)\n return (\n <StyledCheckbox\n {...restProps}\n aria-disabled={ariaDisabled}\n checked={checked ?? checkedState}\n defaultChecked={defaultChecked}\n disabled={disabled}\n size={size}\n variant={variant}\n onClick={e => {\n if (ariaDisabled) {\n e.preventDefault()\n return\n }\n setCheckedState(prevChecked => !prevChecked)\n onClick?.(e)\n }}\n ref={forwardRef}\n >\n <StyledCheckboxContent>\n <Indicator>\n <StyledCheckMark size={size} />\n </Indicator>\n {disabledUnChecked && <StyledDisabledMark size={size} />}\n </StyledCheckboxContent>\n </StyledCheckbox>\n )\n }\n)\n"],"names":["RadixIndicator"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/partials/indicator.tsx","../src/checkbox.styled.tsx","../src/partials/status-marks.styled.tsx","../src/checkbox.tsx"],"sourcesContent":["import React from 'react'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { ElementRef } from 'react'\nimport { Indicator as RadixIndicator } from '@radix-ui/react-checkbox'\n\nconst StyledIndicator = styled(RadixIndicator)\ntype StyledIndicatorProps = StrictComponentProps<typeof StyledIndicator>\n\nexport const Indicator = React.forwardRef<\n ElementRef<typeof StyledIndicator>,\n StyledIndicatorProps\n>((props, forwardRef) => <StyledIndicator {...props} ref={forwardRef} />)\n","import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root } from '@radix-ui/react-checkbox'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledCheckboxContent = styled(Primitive.div, {\n display: 'block',\n pointerEvents: 'none',\n borderRadius: '$50',\n position: 'relative',\n margin: 'auto',\n boxSizing: 'border-box',\n})\n\nconst checkboxContentSelector = `& ${StyledCheckboxContent}`\n\nconst checkedAndIndeterminate =\n '&[data-state=\"checked\"], &[data-state=\"indeterminate\"]'\nconst ariaDisabledCheckedIndeterminate = [\n '&[aria-disabled=\"true\"][data-state=\"checked\"]',\n '&:disabled[data-state=\"checked\"]',\n '&[aria-disabled=\"true\"][data-state=\"indeterminate\"]',\n '&:disabled[data-state=\"indeterminate\"]',\n].join(' ,')\nconst hoverCheckedIndeterminate =\n '&:hover[data-state=\"checked\"], &:hover[data-state=\"indeterminate\"]'\nconst ariaDisabledUnChecked =\n '&[aria-disabled=\"true\"][data-state=\"unchecked\"], &:disabled[data-state=\"unchecked\"]'\nconst hoverCheckedIndeterminateDisabled = [\n '&:hover[data-state=\"checked\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"checked\"]&:disabled',\n '&:hover[data-state=\"indeterminate\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"indeterminate\"]&:disabled',\n].join(' ,')\n\nconst hoverAriaDisabled = [\n '&:hover[data-state=\"unchecked\"][aria-disabled=\"true\"]',\n '&:hover[data-state=\"unchecked\"]&:disabled',\n ...hoverCheckedIndeterminateDisabled.split(' ,'),\n].join(' ,')\n\nexport const StyledCheckbox = styled(Root, {\n all: 'unset',\n square: '$6',\n color: '$icon-primary-inverted',\n\n '&:focus': {\n [checkboxContentSelector]: {\n boxShadow: '$focus-controls',\n },\n },\n [hoverCheckedIndeterminateDisabled]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n\n [hoverAriaDisabled]: {\n [checkboxContentSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n [ariaDisabledCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n color: '$icon-neutrals-disabled',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n color: '$icon-neutrals-disabled',\n },\n },\n variants: {\n variant: {\n 'solid-prominent': {\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls',\n },\n },\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent',\n color: '$icon-primary-inverted',\n },\n },\n [hoverCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-prominent-hover',\n },\n },\n '&:hover[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n border: '1px solid $border-primary',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n border: '1px solid $border-neutrals-controls-disabled',\n },\n },\n },\n 'solid-subtle': {\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n color: '$icon-primary',\n },\n },\n '&[data-state=\"unchecked\"]': {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle',\n },\n },\n [`${hoverCheckedIndeterminate}, &:hover[data-state=\"unchecked\"]`]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$icon-primary-hover',\n },\n },\n [ariaDisabledUnChecked]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals-controls-disabled',\n },\n },\n },\n ghost: {\n [checkedAndIndeterminate]: {\n [checkboxContentSelector]: {\n color: '$icon-primary',\n },\n },\n [hoverCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [ariaDisabledCheckedIndeterminate]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n [hoverCheckedIndeterminateDisabled]: {\n [checkboxContentSelector]: {\n backgroundColor: '$background-neutrals',\n },\n },\n },\n },\n size: {\n large: {\n [checkboxContentSelector]: {\n square: '$5',\n },\n },\n small: {\n [checkboxContentSelector]: {\n square: '$4',\n },\n },\n },\n },\n})\n\nexport type StyledCheckboxProps = ComponentPropsWithRef<typeof StyledCheckbox>\n","import {\n IconProhibit,\n IconCheckMark,\n IconMinus,\n} from '@mirohq/design-system-icons'\nimport { styled } from '@mirohq/design-system-stitches'\n\nconst markStyles = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%,-50%)',\n variants: {\n size: {\n large: { width: '18px' },\n small: { width: '12px' },\n },\n },\n}\n\nexport const StyledDisabledMark = styled(IconProhibit, markStyles)\n\nexport const StyledCheckMark = styled(IconCheckMark, markStyles)\n\nexport const StyledIndeterminateMark = styled(IconMinus, markStyles)\n","import React, { useState } from 'react'\nimport type { ElementRef } from 'react'\n\nimport { Indicator } from './partials/indicator'\nimport { StyledCheckboxContent, StyledCheckbox } from './checkbox.styled'\nimport {\n StyledCheckMark,\n StyledDisabledMark,\n StyledIndeterminateMark,\n} from './partials/status-marks.styled'\nimport type { StyledCheckboxProps } from './checkbox.styled'\n\nexport interface CheckboxProps extends StyledCheckboxProps {\n /**\n * The checked state of the checkbox when it is initially rendered. Use when\n * you do not need to control its checked state.\n */\n defaultChecked?: boolean\n\n /**\n * The style of the checkbox.\n */\n variant?: StyledCheckboxProps['variant']\n\n /**\n * The size of the checkbox.\n */\n size?: StyledCheckboxProps['size']\n\n /**\n * The controlled checked state of the checkbox. Must be used in conjunction\n * with onCheckedChange.\n */\n checked?: boolean | 'indeterminate'\n\n /**\n * When true, indicates that the user must check the checkbox before the\n * owning form can be submitted.\n */\n required?: boolean\n\n /**\n * The name of the checkbox. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * The value given as data when submitted with a name.\n */\n value?: string\n\n /**\n * When true, prevents the user from interacting with the checkbox.\n */\n disabled?: boolean\n\n /**\n * Event handler called when the checked state equals true.\n */\n onChecked?: () => void\n\n /**\n * Event handler called when the checked state equals false.\n */\n onUnChecked?: () => void\n\n /**\n * Event handler called when the checked state equals indeterminate.\n */\n onIndeterminate?: () => void\n\n /**\n * When true, prevents the user from interacting with the checkbox but focus\n * is still possible.\n */\n 'aria-disabled'?: boolean\n}\n\nexport const Checkbox = React.forwardRef<\n ElementRef<typeof StyledCheckbox>,\n CheckboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled = false,\n checked,\n defaultChecked = false,\n disabled,\n onChecked,\n onUnChecked,\n onIndeterminate,\n onClick,\n onKeyDown,\n size = 'large',\n variant = 'solid-prominent',\n ...restProps\n },\n forwardRef\n ) => {\n const [checkedState, setCheckedState] =\n useState<CheckboxProps['checked']>(defaultChecked)\n const internalChecked = checked ?? checkedState\n const disabledUnChecked =\n (disabled === true || ariaDisabled) && internalChecked === false\n const checkedStateEvents = {\n true: onChecked,\n false: onUnChecked,\n indeterminate: onIndeterminate,\n }\n\n return (\n <StyledCheckbox\n {...restProps}\n aria-disabled={ariaDisabled}\n checked={internalChecked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n size={size}\n variant={variant}\n onClick={e => {\n if (ariaDisabled) {\n e.preventDefault()\n return\n }\n onClick?.(e)\n }}\n onCheckedChange={checked => {\n setCheckedState(checked)\n\n checkedStateEvents[`${checked}`]?.()\n }}\n ref={forwardRef}\n >\n <StyledCheckboxContent>\n <Indicator>\n {internalChecked === 'indeterminate' && (\n <StyledIndeterminateMark size={size} />\n )}\n {internalChecked === true && <StyledCheckMark size={size} />}\n </Indicator>\n {disabledUnChecked && <StyledDisabledMark size={size} />}\n </StyledCheckboxContent>\n </StyledCheckbox>\n )\n }\n)\n"],"names":["RadixIndicator","checked"],"mappings":";;;;;;AAMA,MAAM,eAAA,GAAkB,OAAOA,WAAc,CAAA,CAAA;AAGtC,MAAM,YAAY,KAAM,CAAA,UAAA,CAG7B,CAAC,KAAA,EAAO,+BAAgB,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAA,EAAiB,GAAG,KAAA;AAAA,EAAO,GAAK,EAAA,UAAA;AAAA,CAAY,CAAE,CAAA;;ACP3D,MAAA,qBAAA,GAAwB,MAAO,CAAA,SAAA,CAAU,GAAK,EAAA;AAAA,EACzD,OAAS,EAAA,OAAA;AAAA,EACT,aAAe,EAAA,MAAA;AAAA,EACf,YAAc,EAAA,KAAA;AAAA,EACd,QAAU,EAAA,UAAA;AAAA,EACV,MAAQ,EAAA,MAAA;AAAA,EACR,SAAW,EAAA,YAAA;AACb,CAAC,CAAA,CAAA;AAED,MAAM,0BAA0B,CAAK,EAAA,EAAA,qBAAA,CAAA,CAAA,CAAA;AAErC,MAAM,uBACJ,GAAA,wDAAA,CAAA;AACF,MAAM,gCAAmC,GAAA;AAAA,EACvC,+CAAA;AAAA,EACA,kCAAA;AAAA,EACA,qDAAA;AAAA,EACA,wCAAA;AACF,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AACX,MAAM,yBACJ,GAAA,oEAAA,CAAA;AACF,MAAM,qBACJ,GAAA,qFAAA,CAAA;AACF,MAAM,iCAAoC,GAAA;AAAA,EACxC,qDAAA;AAAA,EACA,yCAAA;AAAA,EACA,2DAAA;AAAA,EACA,+CAAA;AACF,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAEX,MAAM,iBAAoB,GAAA;AAAA,EACxB,uDAAA;AAAA,EACA,2CAAA;AAAA,EACA,GAAG,iCAAkC,CAAA,KAAA,CAAM,IAAI,CAAA;AACjD,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAEE,MAAA,cAAA,GAAiB,OAAO,IAAM,EAAA;AAAA,EACzC,GAAK,EAAA,OAAA;AAAA,EACL,MAAQ,EAAA,IAAA;AAAA,EACR,KAAO,EAAA,wBAAA;AAAA,EAEP,SAAW,EAAA;AAAA,IACT,CAAC,uBAA0B,GAAA;AAAA,MACzB,SAAW,EAAA,iBAAA;AAAA,KACb;AAAA,GACF;AAAA,EACA,CAAC,iCAAoC,GAAA;AAAA,IACnC,CAAC,uBAA0B,GAAA;AAAA,MACzB,eAAiB,EAAA,wCAAA;AAAA,KACnB;AAAA,GACF;AAAA,EAEA,CAAC,iBAAoB,GAAA;AAAA,IACnB,CAAC,uBAA0B,GAAA;AAAA,MACzB,KAAO,EAAA,yBAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,CAAC,gCAAmC,GAAA;AAAA,IAClC,CAAC,uBAA0B,GAAA;AAAA,MACzB,eAAiB,EAAA,wCAAA;AAAA,MACjB,KAAO,EAAA,yBAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,CAAC,qBAAwB,GAAA;AAAA,IACvB,CAAC,uBAA0B,GAAA;AAAA,MACzB,eAAiB,EAAA,sBAAA;AAAA,MACjB,KAAO,EAAA,yBAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,iBAAmB,EAAA;AAAA,QACjB,2BAA6B,EAAA;AAAA,UAC3B,CAAC,uBAA0B,GAAA;AAAA,YACzB,MAAQ,EAAA,qCAAA;AAAA,WACV;AAAA,SACF;AAAA,QACA,CAAC,uBAA0B,GAAA;AAAA,UACzB,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,+BAAA;AAAA,YACjB,KAAO,EAAA,wBAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,CAAC,yBAA4B,GAAA;AAAA,UAC3B,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,qCAAA;AAAA,WACnB;AAAA,SACF;AAAA,QACA,iCAAmC,EAAA;AAAA,UACjC,CAAC,uBAA0B,GAAA;AAAA,YACzB,MAAQ,EAAA,2BAAA;AAAA,WACV;AAAA,SACF;AAAA,QACA,CAAC,qBAAwB,GAAA;AAAA,UACvB,CAAC,uBAA0B,GAAA;AAAA,YACzB,MAAQ,EAAA,8CAAA;AAAA,WACV;AAAA,SACF;AAAA,OACF;AAAA,MACA,cAAgB,EAAA;AAAA,QACd,CAAC,uBAA0B,GAAA;AAAA,UACzB,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,4BAAA;AAAA,YACjB,KAAO,EAAA,eAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,2BAA6B,EAAA;AAAA,UAC3B,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,4BAAA;AAAA,WACnB;AAAA,SACF;AAAA,QACA,CAAC,GAAG,yBAA+D,CAAA,iCAAA,CAAA,GAAA;AAAA,UACjE,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,kCAAA;AAAA,YACjB,KAAO,EAAA,qBAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,CAAC,qBAAwB,GAAA;AAAA,UACvB,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,wCAAA;AAAA,WACnB;AAAA,SACF;AAAA,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,CAAC,uBAA0B,GAAA;AAAA,UACzB,CAAC,uBAA0B,GAAA;AAAA,YACzB,KAAO,EAAA,eAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,CAAC,yBAA4B,GAAA;AAAA,UAC3B,CAAC,uBAA0B,GAAA;AAAA,YACzB,KAAO,EAAA,qBAAA;AAAA,WACT;AAAA,SACF;AAAA,QACA,CAAC,gCAAmC,GAAA;AAAA,UAClC,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,sBAAA;AAAA,WACnB;AAAA,SACF;AAAA,QACA,CAAC,iCAAoC,GAAA;AAAA,UACnC,CAAC,uBAA0B,GAAA;AAAA,YACzB,eAAiB,EAAA,sBAAA;AAAA,WACnB;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA;AAAA,QACL,CAAC,uBAA0B,GAAA;AAAA,UACzB,MAAQ,EAAA,IAAA;AAAA,SACV;AAAA,OACF;AAAA,MACA,KAAO,EAAA;AAAA,QACL,CAAC,uBAA0B,GAAA;AAAA,UACzB,MAAQ,EAAA,IAAA;AAAA,SACV;AAAA,OACF;AAAA,KACF;AAAA,GACF;AACF,CAAC,CAAA;;AC7JD,MAAM,UAAa,GAAA;AAAA,EACjB,QAAU,EAAA,UAAA;AAAA,EACV,GAAK,EAAA,KAAA;AAAA,EACL,IAAM,EAAA,KAAA;AAAA,EACN,SAAW,EAAA,sBAAA;AAAA,EACX,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO,EAAA;AAAA,MACvB,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO,EAAA;AAAA,KACzB;AAAA,GACF;AACF,CAAA,CAAA;AAEa,MAAA,kBAAA,GAAqB,MAAO,CAAA,YAAA,EAAc,UAAU,CAAA,CAAA;AAEpD,MAAA,eAAA,GAAkB,MAAO,CAAA,aAAA,EAAe,UAAU,CAAA,CAAA;AAElD,MAAA,uBAAA,GAA0B,MAAO,CAAA,SAAA,EAAW,UAAU,CAAA;;ACuD5D,MAAM,WAAW,KAAM,CAAA,UAAA;AAAA,EAI5B,CACE;AAAA,IACE,iBAAiB,YAAe,GAAA,KAAA;AAAA,IAChC,OAAA;AAAA,IACA,cAAiB,GAAA,KAAA;AAAA,IACjB,QAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAO,GAAA,OAAA;AAAA,IACP,OAAU,GAAA,iBAAA;AAAA,IACP,GAAA,SAAA;AAAA,KAEL,UACG,KAAA;AACH,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAClC,SAAmC,cAAc,CAAA,CAAA;AACnD,IAAA,MAAM,kBAAkB,OAAW,IAAA,IAAA,GAAA,OAAA,GAAA,YAAA,CAAA;AACnC,IAAA,MAAM,iBACH,GAAA,CAAA,QAAA,KAAa,IAAQ,IAAA,YAAA,KAAiB,eAAoB,KAAA,KAAA,CAAA;AAC7D,IAAA,MAAM,kBAAqB,GAAA;AAAA,MACzB,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,WAAA;AAAA,MACP,aAAe,EAAA,eAAA;AAAA,KACjB,CAAA;AAEA,IAAA,uBACG,KAAA,CAAA,aAAA,CAAA,cAAA,EAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,eAAe,EAAA,YAAA;AAAA,MACf,OAAS,EAAA,eAAA;AAAA,MACT,cAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,CAAK,CAAA,KAAA;AACZ,QAAA,IAAI,YAAc,EAAA;AAChB,UAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,UAAA,OAAA;AAAA,SACF;AACA,QAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,OACZ;AAAA,MACA,eAAA,EAAiB,CAAAC,QAAW,KAAA;AA/HpC,QAAA,IAAA,EAAA,CAAA;AAgIU,QAAA,eAAA,CAAgBA,QAAO,CAAA,CAAA;AAEvB,QAAA,CAAA,EAAA,GAAA,kBAAA,CAAmB,GAAGA,QAAtB,CAAA,CAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,OACF;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,KAAA,sCAEJ,qBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,SACE,EAAA,IAAA,EAAA,eAAA,KAAoB,mCAClB,KAAA,CAAA,aAAA,CAAA,uBAAA,EAAA;AAAA,MAAwB,IAAA;AAAA,KAAY,CAAA,EAEtC,eAAoB,KAAA,IAAA,oBAAS,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA;AAAA,MAAgB,IAAA;AAAA,KAAY,CAC5D,CACC,EAAA,iBAAA,oBAAsB,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA;AAAA,MAAmB,IAAA;AAAA,KAAY,CACxD,CACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
package/dist/types.d.ts CHANGED
@@ -185,6 +185,9 @@ declare const StyledCheckbox: react.ForwardRefExoticComponent<Pick<Omit<{
185
185
  shadows: {
186
186
  readonly 50: "0 4px 16px #05003812";
187
187
  readonly 100: "0 8px 32px #05003808";
188
+ readonly 'focus-small': "0 0 0 2px $colors$blue-200, inset 0 0 0 2px $colors$blue-500, inset 0 0 0 3px $colors$white";
189
+ readonly 'focus-large': "0 0 0 4px $colors$blue-200, inset 0 0 0 2px $colors$blue-500, inset 0 0 0 3px $colors$white";
190
+ readonly 'focus-controls': "0 0 0 1px $colors$white, 0 0 0 3px $colors$blue-500, 0 0 0 5px $colors$blue-200";
188
191
  };
189
192
  sizes: {
190
193
  readonly number: string;
@@ -455,7 +458,7 @@ interface CheckboxProps extends StyledCheckboxProps {
455
458
  * The controlled checked state of the checkbox. Must be used in conjunction
456
459
  * with onCheckedChange.
457
460
  */
458
- checked?: boolean;
461
+ checked?: boolean | 'indeterminate';
459
462
  /**
460
463
  * When true, indicates that the user must check the checkbox before the
461
464
  * owning form can be submitted.
@@ -475,15 +478,23 @@ interface CheckboxProps extends StyledCheckboxProps {
475
478
  */
476
479
  disabled?: boolean;
477
480
  /**
478
- * Event handler called when the checked state of the checkbox changes.
481
+ * Event handler called when the checked state equals true.
479
482
  */
480
- onCheckedChange?: (checked: boolean | 'indeterminate') => void;
483
+ onChecked?: () => void;
484
+ /**
485
+ * Event handler called when the checked state equals false.
486
+ */
487
+ onUnChecked?: () => void;
488
+ /**
489
+ * Event handler called when the checked state equals indeterminate.
490
+ */
491
+ onIndeterminate?: () => void;
481
492
  /**
482
493
  * When true, prevents the user from interacting with the checkbox but focus
483
494
  * is still possible.
484
495
  */
485
496
  'aria-disabled'?: boolean;
486
497
  }
487
- declare const Checkbox: react__default.ForwardRefExoticComponent<Pick<CheckboxProps, "color" | "translate" | "css" | "prefix" | "asChild" | "UNSAFE_style" | "form" | "slot" | "title" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "placeholder" | "required" | "size" | "type" | "value" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "variant" | "onCheckedChange"> & react__default.RefAttributes<HTMLButtonElement>>;
498
+ declare const Checkbox: react__default.ForwardRefExoticComponent<Pick<CheckboxProps, "color" | "translate" | "css" | "prefix" | "asChild" | "UNSAFE_style" | "form" | "slot" | "title" | "autoFocus" | "checked" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "placeholder" | "required" | "size" | "type" | "value" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "variant" | "onCheckedChange" | "onChecked" | "onUnChecked" | "onIndeterminate"> & react__default.RefAttributes<HTMLButtonElement>>;
488
499
 
489
500
  export { Checkbox, CheckboxProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-checkbox",
3
- "version": "1.0.0-checkbox.0",
3
+ "version": "1.0.0-checkbox.1",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -27,12 +27,12 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@radix-ui/react-checkbox": "^1.0.0",
30
- "@mirohq/design-system-icons": "^0.7.1-checkbox.0",
30
+ "@mirohq/design-system-icons": "^0.8.1-checkbox.0",
31
31
  "@mirohq/design-system-primitive": "^1.0.4",
32
32
  "@mirohq/design-system-stitches": "^2.1.0-checkbox.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@mirohq/design-system-flex": "^2.0.14-checkbox.0"
35
+ "@mirohq/design-system-flex": "^2.0.15-checkbox.0"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "rollup -c ../../../rollup.config.js",