@cdx-ui/components 0.0.1-beta.2 → 0.0.1-beta.20

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 (127) hide show
  1. package/README.md +18 -11
  2. package/lib/commonjs/components/Button/styles.js +1 -1
  3. package/lib/commonjs/components/Button/styles.js.map +1 -1
  4. package/lib/commonjs/components/Card/index.js +15 -3
  5. package/lib/commonjs/components/Card/index.js.map +1 -1
  6. package/lib/commonjs/components/Card/styles.js +17 -5
  7. package/lib/commonjs/components/Card/styles.js.map +1 -1
  8. package/lib/commonjs/components/Checkbox/styles.js +1 -1
  9. package/lib/commonjs/components/Checkbox/styles.js.map +1 -1
  10. package/lib/commonjs/components/Heading/styles.js.map +1 -1
  11. package/lib/commonjs/components/IconButton/styles.js +1 -1
  12. package/lib/commonjs/components/IconButton/styles.js.map +1 -1
  13. package/lib/commonjs/components/Input/styles.js +1 -1
  14. package/lib/commonjs/components/Input/styles.js.map +1 -1
  15. package/lib/commonjs/components/ListItem/index.js +283 -0
  16. package/lib/commonjs/components/ListItem/index.js.map +1 -0
  17. package/lib/commonjs/components/ListItem/styles.js +130 -0
  18. package/lib/commonjs/components/ListItem/styles.js.map +1 -0
  19. package/lib/commonjs/components/Radio/index.js +165 -0
  20. package/lib/commonjs/components/Radio/index.js.map +1 -0
  21. package/lib/commonjs/components/Radio/styles.js +30 -0
  22. package/lib/commonjs/components/Radio/styles.js.map +1 -0
  23. package/lib/commonjs/components/Text/styles.js +2 -2
  24. package/lib/commonjs/components/Text/styles.js.map +1 -1
  25. package/lib/commonjs/components/Tile/index.js +251 -0
  26. package/lib/commonjs/components/Tile/index.js.map +1 -0
  27. package/lib/commonjs/components/Tile/styles.js +52 -0
  28. package/lib/commonjs/components/Tile/styles.js.map +1 -0
  29. package/lib/commonjs/components/index.js +36 -0
  30. package/lib/commonjs/components/index.js.map +1 -1
  31. package/lib/commonjs/figma/Button.figma.js +69 -0
  32. package/lib/commonjs/figma/Button.figma.js.map +1 -0
  33. package/lib/commonjs/figma/Heading.figma.js +30 -0
  34. package/lib/commonjs/figma/Heading.figma.js.map +1 -0
  35. package/lib/commonjs/figma/Radio.figma.js +38 -0
  36. package/lib/commonjs/figma/Radio.figma.js.map +1 -0
  37. package/lib/commonjs/figma/Text.figma.js +29 -0
  38. package/lib/commonjs/figma/Text.figma.js.map +1 -0
  39. package/lib/commonjs/styles/primitives.js +36 -3
  40. package/lib/commonjs/styles/primitives.js.map +1 -1
  41. package/lib/module/components/Button/styles.js +1 -1
  42. package/lib/module/components/Button/styles.js.map +1 -1
  43. package/lib/module/components/Card/index.js +16 -3
  44. package/lib/module/components/Card/index.js.map +1 -1
  45. package/lib/module/components/Card/styles.js +17 -5
  46. package/lib/module/components/Card/styles.js.map +1 -1
  47. package/lib/module/components/Checkbox/styles.js +2 -2
  48. package/lib/module/components/Checkbox/styles.js.map +1 -1
  49. package/lib/module/components/Heading/styles.js.map +1 -1
  50. package/lib/module/components/IconButton/styles.js +1 -1
  51. package/lib/module/components/IconButton/styles.js.map +1 -1
  52. package/lib/module/components/Input/styles.js +1 -1
  53. package/lib/module/components/Input/styles.js.map +1 -1
  54. package/lib/module/components/ListItem/index.js +226 -0
  55. package/lib/module/components/ListItem/index.js.map +1 -0
  56. package/lib/module/components/ListItem/styles.js +127 -0
  57. package/lib/module/components/ListItem/styles.js.map +1 -0
  58. package/lib/module/components/Radio/index.js +162 -0
  59. package/lib/module/components/Radio/index.js.map +1 -0
  60. package/lib/module/components/Radio/styles.js +27 -0
  61. package/lib/module/components/Radio/styles.js.map +1 -0
  62. package/lib/module/components/Text/styles.js +2 -2
  63. package/lib/module/components/Text/styles.js.map +1 -1
  64. package/lib/module/components/Tile/index.js +243 -0
  65. package/lib/module/components/Tile/index.js.map +1 -0
  66. package/lib/module/components/Tile/styles.js +48 -0
  67. package/lib/module/components/Tile/styles.js.map +1 -0
  68. package/lib/module/components/index.js +3 -0
  69. package/lib/module/components/index.js.map +1 -1
  70. package/lib/module/figma/Button.figma.js +63 -0
  71. package/lib/module/figma/Button.figma.js.map +1 -0
  72. package/lib/module/figma/Heading.figma.js +24 -0
  73. package/lib/module/figma/Heading.figma.js.map +1 -0
  74. package/lib/module/figma/Radio.figma.js +32 -0
  75. package/lib/module/figma/Radio.figma.js.map +1 -0
  76. package/lib/module/figma/Text.figma.js +23 -0
  77. package/lib/module/figma/Text.figma.js.map +1 -0
  78. package/lib/module/styles/primitives.js +36 -3
  79. package/lib/module/styles/primitives.js.map +1 -1
  80. package/lib/typescript/components/Card/index.d.ts +3 -2
  81. package/lib/typescript/components/Card/index.d.ts.map +1 -1
  82. package/lib/typescript/components/Card/styles.d.ts +9 -2
  83. package/lib/typescript/components/Card/styles.d.ts.map +1 -1
  84. package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -1
  85. package/lib/typescript/components/Heading/styles.d.ts.map +1 -1
  86. package/lib/typescript/components/ListItem/index.d.ts +49 -0
  87. package/lib/typescript/components/ListItem/index.d.ts.map +1 -0
  88. package/lib/typescript/components/ListItem/styles.d.ts +30 -0
  89. package/lib/typescript/components/ListItem/styles.d.ts.map +1 -0
  90. package/lib/typescript/components/Radio/index.d.ts +40 -0
  91. package/lib/typescript/components/Radio/index.d.ts.map +1 -0
  92. package/lib/typescript/components/Radio/styles.d.ts +8 -0
  93. package/lib/typescript/components/Radio/styles.d.ts.map +1 -0
  94. package/lib/typescript/components/Text/styles.d.ts.map +1 -1
  95. package/lib/typescript/components/Tile/index.d.ts +70 -0
  96. package/lib/typescript/components/Tile/index.d.ts.map +1 -0
  97. package/lib/typescript/components/Tile/styles.d.ts +18 -0
  98. package/lib/typescript/components/Tile/styles.d.ts.map +1 -0
  99. package/lib/typescript/components/index.d.ts +3 -0
  100. package/lib/typescript/components/index.d.ts.map +1 -1
  101. package/lib/typescript/figma/Button.figma.d.ts +8 -0
  102. package/lib/typescript/figma/Button.figma.d.ts.map +1 -0
  103. package/lib/typescript/figma/Heading.figma.d.ts +8 -0
  104. package/lib/typescript/figma/Heading.figma.d.ts.map +1 -0
  105. package/lib/typescript/figma/Radio.figma.d.ts +8 -0
  106. package/lib/typescript/figma/Radio.figma.d.ts.map +1 -0
  107. package/lib/typescript/figma/Text.figma.d.ts +8 -0
  108. package/lib/typescript/figma/Text.figma.d.ts.map +1 -0
  109. package/lib/typescript/styles/primitives.d.ts +35 -0
  110. package/lib/typescript/styles/primitives.d.ts.map +1 -1
  111. package/package.json +5 -5
  112. package/src/components/Button/styles.ts +1 -1
  113. package/src/components/Card/index.tsx +33 -13
  114. package/src/components/Card/styles.ts +31 -23
  115. package/src/components/Checkbox/styles.ts +7 -9
  116. package/src/components/IconButton/styles.ts +1 -1
  117. package/src/components/Input/styles.ts +1 -1
  118. package/src/components/ListItem/index.tsx +285 -0
  119. package/src/components/ListItem/styles.ts +153 -0
  120. package/src/components/Radio/index.tsx +191 -0
  121. package/src/components/Radio/styles.ts +59 -0
  122. package/src/components/Text/{styles.tsx → styles.ts} +2 -2
  123. package/src/components/Tile/index.tsx +296 -0
  124. package/src/components/Tile/styles.ts +82 -0
  125. package/src/components/index.ts +3 -0
  126. package/src/styles/primitives.ts +36 -3
  127. /package/src/components/Heading/{styles.tsx → styles.ts} +0 -0
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.listItemTrailingSlotVariants = exports.listItemTitleVariants = exports.listItemSectionHeaderVariants = exports.listItemSectionHeaderLabelVariants = exports.listItemRootVariants = exports.listItemMetaVariants = exports.listItemLeadingSlotVariants = exports.listItemDescriptionVariants = exports.listItemContentVariants = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _classVarianceAuthority = require("class-variance-authority");
9
+ var _primitives = require("../../styles/primitives");
10
+ // ── Root (row): density, surface, separator, interactive feedback ──────────
11
+
12
+ const listItemRootVariants = exports.listItemRootVariants = (0, _classVarianceAuthority.cva)(['flex-row self-stretch w-full px-4', 'data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none', 'data-[active=true]:opacity-70', _primitives.TRANSITION_COLORS, _reactNative.Platform.select({
13
+ web: ['outline-none', 'web:data-[hover=true]:bg-slate-50', 'web:focus-visible:data-[disabled=false]:bg-slate-50', 'web:focus-visible:data-[disabled=false]:ring-2 web:focus-visible:data-[disabled=false]:ring-slate-400/40 web:focus-visible:data-[disabled=false]:ring-offset-2'].join(' '),
14
+ default: ''
15
+ })], {
16
+ variants: {
17
+ size: {
18
+ default: 'gap-3 py-4',
19
+ compact: 'gap-2 py-3'
20
+ },
21
+ surface: {
22
+ default: 'bg-white',
23
+ negative: 'bg-red-50'
24
+ },
25
+ showSeparator: {
26
+ true: 'border-b border-solid border-stroke-secondary',
27
+ false: 'border-b-0'
28
+ },
29
+ crossAlign: {
30
+ center: 'items-center',
31
+ start: 'items-start'
32
+ }
33
+ },
34
+ compoundVariants: [{
35
+ surface: 'negative',
36
+ className: _reactNative.Platform.select({
37
+ web: 'web:data-[hover=true]:bg-red-100/90',
38
+ default: ''
39
+ })
40
+ }],
41
+ defaultVariants: {
42
+ size: 'default',
43
+ surface: 'default',
44
+ showSeparator: true,
45
+ crossAlign: 'center'
46
+ }
47
+ });
48
+
49
+ // ── Leading / trailing slots ─────────────────────────────────────────────────
50
+
51
+ const listItemLeadingSlotVariants = exports.listItemLeadingSlotVariants = (0, _classVarianceAuthority.cva)(['flex shrink-0 items-center justify-center']);
52
+ const listItemTrailingSlotVariants = exports.listItemTrailingSlotVariants = (0, _classVarianceAuthority.cva)(['flex shrink-0 flex-row justify-end gap-2'], {
53
+ variants: {
54
+ crossAlign: {
55
+ center: 'items-center',
56
+ start: 'items-start self-start'
57
+ }
58
+ },
59
+ defaultVariants: {
60
+ crossAlign: 'center'
61
+ }
62
+ });
63
+
64
+ // ── Content stack (title / description / meta) ───────────────────────────────
65
+
66
+ const listItemContentVariants = exports.listItemContentVariants = (0, _classVarianceAuthority.cva)('flex min-w-0 flex-1 flex-col gap-1', {
67
+ variants: {
68
+ crossAlign: {
69
+ center: 'justify-center',
70
+ start: 'justify-start'
71
+ }
72
+ },
73
+ defaultVariants: {
74
+ crossAlign: 'center'
75
+ }
76
+ });
77
+
78
+ // ── Typography ───────────────────────────────────────────────────────────────
79
+
80
+ const listItemTitleVariants = exports.listItemTitleVariants = (0, _classVarianceAuthority.cva)('text-content-primary font-medium', {
81
+ variants: {
82
+ size: {
83
+ default: 'text-base leading-snug',
84
+ compact: 'text-sm leading-snug'
85
+ }
86
+ },
87
+ defaultVariants: {
88
+ size: 'default'
89
+ }
90
+ });
91
+ const listItemDescriptionVariants = exports.listItemDescriptionVariants = (0, _classVarianceAuthority.cva)('text-content-secondary', {
92
+ variants: {
93
+ size: {
94
+ default: 'text-sm leading-normal',
95
+ compact: 'text-xs leading-normal'
96
+ }
97
+ },
98
+ defaultVariants: {
99
+ size: 'default'
100
+ }
101
+ });
102
+ const listItemMetaVariants = exports.listItemMetaVariants = (0, _classVarianceAuthority.cva)('text-content-tertiary', {
103
+ variants: {
104
+ size: {
105
+ default: 'text-xs leading-normal',
106
+ compact: 'text-[11px] leading-normal'
107
+ }
108
+ },
109
+ defaultVariants: {
110
+ size: 'default'
111
+ }
112
+ });
113
+
114
+ // ── Section header (group label row inside lists / cards) ───────────────────
115
+
116
+ const listItemSectionHeaderVariants = exports.listItemSectionHeaderVariants = (0, _classVarianceAuthority.cva)(['flex-row items-center justify-between gap-2 border-b border-solid px-4 py-3', 'border-stroke-secondary'], {
117
+ variants: {
118
+ showDivider: {
119
+ true: ['border-t-4 border-solid border-t-surface-brand-strong/40', 'border-x-0'],
120
+ false: 'border-t-0'
121
+ }
122
+ },
123
+ defaultVariants: {
124
+ showDivider: true
125
+ }
126
+ });
127
+
128
+ /** Default section-title typography; applied by `ListItem.SectionHeader` for string/number children. Exported for rare custom composition. */
129
+ const listItemSectionHeaderLabelVariants = exports.listItemSectionHeaderLabelVariants = (0, _classVarianceAuthority.cva)('text-xs font-semibold uppercase tracking-wide text-content-secondary');
130
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","listItemRootVariants","exports","cva","TRANSITION_COLORS","Platform","select","web","join","default","variants","size","compact","surface","negative","showSeparator","true","false","crossAlign","center","start","compoundVariants","className","defaultVariants","listItemLeadingSlotVariants","listItemTrailingSlotVariants","listItemContentVariants","listItemTitleVariants","listItemDescriptionVariants","listItemMetaVariants","listItemSectionHeaderVariants","showDivider","listItemSectionHeaderLabelVariants"],"sourceRoot":"../../../../src","sources":["components/ListItem/styles.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Radio = 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
+ // =============================================================================
14
+ // STYLED INDICATOR BASE
15
+ // =============================================================================
16
+ const RadioIndicatorBase = /*#__PURE__*/(0, _react.forwardRef)(({
17
+ className,
18
+ children,
19
+ style,
20
+ ...props
21
+ }, ref) => {
22
+ // On web, data attributes arrive as `dataSet: { checked: true }`.
23
+ // On native, they arrive as individual `data-checked: "true"` props.
24
+ const ds = props.dataSet;
25
+ const isChecked = ds ? ds.checked === true : props['data-checked'] === 'true';
26
+ const isInvalid = ds ? ds.invalid === true : props['data-invalid'] === 'true';
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
28
+ ref: ref,
29
+ className: (0, _utils.cn)((0, _styles.radioIndicatorVariants)(), className),
30
+ style: style,
31
+ ...props,
32
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
33
+ className: (0, _utils.cn)((0, _styles.radioInnerDotVariants)()),
34
+ ...(0, _primitives.dataAttributes)({
35
+ checked: isChecked,
36
+ invalid: isInvalid
37
+ })
38
+ }), children]
39
+ });
40
+ });
41
+ RadioIndicatorBase.displayName = 'Radio.IndicatorBase';
42
+
43
+ // =============================================================================
44
+ // PRIMITIVE ASSEMBLY
45
+ // =============================================================================
46
+
47
+ const RadioPrimitive = (0, _primitives.createRadio)({
48
+ Root: _reactNative.Pressable,
49
+ Indicator: RadioIndicatorBase,
50
+ Label: _reactNative.Text,
51
+ Group: _reactNative.View
52
+ });
53
+
54
+ // =============================================================================
55
+ // RADIO ROOT
56
+ // =============================================================================
57
+
58
+ const RadioRoot = /*#__PURE__*/(0, _react.forwardRef)(({
59
+ className,
60
+ children,
61
+ style,
62
+ ...props
63
+ }, ref) => {
64
+ const computedClassName = (0, _utils.cn)((0, _styles.radioRootVariants)(), className);
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioPrimitive, {
66
+ ref: ref,
67
+ className: computedClassName,
68
+ style: style,
69
+ ...props,
70
+ children: children
71
+ });
72
+ });
73
+ RadioRoot.displayName = 'Radio';
74
+
75
+ // =============================================================================
76
+ // RADIO INDICATOR
77
+ // =============================================================================
78
+
79
+ const RadioIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
80
+ className,
81
+ children,
82
+ style,
83
+ ...props
84
+ }, ref) => {
85
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioPrimitive.Indicator, {
86
+ ref: ref,
87
+ className: className,
88
+ style: style,
89
+ ...props,
90
+ children: children
91
+ });
92
+ });
93
+ RadioIndicator.displayName = 'Radio.Indicator';
94
+
95
+ // =============================================================================
96
+ // RADIO LABEL
97
+ // =============================================================================
98
+
99
+ const RadioLabel = /*#__PURE__*/(0, _react.forwardRef)(({
100
+ className,
101
+ children,
102
+ style,
103
+ ...props
104
+ }, ref) => {
105
+ const computedClassName = (0, _utils.cn)((0, _styles.radioLabelVariants)(), className);
106
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioPrimitive.Label, {
107
+ ref: ref,
108
+ className: computedClassName,
109
+ style: style,
110
+ ...props,
111
+ children: children
112
+ });
113
+ });
114
+ RadioLabel.displayName = 'Radio.Label';
115
+
116
+ // =============================================================================
117
+ // RADIO GROUP
118
+ // =============================================================================
119
+
120
+ const RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
121
+ className,
122
+ children,
123
+ style,
124
+ direction = 'column',
125
+ value,
126
+ defaultValue,
127
+ onChange,
128
+ isDisabled,
129
+ isInvalid,
130
+ isRequired,
131
+ isReadOnly,
132
+ name,
133
+ ...viewProps
134
+ }, ref) => {
135
+ const computedClassName = (0, _utils.cn)((0, _styles.radioGroupVariants)({
136
+ direction
137
+ }), className);
138
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RadioPrimitive.Group, {
139
+ ref: ref,
140
+ className: computedClassName,
141
+ style: style,
142
+ value: value,
143
+ defaultValue: defaultValue,
144
+ onChange: onChange,
145
+ isDisabled: isDisabled,
146
+ isInvalid: isInvalid,
147
+ isRequired: isRequired,
148
+ isReadOnly: isReadOnly,
149
+ name: name,
150
+ ...viewProps,
151
+ children: children
152
+ });
153
+ });
154
+ RadioGroup.displayName = 'Radio.Group';
155
+
156
+ // =============================================================================
157
+ // COMPOUND COMPONENT
158
+ // =============================================================================
159
+
160
+ const Radio = exports.Radio = Object.assign(RadioRoot, {
161
+ Indicator: RadioIndicator,
162
+ Label: RadioLabel,
163
+ Group: RadioGroup
164
+ });
165
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_primitives","_utils","_styles","_jsxRuntime","RadioIndicatorBase","forwardRef","className","children","style","props","ref","ds","dataSet","isChecked","checked","isInvalid","invalid","jsxs","View","cn","radioIndicatorVariants","jsx","radioInnerDotVariants","dataAttributes","displayName","RadioPrimitive","createRadio","Root","Pressable","Indicator","Label","Text","Group","RadioRoot","computedClassName","radioRootVariants","RadioIndicator","RadioLabel","radioLabelVariants","RadioGroup","direction","value","defaultValue","onChange","isDisabled","isRequired","isReadOnly","name","viewProps","radioGroupVariants","Radio","exports","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Radio/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.radioRootVariants = exports.radioLabelVariants = exports.radioInnerDotVariants = exports.radioIndicatorVariants = exports.radioGroupVariants = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _classVarianceAuthority = require("class-variance-authority");
9
+ var _primitives = require("../../styles/primitives");
10
+ // TODO: Add hover, active, and focus-visible styles based on Figma
11
+
12
+ const radioRootVariants = exports.radioRootVariants = (0, _classVarianceAuthority.cva)(['flex-row items-center gap-2', 'data-[disabled=true]:opacity-[var(--opacity-disabled)]', _primitives.DISABLED_CURSOR]);
13
+ const radioIndicatorVariants = exports.radioIndicatorVariants = (0, _classVarianceAuthority.cva)(['items-center justify-center', 'rounded-[var(--border-radius-round)]', 'border-[length:var(--border-width-selected)]', 'h-5 w-5', 'border-stroke-primary', 'data-[checked=false]:border-slate-300', 'bg-surface-primary', 'data-[checked=true]:border-stroke-action', 'data-[invalid=true]:border-stroke-danger', 'data-[checked=true]:data-[invalid=true]:border-stroke-danger', _reactNative.Platform.select({
14
+ web: [_primitives.TRANSITION_COLORS, 'data-[hover=true]:data-[checked=false]:border-slate-400', 'data-[hover=true]:data-[checked=false]:bg-slate-50', 'web:data-[focus-visible=true]:outline-none', 'web:data-[focus-visible=true]:ring-2 web:data-[focus-visible=true]:ring-offset-2', 'web:data-[focus-visible=true]:data-[checked=false]:ring-slate-400/50', 'web:data-[focus-visible=true]:data-[checked=true]:ring-stroke-focus', 'data-[invalid=true]:data-[hover=true]:border-stroke-danger', 'web:data-[invalid=true]:data-[focus-visible=true]:ring-stroke-danger'].join(' '),
15
+ default: ''
16
+ })]);
17
+ const radioInnerDotVariants = exports.radioInnerDotVariants = (0, _classVarianceAuthority.cva)(['rounded-[var(--border-radius-round)]', 'h-2.5 w-2.5', 'scale-0', 'data-[checked=true]:scale-100', 'bg-surface-action-strong', 'data-[invalid=true]:bg-surface-danger-strong']);
18
+ const radioLabelVariants = exports.radioLabelVariants = (0, _classVarianceAuthority.cva)(['body-md', 'text-content-primary']);
19
+ const radioGroupVariants = exports.radioGroupVariants = (0, _classVarianceAuthority.cva)([], {
20
+ variants: {
21
+ direction: {
22
+ column: 'gap-2',
23
+ row: 'flex-row gap-4'
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ direction: 'column'
28
+ }
29
+ });
30
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","_primitives","radioRootVariants","exports","cva","DISABLED_CURSOR","radioIndicatorVariants","Platform","select","web","TRANSITION_COLORS","join","default","radioInnerDotVariants","radioLabelVariants","radioGroupVariants","variants","direction","column","row","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/Radio/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA;;AAEO,MAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,2BAAG,EAAC,CACnC,6BAA6B,EAC7B,wDAAwD,EACxDC,2BAAe,CAChB,CAAC;AAEK,MAAMC,sBAAsB,GAAAH,OAAA,CAAAG,sBAAA,GAAG,IAAAF,2BAAG,EAAC,CACxC,6BAA6B,EAC7B,sCAAsC,EACtC,8CAA8C,EAC9C,SAAS,EACT,uBAAuB,EACvB,uCAAuC,EACvC,oBAAoB,EACpB,0CAA0C,EAC1C,0CAA0C,EAC1C,8DAA8D,EAC9DG,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,CACHC,6BAAiB,EACjB,yDAAyD,EACzD,oDAAoD,EACpD,4CAA4C,EAC5C,kFAAkF,EAClF,sEAAsE,EACtE,qEAAqE,EACrE,4DAA4D,EAC5D,sEAAsE,CACvE,CAACC,IAAI,CAAC,GAAG,CAAC;EACXC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,CAAC;AAEK,MAAMC,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,2BAAG,EAAC,CACvC,sCAAsC,EACtC,aAAa,EACb,SAAS,EACT,+BAA+B,EAC/B,0BAA0B,EAC1B,8CAA8C,CAC/C,CAAC;AAEK,MAAMU,kBAAkB,GAAAX,OAAA,CAAAW,kBAAA,GAAG,IAAAV,2BAAG,EAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAEnE,MAAMW,kBAAkB,GAAAZ,OAAA,CAAAY,kBAAA,GAAG,IAAAX,2BAAG,EAAC,EAAE,EAAE;EACxCY,QAAQ,EAAE;IACRC,SAAS,EAAE;MACTC,MAAM,EAAE,OAAO;MACfC,GAAG,EAAE;IACP;EACF,CAAC;EACDC,eAAe,EAAE;IAAEH,SAAS,EAAE;EAAS;AACzC,CAAC,CAAC","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.textStyle = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _classVarianceAuthority = require("class-variance-authority");
9
- const textStyle = exports.textStyle = (0, _classVarianceAuthority.cva)([`text-content-primary font-normal`, _reactNative.Platform.select({
10
- web: 'font-sans my-0 bg-transparent display-inline no-underline',
9
+ const textStyle = exports.textStyle = (0, _classVarianceAuthority.cva)(['text-content-primary', _reactNative.Platform.select({
10
+ web: 'font-body my-0 bg-transparent display-inline no-underline',
11
11
  default: ''
12
12
  })], {
13
13
  variants: {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_classVarianceAuthority","textStyle","exports","cva","Platform","select","web","default","variants","size","xl","lg","md","sm","xs"],"sourceRoot":"../../../../src","sources":["components/Text/styles.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,2BAAG,EAC1B,CACE,kCAAkC,EAClCC,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,2DAA2D;EAChEC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF;AACF,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_classVarianceAuthority","textStyle","exports","cva","Platform","select","web","default","variants","size","xl","lg","md","sm","xs"],"sourceRoot":"../../../../src","sources":["components/Text/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,2BAAG,EAC1B,CACE,sBAAsB,EACtBC,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,2DAA2D;EAChEC,OAAO,EAAE;AACX,CAAC,CAAC,CACH,EACD;EACEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF;AACF,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Tile = void 0;
7
+ Object.defineProperty(exports, "useTileContext", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _primitives.useTileContext;
11
+ }
12
+ });
13
+ var _react = require("react");
14
+ var _reactNative = require("react-native");
15
+ var _primitives = require("@cdx-ui/primitives");
16
+ var _icons = require("@cdx-ui/icons");
17
+ var _utils = require("@cdx-ui/utils");
18
+ var _styles = require("../Checkbox/styles");
19
+ var _Icon = require("../Icon");
20
+ var _styles2 = require("../Radio/styles");
21
+ var _styles3 = require("./styles");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ const TILE_SCOPE = 'TILE';
24
+ const TILE_GROUP_SCOPE = 'TILE_GROUP';
25
+ const RootPressable = (0, _utils.withStyleContext)(_reactNative.Pressable, TILE_SCOPE);
26
+ const GroupView = (0, _utils.withStyleContext)(_reactNative.View, TILE_GROUP_SCOPE);
27
+ const useTileGroupStyleContext = () => {
28
+ // `useStyleContext` types the result as a `Record`, but at runtime the value is
29
+ // `undefined` when no provider is in scope (e.g. standalone Tile). Cast through
30
+ // `unknown` to acknowledge that.
31
+ const ctx = (0, _utils.useStyleContext)(TILE_GROUP_SCOPE);
32
+ return ctx ?? {};
33
+ };
34
+ const TilePrimitive = (0, _primitives.createTile)({
35
+ Pressable: RootPressable,
36
+ Group: GroupView,
37
+ LeadingSlot: _reactNative.View,
38
+ Content: _reactNative.View,
39
+ Title: _reactNative.Text,
40
+ Description: _reactNative.Text,
41
+ Indicator: _reactNative.View,
42
+ TrailingSlot: _reactNative.View
43
+ });
44
+
45
+ // =============================================================================
46
+ // TILE GROUP
47
+ // =============================================================================
48
+
49
+ /**
50
+ * Discriminated union mirroring `ITileGroupProps`, with `className` and layout variants added at
51
+ * the styled layer. Distributing the intersection across each branch keeps `interface … extends`
52
+ * ergonomics and avoids tripping `@typescript-eslint` on `(union) & { ... }`.
53
+ *
54
+ * `direction` and `spacing` constrain the group layout to the three supported patterns:
55
+ * - `direction="column"` + `spacing="default"` — vertical stack with gaps (default).
56
+ * - `direction="column"` + `spacing="none"` — tight vertical stack (rows touch).
57
+ * - `direction="row"` + `spacing="default"` — side-by-side horizontal layout.
58
+ *
59
+ * `shape` (when set) is propagated to child `Tile`s via `withStyleContext`, matching the
60
+ * Avatar size-propagation pattern. A per-tile `shape` prop overrides the inherited value.
61
+ */
62
+
63
+ const TileGroup = /*#__PURE__*/(0, _react.forwardRef)(({
64
+ className,
65
+ style,
66
+ children,
67
+ direction,
68
+ spacing,
69
+ shape,
70
+ ...props
71
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.Group, {
72
+ ref: ref,
73
+ className: (0, _utils.cn)((0, _styles3.tileGroupVariants)({
74
+ direction,
75
+ spacing
76
+ }), className),
77
+ style: style,
78
+ context: {
79
+ shape
80
+ },
81
+ ...props,
82
+ children: children
83
+ }));
84
+ TileGroup.displayName = 'Tile.Group';
85
+
86
+ // =============================================================================
87
+ // TILE ROOT
88
+ // =============================================================================
89
+
90
+ const TileRoot = /*#__PURE__*/(0, _react.forwardRef)(({
91
+ shape: shapeProp,
92
+ showSeparator,
93
+ className,
94
+ style,
95
+ context,
96
+ ...props
97
+ }, ref) => {
98
+ const {
99
+ shape: inheritedShape
100
+ } = useTileGroupStyleContext();
101
+ const shape = shapeProp ?? inheritedShape ?? 'card';
102
+ const computedClassName = (0, _utils.cn)((0, _styles3.tileRootVariants)({
103
+ shape,
104
+ showSeparator
105
+ }), className);
106
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive, {
107
+ ref: ref,
108
+ className: computedClassName,
109
+ context: {
110
+ ...context,
111
+ shape
112
+ },
113
+ style: style,
114
+ ...props
115
+ });
116
+ });
117
+ TileRoot.displayName = 'Tile';
118
+
119
+ // =============================================================================
120
+ // SLOTS
121
+ // =============================================================================
122
+
123
+ const TileLeadingSlot = /*#__PURE__*/(0, _react.forwardRef)(({
124
+ className,
125
+ style,
126
+ ...props
127
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.LeadingSlot, {
128
+ ref: ref,
129
+ className: (0, _utils.cn)((0, _styles3.tileLeadingSlotVariants)(), className),
130
+ style: style,
131
+ ...props
132
+ }));
133
+ TileLeadingSlot.displayName = 'Tile.LeadingSlot';
134
+ const TileContent = /*#__PURE__*/(0, _react.forwardRef)(({
135
+ className,
136
+ style,
137
+ ...props
138
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.Content, {
139
+ ref: ref,
140
+ className: (0, _utils.cn)((0, _styles3.tileContentVariants)(), className),
141
+ style: style,
142
+ ...props
143
+ }));
144
+ TileContent.displayName = 'Tile.Content';
145
+ const TileTitle = /*#__PURE__*/(0, _react.forwardRef)(({
146
+ className,
147
+ style,
148
+ numberOfLines = 1,
149
+ ...props
150
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.Title, {
151
+ ref: ref,
152
+ className: (0, _utils.cn)((0, _styles3.tileTitleVariants)(), className),
153
+ style: style,
154
+ numberOfLines: numberOfLines,
155
+ ...props
156
+ }));
157
+ TileTitle.displayName = 'Tile.Title';
158
+ const TileDescription = /*#__PURE__*/(0, _react.forwardRef)(({
159
+ className,
160
+ style,
161
+ ...props
162
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.Description, {
163
+ ref: ref,
164
+ className: (0, _utils.cn)((0, _styles3.tileDescriptionVariants)(), className),
165
+ style: style,
166
+ ...props
167
+ }));
168
+ TileDescription.displayName = 'Tile.Description';
169
+
170
+ /**
171
+ * Decorative selection affordance. Renders pure CVA-styled Views — no interactive hooks,
172
+ * no nested Pressable, zero runtime overhead. The Tile root owns the press target and
173
+ * ARIA role; this subtree is `aria-hidden` via `createTileIndicator`.
174
+ *
175
+ * The visual is inferred from the tile context: `single` (radio semantics) → radio ring,
176
+ * `multiple` (checkbox semantics) → checkbox square. An explicit `indicatorType` prop
177
+ * overrides — primarily for standalone tiles that want a radio-style visual.
178
+ */
179
+ function TileIndicatorVisual({
180
+ indicatorType
181
+ }) {
182
+ const {
183
+ isSelected,
184
+ isDisabled,
185
+ selectionType
186
+ } = (0, _primitives.useTileContext)();
187
+ const effectiveType = indicatorType ?? (selectionType === 'single' ? 'radio' : 'checkbox');
188
+ const stateAttrs = (0, _primitives.dataAttributes)({
189
+ checked: isSelected,
190
+ disabled: isDisabled
191
+ });
192
+ if (effectiveType === 'radio') {
193
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
194
+ className: (0, _styles2.radioIndicatorVariants)(),
195
+ ...stateAttrs,
196
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
197
+ className: (0, _styles2.radioInnerDotVariants)(),
198
+ ...(0, _primitives.dataAttributes)({
199
+ checked: isSelected,
200
+ invalid: false
201
+ })
202
+ })
203
+ });
204
+ }
205
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
206
+ className: (0, _utils.cn)((0, _styles.checkboxIndicatorVariants)()),
207
+ ...stateAttrs,
208
+ children: isSelected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
209
+ as: _icons.Check,
210
+ className: (0, _styles.checkboxIconVariants)()
211
+ })
212
+ });
213
+ }
214
+ const TileIndicator = /*#__PURE__*/(0, _react.forwardRef)(({
215
+ className,
216
+ children,
217
+ style,
218
+ indicatorType,
219
+ ...props
220
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.Indicator, {
221
+ ref: ref,
222
+ className: (0, _utils.cn)((0, _styles3.tileIndicatorVariants)(), className),
223
+ style: style,
224
+ indicatorType: indicatorType,
225
+ ...props,
226
+ children: children ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(TileIndicatorVisual, {
227
+ indicatorType: indicatorType
228
+ })
229
+ }));
230
+ TileIndicator.displayName = 'Tile.Indicator';
231
+ const TileTrailingSlot = /*#__PURE__*/(0, _react.forwardRef)(({
232
+ className,
233
+ style,
234
+ ...props
235
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TilePrimitive.TrailingSlot, {
236
+ ref: ref,
237
+ className: (0, _utils.cn)((0, _styles3.tileTrailingSlotVariants)(), className),
238
+ style: style,
239
+ ...props
240
+ }));
241
+ TileTrailingSlot.displayName = 'Tile.TrailingSlot';
242
+ const Tile = exports.Tile = Object.assign(TileRoot, {
243
+ Group: TileGroup,
244
+ LeadingSlot: TileLeadingSlot,
245
+ Content: TileContent,
246
+ Title: TileTitle,
247
+ Description: TileDescription,
248
+ Indicator: TileIndicator,
249
+ TrailingSlot: TileTrailingSlot
250
+ });
251
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_primitives","_icons","_utils","_styles","_Icon","_styles2","_styles3","_jsxRuntime","TILE_SCOPE","TILE_GROUP_SCOPE","RootPressable","withStyleContext","Pressable","GroupView","View","useTileGroupStyleContext","ctx","useStyleContext","TilePrimitive","createTile","Group","LeadingSlot","Content","Title","Text","Description","Indicator","TrailingSlot","TileGroup","forwardRef","className","style","children","direction","spacing","shape","props","ref","jsx","cn","tileGroupVariants","context","displayName","TileRoot","shapeProp","showSeparator","inheritedShape","computedClassName","tileRootVariants","TileLeadingSlot","tileLeadingSlotVariants","TileContent","tileContentVariants","TileTitle","numberOfLines","tileTitleVariants","TileDescription","tileDescriptionVariants","TileIndicatorVisual","indicatorType","isSelected","isDisabled","selectionType","useTileContext","effectiveType","stateAttrs","dataAttributes","checked","disabled","radioIndicatorVariants","radioInnerDotVariants","invalid","checkboxIndicatorVariants","Icon","as","Check","checkboxIconVariants","TileIndicator","tileIndicatorVariants","TileTrailingSlot","tileTrailingSlotVariants","Tile","exports","Object","assign"],"sourceRoot":"../../../../src","sources":["components/Tile/index.tsx"],"mappings":"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","ignoreList":[]}