@cdx-ui/components 0.0.1-alpha.21 → 0.0.1-alpha.22
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/lib/commonjs/components/ProgressSegmented/index.js +62 -0
- package/lib/commonjs/components/ProgressSegmented/index.js.map +1 -0
- package/lib/commonjs/components/ProgressSegmented/styles.js +21 -0
- package/lib/commonjs/components/ProgressSegmented/styles.js.map +1 -0
- package/lib/commonjs/components/index.js +12 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/module/components/ProgressSegmented/index.js +58 -0
- package/lib/module/components/ProgressSegmented/index.js.map +1 -0
- package/lib/module/components/ProgressSegmented/styles.js +17 -0
- package/lib/module/components/ProgressSegmented/styles.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/typescript/components/ProgressSegmented/index.d.ts +15 -0
- package/lib/typescript/components/ProgressSegmented/index.d.ts.map +1 -0
- package/lib/typescript/components/ProgressSegmented/styles.d.ts +8 -0
- package/lib/typescript/components/ProgressSegmented/styles.d.ts.map +1 -0
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/ProgressSegmented/index.tsx +81 -0
- package/src/components/ProgressSegmented/styles.ts +19 -0
- package/src/components/index.ts +1 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ProgressSegmented = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _utils = require("@cdx-ui/utils");
|
|
10
|
+
var _styles = require("./styles");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
const ProgressSegmented = exports.ProgressSegmented = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
13
|
+
step,
|
|
14
|
+
total = 5,
|
|
15
|
+
isStepComplete = false,
|
|
16
|
+
getAccessibilityText,
|
|
17
|
+
className,
|
|
18
|
+
accessibilityLabel = 'Progress',
|
|
19
|
+
...props
|
|
20
|
+
}, ref) => {
|
|
21
|
+
const clampedStep = Math.max(0, Math.min(step, total));
|
|
22
|
+
const segments = (0, _react.useMemo)(() => {
|
|
23
|
+
return Array.from({
|
|
24
|
+
length: total
|
|
25
|
+
}, (_, index) => {
|
|
26
|
+
const segmentIndex = index + 1;
|
|
27
|
+
let state = 'incomplete';
|
|
28
|
+
if (segmentIndex < clampedStep || isStepComplete && segmentIndex === clampedStep) {
|
|
29
|
+
state = 'complete';
|
|
30
|
+
} else if (segmentIndex === clampedStep) {
|
|
31
|
+
state = 'inprogress';
|
|
32
|
+
}
|
|
33
|
+
return state;
|
|
34
|
+
});
|
|
35
|
+
}, [total, clampedStep, isStepComplete]);
|
|
36
|
+
let accessibilityText = `Step ${String(clampedStep)} of ${String(total)}`;
|
|
37
|
+
if (getAccessibilityText) {
|
|
38
|
+
accessibilityText = getAccessibilityText(clampedStep, total, isStepComplete);
|
|
39
|
+
} else if (isStepComplete) {
|
|
40
|
+
accessibilityText = `Step ${String(clampedStep)} of ${String(total)}, completed`;
|
|
41
|
+
}
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
43
|
+
ref: ref,
|
|
44
|
+
accessibilityRole: "progressbar",
|
|
45
|
+
accessibilityLabel: accessibilityLabel,
|
|
46
|
+
accessibilityValue: {
|
|
47
|
+
min: 0,
|
|
48
|
+
max: total,
|
|
49
|
+
now: clampedStep,
|
|
50
|
+
text: accessibilityText
|
|
51
|
+
},
|
|
52
|
+
className: (0, _utils.cn)((0, _styles.progressSegmentedVariants)(), className),
|
|
53
|
+
...props,
|
|
54
|
+
children: segments.map((state, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
55
|
+
className: (0, _utils.cn)((0, _styles.segmentVariants)({
|
|
56
|
+
state
|
|
57
|
+
}))
|
|
58
|
+
}, index))
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
ProgressSegmented.displayName = 'ProgressSegmented';
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_utils","_styles","_jsxRuntime","ProgressSegmented","exports","forwardRef","step","total","isStepComplete","getAccessibilityText","className","accessibilityLabel","props","ref","clampedStep","Math","max","min","segments","useMemo","Array","from","length","_","index","segmentIndex","state","accessibilityText","String","jsx","View","accessibilityRole","accessibilityValue","now","text","cn","progressSegmentedVariants","children","map","segmentVariants","displayName"],"sourceRoot":"../../../../src","sources":["components/ProgressSegmented/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAIkB,IAAAI,WAAA,GAAAJ,OAAA;AAcX,MAAMK,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,gBAAG,IAAAE,iBAAU,EACzC,CACE;EACEC,IAAI;EACJC,KAAK,GAAG,CAAC;EACTC,cAAc,GAAG,KAAK;EACtBC,oBAAoB;EACpBC,SAAS;EACTC,kBAAkB,GAAG,UAAU;EAC/B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACX,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEtD,MAAMW,QAAQ,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC7B,OAAOC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEf;IAAM,CAAC,EAAE,CAACgB,CAAC,EAAEC,KAAK,KAAK;MACjD,MAAMC,YAAY,GAAGD,KAAK,GAAG,CAAC;MAC9B,IAAIE,KAA+C,GAAG,YAAY;MAElE,IAAID,YAAY,GAAGX,WAAW,IAAKN,cAAc,IAAIiB,YAAY,KAAKX,WAAY,EAAE;QAClFY,KAAK,GAAG,UAAU;MACpB,CAAC,MAAM,IAAID,YAAY,KAAKX,WAAW,EAAE;QACvCY,KAAK,GAAG,YAAY;MACtB;MAEA,OAAOA,KAAK;IACd,CAAC,CAAC;EACJ,CAAC,EAAE,CAACnB,KAAK,EAAEO,WAAW,EAAEN,cAAc,CAAC,CAAC;EAExC,IAAImB,iBAAiB,GAAG,QAAQC,MAAM,CAACd,WAAW,CAAC,OAAOc,MAAM,CAACrB,KAAK,CAAC,EAAE;EACzE,IAAIE,oBAAoB,EAAE;IACxBkB,iBAAiB,GAAGlB,oBAAoB,CAACK,WAAW,EAAEP,KAAK,EAAEC,cAAc,CAAC;EAC9E,CAAC,MAAM,IAAIA,cAAc,EAAE;IACzBmB,iBAAiB,GAAG,QAAQC,MAAM,CAACd,WAAW,CAAC,OAAOc,MAAM,CAACrB,KAAK,CAAC,aAAa;EAClF;EAEA,oBACE,IAAAL,WAAA,CAAA2B,GAAA,EAAC9B,YAAA,CAAA+B,IAAI;IACHjB,GAAG,EAAEA,GAAI;IACTkB,iBAAiB,EAAC,aAAa;IAC/BpB,kBAAkB,EAAEA,kBAAmB;IACvCqB,kBAAkB,EAAE;MAClBf,GAAG,EAAE,CAAC;MACND,GAAG,EAAET,KAAK;MACV0B,GAAG,EAAEnB,WAAW;MAChBoB,IAAI,EAAEP;IACR,CAAE;IACFjB,SAAS,EAAE,IAAAyB,SAAE,EAAC,IAAAC,iCAAyB,EAAC,CAAC,EAAE1B,SAAS,CAAE;IAAA,GAClDE,KAAK;IAAAyB,QAAA,EAERnB,QAAQ,CAACoB,GAAG,CAAC,CAACZ,KAAK,EAAEF,KAAK,kBACzB,IAAAtB,WAAA,CAAA2B,GAAA,EAAC9B,YAAA,CAAA+B,IAAI;MAAapB,SAAS,EAAE,IAAAyB,SAAE,EAAC,IAAAI,uBAAe,EAAC;QAAEb;MAAM,CAAC,CAAC;IAAE,GAAjDF,KAAmD,CAC/D;EAAC,CACE,CAAC;AAEX,CACF,CAAC;AAEDrB,iBAAiB,CAACqC,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.segmentVariants = exports.progressSegmentedVariants = void 0;
|
|
7
|
+
var _classVarianceAuthority = require("class-variance-authority");
|
|
8
|
+
const progressSegmentedVariants = exports.progressSegmentedVariants = (0, _classVarianceAuthority.cva)(['flex-row gap-1 w-full']);
|
|
9
|
+
const segmentVariants = exports.segmentVariants = (0, _classVarianceAuthority.cva)(['flex-1 h-2 rounded'], {
|
|
10
|
+
variants: {
|
|
11
|
+
state: {
|
|
12
|
+
complete: 'bg-slate-900',
|
|
13
|
+
incomplete: 'bg-slate-300',
|
|
14
|
+
inprogress: 'bg-gradient-to-r from-slate-900 from-50% to-slate-300 to-50%'
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
state: 'incomplete'
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_classVarianceAuthority","require","progressSegmentedVariants","exports","cva","segmentVariants","variants","state","complete","incomplete","inprogress","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/ProgressSegmented/styles.ts"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAEO,MAAMC,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,IAAAE,2BAAG,EAAC,CAAC,uBAAuB,CAAC,CAAC;AAEhE,MAAMC,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAG,IAAAD,2BAAG,EAAC,CAAC,oBAAoB,CAAC,EAAE;EACzDE,QAAQ,EAAE;IACRC,KAAK,EAAE;MACLC,QAAQ,EAAE,cAAc;MACxBC,UAAU,EAAE,cAAc;MAC1BC,UAAU,EAAE;IACd;EACF,CAAC;EACDC,eAAe,EAAE;IACfJ,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -127,6 +127,18 @@ Object.keys(_Link).forEach(function (key) {
|
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
});
|
|
130
|
+
var _ProgressSegmented = require("./ProgressSegmented");
|
|
131
|
+
Object.keys(_ProgressSegmented).forEach(function (key) {
|
|
132
|
+
if (key === "default" || key === "__esModule") return;
|
|
133
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
134
|
+
if (key in exports && exports[key] === _ProgressSegmented[key]) return;
|
|
135
|
+
Object.defineProperty(exports, key, {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
get: function () {
|
|
138
|
+
return _ProgressSegmented[key];
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
});
|
|
130
142
|
var _Select = require("./Select");
|
|
131
143
|
Object.keys(_Select).forEach(function (key) {
|
|
132
144
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BottomSheet","_Box","_Button","_Chip","_Card","_Checkbox","_Input","_Link","_Select","_VirtualizedList","_Switch","_Stack","_Heading","_Text","_Icon"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,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,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,YAAA,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,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,IAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,IAAA,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,IAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,IAAA,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,KAAA,GAAAhB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAc,KAAA,EAAAb,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,MAAAY,KAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,KAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,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;AACA,IAAAc,SAAA,GAAAlB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAgB,SAAA,EAAAf,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,MAAAc,SAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,SAAA,CAAAd,GAAA;IAAA;EAAA;AAAA;AACA,IAAAe,MAAA,GAAAnB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAiB,MAAA,EAAAhB,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,MAAAe,MAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,MAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AACA,IAAAgB,KAAA,GAAApB,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAkB,KAAA,EAAAjB,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,MAAAgB,KAAA,CAAAhB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,KAAA,CAAAhB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAiB,
|
|
1
|
+
{"version":3,"names":["_Avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_BottomSheet","_Box","_Button","_Chip","_Card","_Checkbox","_Input","_Link","_ProgressSegmented","_Select","_VirtualizedList","_Switch","_Stack","_Heading","_Text","_Icon"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useMemo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { cn } from '@cdx-ui/utils';
|
|
6
|
+
import { progressSegmentedVariants, segmentVariants } from './styles';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const ProgressSegmented = /*#__PURE__*/forwardRef(({
|
|
9
|
+
step,
|
|
10
|
+
total = 5,
|
|
11
|
+
isStepComplete = false,
|
|
12
|
+
getAccessibilityText,
|
|
13
|
+
className,
|
|
14
|
+
accessibilityLabel = 'Progress',
|
|
15
|
+
...props
|
|
16
|
+
}, ref) => {
|
|
17
|
+
const clampedStep = Math.max(0, Math.min(step, total));
|
|
18
|
+
const segments = useMemo(() => {
|
|
19
|
+
return Array.from({
|
|
20
|
+
length: total
|
|
21
|
+
}, (_, index) => {
|
|
22
|
+
const segmentIndex = index + 1;
|
|
23
|
+
let state = 'incomplete';
|
|
24
|
+
if (segmentIndex < clampedStep || isStepComplete && segmentIndex === clampedStep) {
|
|
25
|
+
state = 'complete';
|
|
26
|
+
} else if (segmentIndex === clampedStep) {
|
|
27
|
+
state = 'inprogress';
|
|
28
|
+
}
|
|
29
|
+
return state;
|
|
30
|
+
});
|
|
31
|
+
}, [total, clampedStep, isStepComplete]);
|
|
32
|
+
let accessibilityText = `Step ${String(clampedStep)} of ${String(total)}`;
|
|
33
|
+
if (getAccessibilityText) {
|
|
34
|
+
accessibilityText = getAccessibilityText(clampedStep, total, isStepComplete);
|
|
35
|
+
} else if (isStepComplete) {
|
|
36
|
+
accessibilityText = `Step ${String(clampedStep)} of ${String(total)}, completed`;
|
|
37
|
+
}
|
|
38
|
+
return /*#__PURE__*/_jsx(View, {
|
|
39
|
+
ref: ref,
|
|
40
|
+
accessibilityRole: "progressbar",
|
|
41
|
+
accessibilityLabel: accessibilityLabel,
|
|
42
|
+
accessibilityValue: {
|
|
43
|
+
min: 0,
|
|
44
|
+
max: total,
|
|
45
|
+
now: clampedStep,
|
|
46
|
+
text: accessibilityText
|
|
47
|
+
},
|
|
48
|
+
className: cn(progressSegmentedVariants(), className),
|
|
49
|
+
...props,
|
|
50
|
+
children: segments.map((state, index) => /*#__PURE__*/_jsx(View, {
|
|
51
|
+
className: cn(segmentVariants({
|
|
52
|
+
state
|
|
53
|
+
}))
|
|
54
|
+
}, index))
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
ProgressSegmented.displayName = 'ProgressSegmented';
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useMemo","View","cn","progressSegmentedVariants","segmentVariants","jsx","_jsx","ProgressSegmented","step","total","isStepComplete","getAccessibilityText","className","accessibilityLabel","props","ref","clampedStep","Math","max","min","segments","Array","from","length","_","index","segmentIndex","state","accessibilityText","String","accessibilityRole","accessibilityValue","now","text","children","map","displayName"],"sourceRoot":"../../../../src","sources":["components/ProgressSegmented/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC3C,SAASC,IAAI,QAAwB,cAAc;AACnD,SAASC,EAAE,QAAQ,eAAe;AAClC,SACEC,yBAAyB,EACzBC,eAAe,QAEV,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAclB,OAAO,MAAMC,iBAAiB,gBAAGR,UAAU,CACzC,CACE;EACES,IAAI;EACJC,KAAK,GAAG,CAAC;EACTC,cAAc,GAAG,KAAK;EACtBC,oBAAoB;EACpBC,SAAS;EACTC,kBAAkB,GAAG,UAAU;EAC/B,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACX,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEtD,MAAMW,QAAQ,GAAGpB,OAAO,CAAC,MAAM;IAC7B,OAAOqB,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEd;IAAM,CAAC,EAAE,CAACe,CAAC,EAAEC,KAAK,KAAK;MACjD,MAAMC,YAAY,GAAGD,KAAK,GAAG,CAAC;MAC9B,IAAIE,KAA+C,GAAG,YAAY;MAElE,IAAID,YAAY,GAAGV,WAAW,IAAKN,cAAc,IAAIgB,YAAY,KAAKV,WAAY,EAAE;QAClFW,KAAK,GAAG,UAAU;MACpB,CAAC,MAAM,IAAID,YAAY,KAAKV,WAAW,EAAE;QACvCW,KAAK,GAAG,YAAY;MACtB;MAEA,OAAOA,KAAK;IACd,CAAC,CAAC;EACJ,CAAC,EAAE,CAAClB,KAAK,EAAEO,WAAW,EAAEN,cAAc,CAAC,CAAC;EAExC,IAAIkB,iBAAiB,GAAG,QAAQC,MAAM,CAACb,WAAW,CAAC,OAAOa,MAAM,CAACpB,KAAK,CAAC,EAAE;EACzE,IAAIE,oBAAoB,EAAE;IACxBiB,iBAAiB,GAAGjB,oBAAoB,CAACK,WAAW,EAAEP,KAAK,EAAEC,cAAc,CAAC;EAC9E,CAAC,MAAM,IAAIA,cAAc,EAAE;IACzBkB,iBAAiB,GAAG,QAAQC,MAAM,CAACb,WAAW,CAAC,OAAOa,MAAM,CAACpB,KAAK,CAAC,aAAa;EAClF;EAEA,oBACEH,IAAA,CAACL,IAAI;IACHc,GAAG,EAAEA,GAAI;IACTe,iBAAiB,EAAC,aAAa;IAC/BjB,kBAAkB,EAAEA,kBAAmB;IACvCkB,kBAAkB,EAAE;MAClBZ,GAAG,EAAE,CAAC;MACND,GAAG,EAAET,KAAK;MACVuB,GAAG,EAAEhB,WAAW;MAChBiB,IAAI,EAAEL;IACR,CAAE;IACFhB,SAAS,EAAEV,EAAE,CAACC,yBAAyB,CAAC,CAAC,EAAES,SAAS,CAAE;IAAA,GAClDE,KAAK;IAAAoB,QAAA,EAERd,QAAQ,CAACe,GAAG,CAAC,CAACR,KAAK,EAAEF,KAAK,kBACzBnB,IAAA,CAACL,IAAI;MAAaW,SAAS,EAAEV,EAAE,CAACE,eAAe,CAAC;QAAEuB;MAAM,CAAC,CAAC;IAAE,GAAjDF,KAAmD,CAC/D;EAAC,CACE,CAAC;AAEX,CACF,CAAC;AAEDlB,iBAAiB,CAAC6B,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
export const progressSegmentedVariants = cva(['flex-row gap-1 w-full']);
|
|
5
|
+
export const segmentVariants = cva(['flex-1 h-2 rounded'], {
|
|
6
|
+
variants: {
|
|
7
|
+
state: {
|
|
8
|
+
complete: 'bg-slate-900',
|
|
9
|
+
incomplete: 'bg-slate-300',
|
|
10
|
+
inprogress: 'bg-gradient-to-r from-slate-900 from-50% to-slate-300 to-50%'
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
state: 'incomplete'
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cva","progressSegmentedVariants","segmentVariants","variants","state","complete","incomplete","inprogress","defaultVariants"],"sourceRoot":"../../../../src","sources":["components/ProgressSegmented/styles.ts"],"mappings":";;AAAA,SAASA,GAAG,QAA2B,0BAA0B;AAEjE,OAAO,MAAMC,yBAAyB,GAAGD,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAEvE,OAAO,MAAME,eAAe,GAAGF,GAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE;EACzDG,QAAQ,EAAE;IACRC,KAAK,EAAE;MACLC,QAAQ,EAAE,cAAc;MACxBC,UAAU,EAAE,cAAc;MAC1BC,UAAU,EAAE;IACd;EACF,CAAC;EACDC,eAAe,EAAE;IACfJ,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,UAAU;AACxB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["HStack","VStack"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,UAAU;AACxB,SAASA,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { View, type ViewProps } from 'react-native';
|
|
2
|
+
import { type ProgressSegmentedVariants } from './styles';
|
|
3
|
+
export interface ProgressSegmentedProps extends ViewProps, ProgressSegmentedVariants {
|
|
4
|
+
/** Current step (1-based index into the segment count) */
|
|
5
|
+
readonly step: number;
|
|
6
|
+
/** Total number of segments */
|
|
7
|
+
readonly total?: number;
|
|
8
|
+
/** When true, the current step segment is marked as complete rather than in-progress */
|
|
9
|
+
readonly isStepComplete?: boolean;
|
|
10
|
+
/** Returns the accessibility value text announced by screen readers. Receives the clamped step, total, and whether the step is complete. */
|
|
11
|
+
readonly getAccessibilityText?: (step: number, total: number, isStepComplete: boolean) => string;
|
|
12
|
+
readonly className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const ProgressSegmented: import("react").ForwardRefExoticComponent<ProgressSegmentedProps & import("react").RefAttributes<View>>;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressSegmented/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,sBAAuB,SAAQ,SAAS,EAAE,yBAAyB;IAClF,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,4IAA4I;IAC5I,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,MAAM,CAAC;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,iBAAiB,yGAyD7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
export declare const progressSegmentedVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
3
|
+
export declare const segmentVariants: (props?: ({
|
|
4
|
+
state?: "complete" | "incomplete" | "inprogress" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export type ProgressSegmentedVariants = VariantProps<typeof progressSegmentedVariants>;
|
|
7
|
+
export type SegmentVariants = VariantProps<typeof segmentVariants>;
|
|
8
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressSegmented/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,yBAAyB,oFAAiC,CAAC;AAExE,eAAO,MAAM,eAAe;;8EAW1B,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACvF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,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.
|
|
3
|
+
"version": "0.0.1-alpha.22",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"module": "lib/module/index.js",
|
|
6
6
|
"react-native": "src/index.ts",
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
"@gorhom/bottom-sheet": "^5.2.6",
|
|
66
66
|
"class-variance-authority": "^0.7.1",
|
|
67
67
|
"uniwind": "1.4.1",
|
|
68
|
-
"@cdx-ui/primitives": "0.0.1-alpha.
|
|
69
|
-
"@cdx-ui/utils": "0.0.1-alpha.
|
|
70
|
-
"@cdx-ui/icons": "0.0.1-alpha.
|
|
68
|
+
"@cdx-ui/primitives": "0.0.1-alpha.22",
|
|
69
|
+
"@cdx-ui/utils": "0.0.1-alpha.22",
|
|
70
|
+
"@cdx-ui/icons": "0.0.1-alpha.22"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@types/react": "*",
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { forwardRef, useMemo } from 'react';
|
|
2
|
+
import { View, type ViewProps } from 'react-native';
|
|
3
|
+
import { cn } from '@cdx-ui/utils';
|
|
4
|
+
import {
|
|
5
|
+
progressSegmentedVariants,
|
|
6
|
+
segmentVariants,
|
|
7
|
+
type ProgressSegmentedVariants,
|
|
8
|
+
} from './styles';
|
|
9
|
+
|
|
10
|
+
export interface ProgressSegmentedProps extends ViewProps, ProgressSegmentedVariants {
|
|
11
|
+
/** Current step (1-based index into the segment count) */
|
|
12
|
+
readonly step: number;
|
|
13
|
+
/** Total number of segments */
|
|
14
|
+
readonly total?: number;
|
|
15
|
+
/** When true, the current step segment is marked as complete rather than in-progress */
|
|
16
|
+
readonly isStepComplete?: boolean;
|
|
17
|
+
/** Returns the accessibility value text announced by screen readers. Receives the clamped step, total, and whether the step is complete. */
|
|
18
|
+
readonly getAccessibilityText?: (step: number, total: number, isStepComplete: boolean) => string;
|
|
19
|
+
readonly className?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const ProgressSegmented = forwardRef<View, ProgressSegmentedProps>(
|
|
23
|
+
(
|
|
24
|
+
{
|
|
25
|
+
step,
|
|
26
|
+
total = 5,
|
|
27
|
+
isStepComplete = false,
|
|
28
|
+
getAccessibilityText,
|
|
29
|
+
className,
|
|
30
|
+
accessibilityLabel = 'Progress',
|
|
31
|
+
...props
|
|
32
|
+
},
|
|
33
|
+
ref,
|
|
34
|
+
) => {
|
|
35
|
+
const clampedStep = Math.max(0, Math.min(step, total));
|
|
36
|
+
|
|
37
|
+
const segments = useMemo(() => {
|
|
38
|
+
return Array.from({ length: total }, (_, index) => {
|
|
39
|
+
const segmentIndex = index + 1;
|
|
40
|
+
let state: 'complete' | 'incomplete' | 'inprogress' = 'incomplete';
|
|
41
|
+
|
|
42
|
+
if (segmentIndex < clampedStep || (isStepComplete && segmentIndex === clampedStep)) {
|
|
43
|
+
state = 'complete';
|
|
44
|
+
} else if (segmentIndex === clampedStep) {
|
|
45
|
+
state = 'inprogress';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return state;
|
|
49
|
+
});
|
|
50
|
+
}, [total, clampedStep, isStepComplete]);
|
|
51
|
+
|
|
52
|
+
let accessibilityText = `Step ${String(clampedStep)} of ${String(total)}`;
|
|
53
|
+
if (getAccessibilityText) {
|
|
54
|
+
accessibilityText = getAccessibilityText(clampedStep, total, isStepComplete);
|
|
55
|
+
} else if (isStepComplete) {
|
|
56
|
+
accessibilityText = `Step ${String(clampedStep)} of ${String(total)}, completed`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<View
|
|
61
|
+
ref={ref}
|
|
62
|
+
accessibilityRole="progressbar"
|
|
63
|
+
accessibilityLabel={accessibilityLabel}
|
|
64
|
+
accessibilityValue={{
|
|
65
|
+
min: 0,
|
|
66
|
+
max: total,
|
|
67
|
+
now: clampedStep,
|
|
68
|
+
text: accessibilityText,
|
|
69
|
+
}}
|
|
70
|
+
className={cn(progressSegmentedVariants(), className)}
|
|
71
|
+
{...props}
|
|
72
|
+
>
|
|
73
|
+
{segments.map((state, index) => (
|
|
74
|
+
<View key={index} className={cn(segmentVariants({ state }))} />
|
|
75
|
+
))}
|
|
76
|
+
</View>
|
|
77
|
+
);
|
|
78
|
+
},
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
ProgressSegmented.displayName = 'ProgressSegmented';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
2
|
+
|
|
3
|
+
export const progressSegmentedVariants = cva(['flex-row gap-1 w-full']);
|
|
4
|
+
|
|
5
|
+
export const segmentVariants = cva(['flex-1 h-2 rounded'], {
|
|
6
|
+
variants: {
|
|
7
|
+
state: {
|
|
8
|
+
complete: 'bg-slate-900',
|
|
9
|
+
incomplete: 'bg-slate-300',
|
|
10
|
+
inprogress: 'bg-gradient-to-r from-slate-900 from-50% to-slate-300 to-50%',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
state: 'incomplete',
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type ProgressSegmentedVariants = VariantProps<typeof progressSegmentedVariants>;
|
|
19
|
+
export type SegmentVariants = VariantProps<typeof segmentVariants>;
|
package/src/components/index.ts
CHANGED