@tamagui/progress 1.74.3 → 1.74.5
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.
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { getVariableValue, styled, withStaticProperties } from "@tamagui/core";
|
|
2
|
+
import { createContextScope } from "@tamagui/create-context";
|
|
3
|
+
import { getSize } from "@tamagui/get-token";
|
|
4
|
+
import { ThemeableStack } from "@tamagui/stacks";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
const PROGRESS_NAME = "Progress", [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME), [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME), INDICATOR_NAME = "ProgressIndicator", ProgressIndicatorFrame = styled(ThemeableStack, {
|
|
8
|
+
name: INDICATOR_NAME,
|
|
9
|
+
variants: {
|
|
10
|
+
unstyled: {
|
|
11
|
+
false: {
|
|
12
|
+
height: "100%",
|
|
13
|
+
width: "100%",
|
|
14
|
+
backgrounded: !0
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
unstyled: !1
|
|
20
|
+
}
|
|
21
|
+
}), ProgressIndicator = ProgressIndicatorFrame.styleable(function(props, forwardedRef) {
|
|
22
|
+
const { __scopeProgress, ...indicatorProps } = props, context = useProgressContext(INDICATOR_NAME, __scopeProgress), pct = context.max - (context.value ?? 0), x = -(context.width === 0 ? 300 : context.width) * (pct / 100);
|
|
23
|
+
return /* @__PURE__ */ jsx(
|
|
24
|
+
ProgressIndicatorFrame,
|
|
25
|
+
{
|
|
26
|
+
"data-state": getProgressState(context.value, context.max),
|
|
27
|
+
"data-value": context.value ?? void 0,
|
|
28
|
+
"data-max": context.max,
|
|
29
|
+
x,
|
|
30
|
+
width: context.width,
|
|
31
|
+
...!props.unstyled && {
|
|
32
|
+
animateOnly: ["transform"],
|
|
33
|
+
opacity: context.width === 0 ? 0 : 1
|
|
34
|
+
},
|
|
35
|
+
...indicatorProps,
|
|
36
|
+
ref: forwardedRef
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
function defaultGetValueLabel(value, max) {
|
|
41
|
+
return `${Math.round(value / max * 100)}%`;
|
|
42
|
+
}
|
|
43
|
+
function getProgressState(value, maxValue) {
|
|
44
|
+
return value == null ? "indeterminate" : value === maxValue ? "complete" : "loading";
|
|
45
|
+
}
|
|
46
|
+
function isNumber(value) {
|
|
47
|
+
return typeof value == "number";
|
|
48
|
+
}
|
|
49
|
+
function isValidMaxNumber(max) {
|
|
50
|
+
return isNumber(max) && !isNaN(max) && max > 0;
|
|
51
|
+
}
|
|
52
|
+
function isValidValueNumber(value, max) {
|
|
53
|
+
return isNumber(value) && !isNaN(value) && value <= max && value >= 0;
|
|
54
|
+
}
|
|
55
|
+
const DEFAULT_MAX = 100, ProgressFrame = styled(ThemeableStack, {
|
|
56
|
+
name: "Progress",
|
|
57
|
+
variants: {
|
|
58
|
+
unstyled: {
|
|
59
|
+
false: {
|
|
60
|
+
borderRadius: 1e5,
|
|
61
|
+
overflow: "hidden",
|
|
62
|
+
backgrounded: !0
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
size: {
|
|
66
|
+
"...size": (val) => {
|
|
67
|
+
const size = Math.round(getVariableValue(getSize(val)) * 0.25);
|
|
68
|
+
return {
|
|
69
|
+
height: size,
|
|
70
|
+
minWidth: getVariableValue(size) * 20,
|
|
71
|
+
width: "100%"
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
defaultVariants: {
|
|
77
|
+
unstyled: !1
|
|
78
|
+
}
|
|
79
|
+
}), Progress = withStaticProperties(
|
|
80
|
+
ProgressFrame.styleable(function(props, forwardedRef) {
|
|
81
|
+
const {
|
|
82
|
+
__scopeProgress,
|
|
83
|
+
value: valueProp,
|
|
84
|
+
max: maxProp,
|
|
85
|
+
getValueLabel = defaultGetValueLabel,
|
|
86
|
+
size = "$true",
|
|
87
|
+
...progressProps
|
|
88
|
+
} = props, max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX, value = isValidValueNumber(valueProp, max) ? valueProp : null, valueLabel = isNumber(value) ? getValueLabel(value, max) : void 0, [width, setWidth] = React.useState(0);
|
|
89
|
+
return /* @__PURE__ */ jsx(ProgressProvider, { scope: __scopeProgress, value, max, width, children: /* @__PURE__ */ jsx(
|
|
90
|
+
ProgressFrame,
|
|
91
|
+
{
|
|
92
|
+
"aria-valuemax": max,
|
|
93
|
+
"aria-valuemin": 0,
|
|
94
|
+
"aria-valuenow": isNumber(value) ? value : void 0,
|
|
95
|
+
"aria-valuetext": valueLabel,
|
|
96
|
+
role: "progressbar",
|
|
97
|
+
"data-state": getProgressState(value, max),
|
|
98
|
+
"data-value": value ?? void 0,
|
|
99
|
+
"data-max": max,
|
|
100
|
+
...progressProps.unstyled !== !0 && {
|
|
101
|
+
size
|
|
102
|
+
},
|
|
103
|
+
...progressProps,
|
|
104
|
+
onLayout: (e) => {
|
|
105
|
+
setWidth(e.nativeEvent.layout.width), progressProps.onLayout?.(e);
|
|
106
|
+
},
|
|
107
|
+
ref: forwardedRef
|
|
108
|
+
}
|
|
109
|
+
) });
|
|
110
|
+
}),
|
|
111
|
+
{
|
|
112
|
+
Indicator: ProgressIndicator
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
export {
|
|
116
|
+
Progress,
|
|
117
|
+
ProgressFrame,
|
|
118
|
+
ProgressIndicator,
|
|
119
|
+
ProgressIndicatorFrame,
|
|
120
|
+
createProgressScope
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=Progress.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Progress.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/progress",
|
|
3
|
-
"version": "1.74.
|
|
3
|
+
"version": "1.74.5",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"*.css"
|
|
6
6
|
],
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@tamagui/compose-refs": "1.74.
|
|
35
|
-
"@tamagui/core": "1.74.
|
|
36
|
-
"@tamagui/create-context": "1.74.
|
|
37
|
-
"@tamagui/get-token": "1.74.
|
|
38
|
-
"@tamagui/stacks": "1.74.
|
|
34
|
+
"@tamagui/compose-refs": "1.74.5",
|
|
35
|
+
"@tamagui/core": "1.74.5",
|
|
36
|
+
"@tamagui/create-context": "1.74.5",
|
|
37
|
+
"@tamagui/get-token": "1.74.5",
|
|
38
|
+
"@tamagui/stacks": "1.74.5"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"react": "*",
|
|
42
42
|
"react-native": "*"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@tamagui/build": "1.74.
|
|
45
|
+
"@tamagui/build": "1.74.5",
|
|
46
46
|
"react": "^18.2.0",
|
|
47
47
|
"react-native": "^0.72.1"
|
|
48
48
|
},
|