@cdx-ui/components 0.0.1-alpha.5 → 0.0.1-alpha.7

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.
Files changed (29) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Checkbox/index.js +173 -0
  3. package/lib/commonjs/components/Checkbox/index.js.map +1 -0
  4. package/lib/commonjs/components/Checkbox/styles.js +67 -0
  5. package/lib/commonjs/components/Checkbox/styles.js.map +1 -0
  6. package/lib/commonjs/components/Stack/HStack.js +1 -1
  7. package/lib/commonjs/components/Stack/VStack.js +1 -1
  8. package/lib/commonjs/components/index.js +12 -0
  9. package/lib/commonjs/components/index.js.map +1 -1
  10. package/lib/module/components/Checkbox/index.js +169 -0
  11. package/lib/module/components/Checkbox/index.js.map +1 -0
  12. package/lib/module/components/Checkbox/styles.js +63 -0
  13. package/lib/module/components/Checkbox/styles.js.map +1 -0
  14. package/lib/module/components/Stack/HStack.js +1 -1
  15. package/lib/module/components/Stack/VStack.js +1 -1
  16. package/lib/module/components/index.js +1 -0
  17. package/lib/module/components/index.js.map +1 -1
  18. package/lib/typescript/components/Checkbox/index.d.ts +44 -0
  19. package/lib/typescript/components/Checkbox/index.d.ts.map +1 -0
  20. package/lib/typescript/components/Checkbox/styles.d.ts +18 -0
  21. package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -0
  22. package/lib/typescript/components/index.d.ts +1 -0
  23. package/lib/typescript/components/index.d.ts.map +1 -1
  24. package/package.json +3 -3
  25. package/src/components/Checkbox/index.tsx +215 -0
  26. package/src/components/Checkbox/styles.ts +94 -0
  27. package/src/components/Stack/HStack.tsx +1 -1
  28. package/src/components/Stack/VStack.tsx +1 -1
  29. package/src/components/index.ts +1 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Styled, theme-aware UI components for the Candescent Design System.
4
4
 
5
- Built on top of [`@cdx-ui/primitives`](../primitives/) and [`@cdx-ui/tokens`](../tokens/), styled via [Uniwind](https://uniwind.dev) + [CVA](https://cva.style).
5
+ Built on top of [`@cdx-ui/primitives`](../primitives/) and [`@cdx-ui/styles`](../styles/), styled via [Uniwind](https://uniwind.dev) + [CVA](https://cva.style).
6
6
 
7
7
  ## Installation
8
8
 
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Checkbox = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _primitives = require("@cdx-ui/primitives");
10
+ var _utils = require("@cdx-ui/utils");
11
+ var _styles = require("./styles");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ const SCOPE = 'CHECKBOX';
14
+ const Root = (0, _utils.withStyleContext)(_reactNative.Pressable, SCOPE);
15
+ const useCheckboxStyleContext = () => (0, _utils.useStyleContext)(SCOPE);
16
+ const CheckboxPrimitive = (0, _primitives.createCheckbox)({
17
+ Root,
18
+ Indicator: _reactNative.View,
19
+ Icon: _reactNative.View,
20
+ Label: _reactNative.Text,
21
+ Group: _reactNative.View
22
+ });
23
+
24
+ // =============================================================================
25
+ // CHECKBOX ROOT
26
+ // =============================================================================
27
+
28
+ const CheckboxRoot = /*#__PURE__*/(0, _react.forwardRef)(({
29
+ size = 'md',
30
+ className,
31
+ children,
32
+ style,
33
+ ...props
34
+ }, ref) => {
35
+ const computedClassName = (0, _utils.cn)((0, _styles.checkboxRootVariants)({
36
+ size
37
+ }), className);
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckboxPrimitive, {
39
+ ref: ref,
40
+ className: computedClassName,
41
+ style: style,
42
+ context: {
43
+ size
44
+ },
45
+ ...props,
46
+ children: children
47
+ });
48
+ });
49
+ CheckboxRoot.displayName = 'Checkbox';
50
+
51
+ // =============================================================================
52
+ // CHECKBOX INDICATOR
53
+ // =============================================================================
54
+
55
+ const CheckboxIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
56
+ className,
57
+ children,
58
+ style,
59
+ ...props
60
+ }, ref) => {
61
+ const {
62
+ size
63
+ } = useCheckboxStyleContext();
64
+ const computedClassName = (0, _utils.cn)((0, _styles.checkboxIndicatorVariants)({
65
+ size
66
+ }), className);
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckboxPrimitive.Indicator, {
68
+ ref: ref,
69
+ className: computedClassName,
70
+ style: style,
71
+ ...props,
72
+ children: children
73
+ });
74
+ });
75
+ CheckboxIndicator.displayName = 'Checkbox.Indicator';
76
+
77
+ // =============================================================================
78
+ // CHECKBOX ICON
79
+ // =============================================================================
80
+
81
+ const CheckboxIcon = /*#__PURE__*/(0, _react.forwardRef)(({
82
+ className,
83
+ children,
84
+ style,
85
+ ...props
86
+ }, ref) => {
87
+ const {
88
+ size
89
+ } = useCheckboxStyleContext();
90
+ const computedClassName = (0, _utils.cn)((0, _styles.checkboxIconVariants)({
91
+ size
92
+ }), className);
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckboxPrimitive.Icon, {
94
+ ref: ref,
95
+ className: computedClassName,
96
+ style: style,
97
+ ...props,
98
+ children: children
99
+ });
100
+ });
101
+ CheckboxIcon.displayName = 'Checkbox.Icon';
102
+
103
+ // =============================================================================
104
+ // CHECKBOX LABEL
105
+ // =============================================================================
106
+
107
+ const CheckboxLabel = /*#__PURE__*/(0, _react.forwardRef)(({
108
+ className,
109
+ children,
110
+ style,
111
+ ...props
112
+ }, ref) => {
113
+ const {
114
+ size
115
+ } = useCheckboxStyleContext();
116
+ const computedClassName = (0, _utils.cn)((0, _styles.checkboxLabelVariants)({
117
+ size
118
+ }), className);
119
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckboxPrimitive.Label, {
120
+ ref: ref,
121
+ className: computedClassName,
122
+ style: style,
123
+ ...props,
124
+ children: children
125
+ });
126
+ });
127
+ CheckboxLabel.displayName = 'Checkbox.Label';
128
+
129
+ // =============================================================================
130
+ // CHECKBOX GROUP
131
+ // =============================================================================
132
+
133
+ const CheckboxGroup = /*#__PURE__*/(0, _react.forwardRef)(({
134
+ className,
135
+ children,
136
+ style,
137
+ direction = 'column',
138
+ value,
139
+ onChange,
140
+ isDisabled,
141
+ isInvalid,
142
+ isReadOnly,
143
+ ...viewProps
144
+ }, ref) => {
145
+ const computedClassName = (0, _utils.cn)((0, _styles.checkboxGroupVariants)({
146
+ direction
147
+ }), className);
148
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(CheckboxPrimitive.Group, {
149
+ ref: ref,
150
+ className: computedClassName,
151
+ style: style,
152
+ value: value ?? [],
153
+ onChange: onChange,
154
+ isDisabled: isDisabled,
155
+ isInvalid: isInvalid,
156
+ isReadOnly: isReadOnly,
157
+ ...viewProps,
158
+ children: children
159
+ });
160
+ });
161
+ CheckboxGroup.displayName = 'Checkbox.Group';
162
+
163
+ // =============================================================================
164
+ // COMPOUND COMPONENT
165
+ // =============================================================================
166
+
167
+ const Checkbox = exports.Checkbox = Object.assign(CheckboxRoot, {
168
+ Indicator: CheckboxIndicator,
169
+ Icon: CheckboxIcon,
170
+ Label: CheckboxLabel,
171
+ Group: CheckboxGroup
172
+ });
173
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_primitives","_utils","_styles","_jsxRuntime","SCOPE","Root","withStyleContext","Pressable","useCheckboxStyleContext","useStyleContext","CheckboxPrimitive","createCheckbox","Indicator","View","Icon","Label","Text","Group","CheckboxRoot","forwardRef","size","className","children","style","props","ref","computedClassName","cn","checkboxRootVariants","jsx","context","displayName","CheckboxIndicator","checkboxIndicatorVariants","CheckboxIcon","checkboxIconVariants","CheckboxLabel","checkboxLabelVariants","CheckboxGroup","direction","value","onChange","isDisabled","isInvalid","isReadOnly","viewProps","checkboxGroupVariants","Checkbox","exports","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkboxRootVariants = exports.checkboxLabelVariants = exports.checkboxIndicatorVariants = exports.checkboxIconVariants = exports.checkboxGroupVariants = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _classVarianceAuthority = require("class-variance-authority");
9
+ const checkboxRootVariants = exports.checkboxRootVariants = (0, _classVarianceAuthority.cva)(['flex-row items-center', 'data-[disabled=true]:opacity-60 data-[disabled=true]:cursor-not-allowed'], {
10
+ variants: {
11
+ size: {
12
+ sm: 'gap-2',
13
+ md: 'gap-2.5'
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ size: 'md'
18
+ }
19
+ });
20
+ const checkboxIndicatorVariants = exports.checkboxIndicatorVariants = (0, _classVarianceAuthority.cva)(['items-center justify-center', 'rounded', 'border-2 border-neutral-border-strong', 'data-[checked=true]:bg-blue-500 data-[checked=true]:border-blue-500', 'data-[disabled=true]:opacity-60', 'data-[invalid=true]:border-red-500', 'data-[checked=true]:data-[invalid=true]:bg-red-500 data-[checked=true]:data-[invalid=true]:border-red-500', _reactNative.Platform.select({
21
+ web: ['transition-colors duration-150', 'data-[hover=true]:border-zinc-500 data-[hover=true]:bg-zinc-50', 'data-[focus-visible=true]:ring-2 data-[focus-visible=true]:ring-blue-300/50 data-[focus-visible=true]:ring-offset-1', 'data-[invalid=true]:data-[hover=true]:border-red-400', 'data-[invalid=true]:data-[focus-visible=true]:ring-red-300/50'].join(' '),
22
+ default: ''
23
+ })], {
24
+ variants: {
25
+ size: {
26
+ sm: 'h-4 w-4',
27
+ md: 'h-5 w-5'
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ size: 'md'
32
+ }
33
+ });
34
+ const checkboxIconVariants = exports.checkboxIconVariants = (0, _classVarianceAuthority.cva)(['text-white'], {
35
+ variants: {
36
+ size: {
37
+ sm: 'h-3 w-3',
38
+ md: 'h-3.5 w-3.5'
39
+ }
40
+ },
41
+ defaultVariants: {
42
+ size: 'md'
43
+ }
44
+ });
45
+ const checkboxLabelVariants = exports.checkboxLabelVariants = (0, _classVarianceAuthority.cva)(['text-neutral-text-primary', 'data-[disabled=true]:text-neutral-text-tertiary'], {
46
+ variants: {
47
+ size: {
48
+ sm: 'text-sm',
49
+ md: 'text-base'
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ size: 'md'
54
+ }
55
+ });
56
+ const checkboxGroupVariants = exports.checkboxGroupVariants = (0, _classVarianceAuthority.cva)([], {
57
+ variants: {
58
+ direction: {
59
+ column: 'gap-2',
60
+ row: 'flex-row gap-4'
61
+ }
62
+ },
63
+ defaultVariants: {
64
+ direction: 'column'
65
+ }
66
+ });
67
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","checkboxRootVariants","exports","cva","variants","size","sm","md","defaultVariants","checkboxIndicatorVariants","Platform","select","web","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","direction","column","row"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEO,MAAME,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,2BAAG,EACrC,CACE,uBAAuB,EACvB,yEAAyE,CAC1E,EACD;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,OAAO;MACXC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAEM,MAAMI,yBAAyB,GAAAP,OAAA,CAAAO,yBAAA,GAAG,IAAAN,2BAAG,EAC1C,CACE,6BAA6B,EAC7B,SAAS,EACT,uCAAuC,EACvC,qEAAqE,EACrE,iCAAiC,EACjC,oCAAoC,EACpC,2GAA2G,EAC3GO,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,gCAAgC,EAChC,gEAAgE,EAChE,qHAAqH,EACrH,sDAAsD,EACtD,+DAA+D,CAChE,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACEV,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAEM,MAAMU,oBAAoB,GAAAb,OAAA,CAAAa,oBAAA,GAAG,IAAAZ,2BAAG,EAAC,CAAC,YAAY,CAAC,EAAE;EACtDC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEK,MAAMW,qBAAqB,GAAAd,OAAA,CAAAc,qBAAA,GAAG,IAAAb,2BAAG,EACtC,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,EAChF;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAEM,MAAMY,qBAAqB,GAAAf,OAAA,CAAAe,qBAAA,GAAG,IAAAd,2BAAG,EAAC,EAAE,EAAE;EAC3CC,QAAQ,EAAE;IACRc,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDZ,eAAe,EAAE;IACfU,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.HStack = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
- // import { spacing } from '@cdx-ui/tokens';
10
+ // import { spacing } from '@cdx-ui/styles';
11
11
 
12
12
  // TODO: Integrate with tokens (multiply by spacing)
13
13
  const spaceScale = {
@@ -7,7 +7,7 @@ exports.VStack = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
- // import { spacing } from '@cdx-ui/tokens';
10
+ // import { spacing } from '@cdx-ui/styles';
11
11
 
12
12
  // TODO: Integrate with tokens (multiply by spacing)
13
13
  const spaceScale = {
@@ -43,6 +43,18 @@ Object.keys(_Button).forEach(function (key) {
43
43
  }
44
44
  });
45
45
  });
46
+ var _Checkbox = require("./Checkbox");
47
+ Object.keys(_Checkbox).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _Checkbox[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _Checkbox[key];
55
+ }
56
+ });
57
+ });
46
58
  var _Input = require("./Input");
47
59
  Object.keys(_Input).forEach(function (key) {
48
60
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_Box","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Button","_Input","_Select","_Stack","_Text"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,IAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,IAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,IAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,OAAA,GAAAf,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAa,OAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,OAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,OAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,MAAA,GAAAhB,OAAA;AACA,IAAAiB,KAAA,GAAAjB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAe,KAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAa,KAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,KAAA,CAAAb,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_Box","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Button","_Checkbox","_Input","_Select","_Stack","_Text"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { Pressable, Text, View } from 'react-native';
5
+ import { createCheckbox } from '@cdx-ui/primitives';
6
+ import { cn, useStyleContext, withStyleContext } from '@cdx-ui/utils';
7
+ import { checkboxGroupVariants, checkboxIconVariants, checkboxIndicatorVariants, checkboxLabelVariants, checkboxRootVariants } from './styles';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const SCOPE = 'CHECKBOX';
10
+ const Root = withStyleContext(Pressable, SCOPE);
11
+ const useCheckboxStyleContext = () => useStyleContext(SCOPE);
12
+ const CheckboxPrimitive = createCheckbox({
13
+ Root,
14
+ Indicator: View,
15
+ Icon: View,
16
+ Label: Text,
17
+ Group: View
18
+ });
19
+
20
+ // =============================================================================
21
+ // CHECKBOX ROOT
22
+ // =============================================================================
23
+
24
+ const CheckboxRoot = /*#__PURE__*/forwardRef(({
25
+ size = 'md',
26
+ className,
27
+ children,
28
+ style,
29
+ ...props
30
+ }, ref) => {
31
+ const computedClassName = cn(checkboxRootVariants({
32
+ size
33
+ }), className);
34
+ return /*#__PURE__*/_jsx(CheckboxPrimitive, {
35
+ ref: ref,
36
+ className: computedClassName,
37
+ style: style,
38
+ context: {
39
+ size
40
+ },
41
+ ...props,
42
+ children: children
43
+ });
44
+ });
45
+ CheckboxRoot.displayName = 'Checkbox';
46
+
47
+ // =============================================================================
48
+ // CHECKBOX INDICATOR
49
+ // =============================================================================
50
+
51
+ const CheckboxIndicator = /*#__PURE__*/forwardRef(({
52
+ className,
53
+ children,
54
+ style,
55
+ ...props
56
+ }, ref) => {
57
+ const {
58
+ size
59
+ } = useCheckboxStyleContext();
60
+ const computedClassName = cn(checkboxIndicatorVariants({
61
+ size
62
+ }), className);
63
+ return /*#__PURE__*/_jsx(CheckboxPrimitive.Indicator, {
64
+ ref: ref,
65
+ className: computedClassName,
66
+ style: style,
67
+ ...props,
68
+ children: children
69
+ });
70
+ });
71
+ CheckboxIndicator.displayName = 'Checkbox.Indicator';
72
+
73
+ // =============================================================================
74
+ // CHECKBOX ICON
75
+ // =============================================================================
76
+
77
+ const CheckboxIcon = /*#__PURE__*/forwardRef(({
78
+ className,
79
+ children,
80
+ style,
81
+ ...props
82
+ }, ref) => {
83
+ const {
84
+ size
85
+ } = useCheckboxStyleContext();
86
+ const computedClassName = cn(checkboxIconVariants({
87
+ size
88
+ }), className);
89
+ return /*#__PURE__*/_jsx(CheckboxPrimitive.Icon, {
90
+ ref: ref,
91
+ className: computedClassName,
92
+ style: style,
93
+ ...props,
94
+ children: children
95
+ });
96
+ });
97
+ CheckboxIcon.displayName = 'Checkbox.Icon';
98
+
99
+ // =============================================================================
100
+ // CHECKBOX LABEL
101
+ // =============================================================================
102
+
103
+ const CheckboxLabel = /*#__PURE__*/forwardRef(({
104
+ className,
105
+ children,
106
+ style,
107
+ ...props
108
+ }, ref) => {
109
+ const {
110
+ size
111
+ } = useCheckboxStyleContext();
112
+ const computedClassName = cn(checkboxLabelVariants({
113
+ size
114
+ }), className);
115
+ return /*#__PURE__*/_jsx(CheckboxPrimitive.Label, {
116
+ ref: ref,
117
+ className: computedClassName,
118
+ style: style,
119
+ ...props,
120
+ children: children
121
+ });
122
+ });
123
+ CheckboxLabel.displayName = 'Checkbox.Label';
124
+
125
+ // =============================================================================
126
+ // CHECKBOX GROUP
127
+ // =============================================================================
128
+
129
+ const CheckboxGroup = /*#__PURE__*/forwardRef(({
130
+ className,
131
+ children,
132
+ style,
133
+ direction = 'column',
134
+ value,
135
+ onChange,
136
+ isDisabled,
137
+ isInvalid,
138
+ isReadOnly,
139
+ ...viewProps
140
+ }, ref) => {
141
+ const computedClassName = cn(checkboxGroupVariants({
142
+ direction
143
+ }), className);
144
+ return /*#__PURE__*/_jsx(CheckboxPrimitive.Group, {
145
+ ref: ref,
146
+ className: computedClassName,
147
+ style: style,
148
+ value: value ?? [],
149
+ onChange: onChange,
150
+ isDisabled: isDisabled,
151
+ isInvalid: isInvalid,
152
+ isReadOnly: isReadOnly,
153
+ ...viewProps,
154
+ children: children
155
+ });
156
+ });
157
+ CheckboxGroup.displayName = 'Checkbox.Group';
158
+
159
+ // =============================================================================
160
+ // COMPOUND COMPONENT
161
+ // =============================================================================
162
+
163
+ export const Checkbox = Object.assign(CheckboxRoot, {
164
+ Indicator: CheckboxIndicator,
165
+ Icon: CheckboxIcon,
166
+ Label: CheckboxLabel,
167
+ Group: CheckboxGroup
168
+ });
169
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","Pressable","Text","View","createCheckbox","cn","useStyleContext","withStyleContext","checkboxGroupVariants","checkboxIconVariants","checkboxIndicatorVariants","checkboxLabelVariants","checkboxRootVariants","jsx","_jsx","SCOPE","Root","useCheckboxStyleContext","CheckboxPrimitive","Indicator","Icon","Label","Group","CheckboxRoot","size","className","children","style","props","ref","computedClassName","context","displayName","CheckboxIndicator","CheckboxIcon","CheckboxLabel","CheckboxGroup","direction","value","onChange","isDisabled","isInvalid","isReadOnly","viewProps","Checkbox","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Checkbox/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ import { cva } from 'class-variance-authority';
5
+ export const checkboxRootVariants = cva(['flex-row items-center', 'data-[disabled=true]:opacity-60 data-[disabled=true]:cursor-not-allowed'], {
6
+ variants: {
7
+ size: {
8
+ sm: 'gap-2',
9
+ md: 'gap-2.5'
10
+ }
11
+ },
12
+ defaultVariants: {
13
+ size: 'md'
14
+ }
15
+ });
16
+ export const checkboxIndicatorVariants = cva(['items-center justify-center', 'rounded', 'border-2 border-neutral-border-strong', 'data-[checked=true]:bg-blue-500 data-[checked=true]:border-blue-500', 'data-[disabled=true]:opacity-60', 'data-[invalid=true]:border-red-500', 'data-[checked=true]:data-[invalid=true]:bg-red-500 data-[checked=true]:data-[invalid=true]:border-red-500', Platform.select({
17
+ web: ['transition-colors duration-150', 'data-[hover=true]:border-zinc-500 data-[hover=true]:bg-zinc-50', 'data-[focus-visible=true]:ring-2 data-[focus-visible=true]:ring-blue-300/50 data-[focus-visible=true]:ring-offset-1', 'data-[invalid=true]:data-[hover=true]:border-red-400', 'data-[invalid=true]:data-[focus-visible=true]:ring-red-300/50'].join(' '),
18
+ default: ''
19
+ })], {
20
+ variants: {
21
+ size: {
22
+ sm: 'h-4 w-4',
23
+ md: 'h-5 w-5'
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ size: 'md'
28
+ }
29
+ });
30
+ export const checkboxIconVariants = cva(['text-white'], {
31
+ variants: {
32
+ size: {
33
+ sm: 'h-3 w-3',
34
+ md: 'h-3.5 w-3.5'
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ size: 'md'
39
+ }
40
+ });
41
+ export const checkboxLabelVariants = cva(['text-neutral-text-primary', 'data-[disabled=true]:text-neutral-text-tertiary'], {
42
+ variants: {
43
+ size: {
44
+ sm: 'text-sm',
45
+ md: 'text-base'
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ size: 'md'
50
+ }
51
+ });
52
+ export const checkboxGroupVariants = cva([], {
53
+ variants: {
54
+ direction: {
55
+ column: 'gap-2',
56
+ row: 'flex-row gap-4'
57
+ }
58
+ },
59
+ defaultVariants: {
60
+ direction: 'column'
61
+ }
62
+ });
63
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","cva","checkboxRootVariants","variants","size","sm","md","defaultVariants","checkboxIndicatorVariants","select","web","join","default","checkboxIconVariants","checkboxLabelVariants","checkboxGroupVariants","direction","column","row"],"sourceRoot":"../../../../src","sources":["components/Checkbox/styles.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,GAAG,QAA2B,0BAA0B;AAEjE,OAAO,MAAMC,oBAAoB,GAAGD,GAAG,CACrC,CACE,uBAAuB,EACvB,yEAAyE,CAC1E,EACD;EACEE,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,OAAO;MACXC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAED,OAAO,MAAMI,yBAAyB,GAAGP,GAAG,CAC1C,CACE,6BAA6B,EAC7B,SAAS,EACT,uCAAuC,EACvC,qEAAqE,EACrE,iCAAiC,EACjC,oCAAoC,EACpC,2GAA2G,EAC3GD,QAAQ,CAACS,MAAM,CAAC;EACdC,GAAG,EAAE,CACH,gCAAgC,EAChC,gEAAgE,EAChE,qHAAqH,EACrH,sDAAsD,EACtD,+DAA+D,CAChE,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACET,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAED,OAAO,MAAMS,oBAAoB,GAAGZ,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE;EACtDE,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,OAAO,MAAMU,qBAAqB,GAAGb,GAAG,CACtC,CAAC,2BAA2B,EAAE,iDAAiD,CAAC,EAChF;EACEE,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE;EACR;AACF,CACF,CAAC;AAED,OAAO,MAAMW,qBAAqB,GAAGd,GAAG,CAAC,EAAE,EAAE;EAC3CE,QAAQ,EAAE;IACRa,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDX,eAAe,EAAE;IACfS,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { forwardRef } from 'react';
4
4
  import { View } from 'react-native';
5
- // import { spacing } from '@cdx-ui/tokens';
5
+ // import { spacing } from '@cdx-ui/styles';
6
6
 
7
7
  // TODO: Integrate with tokens (multiply by spacing)
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { forwardRef } from 'react';
4
4
  import { View } from 'react-native';
5
- // import { spacing } from '@cdx-ui/tokens';
5
+ // import { spacing } from '@cdx-ui/styles';
6
6
 
7
7
  // TODO: Integrate with tokens (multiply by spacing)
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -2,6 +2,7 @@
2
2
 
3
3
  export * from './Box';
4
4
  export * from './Button';
5
+ export * from './Checkbox';
5
6
  export * from './Input';
6
7
  export * from './Select';
7
8
  export { HStack, VStack } from './Stack';
@@ -1 +1 @@
1
- {"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,QAAQ","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import { type ReactNode } from 'react';
2
+ import { Text, type TextProps, View, type ViewProps } from 'react-native';
3
+ import { type ICheckboxProps } from '@cdx-ui/primitives';
4
+ import { type CheckboxVariantProps } from './styles';
5
+ export interface CheckboxProps extends ICheckboxProps, CheckboxVariantProps {
6
+ className?: string;
7
+ children?: ReactNode;
8
+ }
9
+ declare const CheckboxRoot: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<View>>;
10
+ export interface CheckboxIndicatorProps extends ViewProps {
11
+ className?: string;
12
+ children?: ReactNode;
13
+ }
14
+ declare const CheckboxIndicator: import("react").ForwardRefExoticComponent<CheckboxIndicatorProps & import("react").RefAttributes<View>>;
15
+ export interface CheckboxIconProps extends ViewProps {
16
+ className?: string;
17
+ children?: ReactNode;
18
+ }
19
+ declare const CheckboxIcon: import("react").ForwardRefExoticComponent<CheckboxIconProps & import("react").RefAttributes<View>>;
20
+ export interface CheckboxLabelProps extends TextProps {
21
+ className?: string;
22
+ children?: ReactNode;
23
+ }
24
+ declare const CheckboxLabel: import("react").ForwardRefExoticComponent<CheckboxLabelProps & import("react").RefAttributes<Text>>;
25
+ export interface CheckboxGroupProps extends ViewProps {
26
+ className?: string;
27
+ children?: ReactNode;
28
+ value?: string[];
29
+ onChange?: (value: string[]) => void;
30
+ isDisabled?: boolean;
31
+ isInvalid?: boolean;
32
+ isReadOnly?: boolean;
33
+ direction?: 'column' | 'row';
34
+ }
35
+ declare const CheckboxGroup: import("react").ForwardRefExoticComponent<CheckboxGroupProps & import("react").RefAttributes<View>>;
36
+ type CheckboxCompoundComponent = typeof CheckboxRoot & {
37
+ Indicator: typeof CheckboxIndicator;
38
+ Icon: typeof CheckboxIcon;
39
+ Label: typeof CheckboxLabel;
40
+ Group: typeof CheckboxGroup;
41
+ };
42
+ export declare const Checkbox: CheckboxCompoundComponent;
43
+ export type { CheckboxVariantProps };
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAa,IAAI,EAAE,KAAK,SAAS,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EACL,KAAK,oBAAoB,EAM1B,MAAM,UAAU,CAAC;AAoBlB,MAAM,WAAW,aAAc,SAAQ,cAAc,EAAE,oBAAoB;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,gGAgBjB,CAAC;AAQF,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,iBAAiB,yGAgBtB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,oGAgBjB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAgBlB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CAC9B;AAED,QAAA,MAAM,aAAa,qGAkClB,CAAC;AAQF,KAAK,yBAAyB,GAAG,OAAO,YAAY,GAAG;IACrD,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACpC,IAAI,EAAE,OAAO,YAAY,CAAC;IAC1B,KAAK,EAAE,OAAO,aAAa,CAAC;IAC5B,KAAK,EAAE,OAAO,aAAa,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAKf,yBAAyB,CAAC;AAEhC,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const checkboxRootVariants: (props?: ({
3
+ size?: "sm" | "md" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export declare const checkboxIndicatorVariants: (props?: ({
6
+ size?: "sm" | "md" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export declare const checkboxIconVariants: (props?: ({
9
+ size?: "sm" | "md" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export declare const checkboxLabelVariants: (props?: ({
12
+ size?: "sm" | "md" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ export declare const checkboxGroupVariants: (props?: ({
15
+ direction?: "row" | "column" | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ export type CheckboxVariantProps = VariantProps<typeof checkboxRootVariants>;
18
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Checkbox/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,oBAAoB;;8EAgBhC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;8EA+BrC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;8EAU/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;8EAajC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;8EAUhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './Box';
2
2
  export * from './Button';
3
+ export * from './Checkbox';
3
4
  export * from './Input';
4
5
  export * from './Select';
5
6
  export { HStack, VStack } from './Stack';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/components",
3
- "version": "0.0.1-alpha.5",
3
+ "version": "0.0.1-alpha.7",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "module": "lib/module/index.js",
6
6
  "react-native": "src/index.ts",
@@ -60,8 +60,8 @@
60
60
  "dependencies": {
61
61
  "class-variance-authority": "^0.7.1",
62
62
  "uniwind": "1.4.1",
63
- "@cdx-ui/utils": "0.0.1-alpha.5",
64
- "@cdx-ui/primitives": "0.0.1-alpha.5"
63
+ "@cdx-ui/primitives": "0.0.1-alpha.7",
64
+ "@cdx-ui/utils": "0.0.1-alpha.7"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/react": "*",
@@ -0,0 +1,215 @@
1
+ import { forwardRef, type ReactNode } from 'react';
2
+ import { Pressable, Text, type TextProps, View, type ViewProps } from 'react-native';
3
+ import { createCheckbox, type ICheckboxProps } from '@cdx-ui/primitives';
4
+ import { cn, useStyleContext, withStyleContext } from '@cdx-ui/utils';
5
+ import {
6
+ type CheckboxVariantProps,
7
+ checkboxGroupVariants,
8
+ checkboxIconVariants,
9
+ checkboxIndicatorVariants,
10
+ checkboxLabelVariants,
11
+ checkboxRootVariants,
12
+ } from './styles';
13
+
14
+ const SCOPE = 'CHECKBOX';
15
+
16
+ const Root = withStyleContext(Pressable, SCOPE);
17
+
18
+ const useCheckboxStyleContext = () => useStyleContext(SCOPE) as CheckboxVariantProps;
19
+
20
+ const CheckboxPrimitive = createCheckbox({
21
+ Root,
22
+ Indicator: View,
23
+ Icon: View,
24
+ Label: Text,
25
+ Group: View,
26
+ });
27
+
28
+ // =============================================================================
29
+ // CHECKBOX ROOT
30
+ // =============================================================================
31
+
32
+ export interface CheckboxProps extends ICheckboxProps, CheckboxVariantProps {
33
+ className?: string;
34
+ children?: ReactNode;
35
+ }
36
+
37
+ const CheckboxRoot = forwardRef<View, CheckboxProps>(
38
+ ({ size = 'md', className, children, style, ...props }, ref) => {
39
+ const computedClassName = cn(checkboxRootVariants({ size }), className);
40
+
41
+ return (
42
+ <CheckboxPrimitive
43
+ ref={ref as any}
44
+ className={computedClassName}
45
+ style={style}
46
+ context={{ size }}
47
+ {...props}
48
+ >
49
+ {children}
50
+ </CheckboxPrimitive>
51
+ );
52
+ },
53
+ );
54
+
55
+ CheckboxRoot.displayName = 'Checkbox';
56
+
57
+ // =============================================================================
58
+ // CHECKBOX INDICATOR
59
+ // =============================================================================
60
+
61
+ export interface CheckboxIndicatorProps extends ViewProps {
62
+ className?: string;
63
+ children?: ReactNode;
64
+ }
65
+
66
+ const CheckboxIndicator = forwardRef<View, CheckboxIndicatorProps>(
67
+ ({ className, children, style, ...props }, ref) => {
68
+ const { size } = useCheckboxStyleContext();
69
+ const computedClassName = cn(checkboxIndicatorVariants({ size }), className);
70
+
71
+ return (
72
+ <CheckboxPrimitive.Indicator
73
+ ref={ref as any}
74
+ className={computedClassName}
75
+ style={style}
76
+ {...props}
77
+ >
78
+ {children}
79
+ </CheckboxPrimitive.Indicator>
80
+ );
81
+ },
82
+ );
83
+
84
+ CheckboxIndicator.displayName = 'Checkbox.Indicator';
85
+
86
+ // =============================================================================
87
+ // CHECKBOX ICON
88
+ // =============================================================================
89
+
90
+ export interface CheckboxIconProps extends ViewProps {
91
+ className?: string;
92
+ children?: ReactNode;
93
+ }
94
+
95
+ const CheckboxIcon = forwardRef<View, CheckboxIconProps>(
96
+ ({ className, children, style, ...props }, ref) => {
97
+ const { size } = useCheckboxStyleContext();
98
+ const computedClassName = cn(checkboxIconVariants({ size }), className);
99
+
100
+ return (
101
+ <CheckboxPrimitive.Icon
102
+ ref={ref as any}
103
+ className={computedClassName}
104
+ style={style}
105
+ {...props}
106
+ >
107
+ {children}
108
+ </CheckboxPrimitive.Icon>
109
+ );
110
+ },
111
+ );
112
+
113
+ CheckboxIcon.displayName = 'Checkbox.Icon';
114
+
115
+ // =============================================================================
116
+ // CHECKBOX LABEL
117
+ // =============================================================================
118
+
119
+ export interface CheckboxLabelProps extends TextProps {
120
+ className?: string;
121
+ children?: ReactNode;
122
+ }
123
+
124
+ const CheckboxLabel = forwardRef<Text, CheckboxLabelProps>(
125
+ ({ className, children, style, ...props }, ref) => {
126
+ const { size } = useCheckboxStyleContext();
127
+ const computedClassName = cn(checkboxLabelVariants({ size }), className);
128
+
129
+ return (
130
+ <CheckboxPrimitive.Label
131
+ ref={ref as any}
132
+ className={computedClassName}
133
+ style={style}
134
+ {...props}
135
+ >
136
+ {children}
137
+ </CheckboxPrimitive.Label>
138
+ );
139
+ },
140
+ );
141
+
142
+ CheckboxLabel.displayName = 'Checkbox.Label';
143
+
144
+ // =============================================================================
145
+ // CHECKBOX GROUP
146
+ // =============================================================================
147
+
148
+ export interface CheckboxGroupProps extends ViewProps {
149
+ className?: string;
150
+ children?: ReactNode;
151
+ value?: string[];
152
+ onChange?: (value: string[]) => void;
153
+ isDisabled?: boolean;
154
+ isInvalid?: boolean;
155
+ isReadOnly?: boolean;
156
+ direction?: 'column' | 'row';
157
+ }
158
+
159
+ const CheckboxGroup = forwardRef<View, CheckboxGroupProps>(
160
+ (
161
+ {
162
+ className,
163
+ children,
164
+ style,
165
+ direction = 'column',
166
+ value,
167
+ onChange,
168
+ isDisabled,
169
+ isInvalid,
170
+ isReadOnly,
171
+ ...viewProps
172
+ },
173
+ ref,
174
+ ) => {
175
+ const computedClassName = cn(checkboxGroupVariants({ direction }), className);
176
+
177
+ return (
178
+ <CheckboxPrimitive.Group
179
+ ref={ref as any}
180
+ className={computedClassName}
181
+ style={style}
182
+ value={value ?? []}
183
+ onChange={onChange}
184
+ isDisabled={isDisabled}
185
+ isInvalid={isInvalid}
186
+ isReadOnly={isReadOnly}
187
+ {...viewProps}
188
+ >
189
+ {children}
190
+ </CheckboxPrimitive.Group>
191
+ );
192
+ },
193
+ );
194
+
195
+ CheckboxGroup.displayName = 'Checkbox.Group';
196
+
197
+ // =============================================================================
198
+ // COMPOUND COMPONENT
199
+ // =============================================================================
200
+
201
+ type CheckboxCompoundComponent = typeof CheckboxRoot & {
202
+ Indicator: typeof CheckboxIndicator;
203
+ Icon: typeof CheckboxIcon;
204
+ Label: typeof CheckboxLabel;
205
+ Group: typeof CheckboxGroup;
206
+ };
207
+
208
+ export const Checkbox = Object.assign(CheckboxRoot, {
209
+ Indicator: CheckboxIndicator,
210
+ Icon: CheckboxIcon,
211
+ Label: CheckboxLabel,
212
+ Group: CheckboxGroup,
213
+ }) as CheckboxCompoundComponent;
214
+
215
+ export type { CheckboxVariantProps };
@@ -0,0 +1,94 @@
1
+ import { Platform } from 'react-native';
2
+ import { cva, type VariantProps } from 'class-variance-authority';
3
+
4
+ export const checkboxRootVariants = cva(
5
+ [
6
+ 'flex-row items-center',
7
+ 'data-[disabled=true]:opacity-60 data-[disabled=true]:cursor-not-allowed',
8
+ ],
9
+ {
10
+ variants: {
11
+ size: {
12
+ sm: 'gap-2',
13
+ md: 'gap-2.5',
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ size: 'md',
18
+ },
19
+ },
20
+ );
21
+
22
+ export const checkboxIndicatorVariants = cva(
23
+ [
24
+ 'items-center justify-center',
25
+ 'rounded',
26
+ 'border-2 border-neutral-border-strong',
27
+ 'data-[checked=true]:bg-blue-500 data-[checked=true]:border-blue-500',
28
+ 'data-[disabled=true]:opacity-60',
29
+ 'data-[invalid=true]:border-red-500',
30
+ 'data-[checked=true]:data-[invalid=true]:bg-red-500 data-[checked=true]:data-[invalid=true]:border-red-500',
31
+ Platform.select({
32
+ web: [
33
+ 'transition-colors duration-150',
34
+ 'data-[hover=true]:border-zinc-500 data-[hover=true]:bg-zinc-50',
35
+ 'data-[focus-visible=true]:ring-2 data-[focus-visible=true]:ring-blue-300/50 data-[focus-visible=true]:ring-offset-1',
36
+ 'data-[invalid=true]:data-[hover=true]:border-red-400',
37
+ 'data-[invalid=true]:data-[focus-visible=true]:ring-red-300/50',
38
+ ].join(' '),
39
+ default: '',
40
+ }),
41
+ ],
42
+ {
43
+ variants: {
44
+ size: {
45
+ sm: 'h-4 w-4',
46
+ md: 'h-5 w-5',
47
+ },
48
+ },
49
+ defaultVariants: {
50
+ size: 'md',
51
+ },
52
+ },
53
+ );
54
+
55
+ export const checkboxIconVariants = cva(['text-white'], {
56
+ variants: {
57
+ size: {
58
+ sm: 'h-3 w-3',
59
+ md: 'h-3.5 w-3.5',
60
+ },
61
+ },
62
+ defaultVariants: {
63
+ size: 'md',
64
+ },
65
+ });
66
+
67
+ export const checkboxLabelVariants = cva(
68
+ ['text-neutral-text-primary', 'data-[disabled=true]:text-neutral-text-tertiary'],
69
+ {
70
+ variants: {
71
+ size: {
72
+ sm: 'text-sm',
73
+ md: 'text-base',
74
+ },
75
+ },
76
+ defaultVariants: {
77
+ size: 'md',
78
+ },
79
+ },
80
+ );
81
+
82
+ export const checkboxGroupVariants = cva([], {
83
+ variants: {
84
+ direction: {
85
+ column: 'gap-2',
86
+ row: 'flex-row gap-4',
87
+ },
88
+ },
89
+ defaultVariants: {
90
+ direction: 'column',
91
+ },
92
+ });
93
+
94
+ export type CheckboxVariantProps = VariantProps<typeof checkboxRootVariants>;
@@ -1,7 +1,7 @@
1
1
  import type { ForwardedRef } from 'react';
2
2
  import { forwardRef } from 'react';
3
3
  import { View, type ViewProps } from 'react-native';
4
- // import { spacing } from '@cdx-ui/tokens';
4
+ // import { spacing } from '@cdx-ui/styles';
5
5
 
6
6
  // TODO: Integrate with tokens (multiply by spacing)
7
7
  const spaceScale = {
@@ -1,7 +1,7 @@
1
1
  import type { ForwardedRef } from 'react';
2
2
  import { forwardRef } from 'react';
3
3
  import { View, type ViewProps } from 'react-native';
4
- // import { spacing } from '@cdx-ui/tokens';
4
+ // import { spacing } from '@cdx-ui/styles';
5
5
 
6
6
  // TODO: Integrate with tokens (multiply by spacing)
7
7
  const spaceScale = {
@@ -1,5 +1,6 @@
1
1
  export * from './Box';
2
2
  export * from './Button';
3
+ export * from './Checkbox';
3
4
  export * from './Input';
4
5
  export * from './Select';
5
6
  export { HStack, VStack } from './Stack';