@arbor-education/design-system.components 0.3.1 → 0.3.3

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 (95) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/components/formField/inputs/number/NumberInput.d.ts.map +1 -1
  3. package/dist/components/formField/inputs/number/NumberInput.js +21 -12
  4. package/dist/components/formField/inputs/number/NumberInput.js.map +1 -1
  5. package/dist/components/formField/inputs/number/NumberInput.test.js +92 -3
  6. package/dist/components/formField/inputs/number/NumberInput.test.js.map +1 -1
  7. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts +1 -0
  8. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts.map +1 -1
  9. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js +19 -12
  10. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js.map +1 -1
  11. package/dist/components/pill/Pill.d.ts +2 -1
  12. package/dist/components/pill/Pill.d.ts.map +1 -1
  13. package/dist/components/pill/Pill.js +2 -2
  14. package/dist/components/pill/Pill.js.map +1 -1
  15. package/dist/components/pill/Pill.stories.d.ts +8 -0
  16. package/dist/components/pill/Pill.stories.d.ts.map +1 -1
  17. package/dist/components/pill/Pill.stories.js +8 -0
  18. package/dist/components/pill/Pill.stories.js.map +1 -1
  19. package/dist/components/pill/Pill.test.js +9 -0
  20. package/dist/components/pill/Pill.test.js.map +1 -1
  21. package/dist/components/table/DSDefaultColDef.d.ts +2 -1
  22. package/dist/components/table/DSDefaultColDef.d.ts.map +1 -1
  23. package/dist/components/table/DSDefaultColDef.js +13 -1
  24. package/dist/components/table/DSDefaultColDef.js.map +1 -1
  25. package/dist/components/table/Table.d.ts +1 -0
  26. package/dist/components/table/Table.d.ts.map +1 -1
  27. package/dist/components/table/Table.js +34 -22
  28. package/dist/components/table/Table.js.map +1 -1
  29. package/dist/components/table/Table.stories.d.ts +1 -0
  30. package/dist/components/table/Table.stories.d.ts.map +1 -1
  31. package/dist/components/table/Table.stories.js +123 -1
  32. package/dist/components/table/Table.stories.js.map +1 -1
  33. package/dist/components/table/Table.test.js +115 -1
  34. package/dist/components/table/Table.test.js.map +1 -1
  35. package/dist/components/table/cellRenderers/ButtonCellRenderer.d.ts.map +1 -1
  36. package/dist/components/table/cellRenderers/ButtonCellRenderer.js +2 -1
  37. package/dist/components/table/cellRenderers/ButtonCellRenderer.js.map +1 -1
  38. package/dist/components/table/cellRenderers/InlineTextCellRenderer.d.ts +7 -0
  39. package/dist/components/table/cellRenderers/InlineTextCellRenderer.d.ts.map +1 -0
  40. package/dist/components/table/cellRenderers/InlineTextCellRenderer.js +7 -0
  41. package/dist/components/table/cellRenderers/InlineTextCellRenderer.js.map +1 -0
  42. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts +8 -0
  43. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts.map +1 -0
  44. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js +19 -0
  45. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js.map +1 -0
  46. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.d.ts +8 -0
  47. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.d.ts.map +1 -0
  48. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js +18 -0
  49. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js.map +1 -0
  50. package/dist/components/table/theme/baseThemeParams.d.ts +14 -0
  51. package/dist/components/table/theme/baseThemeParams.d.ts.map +1 -0
  52. package/dist/components/table/{tableTheme.js → theme/baseThemeParams.js} +3 -7
  53. package/dist/components/table/theme/baseThemeParams.js.map +1 -0
  54. package/dist/components/table/theme/defaultTheme.d.ts +2 -0
  55. package/dist/components/table/theme/defaultTheme.d.ts.map +1 -0
  56. package/dist/components/table/theme/defaultTheme.js +9 -0
  57. package/dist/components/table/theme/defaultTheme.js.map +1 -0
  58. package/dist/components/table/theme/tidyTheme.d.ts +2 -0
  59. package/dist/components/table/theme/tidyTheme.d.ts.map +1 -0
  60. package/dist/components/table/theme/tidyTheme.js +10 -0
  61. package/dist/components/table/theme/tidyTheme.js.map +1 -0
  62. package/dist/index.css +14 -0
  63. package/dist/index.css.map +1 -1
  64. package/dist/utils/focusFirstFocusableElement.d.ts +2 -0
  65. package/dist/utils/focusFirstFocusableElement.d.ts.map +1 -0
  66. package/dist/utils/focusFirstFocusableElement.js +12 -0
  67. package/dist/utils/focusFirstFocusableElement.js.map +1 -0
  68. package/dist/utils/focusFirstFocusableElement.test.d.ts +2 -0
  69. package/dist/utils/focusFirstFocusableElement.test.d.ts.map +1 -0
  70. package/dist/utils/focusFirstFocusableElement.test.js +109 -0
  71. package/dist/utils/focusFirstFocusableElement.test.js.map +1 -0
  72. package/package.json +2 -1
  73. package/src/components/formField/inputs/number/NumberInput.test.tsx +113 -3
  74. package/src/components/formField/inputs/number/NumberInput.tsx +26 -15
  75. package/src/components/formField/inputs/selectDropdown/SelectDropdown.tsx +20 -14
  76. package/src/components/pill/Pill.stories.tsx +9 -0
  77. package/src/components/pill/Pill.test.tsx +10 -0
  78. package/src/components/pill/Pill.tsx +3 -2
  79. package/src/components/table/DSDefaultColDef.ts +15 -2
  80. package/src/components/table/Table.stories.tsx +129 -1
  81. package/src/components/table/Table.test.tsx +162 -1
  82. package/src/components/table/Table.tsx +39 -18
  83. package/src/components/table/cellRenderers/ButtonCellRenderer.tsx +2 -1
  84. package/src/components/table/cellRenderers/InlineTextCellRenderer.tsx +10 -0
  85. package/src/components/table/cellRenderers/SelectDropdownCellEditor.tsx +43 -0
  86. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx +37 -0
  87. package/src/components/table/table.scss +16 -0
  88. package/src/components/table/{tableTheme.ts → theme/baseThemeParams.ts} +2 -7
  89. package/src/components/table/theme/defaultTheme.ts +9 -0
  90. package/src/components/table/theme/tidyTheme.ts +10 -0
  91. package/src/utils/focusFirstFocusableElement.test.ts +150 -0
  92. package/src/utils/focusFirstFocusableElement.ts +21 -0
  93. package/dist/components/table/tableTheme.d.ts +0 -2
  94. package/dist/components/table/tableTheme.d.ts.map +0 -1
  95. package/dist/components/table/tableTheme.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#114](https://github.com/arbor-education/design-system.components/pull/114) [`822127f`](https://github.com/arbor-education/design-system.components/commit/822127f4347917e5b22e45bad332e25cca0470d1) Thanks [@MarkFrancisArbor](https://github.com/MarkFrancisArbor)! - MIS-68387 Pill component requires initialValue property
8
+
9
+ - [#112](https://github.com/arbor-education/design-system.components/pull/112) [`847365a`](https://github.com/arbor-education/design-system.components/commit/847365a679a3733238983daf6d672906433895b8) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-68357 Fix floating point issues in NumberInput
10
+
11
+ ## 0.3.2
12
+
13
+ ### Patch Changes
14
+
15
+ - [#107](https://github.com/arbor-education/design-system.components/pull/107) [`e75e644`](https://github.com/arbor-education/design-system.components/commit/e75e644a71b80df1408b6342a0ab8480685002e1) Thanks [@Alex-DN-SP](https://github.com/Alex-DN-SP)! - MIS-67365 Added tidy table theme and cell renderers
16
+
17
+ - [#110](https://github.com/arbor-education/design-system.components/pull/110) [`734ad8c`](https://github.com/arbor-education/design-system.components/commit/734ad8c9d1b5cbdb146d1167cbe9f9998be5f96b) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-67366 add the ability to bypass cell focussing
18
+
3
19
  ## 0.3.1
4
20
 
5
21
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiD,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAE1C,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CA+GlD,CAAC"}
1
+ {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiD,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAE1C,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAyHlD,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
3
  import { Icon } from '../../../icon/Icon';
4
+ import Decimal from 'decimal.js';
4
5
  import { useEffect, useRef, useState } from 'react';
5
6
  export const NumberInput = (props) => {
6
- const { hasError, className = '', disabled, onChange, defaultValue = '', step = 1, min, max, disableSpinners, containerClassName, value: passedValue = '', ...rest } = props;
7
+ const { hasError, className = '', disabled, onChange, defaultValue = '', step = 1, min = -Infinity, max = Infinity, disableSpinners, containerClassName, value: passedValue = '', ...rest } = props;
7
8
  const [value, setValue] = useState(defaultValue.toString() || passedValue.toString());
8
9
  const inputRef = useRef(null);
9
10
  useEffect(() => {
@@ -18,27 +19,35 @@ export const NumberInput = (props) => {
18
19
  }
19
20
  }, [value]);
20
21
  const inputClasses = classNames('ds-input', 'ds-number-input', className);
21
- const handleSpinner = (step) => {
22
- const currentValue = isNaN(Number(value)) ? 0 : Number(value);
23
- const newValue = (currentValue + Number(step)).toString();
24
- handleOnChange(newValue);
25
- };
26
22
  const handleOnChange = (newValue) => {
27
23
  if (newValue !== value) {
28
24
  setValue(newValue);
29
25
  }
30
26
  };
31
- const handleOnBlur = () => {
32
- if (min !== undefined && Number(value) < Number(min)) {
33
- setValue(min.toString());
27
+ const checkOverOrUnderMaxOrMin = (newValue) => {
28
+ const decimalValue = new Decimal(newValue || 0);
29
+ const decimalMax = new Decimal(max || 0);
30
+ const decimalMin = new Decimal(min || 0);
31
+ if (decimalValue.lessThan(decimalMin)) {
32
+ return handleOnChange(min.toString());
34
33
  }
35
- if (max !== undefined && Number(value) > Number(max)) {
36
- setValue(max.toString());
34
+ if (decimalValue.greaterThan(decimalMax)) {
35
+ return handleOnChange(max.toString());
37
36
  }
37
+ return handleOnChange(newValue);
38
+ };
39
+ const handleSpinner = (step) => {
40
+ const decimalValue = new Decimal(value || 0);
41
+ const decimalStep = new Decimal(step);
42
+ const newValue = decimalValue.plus(decimalStep).toString();
43
+ checkOverOrUnderMaxOrMin(newValue);
44
+ };
45
+ const handleOnBlur = () => {
46
+ checkOverOrUnderMaxOrMin(value);
38
47
  };
39
48
  return (_jsxs("div", { className: classNames('ds-number-input__container', {
40
49
  'ds-number-input__container--error': hasError,
41
50
  'ds-number-input__container--disabled': disabled,
42
- }, containerClassName), children: [!disableSpinners && (_jsx("button", { className: "ds-number-input__spinner-button", type: "button", disabled: disabled || (min !== undefined && Number(value) <= Number(min)), onClick: () => handleSpinner(-step), "aria-label": "Minus button", "data-testid": "minus-button", children: _jsx(Icon, { name: "minus", size: 12 }) })), _jsx("input", { ref: inputRef, type: "text", inputMode: "numeric", autoComplete: "off", pattern: "^[+\\-]?\\d+(,\\d{2})?", className: inputClasses, disabled: disabled, defaultValue: defaultValue, onChange: (e) => handleOnChange(e.currentTarget.value), onBlur: handleOnBlur, step: step, min: min, max: max, ...rest }), !disableSpinners && (_jsx("button", { className: "ds-number-input__spinner-button", type: "button", disabled: disabled || (max !== undefined && Number(value) >= Number(max)), onClick: () => handleSpinner(step), "aria-label": "Plus button", "data-testid": "plus-button", children: _jsx(Icon, { name: "plus", size: 12 }) }))] }));
51
+ }, containerClassName), children: [!disableSpinners && (_jsx("button", { className: "ds-number-input__spinner-button", type: "button", disabled: disabled || (Number(value) <= Number(min)), onClick: () => handleSpinner(-step), "aria-label": "Minus button", "data-testid": "minus-button", children: _jsx(Icon, { name: "minus", size: 12 }) })), _jsx("input", { ref: inputRef, type: "text", inputMode: "numeric", autoComplete: "off", pattern: "^[+\\-]?\\d+(,\\d{2})?", className: inputClasses, disabled: disabled, defaultValue: defaultValue, onChange: (e) => handleOnChange(e.currentTarget.value), onBlur: handleOnBlur, step: step, min: min, max: max, ...rest }), !disableSpinners && (_jsx("button", { className: "ds-number-input__spinner-button", type: "button", disabled: disabled || (Number(value) >= Number(max)), onClick: () => handleSpinner(step), "aria-label": "Plus button", "data-testid": "plus-button", children: _jsx(Icon, { name: "plus", size: 12 }) }))] }));
43
52
  };
44
53
  //# sourceMappingURL=NumberInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.tsx"],"names":[],"mappings":"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"}
@@ -19,12 +19,101 @@ describe('NumberInput component', () => {
19
19
  test('Spinner buttons change the value of the input', () => {
20
20
  render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "10", step: 2 }));
21
21
  const inputElement = screen.getByPlaceholderText('Enter a number');
22
- fireEvent.click(screen.getByTestId('minus-button'));
22
+ fireEvent.click(screen.getByLabelText('Minus button'));
23
23
  expect(inputElement.value).toBe('8');
24
- fireEvent.click(screen.getByTestId('plus-button'));
24
+ fireEvent.click(screen.getByLabelText('Plus button'));
25
25
  expect(inputElement.value).toBe('10');
26
- fireEvent.click(screen.getByTestId('plus-button'));
26
+ fireEvent.click(screen.getByLabelText('Plus button'));
27
27
  expect(inputElement.value).toBe('12');
28
28
  });
29
+ describe('Decimal value handling', () => {
30
+ test('handles decimal step values correctly', () => {
31
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.5", step: 0.1 }));
32
+ const inputElement = screen.getByPlaceholderText('Enter a number');
33
+ fireEvent.click(screen.getByLabelText('Plus button'));
34
+ expect(inputElement.value).toBe('0.6');
35
+ fireEvent.click(screen.getByLabelText('Plus button'));
36
+ expect(inputElement.value).toBe('0.7');
37
+ fireEvent.click(screen.getByLabelText('Minus button'));
38
+ expect(inputElement.value).toBe('0.6');
39
+ });
40
+ test('handles common floating point precision issue (0.1 + 0.2 = 0.3)', () => {
41
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.1", step: 0.2 }));
42
+ const inputElement = screen.getByPlaceholderText('Enter a number');
43
+ fireEvent.click(screen.getByLabelText('Plus button'));
44
+ // Should be exactly 0.3, not 0.30000000000000004
45
+ expect(inputElement.value).toBe('0.3');
46
+ });
47
+ test('handles multiple decimal operations without accumulating errors', () => {
48
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0", step: 0.1 }));
49
+ const inputElement = screen.getByPlaceholderText('Enter a number');
50
+ // Add 0.1 ten times - should equal 1.0
51
+ for (let i = 0; i < 10; i++) {
52
+ fireEvent.click(screen.getByLabelText('Plus button'));
53
+ }
54
+ expect(inputElement.value).toBe('1');
55
+ });
56
+ test('handles small decimal step values', () => {
57
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.01", step: 0.01 }));
58
+ const inputElement = screen.getByPlaceholderText('Enter a number');
59
+ fireEvent.click(screen.getByLabelText('Plus button'));
60
+ expect(inputElement.value).toBe('0.02');
61
+ fireEvent.click(screen.getByLabelText('Plus button'));
62
+ expect(inputElement.value).toBe('0.03');
63
+ });
64
+ test('handles decimal values with min constraint', () => {
65
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.5", step: 0.1, min: 0.3 }));
66
+ const inputElement = screen.getByPlaceholderText('Enter a number');
67
+ // Try to go below min
68
+ fireEvent.click(screen.getByLabelText('Minus button'));
69
+ fireEvent.click(screen.getByLabelText('Minus button'));
70
+ fireEvent.click(screen.getByLabelText('Minus button'));
71
+ // Should be clamped to min value
72
+ expect(inputElement.value).toBe('0.3');
73
+ });
74
+ test('handles decimal values with max constraint', () => {
75
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.5", step: 0.1, max: 0.7 }));
76
+ const inputElement = screen.getByPlaceholderText('Enter a number');
77
+ // Try to go above max
78
+ fireEvent.click(screen.getByLabelText('Plus button'));
79
+ fireEvent.click(screen.getByLabelText('Plus button'));
80
+ fireEvent.click(screen.getByLabelText('Plus button'));
81
+ // Should be clamped to max value
82
+ expect(inputElement.value).toBe('0.7');
83
+ });
84
+ test('handles decimal input and validates on blur', () => {
85
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.5", min: 0.1, max: 0.9 }));
86
+ const inputElement = screen.getByPlaceholderText('Enter a number');
87
+ // Enter a value below min
88
+ fireEvent.change(inputElement, { target: { value: '0.05' } });
89
+ fireEvent.blur(inputElement);
90
+ expect(inputElement.value).toBe('0.1');
91
+ // Enter a value above max
92
+ fireEvent.change(inputElement, { target: { value: '0.95' } });
93
+ fireEvent.blur(inputElement);
94
+ expect(inputElement.value).toBe('0.9');
95
+ });
96
+ test('handles decimal values with many decimal places', () => {
97
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.123456", step: 0.000001 }));
98
+ const inputElement = screen.getByPlaceholderText('Enter a number');
99
+ fireEvent.click(screen.getByLabelText('Plus button'));
100
+ expect(inputElement.value).toBe('0.123457');
101
+ });
102
+ test('handles negative decimal values', () => {
103
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "-0.5", step: 0.1 }));
104
+ const inputElement = screen.getByPlaceholderText('Enter a number');
105
+ fireEvent.click(screen.getByLabelText('Plus button'));
106
+ expect(inputElement.value).toBe('-0.4');
107
+ fireEvent.click(screen.getByLabelText('Minus button'));
108
+ expect(inputElement.value).toBe('-0.5');
109
+ });
110
+ test('handles decimal step that results in whole number', () => {
111
+ render(_jsx(NumberInput, { placeholder: "Enter a number", defaultValue: "0.9", step: 0.1 }));
112
+ const inputElement = screen.getByPlaceholderText('Enter a number');
113
+ fireEvent.click(screen.getByLabelText('Plus button'));
114
+ // Should be 1, not 1.0 or 0.9999999999999999
115
+ expect(inputElement.value).toBe('1');
116
+ });
117
+ });
29
118
  });
30
119
  //# sourceMappingURL=NumberInput.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.test.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,kCAAkC,CAAC;AAE1C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,KAAC,WAAW,IAAC,WAAW,EAAC,gBAAgB,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,KAAC,WAAW,IAAC,WAAW,EAAC,gBAAgB,EAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAqB,CAAC;QAEvF,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,KAAC,WAAW,IAAC,WAAW,EAAC,gBAAgB,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,EAAE,CAAC,GAAI,CAAC,CAAC;QAChF,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,CAAqB,CAAC;QAEvF,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"NumberInput.test.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/number/NumberInput.test.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export type SelectDropdownInputProps = {
10
10
  'onSelectionChange'?: (value: string[]) => void;
11
11
  'id'?: string;
12
12
  'alwaysShowPlaceholder'?: boolean;
13
+ 'initialSelectedValues'?: string[];
13
14
  };
14
15
  export declare const SelectDropdown: (props: SelectDropdownInputProps) => import("react/jsx-runtime").JSX.Element;
15
16
  //# sourceMappingURL=SelectDropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/selectDropdown/SelectDropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAInG,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,wBAAwB,4CAgG7D,CAAC"}
1
+ {"version":3,"file":"SelectDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/selectDropdown/SelectDropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAInG,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,wBAAwB,4CAqG7D,CAAC"}
@@ -1,15 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { SelectDropdownItem } from './items/item/SelectDropdownItem';
4
4
  import { Dropdown } from '../../../dropdown/Dropdown';
5
5
  import { Button } from '../../../button/Button';
6
6
  export const SelectDropdown = (props) => {
7
- const { options, disabled, multiple, placeholder, hasError, onSelectionChange, id, 'aria-describedBy': ariaDescribedBy, 'aria-invalid': ariaInvalid, alwaysShowPlaceholder = false } = props;
8
- const [selectedValues, setSelectedValues] = useState([]);
7
+ const { options, disabled, multiple, placeholder, hasError, onSelectionChange, id, 'aria-describedBy': ariaDescribedBy, 'aria-invalid': ariaInvalid, alwaysShowPlaceholder = false, initialSelectedValues } = props;
8
+ const [selectedValues, setSelectedValues] = useState(initialSelectedValues ?? []);
9
9
  const [renderedSelectContent, setRenderedSelectContent] = useState('');
10
- useEffect(() => {
11
- onSelectionChange?.(selectedValues);
12
- }, [selectedValues]);
10
+ const selectedValuesRef = useRef(selectedValues);
11
+ selectedValuesRef.current = selectedValues;
13
12
  useEffect(() => {
14
13
  if (alwaysShowPlaceholder) {
15
14
  setRenderedSelectContent(placeholder ?? 'Select');
@@ -19,14 +18,15 @@ export const SelectDropdown = (props) => {
19
18
  setRenderedSelectContent(placeholder ?? 'Select');
20
19
  }
21
20
  else if (selectedValues.length === 1) {
22
- const selectedLabel = options.find(option => option.value === selectedValues[0])?.label;
23
- if (selectedLabel)
24
- setRenderedSelectContent(selectedLabel);
21
+ const selectedValue = selectedValues[0];
22
+ const option = options.find(opt => opt.value === selectedValue);
23
+ const displayText = option?.label ?? option?.value ?? String(selectedValue);
24
+ setRenderedSelectContent(displayText || (placeholder ?? 'Select'));
25
25
  }
26
26
  else {
27
27
  setRenderedSelectContent(placeholder ?? `Select (${selectedValues.length})`);
28
28
  }
29
- }, [selectedValues, placeholder]);
29
+ }, [selectedValues, placeholder, options]);
30
30
  // Flatten grouped options into a single array with headers
31
31
  const UNGROUPED_KEY = 'Ungrouped';
32
32
  const groupedOptions = options.reduce((acc, option) => {
@@ -44,12 +44,19 @@ export const SelectDropdown = (props) => {
44
44
  flatOptions.push(...groupItems);
45
45
  });
46
46
  const handleItemClick = (value) => {
47
+ const prev = selectedValuesRef.current;
48
+ let nextValues;
47
49
  if (!multiple) {
48
- setSelectedValues([value]);
50
+ nextValues = [value];
51
+ }
52
+ else if (prev.includes(value)) {
53
+ nextValues = prev.filter(sel => sel !== value);
49
54
  }
50
55
  else {
51
- setSelectedValues(prev => prev.includes(value) ? prev.filter(sel => sel !== value) : [...prev, value]);
56
+ nextValues = [...prev, value];
52
57
  }
58
+ setSelectedValues(nextValues);
59
+ onSelectionChange?.(nextValues);
53
60
  };
54
61
  return (_jsxs(_Fragment, { children: [_jsx("input", { type: "hidden", name: id, value: selectedValues.join(',') }), _jsxs(Dropdown, { children: [_jsx(Dropdown.Trigger, { disabled: disabled, children: _jsx(Button, { variant: "dropdown", error: hasError, iconRightName: "chevron-down", id: id, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, children: renderedSelectContent }) }), _jsx(Dropdown.Content, { children: flatOptions.map(item => 'headerLabel' in item
55
62
  ? (_jsx("h3", { className: "ds-select-dropdown__items--header", children: item.headerLabel }, `${item.headerLabel}-header`))
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdown.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/selectDropdown/SelectDropdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectDropdown.js","sourceRoot":"","sources":["../../../../../src/components/formField/inputs/selectDropdown/SelectDropdown.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  type PillProps = {
2
2
  text: string;
3
+ initialValue?: boolean;
3
4
  checkbox?: boolean;
4
5
  onclick?: (checked: boolean) => void;
5
6
  };
6
- export declare const Pill: ({ text, checkbox, onclick }: PillProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const Pill: ({ text, checkbox, onclick, initialValue }: PillProps) => import("react/jsx-runtime").JSX.Element;
7
8
  export {};
8
9
  //# sourceMappingURL=Pill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.d.ts","sourceRoot":"","sources":["../../../src/components/pill/Pill.tsx"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,6BAA6B,SAAS,4CAqC1D,CAAC"}
1
+ {"version":3,"file":"Pill.d.ts","sourceRoot":"","sources":["../../../src/components/pill/Pill.tsx"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,2CAAmD,SAAS,4CAqChF,CAAC"}
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
3
  import { CheckboxInput } from '../formField/inputs/checkbox/CheckboxInput';
4
4
  import { useEffect, useState } from 'react';
5
- export const Pill = ({ text, checkbox, onclick }) => {
6
- const [checked, setChecked] = useState(false);
5
+ export const Pill = ({ text, checkbox, onclick, initialValue = false }) => {
6
+ const [checked, setChecked] = useState(initialValue);
7
7
  const handlePillClick = () => {
8
8
  setChecked(prev => !prev);
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQ5C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAa,EAAE,EAAE;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,KAAuB,EAAE,EAAE;QACtD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,gBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,UAAU,CACnB,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAC3I,aAEA,QAAQ,IAAI,CACX,eAAM,SAAS,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,YACjF,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,GAC5B,GACG,CACR,EACA,IAAI,IACA,CACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Pill.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAa,EAAE,EAAE;IACnF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,KAAuB,EAAE,EAAE;QACtD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,gBACE,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,UAAU,CACnB,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAC3I,aAEA,QAAQ,IAAI,CACX,eAAM,SAAS,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,YACjF,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,GAC5B,GACG,CACR,EACA,IAAI,IACA,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -14,5 +14,13 @@ export declare const withCheckbox: {
14
14
  onclick: () => void;
15
15
  };
16
16
  };
17
+ export declare const preChecked: {
18
+ args: {
19
+ text: string;
20
+ initialValue: boolean;
21
+ checkbox: boolean;
22
+ onclick: () => void;
23
+ };
24
+ };
17
25
  export default meta;
18
26
  //# sourceMappingURL=Pill.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pill/Pill.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAG3B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Pill.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pill/Pill.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAG3B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;CAOtB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -16,5 +16,13 @@ export const withCheckbox = {
16
16
  onclick: () => { console.log('Pill with checkbox clicked'); },
17
17
  },
18
18
  };
19
+ export const preChecked = {
20
+ args: {
21
+ text: 'Checkbox',
22
+ initialValue: true,
23
+ checkbox: true,
24
+ onclick: () => { console.log('Pill with checkbox clicked'); },
25
+ },
26
+ };
19
27
  export default meta;
20
28
  //# sourceMappingURL=Pill.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.stories.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,IAAI,GAAsB;IAC9B,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KAChD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;KAC9D;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Pill.stories.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,IAAI,GAAsB;IAC9B,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KAChD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;KAC9D;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;KAC9D;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -52,5 +52,14 @@ describe('Pill', () => {
52
52
  fireEvent.click(screen.getByText('Test Pill'));
53
53
  expect(onClick).toHaveBeenCalledWith(false);
54
54
  });
55
+ it('toggles checked state on pill click (with initialState prop set)', () => {
56
+ const onClick = vi.fn();
57
+ render(_jsx(Pill, { text: "Test Pill", initialValue: true, onclick: onClick }));
58
+ const pill = screen.getByText('Test Pill').closest('.ds-pill');
59
+ expect(pill).toHaveClass('ds-pill__active');
60
+ fireEvent.click(screen.getByText('Test Pill'));
61
+ expect(pill).toHaveClass('ds-pill__inactive');
62
+ fireEvent.click(screen.getByText('Test Pill'));
63
+ });
55
64
  });
56
65
  //# sourceMappingURL=Pill.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.test.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pill.test.js","sourceRoot":"","sources":["../../../src/components/pill/Pill.test.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ColDef, ValueFormatterFunc } from 'ag-grid-community';
1
+ import type { CellClassParams, CellFocusedParams, ColDef, SuppressMouseEventHandlingParams, ValueFormatterFunc } from 'ag-grid-community';
2
2
  export declare const defaultValueFormatter: ValueFormatterFunc;
3
+ export declare const shouldSuppressFocus: (params: SuppressMouseEventHandlingParams | CellClassParams | CellFocusedParams) => any;
3
4
  export declare const DSDefaultColDef: ColDef;
4
5
  //# sourceMappingURL=DSDefaultColDef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSDefaultColDef.d.ts","sourceRoot":"","sources":["../../../src/components/table/DSDefaultColDef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGpE,eAAO,MAAM,qBAAqB,EAAE,kBAOnC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAW7B,CAAC"}
1
+ {"version":3,"file":"DSDefaultColDef.d.ts","sourceRoot":"","sources":["../../../src/components/table/DSDefaultColDef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG1I,eAAO,MAAM,qBAAqB,EAAE,kBAOnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,QAAQ,gCAAgC,GAAG,eAAe,GAAG,iBAAiB,QAA4H,CAAC;AAE/O,eAAO,MAAM,eAAe,EAAE,MAsB7B,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { cellColorStyles } from './cellColorStyles';
2
2
  export const defaultValueFormatter = (params) => {
3
3
  const { value } = params;
4
- if (typeof value === 'object' && 'value' in value) {
4
+ if (value != null && typeof value === 'object' && 'value' in value) {
5
5
  return value.value;
6
6
  }
7
7
  return value;
8
8
  };
9
+ export const shouldSuppressFocus = (params) => typeof params.column === 'object' && params.column?.getColDef().cellRendererParams.supressCellFocusAndFocusFirstElement;
9
10
  export const DSDefaultColDef = {
10
11
  cellStyle: cellColorStyles,
11
12
  valueGetter: (params) => {
@@ -16,5 +17,16 @@ export const DSDefaultColDef = {
16
17
  cellEditorParams: {
17
18
  useFormatter: true,
18
19
  },
20
+ cellClassRules: {
21
+ 'ds-table__cell--supress-focus': shouldSuppressFocus,
22
+ },
23
+ cellRendererParams: {
24
+ suppressMouseEventHandling: (params) => {
25
+ if (shouldSuppressFocus(params)) {
26
+ return true;
27
+ }
28
+ return false;
29
+ },
30
+ },
19
31
  };
20
32
  //# sourceMappingURL=DSDefaultColDef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSDefaultColDef.js","sourceRoot":"","sources":["../../../src/components/table/DSDefaultColDef.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAAuB,CAAC,MAAM,EAAE,EAAE;IAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC;QAE3C,OAAO,IAAI,CAAC,KAAM,CAAC,CAAC;IACtB,CAAC;IACD,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE;QAChB,YAAY,EAAE,IAAI;KACnB;CACF,CAAC"}
1
+ {"version":3,"file":"DSDefaultColDef.js","sourceRoot":"","sources":["../../../src/components/table/DSDefaultColDef.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAAuB,CAAC,MAAM,EAAE,EAAE;IAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA8E,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,oCAAoC,CAAC;AAE/O,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC;QAE3C,OAAO,IAAI,CAAC,KAAM,CAAC,CAAC;IACtB,CAAC;IACD,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE;QAChB,YAAY,EAAE,IAAI;KACnB;IACD,cAAc,EAAE;QACd,+BAA+B,EAAE,mBAAmB;KACrD;IACD,kBAAkB,EAAE;QAClB,0BAA0B,EAAE,CAAC,MAAwC,EAAE,EAAE;YACvE,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF;CACF,CAAC"}
@@ -12,6 +12,7 @@ type TableProps<TData = any> = {
12
12
  'headerTestId'?: string;
13
13
  'enableSimultaneousRangeAndRowSelection'?: boolean;
14
14
  'disableDragSelect'?: boolean;
15
+ 'tableTheme'?: string;
15
16
  } & UseTableSettingsParams & AgGridReactProps<TData>;
16
17
  export declare enum TABLE_SPACING {
17
18
  XS = "XS",
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUxE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAOnF,KAAK,UAAU,CAAC,KAAK,GAAG,GAAG,IAAI;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC,CAAC,EAAE,OAAO,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAMrD,oBAAY,aAAa;IACvB,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AAEH,eAAO,MAAM,KAAK;YAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAiItC,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUxE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAYnF,KAAK,UAAU,CAAC,KAAK,GAAG,GAAG,IAAI;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC,CAAC,EAAE,OAAO,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAMrD,oBAAY,aAAa;IACvB,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AAEH,eAAO,MAAM,KAAK;YAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAgJtC,CAAC"}