@pingux/astro 2.118.0-alpha.0 → 2.118.0-alpha.1

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 (52) hide show
  1. package/lib/cjs/components/SliderField/Slider.styles.d.ts +138 -0
  2. package/lib/cjs/components/SliderField/Slider.styles.js +163 -0
  3. package/lib/cjs/components/SliderField/SliderActiveTrack.d.ts +4 -0
  4. package/lib/cjs/components/SliderField/SliderActiveTrack.js +49 -0
  5. package/lib/cjs/components/SliderField/SliderField.d.ts +4 -0
  6. package/lib/cjs/components/SliderField/SliderField.js +58 -0
  7. package/lib/cjs/components/SliderField/SliderField.mdx +127 -0
  8. package/lib/cjs/components/SliderField/SliderField.stories.d.ts +11 -0
  9. package/lib/cjs/components/SliderField/SliderField.stories.js +151 -0
  10. package/lib/cjs/components/SliderField/SliderField.test.d.ts +1 -0
  11. package/lib/cjs/components/SliderField/SliderField.test.js +357 -0
  12. package/lib/cjs/components/SliderField/SliderLabelContainer.d.ts +4 -0
  13. package/lib/cjs/components/SliderField/SliderLabelContainer.js +43 -0
  14. package/lib/cjs/components/SliderField/SliderThumb.d.ts +4 -0
  15. package/lib/cjs/components/SliderField/SliderThumb.js +82 -0
  16. package/lib/cjs/components/SliderField/index.d.ts +1 -0
  17. package/lib/cjs/components/SliderField/index.js +14 -0
  18. package/lib/cjs/hooks/index.d.ts +1 -0
  19. package/lib/cjs/hooks/index.js +7 -0
  20. package/lib/cjs/hooks/useSliderField/index.d.ts +1 -0
  21. package/lib/cjs/hooks/useSliderField/index.js +14 -0
  22. package/lib/cjs/hooks/useSliderField/useSliderField.d.ts +4290 -0
  23. package/lib/cjs/hooks/useSliderField/useSliderField.js +230 -0
  24. package/lib/cjs/hooks/useSliderField/useSliderField.test.d.ts +1 -0
  25. package/lib/cjs/hooks/useSliderField/useSliderField.test.js +109 -0
  26. package/lib/cjs/index.d.ts +1 -0
  27. package/lib/cjs/index.js +8 -0
  28. package/lib/cjs/styles/colors.d.ts +6 -0
  29. package/lib/cjs/styles/colors.js +5 -1
  30. package/lib/cjs/styles/variants/variants.js +2 -0
  31. package/lib/cjs/types/sliderField.d.ts +79 -0
  32. package/lib/cjs/types/sliderField.js +6 -0
  33. package/lib/cjs/utils/testUtils/universalFormSubmitTest.js +17 -0
  34. package/lib/components/SliderField/Slider.styles.js +155 -0
  35. package/lib/components/SliderField/SliderActiveTrack.js +37 -0
  36. package/lib/components/SliderField/SliderField.js +46 -0
  37. package/lib/components/SliderField/SliderField.mdx +127 -0
  38. package/lib/components/SliderField/SliderField.stories.js +131 -0
  39. package/lib/components/SliderField/SliderField.test.js +354 -0
  40. package/lib/components/SliderField/SliderLabelContainer.js +29 -0
  41. package/lib/components/SliderField/SliderThumb.js +68 -0
  42. package/lib/components/SliderField/index.js +1 -0
  43. package/lib/hooks/index.js +1 -0
  44. package/lib/hooks/useSliderField/index.js +1 -0
  45. package/lib/hooks/useSliderField/useSliderField.js +220 -0
  46. package/lib/hooks/useSliderField/useSliderField.test.js +102 -0
  47. package/lib/index.js +1 -0
  48. package/lib/styles/colors.js +5 -1
  49. package/lib/styles/variants/variants.js +2 -0
  50. package/lib/types/sliderField.js +1 -0
  51. package/lib/utils/testUtils/universalFormSubmitTest.js +17 -0
  52. 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';
@@ -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-alpha.0",
3
+ "version": "2.118.0-alpha.1",
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",