@pingux/astro 2.118.0-alpha.0 → 2.118.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/lib/cjs/components/SliderField/Slider.styles.d.ts +138 -0
- package/lib/cjs/components/SliderField/Slider.styles.js +163 -0
- package/lib/cjs/components/SliderField/SliderActiveTrack.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderActiveTrack.js +49 -0
- package/lib/cjs/components/SliderField/SliderField.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderField.js +58 -0
- package/lib/cjs/components/SliderField/SliderField.mdx +127 -0
- package/lib/cjs/components/SliderField/SliderField.stories.d.ts +11 -0
- package/lib/cjs/components/SliderField/SliderField.stories.js +151 -0
- package/lib/cjs/components/SliderField/SliderField.test.d.ts +1 -0
- package/lib/cjs/components/SliderField/SliderField.test.js +357 -0
- package/lib/cjs/components/SliderField/SliderLabelContainer.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderLabelContainer.js +43 -0
- package/lib/cjs/components/SliderField/SliderThumb.d.ts +4 -0
- package/lib/cjs/components/SliderField/SliderThumb.js +82 -0
- package/lib/cjs/components/SliderField/index.d.ts +1 -0
- package/lib/cjs/components/SliderField/index.js +14 -0
- package/lib/cjs/hooks/index.d.ts +1 -0
- package/lib/cjs/hooks/index.js +7 -0
- package/lib/cjs/hooks/useSliderField/index.d.ts +1 -0
- package/lib/cjs/hooks/useSliderField/index.js +14 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.d.ts +4290 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.js +230 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.test.d.ts +1 -0
- package/lib/cjs/hooks/useSliderField/useSliderField.test.js +109 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/styles/colors.d.ts +6 -0
- package/lib/cjs/styles/colors.js +5 -1
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/types/sliderField.d.ts +79 -0
- package/lib/cjs/types/sliderField.js +6 -0
- package/lib/cjs/utils/testUtils/universalFormSubmitTest.js +17 -0
- package/lib/components/SliderField/Slider.styles.js +155 -0
- package/lib/components/SliderField/SliderActiveTrack.js +37 -0
- package/lib/components/SliderField/SliderField.js +46 -0
- package/lib/components/SliderField/SliderField.mdx +127 -0
- package/lib/components/SliderField/SliderField.stories.js +131 -0
- package/lib/components/SliderField/SliderField.test.js +354 -0
- package/lib/components/SliderField/SliderLabelContainer.js +29 -0
- package/lib/components/SliderField/SliderThumb.js +68 -0
- package/lib/components/SliderField/index.js +1 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useSliderField/index.js +1 -0
- package/lib/hooks/useSliderField/useSliderField.js +220 -0
- package/lib/hooks/useSliderField/useSliderField.test.js +102 -0
- package/lib/index.js +1 -0
- package/lib/styles/colors.js +5 -1
- package/lib/styles/variants/variants.js +2 -0
- package/lib/types/sliderField.js +1 -0
- package/lib/utils/testUtils/universalFormSubmitTest.js +17 -0
- package/package.json +3 -1
@@ -0,0 +1,102 @@
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
11
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
12
|
+
import _valuesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/values";
|
13
|
+
import { renderHook } from '@testing-library/react';
|
14
|
+
import useSliderField, { getDefaultValue, getDisplayValue } from './useSliderField';
|
15
|
+
var defaultProps = {
|
16
|
+
minValue: 0,
|
17
|
+
maxValue: 100,
|
18
|
+
step: 10,
|
19
|
+
defaultValue: 50,
|
20
|
+
isMultiThumb: false,
|
21
|
+
label: 'test label',
|
22
|
+
trackRef: {
|
23
|
+
current: null
|
24
|
+
}
|
25
|
+
};
|
26
|
+
describe('useSliderField utility functions', function () {
|
27
|
+
describe('getDefaultValue', function () {
|
28
|
+
test('returns defaultValueProp if provided', function () {
|
29
|
+
var result = getDefaultValue({
|
30
|
+
defaultValueProp: [10, 50],
|
31
|
+
minValue: 0,
|
32
|
+
step: 10
|
33
|
+
});
|
34
|
+
expect(result).toEqual([10, 50]);
|
35
|
+
});
|
36
|
+
test('calculates default value if defaultValueProp is not provided', function () {
|
37
|
+
var result = getDefaultValue({
|
38
|
+
defaultValueProp: undefined,
|
39
|
+
minValue: 0,
|
40
|
+
step: 10
|
41
|
+
});
|
42
|
+
expect(result).toEqual([0, 30]);
|
43
|
+
});
|
44
|
+
});
|
45
|
+
describe('getDisplayValue', function () {
|
46
|
+
var mockState = {
|
47
|
+
getThumbValueLabel: jest.fn(function (index) {
|
48
|
+
return index === 0 ? '10' : '50';
|
49
|
+
})
|
50
|
+
};
|
51
|
+
test('returns displayValueProp if provided', function () {
|
52
|
+
var result = getDisplayValue({
|
53
|
+
displayValueProp: 'Custom Display',
|
54
|
+
isMultiThumb: false,
|
55
|
+
state: mockState
|
56
|
+
});
|
57
|
+
expect(result).toEqual('Custom Display');
|
58
|
+
});
|
59
|
+
test('returns single thumb value if isMultiThumb is false', function () {
|
60
|
+
var result = getDisplayValue({
|
61
|
+
displayValueProp: undefined,
|
62
|
+
isMultiThumb: false,
|
63
|
+
state: mockState
|
64
|
+
});
|
65
|
+
expect(result).toEqual('10');
|
66
|
+
});
|
67
|
+
test('returns range value if isMultiThumb is true', function () {
|
68
|
+
var result = getDisplayValue({
|
69
|
+
displayValueProp: undefined,
|
70
|
+
isMultiThumb: true,
|
71
|
+
state: mockState
|
72
|
+
});
|
73
|
+
expect(result).toEqual('10 - 50');
|
74
|
+
});
|
75
|
+
});
|
76
|
+
});
|
77
|
+
describe('useSliderField hook', function () {
|
78
|
+
test('should initialize with default minValue and maxValue', function () {
|
79
|
+
var _renderHook = renderHook(function () {
|
80
|
+
return useSliderField(defaultProps);
|
81
|
+
}),
|
82
|
+
result = _renderHook.result;
|
83
|
+
var containerProps = result.current.containerProps;
|
84
|
+
expect(containerProps).toBeDefined();
|
85
|
+
expect(_valuesInstanceProperty(result.current.sliderActiveTrackProps.state)).toEqual([50]);
|
86
|
+
});
|
87
|
+
test('should update minValue and maxValue when props change', function () {
|
88
|
+
var _renderHook2 = renderHook(function (props) {
|
89
|
+
return useSliderField(props);
|
90
|
+
}, {
|
91
|
+
initialProps: defaultProps
|
92
|
+
}),
|
93
|
+
result = _renderHook2.result,
|
94
|
+
rerender = _renderHook2.rerender;
|
95
|
+
expect(_valuesInstanceProperty(result.current.sliderActiveTrackProps.state)).toEqual([50]);
|
96
|
+
rerender(_objectSpread(_objectSpread({}, defaultProps), {}, {
|
97
|
+
minValue: 20,
|
98
|
+
maxValue: 80,
|
99
|
+
defaultValue: 30
|
100
|
+
}));
|
101
|
+
});
|
102
|
+
});
|
package/lib/index.js
CHANGED
@@ -172,6 +172,7 @@ export { default as Separator } from './components/Separator';
|
|
172
172
|
export * from './components/Separator';
|
173
173
|
export { default as Skeleton } from './components/Skeleton';
|
174
174
|
export * from './components/Skeleton';
|
175
|
+
export { default as SliderField } from './components/SliderField/SliderField';
|
175
176
|
export { Step, default as Stepper } from './components/Stepper';
|
176
177
|
export * from './components/Stepper';
|
177
178
|
export { default as Switch } from './components/Switch';
|
package/lib/styles/colors.js
CHANGED
@@ -50,6 +50,9 @@ var accentBase = '303F5F';
|
|
50
50
|
var accentLight = 'F7F8FD';
|
51
51
|
var accentSteps = 8;
|
52
52
|
var accentScale = chroma.scale([accentBase, accentLight]).mode('hsl');
|
53
|
+
var slider = {
|
54
|
+
track: '#E4E6E9'
|
55
|
+
};
|
53
56
|
export var accent = {
|
54
57
|
5: chroma(accentBase).darken(1).hex(),
|
55
58
|
10: chroma(accentBase).darken(0.5).hex(),
|
@@ -130,7 +133,8 @@ var allColors = {
|
|
130
133
|
text: text,
|
131
134
|
line: line,
|
132
135
|
button: button,
|
133
|
-
warning: warning
|
136
|
+
warning: warning,
|
137
|
+
slider: slider
|
134
138
|
};
|
135
139
|
export default allColors;
|
136
140
|
function flattenColors(obj) {
|
@@ -46,6 +46,7 @@ import rockerButton from '../../components/RockerButton/RockerButton.styles';
|
|
46
46
|
import scrollBox from '../../components/ScrollBox/ScrollBox.styles';
|
47
47
|
import separator from '../../components/Separator/Separator.styles';
|
48
48
|
import skeleton from '../../components/Skeleton/Skeleton.styles';
|
49
|
+
import slider from '../../components/SliderField/Slider.styles';
|
49
50
|
import stepper from '../../components/Stepper/Stepper.styles';
|
50
51
|
import table from '../../components/Table/Table.styles';
|
51
52
|
import * as tab from '../../components/Tabs/Tabs.style';
|
@@ -90,6 +91,7 @@ export default _objectSpread({
|
|
90
91
|
rockerButton: rockerButton,
|
91
92
|
scrollBox: scrollBox,
|
92
93
|
separator: separator,
|
94
|
+
slider: slider,
|
93
95
|
stepper: stepper,
|
94
96
|
skeleton: skeleton,
|
95
97
|
table: table,
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -56,6 +56,12 @@ var useDefaultProps = function useDefaultProps(componentType) {
|
|
56
56
|
};
|
57
57
|
var handleChange = jest.fn();
|
58
58
|
switch (componentType) {
|
59
|
+
case 'SliderField':
|
60
|
+
return {
|
61
|
+
value: value,
|
62
|
+
onChange: setValue,
|
63
|
+
name: name
|
64
|
+
};
|
59
65
|
case 'CheckboxField':
|
60
66
|
case 'SwitchField':
|
61
67
|
return {
|
@@ -139,6 +145,11 @@ var getDefaultProps = function getDefaultProps(componentType, testValue) {
|
|
139
145
|
name: name,
|
140
146
|
value: testValue
|
141
147
|
};
|
148
|
+
case 'SliderField':
|
149
|
+
return {
|
150
|
+
name: name,
|
151
|
+
value: testValue
|
152
|
+
};
|
142
153
|
case 'SwitchField':
|
143
154
|
return {
|
144
155
|
isDefaultSelected: true,
|
@@ -335,6 +346,12 @@ export var universalFieldComponentTests = function universalFieldComponentTests(
|
|
335
346
|
return cell.getAttribute('aria-selected') === 'true';
|
336
347
|
});
|
337
348
|
expect(selected === null || selected === void 0 ? void 0 : selected.children[0]).toHaveAttribute('aria-label', 'Wednesday, August 10, 2022 selected');
|
349
|
+
} else if (componentType === 'SliderField') {
|
350
|
+
fireEvent.change(screen.getByRole('slider'), {
|
351
|
+
target: {
|
352
|
+
value: testValue
|
353
|
+
}
|
354
|
+
});
|
338
355
|
} else {
|
339
356
|
fireEvent.change(screen.getAllByLabelText(testLabel)[0], {
|
340
357
|
target: {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@pingux/astro",
|
3
|
-
"version": "2.118.0
|
3
|
+
"version": "2.118.0",
|
4
4
|
"description": "React component library for Ping Identity's design system",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -43,6 +43,7 @@
|
|
43
43
|
"@emotion/styled": "^11.1.1",
|
44
44
|
"@faker-js/faker": "~7.5.0",
|
45
45
|
"@internationalized/date": "^3.5.3",
|
46
|
+
"@internationalized/number": "^3.6.0",
|
46
47
|
"@mdx-js/react": "^1.6.22",
|
47
48
|
"@pingux/mdi-react": "^1.2.0",
|
48
49
|
"@react-aria/accordion": "~3.0.0-alpha.11",
|
@@ -91,6 +92,7 @@
|
|
91
92
|
"@react-stately/toggle": "^3.7.3",
|
92
93
|
"@react-stately/tree": "^3.7.4",
|
93
94
|
"@react-stately/virtualizer": "~3.6.5",
|
95
|
+
"@react-types/slider": "^3.7.9",
|
94
96
|
"@storybook/addon-actions": "^7.1.0",
|
95
97
|
"@storybook/api": "^7.1.0",
|
96
98
|
"@storybook/components": "^7.1.0",
|