@multiplatform.one/components 6.4.3 → 6.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Avatar/index.cjs +4 -0
- package/dist/cjs/Avatar/index.native.js +4 -0
- package/dist/cjs/Avatar/index.native.js.map +1 -1
- package/dist/cjs/Badge/index.cjs +3 -0
- package/dist/cjs/Badge/index.native.js +3 -0
- package/dist/cjs/Badge/index.native.js.map +1 -1
- package/dist/cjs/Carousel/index.cjs +28 -15
- package/dist/cjs/Carousel/index.native.js +34 -17
- package/dist/cjs/Carousel/index.native.js.map +1 -1
- package/dist/cjs/DotIndicator/index.cjs +92 -35
- package/dist/cjs/DotIndicator/index.native.js +93 -35
- package/dist/cjs/DotIndicator/index.native.js.map +1 -1
- package/dist/cjs/Pagination.cjs +112 -167
- package/dist/cjs/Pagination.native.js +125 -180
- package/dist/cjs/Pagination.native.js.map +1 -1
- package/dist/cjs/ProgressSteps/index.cjs +2 -1
- package/dist/cjs/ProgressSteps/index.native.js +2 -1
- package/dist/cjs/ProgressSteps/index.native.js.map +1 -1
- package/dist/cjs/charts/PieChart.cjs +1 -1
- package/dist/cjs/charts/PieChart.native.js +7 -2
- package/dist/cjs/charts/PieChart.native.js.map +1 -1
- package/dist/cjs/feedback/ConfirmDialog.cjs +1 -3
- package/dist/cjs/feedback/ConfirmDialog.native.js +1 -3
- package/dist/cjs/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/layouts/ViewSwitcher.cjs +4 -5
- package/dist/cjs/layouts/ViewSwitcher.native.js +13 -7
- package/dist/cjs/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/cjs/layouts/attachments.cjs +4 -8
- package/dist/cjs/layouts/attachments.native.js +5 -8
- package/dist/cjs/layouts/attachments.native.js.map +1 -1
- package/dist/cjs/layouts/page.cjs +1 -0
- package/dist/cjs/layouts/page.native.js +4 -1
- package/dist/cjs/layouts/page.native.js.map +1 -1
- package/dist/cjs/layouts/tags.cjs +1 -0
- package/dist/cjs/layouts/tags.native.js +2 -0
- package/dist/cjs/layouts/tags.native.js.map +1 -1
- package/dist/cjs/layouts/timeline.cjs +0 -6
- package/dist/cjs/layouts/timeline.native.js +0 -6
- package/dist/cjs/layouts/timeline.native.js.map +1 -1
- package/dist/cjs/surfaces.cjs +21 -0
- package/dist/cjs/surfaces.native.js +22 -0
- package/dist/cjs/surfaces.native.js.map +1 -1
- package/dist/cjs/views/Calendar.cjs +2 -0
- package/dist/cjs/views/Calendar.native.js +8 -2
- package/dist/cjs/views/Calendar.native.js.map +1 -1
- package/dist/cjs/views/Kanban.cjs +22 -13
- package/dist/cjs/views/Kanban.native.js +1 -0
- package/dist/cjs/views/Kanban.native.js.map +1 -1
- package/dist/cjs/views/ReportBuilder.cjs +12 -2
- package/dist/cjs/views/ReportBuilder.native.js +12 -2
- package/dist/cjs/views/ReportBuilder.native.js.map +1 -1
- package/dist/esm/Avatar/index.mjs +5 -1
- package/dist/esm/Avatar/index.mjs.map +1 -1
- package/dist/esm/Avatar/index.native.js +5 -1
- package/dist/esm/Avatar/index.native.js.map +1 -1
- package/dist/esm/Badge/index.mjs +4 -1
- package/dist/esm/Badge/index.mjs.map +1 -1
- package/dist/esm/Badge/index.native.js +4 -1
- package/dist/esm/Badge/index.native.js.map +1 -1
- package/dist/esm/Carousel/index.mjs +28 -15
- package/dist/esm/Carousel/index.mjs.map +1 -1
- package/dist/esm/Carousel/index.native.js +34 -17
- package/dist/esm/Carousel/index.native.js.map +1 -1
- package/dist/esm/DotIndicator/index.mjs +93 -36
- package/dist/esm/DotIndicator/index.mjs.map +1 -1
- package/dist/esm/DotIndicator/index.native.js +94 -36
- package/dist/esm/DotIndicator/index.native.js.map +1 -1
- package/dist/esm/Pagination.mjs +113 -168
- package/dist/esm/Pagination.mjs.map +1 -1
- package/dist/esm/Pagination.native.js +126 -181
- package/dist/esm/Pagination.native.js.map +1 -1
- package/dist/esm/ProgressSteps/index.mjs +2 -1
- package/dist/esm/ProgressSteps/index.mjs.map +1 -1
- package/dist/esm/ProgressSteps/index.native.js +2 -1
- package/dist/esm/ProgressSteps/index.native.js.map +1 -1
- package/dist/esm/charts/PieChart.mjs +1 -1
- package/dist/esm/charts/PieChart.mjs.map +1 -1
- package/dist/esm/charts/PieChart.native.js +7 -2
- package/dist/esm/charts/PieChart.native.js.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.mjs +2 -4
- package/dist/esm/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/esm/feedback/ConfirmDialog.native.js +2 -4
- package/dist/esm/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/layouts/ViewSwitcher.mjs +4 -5
- package/dist/esm/layouts/ViewSwitcher.mjs.map +1 -1
- package/dist/esm/layouts/ViewSwitcher.native.js +13 -7
- package/dist/esm/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/esm/layouts/attachments.mjs +4 -8
- package/dist/esm/layouts/attachments.mjs.map +1 -1
- package/dist/esm/layouts/attachments.native.js +5 -8
- package/dist/esm/layouts/attachments.native.js.map +1 -1
- package/dist/esm/layouts/page.mjs +2 -1
- package/dist/esm/layouts/page.mjs.map +1 -1
- package/dist/esm/layouts/page.native.js +5 -2
- package/dist/esm/layouts/page.native.js.map +1 -1
- package/dist/esm/layouts/tags.mjs +1 -0
- package/dist/esm/layouts/tags.mjs.map +1 -1
- package/dist/esm/layouts/tags.native.js +2 -0
- package/dist/esm/layouts/tags.native.js.map +1 -1
- package/dist/esm/layouts/timeline.mjs +0 -6
- package/dist/esm/layouts/timeline.mjs.map +1 -1
- package/dist/esm/layouts/timeline.native.js +0 -6
- package/dist/esm/layouts/timeline.native.js.map +1 -1
- package/dist/esm/surfaces.mjs +21 -1
- package/dist/esm/surfaces.mjs.map +1 -1
- package/dist/esm/surfaces.native.js +22 -1
- package/dist/esm/surfaces.native.js.map +1 -1
- package/dist/esm/views/Calendar.mjs +3 -1
- package/dist/esm/views/Calendar.mjs.map +1 -1
- package/dist/esm/views/Calendar.native.js +9 -3
- package/dist/esm/views/Calendar.native.js.map +1 -1
- package/dist/esm/views/Kanban.mjs +23 -14
- package/dist/esm/views/Kanban.mjs.map +1 -1
- package/dist/esm/views/Kanban.native.js +2 -1
- package/dist/esm/views/Kanban.native.js.map +1 -1
- package/dist/esm/views/ReportBuilder.mjs +13 -3
- package/dist/esm/views/ReportBuilder.mjs.map +1 -1
- package/dist/esm/views/ReportBuilder.native.js +13 -3
- package/dist/esm/views/ReportBuilder.native.js.map +1 -1
- package/dist/jsx/Avatar/index.mjs +5 -1
- package/dist/jsx/Avatar/index.mjs.map +1 -1
- package/dist/jsx/Avatar/index.native.js +4 -0
- package/dist/jsx/Avatar/index.native.js.map +1 -1
- package/dist/jsx/Badge/index.mjs +4 -1
- package/dist/jsx/Badge/index.mjs.map +1 -1
- package/dist/jsx/Badge/index.native.js +3 -0
- package/dist/jsx/Badge/index.native.js.map +1 -1
- package/dist/jsx/Carousel/index.mjs +28 -15
- package/dist/jsx/Carousel/index.mjs.map +1 -1
- package/dist/jsx/Carousel/index.native.js +34 -17
- package/dist/jsx/Carousel/index.native.js.map +1 -1
- package/dist/jsx/DotIndicator/index.mjs +93 -36
- package/dist/jsx/DotIndicator/index.mjs.map +1 -1
- package/dist/jsx/DotIndicator/index.native.js +93 -35
- package/dist/jsx/DotIndicator/index.native.js.map +1 -1
- package/dist/jsx/Pagination.mjs +113 -168
- package/dist/jsx/Pagination.mjs.map +1 -1
- package/dist/jsx/Pagination.native.js +125 -180
- package/dist/jsx/Pagination.native.js.map +1 -1
- package/dist/jsx/ProgressSteps/index.mjs +2 -1
- package/dist/jsx/ProgressSteps/index.mjs.map +1 -1
- package/dist/jsx/ProgressSteps/index.native.js +2 -1
- package/dist/jsx/ProgressSteps/index.native.js.map +1 -1
- package/dist/jsx/charts/PieChart.mjs +1 -1
- package/dist/jsx/charts/PieChart.mjs.map +1 -1
- package/dist/jsx/charts/PieChart.native.js +7 -2
- package/dist/jsx/charts/PieChart.native.js.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.mjs +2 -4
- package/dist/jsx/feedback/ConfirmDialog.mjs.map +1 -1
- package/dist/jsx/feedback/ConfirmDialog.native.js +1 -3
- package/dist/jsx/feedback/ConfirmDialog.native.js.map +1 -1
- package/dist/jsx/index.js +2 -2
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -2
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/layouts/ViewSwitcher.mjs +4 -5
- package/dist/jsx/layouts/ViewSwitcher.mjs.map +1 -1
- package/dist/jsx/layouts/ViewSwitcher.native.js +13 -7
- package/dist/jsx/layouts/ViewSwitcher.native.js.map +1 -1
- package/dist/jsx/layouts/attachments.mjs +4 -8
- package/dist/jsx/layouts/attachments.mjs.map +1 -1
- package/dist/jsx/layouts/attachments.native.js +5 -8
- package/dist/jsx/layouts/attachments.native.js.map +1 -1
- package/dist/jsx/layouts/page.mjs +2 -1
- package/dist/jsx/layouts/page.mjs.map +1 -1
- package/dist/jsx/layouts/page.native.js +4 -1
- package/dist/jsx/layouts/page.native.js.map +1 -1
- package/dist/jsx/layouts/tags.mjs +1 -0
- package/dist/jsx/layouts/tags.mjs.map +1 -1
- package/dist/jsx/layouts/tags.native.js +2 -0
- package/dist/jsx/layouts/tags.native.js.map +1 -1
- package/dist/jsx/layouts/timeline.mjs +0 -6
- package/dist/jsx/layouts/timeline.mjs.map +1 -1
- package/dist/jsx/layouts/timeline.native.js +0 -6
- package/dist/jsx/layouts/timeline.native.js.map +1 -1
- package/dist/jsx/surfaces.mjs +21 -1
- package/dist/jsx/surfaces.mjs.map +1 -1
- package/dist/jsx/surfaces.native.js +22 -0
- package/dist/jsx/surfaces.native.js.map +1 -1
- package/dist/jsx/views/Calendar.mjs +3 -1
- package/dist/jsx/views/Calendar.mjs.map +1 -1
- package/dist/jsx/views/Calendar.native.js +8 -2
- package/dist/jsx/views/Calendar.native.js.map +1 -1
- package/dist/jsx/views/Kanban.mjs +23 -14
- package/dist/jsx/views/Kanban.mjs.map +1 -1
- package/dist/jsx/views/Kanban.native.js +1 -0
- package/dist/jsx/views/Kanban.native.js.map +1 -1
- package/dist/jsx/views/ReportBuilder.mjs +13 -3
- package/dist/jsx/views/ReportBuilder.mjs.map +1 -1
- package/dist/jsx/views/ReportBuilder.native.js +12 -2
- package/dist/jsx/views/ReportBuilder.native.js.map +1 -1
- package/package.json +10 -10
- package/src/Accordion/Accordion.stories.tsx +7 -2
- package/src/Avatar/Avatar.spec.tsx +31 -0
- package/src/Avatar/index.tsx +19 -1
- package/src/Badge/Badge.stories.tsx +3 -1
- package/src/Badge/index.tsx +4 -1
- package/src/Carousel/Carousel.spec.tsx +271 -0
- package/src/Carousel/Carousel.stories.tsx +35 -0
- package/src/Carousel/index.tsx +45 -20
- package/src/DialogContent.stories.tsx +2 -2
- package/src/DotIndicator/dotIndicator.spec.tsx +43 -1
- package/src/DotIndicator/index.tsx +169 -35
- package/src/Pagination.api.spec.tsx +345 -0
- package/src/Pagination.tsx +138 -176
- package/src/Panel.stories.tsx +4 -4
- package/src/ProgressSteps/ProgressSteps.spec.tsx +40 -1
- package/src/ProgressSteps/ProgressSteps.stories.tsx +3 -1
- package/src/ProgressSteps/index.tsx +6 -1
- package/src/charts/PieChart.tsx +4 -1
- package/src/feedback/ConfirmDialog.tsx +2 -2
- package/src/index.ts +1 -0
- package/src/layouts/PageHeader.stories.tsx +21 -3
- package/src/layouts/ScreenToolbar.stories.tsx +12 -5
- package/src/layouts/ViewSwitcher.tsx +25 -6
- package/src/layouts/attachments.tsx +4 -1
- package/src/layouts/layouts.spec.tsx +77 -1
- package/src/layouts/page.tsx +5 -1
- package/src/layouts/pageTitleScale.spec.tsx +70 -0
- package/src/layouts/tags.tsx +2 -0
- package/src/layouts/timeline-radius.spec.tsx +21 -0
- package/src/layouts/timeline.tsx +7 -18
- package/src/shared/t.spec.ts +47 -0
- package/src/surfaces.tsx +33 -0
- package/src/views/Calendar.stories.tsx +4 -2
- package/src/views/Calendar.tsx +6 -1
- package/src/views/Gantt.stories.tsx +2 -2
- package/src/views/Kanban.native.tsx +8 -2
- package/src/views/Kanban.stories.tsx +3 -1
- package/src/views/Kanban.tsx +42 -13
- package/src/views/ReportBuilder.tsx +15 -2
- package/types/Avatar/index.d.ts.map +1 -1
- package/types/Badge/index.d.ts.map +1 -1
- package/types/Carousel/index.d.ts.map +1 -1
- package/types/DotIndicator/index.d.ts +44 -3
- package/types/DotIndicator/index.d.ts.map +1 -1
- package/types/Pagination.d.ts +6 -1
- package/types/Pagination.d.ts.map +1 -1
- package/types/ProgressSteps/index.d.ts.map +1 -1
- package/types/charts/PieChart.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/layouts/ViewSwitcher.d.ts.map +1 -1
- package/types/layouts/attachments.d.ts.map +1 -1
- package/types/layouts/page.d.ts.map +1 -1
- package/types/layouts/tags.d.ts.map +1 -1
- package/types/layouts/timeline.d.ts.map +1 -1
- package/types/surfaces.d.ts +17 -0
- package/types/surfaces.d.ts.map +1 -1
- package/types/views/Calendar.d.ts.map +1 -1
- package/types/views/Kanban.d.ts +13 -1
- package/types/views/Kanban.d.ts.map +1 -1
- package/types/views/ReportBuilder.d.ts.map +1 -1
|
@@ -26,6 +26,7 @@ __export(DotIndicator_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(DotIndicator_exports);
|
|
28
28
|
var import_theme = require("@multiplatform.one/theme");
|
|
29
|
+
var import_react = require("@phosphor-icons/react");
|
|
29
30
|
var import_react_i18next = require("react-i18next");
|
|
30
31
|
var import_tamagui = require("tamagui");
|
|
31
32
|
var import_componentColors = require("../componentColors.cjs");
|
|
@@ -53,11 +54,36 @@ const dotGeometryMap = {
|
|
|
53
54
|
active: 30
|
|
54
55
|
}
|
|
55
56
|
};
|
|
57
|
+
const CHECK_MIN_DOT = 8;
|
|
58
|
+
function sizePx(value, fallback) {
|
|
59
|
+
if (typeof value === "number") return value;
|
|
60
|
+
if (typeof value === "string") {
|
|
61
|
+
const token = (0, import_tamagui.getTokens)().size?.[value]?.val;
|
|
62
|
+
if (typeof token === "number") return token;
|
|
63
|
+
}
|
|
64
|
+
return fallback;
|
|
65
|
+
}
|
|
56
66
|
const DotsContainer = (0, import_tamagui.styled)(import_tamagui.XStack, {
|
|
57
67
|
name: "DotIndicator",
|
|
58
68
|
alignItems: "center",
|
|
59
69
|
justifyContent: "center",
|
|
60
|
-
gap: "$2"
|
|
70
|
+
gap: "$2",
|
|
71
|
+
variants: {
|
|
72
|
+
// A rail seats the strip on a filled capsule instead of the page. It is a
|
|
73
|
+
// variant of the strip rather than host chrome because the rail and the
|
|
74
|
+
// idle dot color are ONE decision: idle dots have to step up the ramp to
|
|
75
|
+
// stay visible on the rail's fill, and split across two files that pairing
|
|
76
|
+
// drifts (LC-16).
|
|
77
|
+
rail: {
|
|
78
|
+
true: {
|
|
79
|
+
backgroundColor: import_componentColors.componentColors.interactive.background,
|
|
80
|
+
// R-PILL (D-09 / LC-60): the rail is a capsule at every radius value,
|
|
81
|
+
// like the dots it holds.
|
|
82
|
+
...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator rail"),
|
|
83
|
+
borderRadius: "$10"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
61
87
|
});
|
|
62
88
|
const DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
63
89
|
name: "DotTarget",
|
|
@@ -73,6 +99,13 @@ const DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
73
99
|
});
|
|
74
100
|
const Dot = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
75
101
|
name: "Dot",
|
|
102
|
+
// R-PILL (D-09 / LC-60): an ornamental dot is a circle at every radius
|
|
103
|
+
// value — the knob moves its size, never its shape — so it declares the
|
|
104
|
+
// class the `radius:none` sweep licenses it under.
|
|
105
|
+
...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator dot"),
|
|
106
|
+
// Centers the completion checkmark; inert for the empty dots.
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
justifyContent: "center",
|
|
76
109
|
borderRadius: 1e3,
|
|
77
110
|
backgroundColor: import_componentColors.componentColors.indicator.inactive,
|
|
78
111
|
hoverStyle: {
|
|
@@ -86,31 +119,11 @@ const Dot = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
86
119
|
backgroundColor: import_componentColors.componentColors.indicator.selected
|
|
87
120
|
}
|
|
88
121
|
},
|
|
89
|
-
variant:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
bars: {
|
|
95
|
-
width: 6,
|
|
96
|
-
height: 6
|
|
97
|
-
},
|
|
98
|
-
pills: {
|
|
99
|
-
width: 8,
|
|
100
|
-
height: 8
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
activeVariant: {
|
|
104
|
-
dots: {
|
|
105
|
-
width: 24
|
|
106
|
-
},
|
|
107
|
-
bars: {
|
|
108
|
-
width: 24
|
|
109
|
-
},
|
|
110
|
-
pills: {
|
|
111
|
-
width: 24
|
|
112
|
-
}
|
|
113
|
-
},
|
|
122
|
+
// No `variant` geometry here: the mark's width/height are always passed
|
|
123
|
+
// explicitly from the one size channel below, so a per-variant pixel table
|
|
124
|
+
// on the styled component could only ever be a second, silently-losing
|
|
125
|
+
// definition of the same thing (it already disagreed with the scale at
|
|
126
|
+
// size knob `$3`, where a tick is 5px, not 6).
|
|
114
127
|
disabled: {
|
|
115
128
|
true: {
|
|
116
129
|
opacity: 0.5
|
|
@@ -124,7 +137,14 @@ function DotIndicator({
|
|
|
124
137
|
onChange,
|
|
125
138
|
variant = "dots",
|
|
126
139
|
gap: gapProp,
|
|
127
|
-
disabled = false
|
|
140
|
+
disabled = false,
|
|
141
|
+
completedSteps,
|
|
142
|
+
idiom = "item",
|
|
143
|
+
rail = false,
|
|
144
|
+
dotSize,
|
|
145
|
+
activeDotSize,
|
|
146
|
+
transition,
|
|
147
|
+
dotStateAttribute = "data-dot-state"
|
|
128
148
|
}) {
|
|
129
149
|
const {
|
|
130
150
|
t
|
|
@@ -134,18 +154,36 @@ function DotIndicator({
|
|
|
134
154
|
} = (0, import_theme.useResolvedKnobs)();
|
|
135
155
|
const gap = gapProp ?? dotGapMap[knobProps.space] ?? "$2";
|
|
136
156
|
const geometry = dotGeometryMap[knobProps.sizeToken] ?? dotGeometryMap.$4;
|
|
137
|
-
const
|
|
157
|
+
const isTick = variant === "bars";
|
|
158
|
+
const itemSize = sizePx(dotSize, isTick ? geometry.bar : geometry.dot);
|
|
159
|
+
const activeSize = sizePx(activeDotSize, geometry.active);
|
|
138
160
|
const gapPx = typeof gap === "number" ? gap : (0, import_tamagui.getTokens)().space?.[gap]?.val ?? 7;
|
|
139
161
|
const slopX = Math.max(0, Math.floor((gapPx - 1) / 2));
|
|
140
|
-
const outsetY = Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2);
|
|
162
|
+
const outsetY = Math.max(0, Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2));
|
|
141
163
|
const interactive = !disabled && !!onChange;
|
|
164
|
+
const isStep = idiom === "step";
|
|
165
|
+
const label = isStep ? t("Go to step {{number}}") : t("Go to item {{number}}");
|
|
166
|
+
const currentValue = isStep ? "step" : "true";
|
|
167
|
+
const motionStyle = transition ? {
|
|
168
|
+
transition: "width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease"
|
|
169
|
+
} : void 0;
|
|
142
170
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotsContainer, {
|
|
143
171
|
gap,
|
|
172
|
+
rail,
|
|
173
|
+
...(rail ? {
|
|
174
|
+
paddingHorizontal: knobProps.panelPadding.padding,
|
|
175
|
+
height: knobProps.sizeToken
|
|
176
|
+
} : void 0),
|
|
144
177
|
children: Array.from({
|
|
145
178
|
length: total
|
|
146
179
|
}).map((_, index) => {
|
|
147
180
|
const isActive = index === activeIndex;
|
|
148
|
-
const
|
|
181
|
+
const isCompleted = !isActive && !!completedSteps?.has(index);
|
|
182
|
+
const dotWidth = isActive ? activeSize : itemSize;
|
|
183
|
+
const restingFill = isCompleted ? import_componentColors.componentColors.indicator.completed : rail ?
|
|
184
|
+
// Idle chrome steps up the ramp on a rail so the dot still
|
|
185
|
+
// separates from the capsule fill it sits on.
|
|
186
|
+
import_componentColors.componentColors.indicator.track : import_componentColors.componentColors.indicator.inactive;
|
|
149
187
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotTarget, {
|
|
150
188
|
width: dotWidth + slopX * 2,
|
|
151
189
|
minHeight: import_theme.MIN_PRESS_TARGET,
|
|
@@ -153,11 +191,11 @@ function DotIndicator({
|
|
|
153
191
|
marginVertical: -outsetY,
|
|
154
192
|
cursor: interactive ? "pointer" : disabled ? "not-allowed" : "default",
|
|
155
193
|
onPress: interactive ? () => onChange?.(index) : void 0,
|
|
156
|
-
"aria-label": (0, import_t.withInterp)(
|
|
194
|
+
"aria-label": (0, import_t.withInterp)(label, {
|
|
157
195
|
number: index + 1
|
|
158
196
|
}),
|
|
159
197
|
...(isActive ? {
|
|
160
|
-
"aria-current":
|
|
198
|
+
"aria-current": currentValue
|
|
161
199
|
} : void 0),
|
|
162
200
|
...(interactive ? {
|
|
163
201
|
role: "button",
|
|
@@ -172,12 +210,31 @@ function DotIndicator({
|
|
|
172
210
|
role: "button"
|
|
173
211
|
} : void 0),
|
|
174
212
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dot, {
|
|
175
|
-
variant,
|
|
176
213
|
active: isActive,
|
|
177
|
-
|
|
214
|
+
...(isActive ? void 0 : {
|
|
215
|
+
backgroundColor: restingFill,
|
|
216
|
+
// A completed dot and a rail dot both hold their fill on
|
|
217
|
+
// hover: the neutral hover step is PALER than either, so
|
|
218
|
+
// the page-level hover would read as a dim.
|
|
219
|
+
...(isCompleted || rail ? {
|
|
220
|
+
hoverStyle: {
|
|
221
|
+
backgroundColor: restingFill
|
|
222
|
+
}
|
|
223
|
+
} : void 0)
|
|
224
|
+
}),
|
|
178
225
|
width: dotWidth,
|
|
179
226
|
height: itemSize,
|
|
180
|
-
disabled
|
|
227
|
+
disabled,
|
|
228
|
+
transition,
|
|
229
|
+
style: motionStyle,
|
|
230
|
+
...{
|
|
231
|
+
[dotStateAttribute]: isActive ? "active" : "idle"
|
|
232
|
+
},
|
|
233
|
+
children: isCompleted && !isTick && itemSize >= CHECK_MIN_DOT && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
|
|
234
|
+
size: 8,
|
|
235
|
+
color: "white",
|
|
236
|
+
weight: "bold"
|
|
237
|
+
})
|
|
181
238
|
})
|
|
182
239
|
}, index);
|
|
183
240
|
})
|
|
@@ -29,6 +29,7 @@ __export(DotIndicator_exports, {
|
|
|
29
29
|
module.exports = __toCommonJS(DotIndicator_exports);
|
|
30
30
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
31
|
var import_theme = require("@multiplatform.one/theme");
|
|
32
|
+
var import_react = require("@phosphor-icons/react");
|
|
32
33
|
var import_react_i18next = require("react-i18next");
|
|
33
34
|
var import_tamagui = require("tamagui");
|
|
34
35
|
var import_componentColors = require("../componentColors.native.js");
|
|
@@ -55,11 +56,37 @@ var dotGeometryMap = {
|
|
|
55
56
|
active: 30
|
|
56
57
|
}
|
|
57
58
|
};
|
|
59
|
+
var CHECK_MIN_DOT = 8;
|
|
60
|
+
function sizePx(value, fallback) {
|
|
61
|
+
if (typeof value === "number") return value;
|
|
62
|
+
if (typeof value === "string") {
|
|
63
|
+
var _getTokens_size_value, _getTokens_size;
|
|
64
|
+
var token = (_getTokens_size = (0, import_tamagui.getTokens)().size) === null || _getTokens_size === void 0 ? void 0 : (_getTokens_size_value = _getTokens_size[value]) === null || _getTokens_size_value === void 0 ? void 0 : _getTokens_size_value.val;
|
|
65
|
+
if (typeof token === "number") return token;
|
|
66
|
+
}
|
|
67
|
+
return fallback;
|
|
68
|
+
}
|
|
58
69
|
var DotsContainer = (0, import_tamagui.styled)(import_tamagui.XStack, {
|
|
59
70
|
name: "DotIndicator",
|
|
60
71
|
alignItems: "center",
|
|
61
72
|
justifyContent: "center",
|
|
62
|
-
gap: "$2"
|
|
73
|
+
gap: "$2",
|
|
74
|
+
variants: {
|
|
75
|
+
// A rail seats the strip on a filled capsule instead of the page. It is a
|
|
76
|
+
// variant of the strip rather than host chrome because the rail and the
|
|
77
|
+
// idle dot color are ONE decision: idle dots have to step up the ramp to
|
|
78
|
+
// stay visible on the rail's fill, and split across two files that pairing
|
|
79
|
+
// drifts (LC-16).
|
|
80
|
+
rail: {
|
|
81
|
+
true: {
|
|
82
|
+
backgroundColor: import_componentColors.componentColors.interactive.background,
|
|
83
|
+
// R-PILL (D-09 / LC-60): the rail is a capsule at every radius value,
|
|
84
|
+
// like the dots it holds.
|
|
85
|
+
...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator rail"),
|
|
86
|
+
borderRadius: "$10"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
63
90
|
});
|
|
64
91
|
var DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
65
92
|
name: "DotTarget",
|
|
@@ -75,6 +102,13 @@ var DotTarget = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
75
102
|
});
|
|
76
103
|
var Dot = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
77
104
|
name: "Dot",
|
|
105
|
+
// R-PILL (D-09 / LC-60): an ornamental dot is a circle at every radius
|
|
106
|
+
// value — the knob moves its size, never its shape — so it declares the
|
|
107
|
+
// class the `radius:none` sweep licenses it under.
|
|
108
|
+
...(0, import_theme.radiusClassProps)("R-PILL", "DotIndicator dot"),
|
|
109
|
+
// Centers the completion checkmark; inert for the empty dots.
|
|
110
|
+
alignItems: "center",
|
|
111
|
+
justifyContent: "center",
|
|
78
112
|
borderRadius: 1e3,
|
|
79
113
|
backgroundColor: import_componentColors.componentColors.indicator.inactive,
|
|
80
114
|
hoverStyle: {
|
|
@@ -88,31 +122,11 @@ var Dot = (0, import_tamagui.styled)(import_tamagui.View, {
|
|
|
88
122
|
backgroundColor: import_componentColors.componentColors.indicator.selected
|
|
89
123
|
}
|
|
90
124
|
},
|
|
91
|
-
variant:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
bars: {
|
|
97
|
-
width: 6,
|
|
98
|
-
height: 6
|
|
99
|
-
},
|
|
100
|
-
pills: {
|
|
101
|
-
width: 8,
|
|
102
|
-
height: 8
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
activeVariant: {
|
|
106
|
-
dots: {
|
|
107
|
-
width: 24
|
|
108
|
-
},
|
|
109
|
-
bars: {
|
|
110
|
-
width: 24
|
|
111
|
-
},
|
|
112
|
-
pills: {
|
|
113
|
-
width: 24
|
|
114
|
-
}
|
|
115
|
-
},
|
|
125
|
+
// No `variant` geometry here: the mark's width/height are always passed
|
|
126
|
+
// explicitly from the one size channel below, so a per-variant pixel table
|
|
127
|
+
// on the styled component could only ever be a second, silently-losing
|
|
128
|
+
// definition of the same thing (it already disagreed with the scale at
|
|
129
|
+
// size knob `$3`, where a tick is 5px, not 6).
|
|
116
130
|
disabled: {
|
|
117
131
|
true: {
|
|
118
132
|
opacity: 0.5
|
|
@@ -127,7 +141,14 @@ function DotIndicator(param) {
|
|
|
127
141
|
onChange,
|
|
128
142
|
variant = "dots",
|
|
129
143
|
gap: gapProp,
|
|
130
|
-
disabled = false
|
|
144
|
+
disabled = false,
|
|
145
|
+
completedSteps,
|
|
146
|
+
idiom = "item",
|
|
147
|
+
rail = false,
|
|
148
|
+
dotSize,
|
|
149
|
+
activeDotSize,
|
|
150
|
+
transition,
|
|
151
|
+
dotStateAttribute = "data-dot-state"
|
|
131
152
|
} = param;
|
|
132
153
|
var _ref, _dotGeometryMap_knobProps_sizeToken, _ref1;
|
|
133
154
|
var _getTokens_space_gap, _getTokens_space;
|
|
@@ -139,18 +160,36 @@ function DotIndicator(param) {
|
|
|
139
160
|
} = (0, import_theme.useResolvedKnobs)();
|
|
140
161
|
var gap = (_ref = gapProp !== null && gapProp !== void 0 ? gapProp : dotGapMap[knobProps.space]) !== null && _ref !== void 0 ? _ref : "$2";
|
|
141
162
|
var geometry = (_dotGeometryMap_knobProps_sizeToken = dotGeometryMap[knobProps.sizeToken]) !== null && _dotGeometryMap_knobProps_sizeToken !== void 0 ? _dotGeometryMap_knobProps_sizeToken : dotGeometryMap.$4;
|
|
142
|
-
var
|
|
163
|
+
var isTick = variant === "bars";
|
|
164
|
+
var itemSize = sizePx(dotSize, isTick ? geometry.bar : geometry.dot);
|
|
165
|
+
var activeSize = sizePx(activeDotSize, geometry.active);
|
|
143
166
|
var gapPx = typeof gap === "number" ? gap : (_ref1 = (_getTokens_space = (0, import_tamagui.getTokens)().space) === null || _getTokens_space === void 0 ? void 0 : (_getTokens_space_gap = _getTokens_space[gap]) === null || _getTokens_space_gap === void 0 ? void 0 : _getTokens_space_gap.val) !== null && _ref1 !== void 0 ? _ref1 : 7;
|
|
144
167
|
var slopX = Math.max(0, Math.floor((gapPx - 1) / 2));
|
|
145
|
-
var outsetY = Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2);
|
|
168
|
+
var outsetY = Math.max(0, Math.ceil((import_theme.MIN_PRESS_TARGET - itemSize) / 2));
|
|
146
169
|
var interactive = !disabled && !!onChange;
|
|
170
|
+
var isStep = idiom === "step";
|
|
171
|
+
var label = isStep ? t("Go to step {{number}}") : t("Go to item {{number}}");
|
|
172
|
+
var currentValue = isStep ? "step" : "true";
|
|
173
|
+
var motionStyle = transition ? {
|
|
174
|
+
transition: "width var(--mp-transition, 100ms) ease, height var(--mp-transition, 100ms) ease, background-color var(--mp-transition, 100ms) ease"
|
|
175
|
+
} : void 0;
|
|
147
176
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotsContainer, {
|
|
148
177
|
gap,
|
|
178
|
+
rail,
|
|
179
|
+
...(rail ? {
|
|
180
|
+
paddingHorizontal: knobProps.panelPadding.padding,
|
|
181
|
+
height: knobProps.sizeToken
|
|
182
|
+
} : void 0),
|
|
149
183
|
children: Array.from({
|
|
150
184
|
length: total
|
|
151
185
|
}).map(function (_, index) {
|
|
152
186
|
var isActive = index === activeIndex;
|
|
153
|
-
var
|
|
187
|
+
var isCompleted = !isActive && !!(completedSteps === null || completedSteps === void 0 ? void 0 : completedSteps.has(index));
|
|
188
|
+
var dotWidth = isActive ? activeSize : itemSize;
|
|
189
|
+
var restingFill = isCompleted ? import_componentColors.componentColors.indicator.completed : rail ?
|
|
190
|
+
// Idle chrome steps up the ramp on a rail so the dot still
|
|
191
|
+
// separates from the capsule fill it sits on.
|
|
192
|
+
import_componentColors.componentColors.indicator.track : import_componentColors.componentColors.indicator.inactive;
|
|
154
193
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(DotTarget, {
|
|
155
194
|
width: dotWidth + slopX * 2,
|
|
156
195
|
minHeight: import_theme.MIN_PRESS_TARGET,
|
|
@@ -160,11 +199,11 @@ function DotIndicator(param) {
|
|
|
160
199
|
onPress: interactive ? function () {
|
|
161
200
|
return onChange === null || onChange === void 0 ? void 0 : onChange(index);
|
|
162
201
|
} : void 0,
|
|
163
|
-
"aria-label": (0, import_t.withInterp)(
|
|
202
|
+
"aria-label": (0, import_t.withInterp)(label, {
|
|
164
203
|
number: index + 1
|
|
165
204
|
}),
|
|
166
205
|
...(isActive ? {
|
|
167
|
-
"aria-current":
|
|
206
|
+
"aria-current": currentValue
|
|
168
207
|
} : void 0),
|
|
169
208
|
...(interactive ? {
|
|
170
209
|
role: "button",
|
|
@@ -179,12 +218,31 @@ function DotIndicator(param) {
|
|
|
179
218
|
role: "button"
|
|
180
219
|
} : void 0),
|
|
181
220
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dot, {
|
|
182
|
-
variant,
|
|
183
221
|
active: isActive,
|
|
184
|
-
|
|
222
|
+
...(isActive ? void 0 : {
|
|
223
|
+
backgroundColor: restingFill,
|
|
224
|
+
// A completed dot and a rail dot both hold their fill on
|
|
225
|
+
// hover: the neutral hover step is PALER than either, so
|
|
226
|
+
// the page-level hover would read as a dim.
|
|
227
|
+
...(isCompleted || rail ? {
|
|
228
|
+
hoverStyle: {
|
|
229
|
+
backgroundColor: restingFill
|
|
230
|
+
}
|
|
231
|
+
} : void 0)
|
|
232
|
+
}),
|
|
185
233
|
width: dotWidth,
|
|
186
234
|
height: itemSize,
|
|
187
|
-
disabled
|
|
235
|
+
disabled,
|
|
236
|
+
transition,
|
|
237
|
+
style: motionStyle,
|
|
238
|
+
...{
|
|
239
|
+
[dotStateAttribute]: isActive ? "active" : "idle"
|
|
240
|
+
},
|
|
241
|
+
children: isCompleted && !isTick && itemSize >= CHECK_MIN_DOT && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CheckIcon, {
|
|
242
|
+
size: 8,
|
|
243
|
+
color: "white",
|
|
244
|
+
weight: "bold"
|
|
245
|
+
})
|
|
188
246
|
})
|
|
189
247
|
}, index);
|
|
190
248
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","DotIndicator_exports","__export","DotIndicator","module","exports","import_jsx_runtime","require","import_theme","import_react_i18next","import_tamagui","import_componentColors","import_t","dotGapMap","small","medium","large","dotGeometryMap","$3","dot","bar","active","$4","$5","DotsContainer","styled","XStack","name","alignItems","justifyContent","gap","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","DotIndicator_exports","__export","DotIndicator","module","exports","import_jsx_runtime","require","import_theme","import_react","import_react_i18next","import_tamagui","import_componentColors","import_t","dotGapMap","small","medium","large","dotGeometryMap","$3","dot","bar","active","$4","$5","CHECK_MIN_DOT","sizePx","fallback","_getTokens_size_value","_getTokens_size","token","getTokens","size","val","DotsContainer","styled","XStack","name","alignItems","justifyContent","gap","variants","rail","true","backgroundColor","componentColors","interactive","background","radiusClassProps","borderRadius","DotTarget","View","focusVisibleStyle","outlineColor","outlineWidth","outlineStyle","outlineOffset","Dot","indicator","inactive","hoverStyle","hover","selected","disabled","opacity","param","total","activeIndex","onChange","variant","gapProp","completedSteps","idiom","dotSize","activeDotSize","transition","dotStateAttribute","_ref","_dotGeometryMap_knobProps_sizeToken","_ref1","_getTokens_space_gap","_getTokens_space","t","useTranslation","knobProps","useResolvedKnobs","space","geometry","sizeToken","isTick","itemSize","activeSize","gapPx","slopX","Math","max","floor","outsetY","ceil","MIN_PRESS_TARGET","isStep","label","currentValue","motionStyle","jsx","paddingHorizontal","panelPadding","padding","height","children","Array","from","length","map","_","index","isActive","isCompleted","has","dotWidth","restingFill","completed","track","width","minHeight","marginHorizontal","marginVertical","cursor","onPress","withInterp","number","role","tabIndex","onKeyDown","e","key","preventDefault"],"sources":["../../../src/DotIndicator/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|