@arbor-education/design-system.components 0.17.1 → 0.18.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/components/table/Table.d.ts +4 -1
  3. package/dist/components/table/Table.d.ts.map +1 -1
  4. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.d.ts +4 -1
  5. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.d.ts.map +1 -1
  6. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js +13 -2
  7. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js.map +1 -1
  8. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts +31 -1
  9. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -1
  10. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +83 -0
  11. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -1
  12. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.test.d.ts +2 -0
  13. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.test.d.ts.map +1 -0
  14. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.test.js +84 -0
  15. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.test.js.map +1 -0
  16. package/dist/index.css +20 -0
  17. package/dist/index.css.map +1 -1
  18. package/dist/utils/getTextContrast.d.ts +4 -0
  19. package/dist/utils/getTextContrast.d.ts.map +1 -0
  20. package/dist/utils/getTextContrast.js +14 -0
  21. package/dist/utils/getTextContrast.js.map +1 -0
  22. package/dist/utils/getTextContrast.test.d.ts +2 -0
  23. package/dist/utils/getTextContrast.test.d.ts.map +1 -0
  24. package/dist/utils/getTextContrast.test.js +68 -0
  25. package/dist/utils/getTextContrast.test.js.map +1 -0
  26. package/package.json +1 -1
  27. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +139 -0
  28. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.test.tsx +118 -0
  29. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx +22 -2
  30. package/src/components/table/table.scss +27 -0
  31. package/src/utils/getTextContrast.test.ts +82 -0
  32. package/src/utils/getTextContrast.ts +14 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#184](https://github.com/arbor-education/design-system.components/pull/184) [`22b51b2`](https://github.com/arbor-education/design-system.components/commit/22b51b251a42f5b660cf669aede82ec09fdd0769) Thanks [@MarkFrancisArbor](https://github.com/MarkFrancisArbor)! - MIS-70854 SelectDropdownCellRenderer add backgroundColor
8
+
3
9
  ## 0.17.1
4
10
 
5
11
  ### Patch Changes
@@ -37,7 +37,10 @@ export declare const Table: {
37
37
  InlineTextCellRenderer: (props: import("ag-grid-react").CustomCellRendererProps<any, any, any> & {
38
38
  value: string;
39
39
  }) => import("react/jsx-runtime").JSX.Element;
40
- SelectDropdownCellRenderer: (props: import("ag-grid-react").CustomCellRendererProps<any, any, any> & import("../formField/inputs/selectDropdown/SelectDropdown").SelectDropdownInputProps) => import("react/jsx-runtime").JSX.Element;
40
+ SelectDropdownCellRenderer: (props: import("ag-grid-react").CustomCellRendererProps<any, any, any> & import("../formField/inputs/selectDropdown/SelectDropdown").SelectDropdownInputProps & {
41
+ backgroundColor?: string;
42
+ fillCell?: boolean;
43
+ }) => import("react/jsx-runtime").JSX.Element;
41
44
  BooleanCellRenderer: (props: import("ag-grid-react").CustomCellRendererProps) => import("react/jsx-runtime").JSX.Element | null;
42
45
  DefaultCellRenderer: (props: import("ag-grid-react").CustomCellRendererProps) => import("react/jsx-runtime").JSX.Element;
43
46
  DateCellEditor: (props: import("ag-grid-react").CustomCellEditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -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,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUrE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAenF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,KAAK,UAAU,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1H,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,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;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAMrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,KAAK;YAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JtC,CAAC;AAwBF,yBAAiB,KAAK,CAAC;IAErB,KAAY,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAY,aAAa,GAAG,kBAAkB,CAAC;IAC/C,KAAY,UAAU,GAAG,cAAc,CAAC;IACxC,KAAY,gBAAgB,GAAG,wBAAwB,CAAC;IACxD,KAAY,OAAO,GAAG,aAAa,CAAC;CACrC"}
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,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAUrE,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAenF,OAAO,EAAiB,KAAK,kBAAkB,EAAE,KAAK,UAAU,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1H,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,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;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAMrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,KAAK;YAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JtC,CAAC;AAwBF,yBAAiB,KAAK,CAAC;IAErB,KAAY,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAY,aAAa,GAAG,kBAAkB,CAAC;IAC/C,KAAY,UAAU,GAAG,cAAc,CAAC;IACxC,KAAY,gBAAgB,GAAG,wBAAwB,CAAC;IACxD,KAAY,OAAO,GAAG,aAAa,CAAC;CACrC"}
@@ -1,6 +1,9 @@
1
1
  import type { CustomCellRendererProps } from 'ag-grid-react';
2
2
  import { type SelectDropdownInputProps } from '../../formField/inputs/selectDropdown/SelectDropdown';
3
- type SelectDropdownCellRendererProps = CustomCellRendererProps & SelectDropdownInputProps;
3
+ type SelectDropdownCellRendererProps = CustomCellRendererProps & SelectDropdownInputProps & {
4
+ backgroundColor?: string;
5
+ fillCell?: boolean;
6
+ };
4
7
  export declare const SelectDropdownCellRenderer: (props: SelectDropdownCellRendererProps) => import("react/jsx-runtime").JSX.Element;
5
8
  export {};
6
9
  //# sourceMappingURL=SelectDropdownCellRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdownCellRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2DAA2D,CAAC;AAGnE,KAAK,+BAA+B,GAAG,uBAAuB,GAC1D,wBAAwB,CAAC;AAS7B,eAAO,MAAM,0BAA0B,GACrC,OAAO,+BAA+B,4CA0EvC,CAAC"}
1
+ {"version":3,"file":"SelectDropdownCellRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,2DAA2D,CAAC;AAInE,KAAK,+BAA+B,GAAG,uBAAuB,GAC1D,wBAAwB,GACxB;IACA,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AASJ,eAAO,MAAM,0BAA0B,GACrC,OAAO,+BAA+B,4CAwFvC,CAAC"}
@@ -1,9 +1,20 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import classNames from 'classnames';
3
4
  import { SelectDropdown, } from '../../formField/inputs/selectDropdown/SelectDropdown';
4
5
  import { useComponentDidMount } from '../../../utils/hooks/useComponentDidMount';
6
+ import { getTextContrast } from '../../../utils/getTextContrast';
5
7
  export const SelectDropdownCellRenderer = (props) => {
6
- const { value, placeholder = 'Select', node, column, api, options = [], disabled, hasError, id, 'aria-describedBy': ariaDescribedBy, 'aria-invalid': ariaInvalid, alwaysShowPlaceholder = false, } = props;
8
+ const { value, placeholder = 'Select', node, column, api, options = [], disabled, hasError, id, 'aria-describedBy': ariaDescribedBy, 'aria-invalid': ariaInvalid, alwaysShowPlaceholder = false, backgroundColor, fillCell = false, } = props;
9
+ const textContrast = backgroundColor ? getTextContrast(backgroundColor) : null;
10
+ const wrapperClassName = classNames('ds-table__select-dropdown', {
11
+ 'ds-table__select-dropdown--custom-bg': backgroundColor,
12
+ 'ds-table__select-dropdown--fill-cell': fillCell,
13
+ [`ds-table__select-dropdown--text-${textContrast}`]: textContrast,
14
+ });
15
+ const wrapperStyle = backgroundColor
16
+ ? { ['--ds-select-cell-bg']: backgroundColor }
17
+ : undefined;
7
18
  const rawOptions = options;
8
19
  const normalisedOptions = rawOptions.map(option => ({
9
20
  ...option,
@@ -26,7 +37,7 @@ export const SelectDropdownCellRenderer = (props) => {
26
37
  api.removeEventListener('cellKeyDown', handleCellKeyDown);
27
38
  };
28
39
  });
29
- return (_jsx("div", { className: "ds-table__select-dropdown", children: _jsx(SelectDropdown, { disabled: disabled, hasError: hasError, id: id, "aria-describedBy": ariaDescribedBy, "aria-invalid": ariaInvalid, alwaysShowPlaceholder: alwaysShowPlaceholder, options: normalisedOptions, placeholder: placeholder, initialSelectedValues: initialSelectedValues, open: isOpen, onOpenChange: setIsOpen, multiple: false, onSelectionChange: (newValue) => {
40
+ return (_jsx("div", { className: wrapperClassName, style: wrapperStyle, children: _jsx(SelectDropdown, { disabled: disabled, hasError: hasError, id: id, "aria-describedBy": ariaDescribedBy, "aria-invalid": ariaInvalid, alwaysShowPlaceholder: alwaysShowPlaceholder, options: normalisedOptions, placeholder: placeholder, initialSelectedValues: initialSelectedValues, open: isOpen, onOpenChange: setIsOpen, multiple: false, onSelectionChange: (newValue) => {
30
41
  if (column && newValue[0] != null) {
31
42
  const selectedOption = rawOptions.find(option => String(option.value) === newValue[0]);
32
43
  node.setDataValue(column, selectedOption?.value ?? newValue[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdownCellRenderer.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,OAAO,EACL,cAAc,GAEf,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAYxE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAsC,EACtC,EAAE;IACF,MAAM,EACJ,KAAK,EACL,WAAW,GAAG,QAAQ,EACtB,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,GAAG,EAAE,EACZ,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,kBAAkB,EAAE,eAAe,EACnC,cAAc,EAAE,WAAW,EAC3B,qBAAqB,GAAG,KAAK,GAC9B,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAuC,OAAO,CAAC;IAC/D,MAAM,iBAAiB,GAAwC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvF,GAAG,MAAM;QACT,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,oBAAoB,CAAC,GAAG,EAAE;QACxB,MAAM,iBAAiB,GAAG,CACxB,KAAmD,EACnD,EAAE;YACF,IACE,QAAQ,IAAI,KAAK;mBACd,KAAK,CAAC,IAAI,KAAK,IAAI;mBACnB,KAAK,CAAC,MAAM,KAAK,MAAM;mBACtB,KAAK,CAAC,KAAuB,CAAC,GAAG,KAAK,OAAO,EACjD,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,sBACY,eAAe,kBACnB,WAAW,EACzB,qBAAqB,EAAE,qBAAqB,EAC5C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,EACvB,QAAQ,EAAE,KAAK,EACf,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBAClC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC/C,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,GACD,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"SelectDropdownCellRenderer.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,UAAU,MAAM,YAAY,CAAC;AAMpC,OAAO,EACL,cAAc,GAEf,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAgBxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAsC,EACtC,EAAE;IACF,MAAM,EACJ,KAAK,EACL,WAAW,GAAG,QAAQ,EACtB,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,GAAG,EAAE,EACZ,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,kBAAkB,EAAE,eAAe,EACnC,cAAc,EAAE,WAAW,EAC3B,qBAAqB,GAAG,KAAK,EAC7B,eAAe,EACf,QAAQ,GAAG,KAAK,GACjB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/E,MAAM,gBAAgB,GAAG,UAAU,CAAC,2BAA2B,EAAE;QAC/D,sCAAsC,EAAE,eAAe;QACvD,sCAAsC,EAAE,QAAQ;QAChD,CAAC,mCAAmC,YAAY,EAAE,CAAC,EAAE,YAAY;KAClE,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,eAAe;QAClC,CAAC,CAAC,EAAE,CAAC,qBAA+B,CAAC,EAAE,eAAe,EAAE;QACxD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,UAAU,GAAuC,OAAO,CAAC;IAC/D,MAAM,iBAAiB,GAAwC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvF,GAAG,MAAM;QACT,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,oBAAoB,CAAC,GAAG,EAAE;QACxB,MAAM,iBAAiB,GAAG,CACxB,KAAmD,EACnD,EAAE;YACF,IACE,QAAQ,IAAI,KAAK;mBACd,KAAK,CAAC,IAAI,KAAK,IAAI;mBACnB,KAAK,CAAC,MAAM,KAAK,MAAM;mBACtB,KAAK,CAAC,KAAuB,CAAC,GAAG,KAAK,OAAO,EACjD,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,YACnD,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,sBACY,eAAe,kBACnB,WAAW,EACzB,qBAAqB,EAAE,qBAAqB,EAC5C,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,SAAS,EACvB,QAAQ,EAAE,KAAK,EACf,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC9B,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBAClC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC/C,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,GACD,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -4,7 +4,10 @@ import { SelectDropdownCellRenderer } from './SelectDropdownCellRenderer';
4
4
  declare function SelectDropdownCellRendererDocsPage(): import("react/jsx-runtime").JSX.Element;
5
5
  declare const meta: {
6
6
  title: string;
7
- component: (props: CustomCellRendererProps<any, any, any> & import("../../formField/inputs/selectDropdown/SelectDropdown").SelectDropdownInputProps) => import("react/jsx-runtime").JSX.Element;
7
+ component: (props: CustomCellRendererProps<any, any, any> & import("../../formField/inputs/selectDropdown/SelectDropdown").SelectDropdownInputProps & {
8
+ backgroundColor?: string;
9
+ fillCell?: boolean;
10
+ }) => import("react/jsx-runtime").JSX.Element;
8
11
  tags: string[];
9
12
  parameters: {
10
13
  layout: string;
@@ -64,6 +67,30 @@ declare const meta: {
64
67
  };
65
68
  };
66
69
  };
70
+ backgroundColor: {
71
+ control: "color";
72
+ description: string;
73
+ table: {
74
+ type: {
75
+ summary: string;
76
+ };
77
+ defaultValue: {
78
+ summary: string;
79
+ };
80
+ };
81
+ };
82
+ fillCell: {
83
+ control: "boolean";
84
+ description: string;
85
+ table: {
86
+ type: {
87
+ summary: string;
88
+ };
89
+ defaultValue: {
90
+ summary: string;
91
+ };
92
+ };
93
+ };
67
94
  };
68
95
  };
69
96
  export default meta;
@@ -71,5 +98,8 @@ type Story = StoryObj<typeof SelectDropdownCellRenderer>;
71
98
  export declare const Default: Story;
72
99
  export declare const WithSelection: Story;
73
100
  export declare const Disabled: Story;
101
+ export declare const WithBackgroundColor: Story;
102
+ export declare const FillCell: Story;
74
103
  export declare const InATable: Story;
104
+ export declare const ColoredCellsInATable: Story;
75
105
  //# sourceMappingURL=SelectDropdownCellRenderer.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdownCellRenderer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAiG1E,iBAAS,kCAAkC,4CAmB1C;AAmBD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CyC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAkBzD,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0C3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAiBtB,CAAC;AASF,eAAO,MAAM,QAAQ,EAAE,KAqEtB,CAAC"}
1
+ {"version":3,"file":"SelectDropdownCellRenderer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAiG1E,iBAAS,kCAAkC,4CAmB1C;AAmBD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DyC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAkBzD,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0C3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAiBtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA6BjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAmBtB,CAAC;AASF,eAAO,MAAM,QAAQ,EAAE,KAqEtB,CAAC;AAQF,eAAO,MAAM,oBAAoB,EAAE,KA+DlC,CAAC"}
@@ -147,6 +147,22 @@ const meta = {
147
147
  description: 'AG Grid row node. The renderer calls `node.setDataValue` on option selection.',
148
148
  table: { type: { summary: 'IRowNode' } },
149
149
  },
150
+ backgroundColor: {
151
+ control: 'color',
152
+ description: 'Optional hex colour applied to the dropdown trigger background. Text colour automatically switches between dark and white based on YIQ luminance for legibility.',
153
+ table: {
154
+ type: { summary: 'string' },
155
+ defaultValue: { summary: 'undefined' },
156
+ },
157
+ },
158
+ fillCell: {
159
+ control: 'boolean',
160
+ description: 'When `true` the wrapper and trigger button stretch to 100% of the cell, and the trigger\'s rounded corners are removed. For true edge-to-edge fill, also set `cellStyle: { padding: 0 }` on the column def — AG Grid\'s default cell padding lives outside the renderer.',
161
+ table: {
162
+ type: { summary: 'boolean' },
163
+ defaultValue: { summary: 'false' },
164
+ },
165
+ },
150
166
  },
151
167
  };
152
168
  export default meta;
@@ -201,6 +217,14 @@ export const Disabled = withDescription({
201
217
  parameters: { controls: { disable: true } },
202
218
  render: () => (_jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "active", options: STATUS_OPTIONS, placeholder: "Select status", disabled: true, node: { setDataValue: () => { } }, column: {} })),
203
219
  }, 'Pass `disabled: true` via `cellRendererParams` to prevent the user from changing the selection for specific rows.');
220
+ export const WithBackgroundColor = withDescription({
221
+ parameters: { controls: { disable: true } },
222
+ render: () => (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, alignItems: 'flex-start' }, children: [_jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "active", options: STATUS_OPTIONS, placeholder: "Select status", backgroundColor: "#1F7A1F", node: { setDataValue: () => { } }, column: {} }), _jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "pending", options: STATUS_OPTIONS, placeholder: "Select status", backgroundColor: "#FFE68A", node: { setDataValue: () => { } }, column: {} })] })),
223
+ }, 'Pass a hex `backgroundColor` via `cellRendererParams` to tint the trigger. The text colour automatically switches between dark (`#2F2F2F`) and white (`#FFFFFF`) based on the YIQ luminance of the background so the label remains legible. Top row: dark green → white text. Bottom row: pale yellow → dark text.');
224
+ export const FillCell = withDescription({
225
+ parameters: { controls: { disable: true } },
226
+ render: () => (_jsx("div", { style: { width: 240, height: 40, border: '1px dashed var(--color-grey-300)' }, children: _jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "active", options: STATUS_OPTIONS, placeholder: "Select status", fillCell: true, node: { setDataValue: () => { } }, column: {} }) })),
227
+ }, '`fillCell: true` stretches the wrapper and trigger to 100% of the container and removes the trigger\'s rounded corners — typical when the dropdown should look like part of the cell rather than a button placed inside it. The dashed box here represents the surrounding cell.');
204
228
  const SELECT_IN_TABLE_DATA = [
205
229
  { name: 'Alice Johnson', status: 'active' },
206
230
  { name: 'Bob Smith', status: 'inactive' },
@@ -267,4 +291,63 @@ export default SelectDropdownCellRendererExample;
267
291
  },
268
292
  ], defaultColDef: { flex: 1, minWidth: 120 }, domLayout: "autoHeight" })),
269
293
  }, '`dsSelectDropdownCellRenderer` wired up inside a full `Table`. Click a Status dropdown to select a new value — the selection is committed to the row via `node.setDataValue`. Press Enter in a focused Status cell to open the dropdown via keyboard.');
294
+ const STATUS_BACKGROUND_COLORS = {
295
+ active: '#1F7A1F',
296
+ inactive: '#B91C1C',
297
+ pending: '#FFE68A',
298
+ };
299
+ export const ColoredCellsInATable = withDescription({
300
+ parameters: {
301
+ controls: { disable: true },
302
+ docs: {
303
+ source: {
304
+ language: 'tsx',
305
+ code: `
306
+ import { Table } from '@arbor-education/design-system.components';
307
+
308
+ const STATUS_BACKGROUND_COLORS = {
309
+ active: '#1F7A1F',
310
+ inactive: '#B91C1C',
311
+ pending: '#FFE68A',
312
+ };
313
+
314
+ const columnDefs = [
315
+ { field: 'name', headerName: 'Name', flex: 2 },
316
+ {
317
+ field: 'status',
318
+ headerName: 'Status',
319
+ flex: 1,
320
+ editable: false,
321
+ cellRenderer: 'dsSelectDropdownCellRenderer',
322
+ // Per-row params: derive the cell background from the row's current value.
323
+ cellRendererParams: (params) => ({
324
+ options: statusOptions,
325
+ backgroundColor: STATUS_BACKGROUND_COLORS[params.value],
326
+ fillCell: true,
327
+ }),
328
+ // fillCell wants a flush cell — strip AG Grid's default cell padding.
329
+ cellStyle: { padding: 0 },
330
+ },
331
+ ];
332
+ `.trim(),
333
+ },
334
+ },
335
+ },
336
+ render: () => (_jsx(Table, { rowData: SELECT_IN_TABLE_DATA, columnDefs: [
337
+ { field: 'name', headerName: 'Name', flex: 2 },
338
+ {
339
+ field: 'status',
340
+ headerName: 'Status',
341
+ flex: 1,
342
+ editable: false,
343
+ cellRenderer: 'dsSelectDropdownCellRenderer',
344
+ cellRendererParams: (params) => ({
345
+ options: STATUS_OPTIONS,
346
+ backgroundColor: params.value ? STATUS_BACKGROUND_COLORS[params.value] : undefined,
347
+ fillCell: true,
348
+ }),
349
+ cellStyle: { padding: 0 },
350
+ },
351
+ ], defaultColDef: { flex: 1, minWidth: 120 }, domLayout: "autoHeight" })),
352
+ }, 'Combines `backgroundColor` and `fillCell` to drive a status-coloured column. `cellRendererParams` is a function so each row gets a colour based on its current value, and `cellStyle: { padding: 0 }` removes AG Grid\'s default cell padding so the tinted trigger spans the cell edge-to-edge. Text colour switches automatically between dark and white for legibility.');
270
353
  //# sourceMappingURL=SelectDropdownCellRenderer.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDropdownCellRenderer.stories.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectDropdownCellRenderer.stories.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom/vitest';
2
+ //# sourceMappingURL=SelectDropdownCellRenderer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectDropdownCellRenderer.test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.test.tsx"],"names":[],"mappings":"AAEA,OAAO,kCAAkC,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, expect, test, vi } from 'vitest';
3
+ import { render, screen } from '@testing-library/react';
4
+ import '@testing-library/jest-dom/vitest';
5
+ import { SelectDropdownCellRenderer } from './SelectDropdownCellRenderer';
6
+ const MOCK_API = {
7
+ addEventListener: vi.fn(),
8
+ removeEventListener: vi.fn(),
9
+ };
10
+ const OPTIONS = [
11
+ { label: 'Option 1', value: 'option1' },
12
+ { label: 'Option 2', value: 'option2' },
13
+ ];
14
+ const createMockProps = (overrides = {}) => ({
15
+ value: 'option1',
16
+ api: MOCK_API,
17
+ node: { setDataValue: vi.fn() },
18
+ column: 'selectField',
19
+ options: OPTIONS,
20
+ ...overrides,
21
+ });
22
+ describe('SelectDropdownCellRenderer', () => {
23
+ test('renders the dropdown trigger button', () => {
24
+ render(_jsx(SelectDropdownCellRenderer, { ...createMockProps() }));
25
+ expect(screen.getByRole('button')).toBeInTheDocument();
26
+ });
27
+ describe('backgroundColor', () => {
28
+ test('does not apply the custom-bg or text-contrast modifiers when not provided', () => {
29
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps() }));
30
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
31
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--custom-bg');
32
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-dark');
33
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-light');
34
+ expect(wrapper.style.getPropertyValue('--ds-select-cell-bg')).toBe('');
35
+ });
36
+ test('applies the custom-bg modifier and bg CSS var when provided', () => {
37
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: '#1F7A1F' }) }));
38
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
39
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--custom-bg');
40
+ expect(wrapper.style.getPropertyValue('--ds-select-cell-bg')).toBe('#1F7A1F');
41
+ });
42
+ test('emits the text-light modifier for a dark background', () => {
43
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: '#000000' }) }));
44
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
45
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-light');
46
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-dark');
47
+ });
48
+ test('emits the text-dark modifier for a light background', () => {
49
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: '#FFFFFF' }) }));
50
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
51
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-dark');
52
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-light');
53
+ });
54
+ test('expands 3-digit hex shorthand correctly', () => {
55
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: '#000' }) }));
56
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
57
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-light');
58
+ });
59
+ test('falls back to the text-dark modifier when the hex is malformed', () => {
60
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: 'not-a-color' }) }));
61
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
62
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-dark');
63
+ });
64
+ });
65
+ describe('fillCell', () => {
66
+ test('does not apply the fill-cell modifier by default', () => {
67
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps() }));
68
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
69
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--fill-cell');
70
+ });
71
+ test('applies the fill-cell modifier when true', () => {
72
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ fillCell: true }) }));
73
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
74
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--fill-cell');
75
+ });
76
+ });
77
+ test('applies both modifiers when backgroundColor and fillCell are set together', () => {
78
+ const { container } = render(_jsx(SelectDropdownCellRenderer, { ...createMockProps({ backgroundColor: '#1F7A1F', fillCell: true }) }));
79
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
80
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--custom-bg');
81
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--fill-cell');
82
+ });
83
+ });
84
+ //# sourceMappingURL=SelectDropdownCellRenderer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectDropdownCellRenderer.test.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.test.tsx"],"names":[],"mappings":"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"}
package/dist/index.css CHANGED
@@ -3110,6 +3110,26 @@ h4.ds-heading, h4.ds-heading .ds-heading__inner-container, h4 .ds-editable-text_
3110
3110
  .ds-table__select-dropdown-cell {
3111
3111
  width: 100%;
3112
3112
  }
3113
+ .ds-table__select-dropdown--fill-cell {
3114
+ display: flex;
3115
+ width: 100%;
3116
+ height: 100%;
3117
+ }
3118
+ .ds-table__select-dropdown--fill-cell .ds-button--dropdown {
3119
+ flex: 1;
3120
+ width: 100%;
3121
+ height: 100%;
3122
+ border-radius: 0;
3123
+ }
3124
+ .ds-table__select-dropdown--custom-bg .ds-button--dropdown {
3125
+ background: var(--ds-select-cell-bg);
3126
+ }
3127
+ .ds-table__select-dropdown--text-dark .ds-button--dropdown {
3128
+ color: var(--color-grey-900);
3129
+ }
3130
+ .ds-table__select-dropdown--text-light .ds-button--dropdown {
3131
+ color: var(--color-mono-white);
3132
+ }
3113
3133
  .ds-table__container *[class^=ag-], .ds-table__container *[class*=" ag-"] {
3114
3134
  z-index: unset;
3115
3135
  }
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/index.scss","../node_modules/react-day-picker/src/style.css","../src/tokens.scss","../src/global.scss","../src/components/button/button.scss","../src/components/icon/icon.scss","../src/components/icoText/icoText.scss","../src/components/heading/heading.scss","../src/components/card/card.scss","../src/components/articleCard/articleCard.scss","../src/components/dropdown/dropdown.scss","../src/components/formField/formField.scss","../src/components/formField/fieldset/fieldset.scss","../src/components/formField/inputs/input.scss","../src/components/formField/label/label.scss","../src/components/formField/inputs/number/numberInput.scss","../src/components/formField/inputs/time/timeInput.scss","../src/components/formField/inputs/radio/radioButtonInput.scss","../src/components/formField/inputs/checkbox/checkboxInput.scss","../src/components/formField/inputs/selectDropdown/selectDropdown.scss","../src/components/formField/inputs/colourPickerDropdown/colourPickerDropdown.scss","../src/components/tag/tag.scss","../src/components/dot/dot.scss","../src/components/badge/badge.scss","../src/components/pill/pill.scss","../src/components/section/section.scss","../src/components/tabs/tabs.scss","../src/components/slideoverManager/slideoverManager.scss","../src/components/slideover/slideover.scss","../src/components/table/table.scss","../src/components/searchBar/searchBar.scss","../src/components/table/cellEditors/numberCellEditor.scss","../src/components/table/pagination/pagination.scss","../src/components/tooltip/tooltip.scss","../src/components/separator/separator.scss","../src/components/modal/modal.scss","../src/components/modal/modalManager/modalManager.scss","../src/components/table/columnFilters/columnFilters.scss","../src/components/banner/banner.scss","../src/components/editableText/editableText.scss","../src/components/progress/progress.scss","../src/components/kpiCard/kpiCard.scss","../src/components/kvpList/kvpList.scss","../src/components/toast/toast.scss","../src/components/datePicker/datePicker.scss","../src/components/datePicker/date-field-hint.scss","../src/components/dateTimePicker/dateTimePicker.scss","../src/components/avatar/avatar.scss","../src/components/singleUser/singleUser.scss","../src/components/avatarGroup/avatarGroup.scss","../src/components/userDropdown/userDropdown.scss","../src/components/table/cellRenderers/booleanCellRenderer.scss","../src/components/row/row.scss","../src/components/combobox/combobox.scss","../src/components/toggle/toggle.scss","../src/components/dataViewCard/dataViewCard.scss","../src/components/treeRow/treeRow.scss"],"names":[],"mappings":"AAuDQ;ACvDR;AACA;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAAA;AAAA;AAAA;AAAA,KAIG;EACH;EAEA;AAAA;AAAA;AAAA;AAAA,KAIG;EACH;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EAEA;EACA;EACA;EAEA;EACA;;;AAGF;EACE;AACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EAEA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EAEA;EACA;EAEA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;ACtcF;AACA;AAAA;AAAA;AAIC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC92CF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;AAAA;EAEE;EACA;EACA;EACA;;;AAOF;EAAmB;;;AACnB;EAAyB;;;ACzCzB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAMJ;EACE;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAMJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;;ACpPJ;EACI;;;ACDJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AClDJ;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AChEF;EACE;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAEE;;;AAIJ;EACE;EACA;;;ACrCF;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;;AC7CR;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;AAEA;EACE;;;AC5CZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACbJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAIF;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAKN;EACE;;;ACpEF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACPJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACvEN;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC9BJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAIA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;;AC5FR;EACE;EACA;EACA;EACA;AAoFA;;AAlFA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AC/FJ;EACE;EACA;;AAEE;EACE;EACA;EACA;;AAGJ;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AClBE;EACI;;;AAKR;EACI;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;ACnGJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AChCJ;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;ACnFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;;;ACnDJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;;ACrCR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAGE;EACE;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;;ACpFN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AClDA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAIA;EAGE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAKN;EACE;;;AAIJ;EACE;;;AC9FF;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAEA;EACI;;AAIR;EACI;EACA;;AAKZ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACI;;AAEA;EACI;;AAIR;EACI;;;ACxFZ;EACE;;;AAGF;EACE;;AAEA;EACE;;;ACRJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;;AClBJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;;ACRZ;EACE;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;ACXF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;;ACpEJ;EACI;EACA;;;ACFJ;EACI;EACA;EACA;EACA;EACA;EAGA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AC9DR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;;AC3DN;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;;ACnDR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;ACjCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;;AC5DN;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;;ACzEZ;EACE;EACA;;ACDA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAQJ;EACE;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAQJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AD1FJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;ACqDF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAKF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;;AClJN;EACE;EACA;;ADDA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAQJ;EACE;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAQJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC1FJ;EACE;;;ADgGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAKF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;;AEpJN;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;ACpEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACZF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AC5BF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAGF;EACE;;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;ACvXF;EACI;EACA;EACA;EACA;EACA;;;ACLJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAIA;EACI;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;;AClEJ;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAIF;EACE;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EAIA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;;;AAeJ;EACE;EACA;EACA;EACA;;AAEA;EAhBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAYE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAKJ;EACE;EACA;;;AAIF;EA9CE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA0CA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAKF;EACE;;;AAIF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;ACrZJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;;ACxHV;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;ACvBF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAII;EACE;;AAGF;EACE;EACA;;;AAQV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAKE;EACE;;AAGF;EACE;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../src/index.scss","../node_modules/react-day-picker/src/style.css","../src/tokens.scss","../src/global.scss","../src/components/button/button.scss","../src/components/icon/icon.scss","../src/components/icoText/icoText.scss","../src/components/heading/heading.scss","../src/components/card/card.scss","../src/components/articleCard/articleCard.scss","../src/components/dropdown/dropdown.scss","../src/components/formField/formField.scss","../src/components/formField/fieldset/fieldset.scss","../src/components/formField/inputs/input.scss","../src/components/formField/label/label.scss","../src/components/formField/inputs/number/numberInput.scss","../src/components/formField/inputs/time/timeInput.scss","../src/components/formField/inputs/radio/radioButtonInput.scss","../src/components/formField/inputs/checkbox/checkboxInput.scss","../src/components/formField/inputs/selectDropdown/selectDropdown.scss","../src/components/formField/inputs/colourPickerDropdown/colourPickerDropdown.scss","../src/components/tag/tag.scss","../src/components/dot/dot.scss","../src/components/badge/badge.scss","../src/components/pill/pill.scss","../src/components/section/section.scss","../src/components/tabs/tabs.scss","../src/components/slideoverManager/slideoverManager.scss","../src/components/slideover/slideover.scss","../src/components/table/table.scss","../src/components/searchBar/searchBar.scss","../src/components/table/cellEditors/numberCellEditor.scss","../src/components/table/pagination/pagination.scss","../src/components/tooltip/tooltip.scss","../src/components/separator/separator.scss","../src/components/modal/modal.scss","../src/components/modal/modalManager/modalManager.scss","../src/components/table/columnFilters/columnFilters.scss","../src/components/banner/banner.scss","../src/components/editableText/editableText.scss","../src/components/progress/progress.scss","../src/components/kpiCard/kpiCard.scss","../src/components/kvpList/kvpList.scss","../src/components/toast/toast.scss","../src/components/datePicker/datePicker.scss","../src/components/datePicker/date-field-hint.scss","../src/components/dateTimePicker/dateTimePicker.scss","../src/components/avatar/avatar.scss","../src/components/singleUser/singleUser.scss","../src/components/avatarGroup/avatarGroup.scss","../src/components/userDropdown/userDropdown.scss","../src/components/table/cellRenderers/booleanCellRenderer.scss","../src/components/row/row.scss","../src/components/combobox/combobox.scss","../src/components/toggle/toggle.scss","../src/components/dataViewCard/dataViewCard.scss","../src/components/treeRow/treeRow.scss"],"names":[],"mappings":"AAuDQ;ACvDR;AACA;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAAA;AAAA;AAAA;AAAA,KAIG;EACH;EAEA;AAAA;AAAA;AAAA;AAAA,KAIG;EACH;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EAEA;EACA;EACA;EAEA;EACA;;;AAGF;EACE;AACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;EAEA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EAEA;EACA;EAEA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAIF;EACE;;;AAIF;EACE;;;AAIF;EACE;;;ACtcF;AACA;AAAA;AAAA;AAIC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC92CF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;AAAA;EAEE;EACA;EACA;EACA;;;AAOF;EAAmB;;;AACnB;EAAyB;;;ACzCzB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAMJ;EACE;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAMJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;;ACpPJ;EACI;;;ACDJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;;;AClDJ;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AChEF;EACE;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAEE;;;AAIJ;EACE;EACA;;;ACrCF;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;;AC7CR;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;AAEA;EACE;;;AC5CZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACbJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAIF;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAKN;EACE;;;ACpEF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACPJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACvEN;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC9BJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAIA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;;AC5FR;EACE;EACA;EACA;EACA;AAoFA;;AAlFA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AC/FJ;EACE;EACA;;AAEE;EACE;EACA;EACA;;AAGJ;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AClBE;EACI;;;AAKR;EACI;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;ACnGJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AChCJ;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;ACnFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;;;ACnDJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;;ACrCR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAGE;EACE;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;;ACpFN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AClDA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAIA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EAGE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAKN;EACE;;;AAIJ;EACE;;;ACzHF;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAEA;EACI;;AAIR;EACI;EACA;;AAKZ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACI;;AAEA;EACI;;AAIR;EACI;;;ACxFZ;EACE;;;AAGF;EACE;;AAEA;EACE;;;ACRJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;;AClBJ;EACI;EACA;EACA;EACA;;AAEA;EACI;;;ACRZ;EACE;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;ACXF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;;ACpEJ;EACI;EACA;;;ACFJ;EACI;EACA;EACA;EACA;EACA;EAGA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AC9DR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;AAQJ;EAKE;EACA;EACA;;AANA;EACE;;;AC3DN;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;;ACnDR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;ACVJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;ACjCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;;;AC5DN;EACI;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAEA;EACI;;;ACzEZ;EACE;EACA;;ACDA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAQJ;EACE;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAQJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AD1FJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;ACqDF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAKF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;;AClJN;EACE;EACA;;ADDA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAQJ;EACE;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AAQJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC1FJ;EACE;;;ADgGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;;AAKF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;;AEpJN;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;ACpEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACZF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AC5BF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAKJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAGF;EACE;;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;ACvXF;EACI;EACA;EACA;EACA;EACA;;;ACLJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAIA;EACI;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;;AClEJ;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;;AAIF;EACE;;AAEA;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EAIA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;;;AAeJ;EACE;EACA;EACA;EACA;;AAEA;EAhBA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAYE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAKJ;EACE;EACA;;;AAIF;EA9CE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EA0CA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAKF;EACE;;;AAIF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;ACrZJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;;ACxHV;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;ACvBF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAII;EACE;;AAGF;EACE;EACA;;;AAQV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAKE;EACE;;AAGF;EACE;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE","file":"index.css"}
@@ -0,0 +1,4 @@
1
+ type TextContrast = 'dark' | 'light';
2
+ export declare const getTextContrast: (color: string) => TextContrast;
3
+ export {};
4
+ //# sourceMappingURL=getTextContrast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTextContrast.d.ts","sourceRoot":"","sources":["../../src/utils/getTextContrast.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAErC,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,YAW/C,CAAC"}
@@ -0,0 +1,14 @@
1
+ export const getTextContrast = (color) => {
2
+ const CONTRAST_THRESHOLD = 128;
3
+ let hex = color.trim().replace('#', '');
4
+ if (hex.length === 3)
5
+ hex = hex.split('').map(c => c + c).join('');
6
+ if (hex.length !== 6 || /[^0-9a-f]/i.test(hex))
7
+ return 'dark';
8
+ const r = parseInt(hex.slice(0, 2), 16);
9
+ const g = parseInt(hex.slice(2, 4), 16);
10
+ const b = parseInt(hex.slice(4, 6), 16);
11
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
12
+ return yiq >= CONTRAST_THRESHOLD ? 'dark' : 'light';
13
+ };
14
+ //# sourceMappingURL=getTextContrast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTextContrast.js","sourceRoot":"","sources":["../../src/utils/getTextContrast.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAgB,EAAE;IAC7D,MAAM,kBAAkB,GAAG,GAAG,CAAC;IAE/B,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IACjD,OAAO,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTextContrast.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTextContrast.test.d.ts","sourceRoot":"","sources":["../../src/utils/getTextContrast.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import { getTextContrast } from './getTextContrast';
2
+ import { describe, expect, test } from 'vitest';
3
+ describe('getTextContrast', () => {
4
+ test('returns "light" for pure black', () => {
5
+ expect(getTextContrast('#000000')).toBe('light');
6
+ });
7
+ test('returns "dark" for pure white', () => {
8
+ expect(getTextContrast('#FFFFFF')).toBe('dark');
9
+ });
10
+ test('returns "dark" at the threshold (YIQ === 128)', () => {
11
+ // #808080 → YIQ exactly 128; the comparison is `>=` so it counts as light bg.
12
+ expect(getTextContrast('#808080')).toBe('dark');
13
+ });
14
+ test('returns "light" just below the threshold (YIQ === 127)', () => {
15
+ expect(getTextContrast('#7F7F7F')).toBe('light');
16
+ });
17
+ test('weights green more heavily than red or blue', () => {
18
+ // Pure green (#00FF00) has high YIQ (≈ 150) → dark text reads better.
19
+ expect(getTextContrast('#00FF00')).toBe('dark');
20
+ // Pure red (#FF0000) has YIQ ≈ 76 → light text reads better.
21
+ expect(getTextContrast('#FF0000')).toBe('light');
22
+ // Pure blue (#0000FF) has YIQ ≈ 29 → light text reads better.
23
+ expect(getTextContrast('#0000FF')).toBe('light');
24
+ });
25
+ test('handles real-world status colours', () => {
26
+ expect(getTextContrast('#1F7A1F')).toBe('light'); // dark green
27
+ expect(getTextContrast('#B91C1C')).toBe('light'); // dark red
28
+ expect(getTextContrast('#FFE68A')).toBe('dark'); // pale yellow
29
+ });
30
+ describe('input parsing', () => {
31
+ test('expands 3-digit hex shorthand', () => {
32
+ expect(getTextContrast('#000')).toBe('light');
33
+ expect(getTextContrast('#fff')).toBe('dark');
34
+ expect(getTextContrast('#abc')).toBe('dark'); // #aabbcc → YIQ ≈ 184
35
+ });
36
+ test('accepts hex without a leading "#"', () => {
37
+ expect(getTextContrast('000000')).toBe('light');
38
+ expect(getTextContrast('ffffff')).toBe('dark');
39
+ });
40
+ test('is case-insensitive', () => {
41
+ expect(getTextContrast('#abcdef')).toBe(getTextContrast('#ABCDEF'));
42
+ });
43
+ test('trims surrounding whitespace', () => {
44
+ expect(getTextContrast(' #000000 ')).toBe('light');
45
+ });
46
+ });
47
+ describe('invalid input', () => {
48
+ test('falls back to "dark" for non-hex characters', () => {
49
+ expect(getTextContrast('#zzzzzz')).toBe('dark');
50
+ });
51
+ test('falls back to "dark" for malformed length', () => {
52
+ expect(getTextContrast('#12345')).toBe('dark'); // 5 chars
53
+ expect(getTextContrast('#1234567')).toBe('dark'); // 7 chars
54
+ });
55
+ test('falls back to "dark" for empty string', () => {
56
+ expect(getTextContrast('')).toBe('dark');
57
+ });
58
+ test('falls back to "dark" for CSS keyword colours', () => {
59
+ expect(getTextContrast('red')).toBe('dark');
60
+ expect(getTextContrast('rebeccapurple')).toBe('dark');
61
+ });
62
+ test('falls back to "dark" for rgb()/hsl() notation', () => {
63
+ expect(getTextContrast('rgb(0, 0, 0)')).toBe('dark');
64
+ expect(getTextContrast('hsl(0, 0%, 0%)')).toBe('dark');
65
+ });
66
+ });
67
+ });
68
+ //# sourceMappingURL=getTextContrast.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTextContrast.test.js","sourceRoot":"","sources":["../../src/utils/getTextContrast.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,8EAA8E;QAC9E,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,sEAAsE;QACtE,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,6DAA6D;QAC7D,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,8DAA8D;QAC9D,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;QAC/D,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;QAC7D,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;IACjE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YAC1D,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbor-education/design-system.components",
3
- "version": "0.17.1",
3
+ "version": "0.18.0",
4
4
  "description": "The component library for the design system (the baby)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -187,6 +187,22 @@ const meta = {
187
187
  description: 'AG Grid row node. The renderer calls `node.setDataValue` on option selection.',
188
188
  table: { type: { summary: 'IRowNode' } },
189
189
  },
190
+ backgroundColor: {
191
+ control: 'color',
192
+ description: 'Optional hex colour applied to the dropdown trigger background. Text colour automatically switches between dark and white based on YIQ luminance for legibility.',
193
+ table: {
194
+ type: { summary: 'string' },
195
+ defaultValue: { summary: 'undefined' },
196
+ },
197
+ },
198
+ fillCell: {
199
+ control: 'boolean',
200
+ description: 'When `true` the wrapper and trigger button stretch to 100% of the cell, and the trigger\'s rounded corners are removed. For true edge-to-edge fill, also set `cellStyle: { padding: 0 }` on the column def — AG Grid\'s default cell padding lives outside the renderer.',
201
+ table: {
202
+ type: { summary: 'boolean' },
203
+ defaultValue: { summary: 'false' },
204
+ },
205
+ },
190
206
  },
191
207
  } satisfies Meta<typeof SelectDropdownCellRenderer>;
192
208
 
@@ -290,6 +306,58 @@ export const Disabled: Story = withDescription(
290
306
  'Pass `disabled: true` via `cellRendererParams` to prevent the user from changing the selection for specific rows.',
291
307
  );
292
308
 
309
+ export const WithBackgroundColor: Story = withDescription(
310
+ {
311
+ parameters: { controls: { disable: true } },
312
+ render: () => (
313
+ <div style={{ display: 'flex', flexDirection: 'column', gap: 12, alignItems: 'flex-start' }}>
314
+ <SelectDropdownCellRenderer
315
+ {...MOCK_CELL_PROPS}
316
+ api={MOCK_API}
317
+ value="active"
318
+ options={STATUS_OPTIONS}
319
+ placeholder="Select status"
320
+ backgroundColor="#1F7A1F"
321
+ node={{ setDataValue: () => {} } as unknown as CustomCellRendererProps['node']}
322
+ column={{} as CustomCellRendererProps['column']}
323
+ />
324
+ <SelectDropdownCellRenderer
325
+ {...MOCK_CELL_PROPS}
326
+ api={MOCK_API}
327
+ value="pending"
328
+ options={STATUS_OPTIONS}
329
+ placeholder="Select status"
330
+ backgroundColor="#FFE68A"
331
+ node={{ setDataValue: () => {} } as unknown as CustomCellRendererProps['node']}
332
+ column={{} as CustomCellRendererProps['column']}
333
+ />
334
+ </div>
335
+ ),
336
+ },
337
+ 'Pass a hex `backgroundColor` via `cellRendererParams` to tint the trigger. The text colour automatically switches between dark (`#2F2F2F`) and white (`#FFFFFF`) based on the YIQ luminance of the background so the label remains legible. Top row: dark green → white text. Bottom row: pale yellow → dark text.',
338
+ );
339
+
340
+ export const FillCell: Story = withDescription(
341
+ {
342
+ parameters: { controls: { disable: true } },
343
+ render: () => (
344
+ <div style={{ width: 240, height: 40, border: '1px dashed var(--color-grey-300)' }}>
345
+ <SelectDropdownCellRenderer
346
+ {...MOCK_CELL_PROPS}
347
+ api={MOCK_API}
348
+ value="active"
349
+ options={STATUS_OPTIONS}
350
+ placeholder="Select status"
351
+ fillCell={true}
352
+ node={{ setDataValue: () => {} } as unknown as CustomCellRendererProps['node']}
353
+ column={{} as CustomCellRendererProps['column']}
354
+ />
355
+ </div>
356
+ ),
357
+ },
358
+ '`fillCell: true` stretches the wrapper and trigger to 100% of the container and removes the trigger\'s rounded corners — typical when the dropdown should look like part of the cell rather than a button placed inside it. The dashed box here represents the surrounding cell.',
359
+ );
360
+
293
361
  const SELECT_IN_TABLE_DATA = [
294
362
  { name: 'Alice Johnson', status: 'active' },
295
363
  { name: 'Bob Smith', status: 'inactive' },
@@ -367,3 +435,74 @@ export default SelectDropdownCellRendererExample;
367
435
  },
368
436
  '`dsSelectDropdownCellRenderer` wired up inside a full `Table`. Click a Status dropdown to select a new value — the selection is committed to the row via `node.setDataValue`. Press Enter in a focused Status cell to open the dropdown via keyboard.',
369
437
  );
438
+
439
+ const STATUS_BACKGROUND_COLORS: Record<string, string> = {
440
+ active: '#1F7A1F',
441
+ inactive: '#B91C1C',
442
+ pending: '#FFE68A',
443
+ };
444
+
445
+ export const ColoredCellsInATable: Story = withDescription(
446
+ {
447
+ parameters: {
448
+ controls: { disable: true },
449
+ docs: {
450
+ source: {
451
+ language: 'tsx',
452
+ code: `
453
+ import { Table } from '@arbor-education/design-system.components';
454
+
455
+ const STATUS_BACKGROUND_COLORS = {
456
+ active: '#1F7A1F',
457
+ inactive: '#B91C1C',
458
+ pending: '#FFE68A',
459
+ };
460
+
461
+ const columnDefs = [
462
+ { field: 'name', headerName: 'Name', flex: 2 },
463
+ {
464
+ field: 'status',
465
+ headerName: 'Status',
466
+ flex: 1,
467
+ editable: false,
468
+ cellRenderer: 'dsSelectDropdownCellRenderer',
469
+ // Per-row params: derive the cell background from the row's current value.
470
+ cellRendererParams: (params) => ({
471
+ options: statusOptions,
472
+ backgroundColor: STATUS_BACKGROUND_COLORS[params.value],
473
+ fillCell: true,
474
+ }),
475
+ // fillCell wants a flush cell — strip AG Grid's default cell padding.
476
+ cellStyle: { padding: 0 },
477
+ },
478
+ ];
479
+ `.trim(),
480
+ },
481
+ },
482
+ },
483
+ render: () => (
484
+ <Table
485
+ rowData={SELECT_IN_TABLE_DATA}
486
+ columnDefs={[
487
+ { field: 'name', headerName: 'Name', flex: 2 },
488
+ {
489
+ field: 'status',
490
+ headerName: 'Status',
491
+ flex: 1,
492
+ editable: false,
493
+ cellRenderer: 'dsSelectDropdownCellRenderer',
494
+ cellRendererParams: (params: { value?: string }) => ({
495
+ options: STATUS_OPTIONS,
496
+ backgroundColor: params.value ? STATUS_BACKGROUND_COLORS[params.value] : undefined,
497
+ fillCell: true,
498
+ }),
499
+ cellStyle: { padding: 0 },
500
+ },
501
+ ]}
502
+ defaultColDef={{ flex: 1, minWidth: 120 }}
503
+ domLayout="autoHeight"
504
+ />
505
+ ),
506
+ },
507
+ 'Combines `backgroundColor` and `fillCell` to drive a status-coloured column. `cellRendererParams` is a function so each row gets a colour based on its current value, and `cellStyle: { padding: 0 }` removes AG Grid\'s default cell padding so the tinted trigger spans the cell edge-to-edge. Text colour switches automatically between dark and white for legibility.',
508
+ );
@@ -0,0 +1,118 @@
1
+ import { describe, expect, test, vi } from 'vitest';
2
+ import { render, screen } from '@testing-library/react';
3
+ import '@testing-library/jest-dom/vitest';
4
+ import type { CustomCellRendererProps } from 'ag-grid-react';
5
+ import type { GridApi } from 'ag-grid-community';
6
+ import { SelectDropdownCellRenderer } from './SelectDropdownCellRenderer';
7
+
8
+ const MOCK_API = {
9
+ addEventListener: vi.fn(),
10
+ removeEventListener: vi.fn(),
11
+ } as unknown as GridApi;
12
+
13
+ const OPTIONS = [
14
+ { label: 'Option 1', value: 'option1' },
15
+ { label: 'Option 2', value: 'option2' },
16
+ ];
17
+
18
+ const createMockProps = (
19
+ overrides: Partial<CustomCellRendererProps> & {
20
+ backgroundColor?: string;
21
+ fillCell?: boolean;
22
+ } = {},
23
+ ) => ({
24
+ value: 'option1',
25
+ api: MOCK_API,
26
+ node: { setDataValue: vi.fn() },
27
+ column: 'selectField',
28
+ options: OPTIONS,
29
+ ...overrides,
30
+ } as unknown as Parameters<typeof SelectDropdownCellRenderer>[0]);
31
+
32
+ describe('SelectDropdownCellRenderer', () => {
33
+ test('renders the dropdown trigger button', () => {
34
+ render(<SelectDropdownCellRenderer {...createMockProps()} />);
35
+ expect(screen.getByRole('button')).toBeInTheDocument();
36
+ });
37
+
38
+ describe('backgroundColor', () => {
39
+ test('does not apply the custom-bg or text-contrast modifiers when not provided', () => {
40
+ const { container } = render(<SelectDropdownCellRenderer {...createMockProps()} />);
41
+ const wrapper = container.querySelector('.ds-table__select-dropdown') as HTMLElement;
42
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--custom-bg');
43
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-dark');
44
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-light');
45
+ expect(wrapper.style.getPropertyValue('--ds-select-cell-bg')).toBe('');
46
+ });
47
+
48
+ test('applies the custom-bg modifier and bg CSS var when provided', () => {
49
+ const { container } = render(
50
+ <SelectDropdownCellRenderer {...createMockProps({ backgroundColor: '#1F7A1F' })} />,
51
+ );
52
+ const wrapper = container.querySelector('.ds-table__select-dropdown') as HTMLElement;
53
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--custom-bg');
54
+ expect(wrapper.style.getPropertyValue('--ds-select-cell-bg')).toBe('#1F7A1F');
55
+ });
56
+
57
+ test('emits the text-light modifier for a dark background', () => {
58
+ const { container } = render(
59
+ <SelectDropdownCellRenderer {...createMockProps({ backgroundColor: '#000000' })} />,
60
+ );
61
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
62
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-light');
63
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-dark');
64
+ });
65
+
66
+ test('emits the text-dark modifier for a light background', () => {
67
+ const { container } = render(
68
+ <SelectDropdownCellRenderer {...createMockProps({ backgroundColor: '#FFFFFF' })} />,
69
+ );
70
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
71
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-dark');
72
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--text-light');
73
+ });
74
+
75
+ test('expands 3-digit hex shorthand correctly', () => {
76
+ const { container } = render(
77
+ <SelectDropdownCellRenderer {...createMockProps({ backgroundColor: '#000' })} />,
78
+ );
79
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
80
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-light');
81
+ });
82
+
83
+ test('falls back to the text-dark modifier when the hex is malformed', () => {
84
+ const { container } = render(
85
+ <SelectDropdownCellRenderer {...createMockProps({ backgroundColor: 'not-a-color' })} />,
86
+ );
87
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
88
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--text-dark');
89
+ });
90
+ });
91
+
92
+ describe('fillCell', () => {
93
+ test('does not apply the fill-cell modifier by default', () => {
94
+ const { container } = render(<SelectDropdownCellRenderer {...createMockProps()} />);
95
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
96
+ expect(wrapper).not.toHaveClass('ds-table__select-dropdown--fill-cell');
97
+ });
98
+
99
+ test('applies the fill-cell modifier when true', () => {
100
+ const { container } = render(
101
+ <SelectDropdownCellRenderer {...createMockProps({ fillCell: true })} />,
102
+ );
103
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
104
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--fill-cell');
105
+ });
106
+ });
107
+
108
+ test('applies both modifiers when backgroundColor and fillCell are set together', () => {
109
+ const { container } = render(
110
+ <SelectDropdownCellRenderer
111
+ {...createMockProps({ backgroundColor: '#1F7A1F', fillCell: true })}
112
+ />,
113
+ );
114
+ const wrapper = container.querySelector('.ds-table__select-dropdown');
115
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--custom-bg');
116
+ expect(wrapper).toHaveClass('ds-table__select-dropdown--fill-cell');
117
+ });
118
+ });
@@ -1,4 +1,5 @@
1
1
  import { useState } from 'react';
2
+ import classNames from 'classnames';
2
3
  import type {
3
4
  CellKeyDownEvent,
4
5
  FullWidthCellKeyDownEvent,
@@ -9,9 +10,14 @@ import {
9
10
  type SelectDropdownInputProps,
10
11
  } from 'Components/formField/inputs/selectDropdown/SelectDropdown';
11
12
  import { useComponentDidMount } from 'Utils/hooks/useComponentDidMount';
13
+ import { getTextContrast } from 'Utils/getTextContrast';
12
14
 
13
15
  type SelectDropdownCellRendererProps = CustomCellRendererProps
14
- & SelectDropdownInputProps;
16
+ & SelectDropdownInputProps
17
+ & {
18
+ backgroundColor?: string;
19
+ fillCell?: boolean;
20
+ };
15
21
 
16
22
  type SelectDropdownCellRendererOption = Omit<
17
23
  SelectDropdownInputProps['options'][number],
@@ -36,8 +42,22 @@ export const SelectDropdownCellRenderer = (
36
42
  'aria-describedBy': ariaDescribedBy,
37
43
  'aria-invalid': ariaInvalid,
38
44
  alwaysShowPlaceholder = false,
45
+ backgroundColor,
46
+ fillCell = false,
39
47
  } = props;
40
48
 
49
+ const textContrast = backgroundColor ? getTextContrast(backgroundColor) : null;
50
+
51
+ const wrapperClassName = classNames('ds-table__select-dropdown', {
52
+ 'ds-table__select-dropdown--custom-bg': backgroundColor,
53
+ 'ds-table__select-dropdown--fill-cell': fillCell,
54
+ [`ds-table__select-dropdown--text-${textContrast}`]: textContrast,
55
+ });
56
+
57
+ const wrapperStyle = backgroundColor
58
+ ? { ['--ds-select-cell-bg' as string]: backgroundColor }
59
+ : undefined;
60
+
41
61
  const rawOptions: SelectDropdownCellRendererOption[] = options;
42
62
  const normalisedOptions: SelectDropdownInputProps['options'] = rawOptions.map(option => ({
43
63
  ...option,
@@ -70,7 +90,7 @@ export const SelectDropdownCellRenderer = (
70
90
  });
71
91
 
72
92
  return (
73
- <div className="ds-table__select-dropdown">
93
+ <div className={wrapperClassName} style={wrapperStyle}>
74
94
  <SelectDropdown
75
95
  disabled={disabled}
76
96
  hasError={hasError}
@@ -14,6 +14,33 @@
14
14
  width: 100%;
15
15
  }
16
16
 
17
+ &__select-dropdown {
18
+ &--fill-cell {
19
+ display: flex;
20
+ width: 100%;
21
+ height: 100%;
22
+
23
+ .ds-button--dropdown {
24
+ flex: 1;
25
+ width: 100%;
26
+ height: 100%;
27
+ border-radius: 0;
28
+ }
29
+ }
30
+
31
+ &--custom-bg .ds-button--dropdown {
32
+ background: var(--ds-select-cell-bg);
33
+ }
34
+
35
+ &--text-dark .ds-button--dropdown {
36
+ color: var(--color-grey-900);
37
+ }
38
+
39
+ &--text-light .ds-button--dropdown {
40
+ color: var(--color-mono-white);
41
+ }
42
+ }
43
+
17
44
  &__container {
18
45
  *[class^='ag-'], *[class*=' ag-'] {
19
46
  // AG-Grid gives these a z-index of 2 which interferes with our stacking elements
@@ -0,0 +1,82 @@
1
+ import { getTextContrast } from 'Utils/getTextContrast';
2
+ import { describe, expect, test } from 'vitest';
3
+
4
+ describe('getTextContrast', () => {
5
+ test('returns "light" for pure black', () => {
6
+ expect(getTextContrast('#000000')).toBe('light');
7
+ });
8
+
9
+ test('returns "dark" for pure white', () => {
10
+ expect(getTextContrast('#FFFFFF')).toBe('dark');
11
+ });
12
+
13
+ test('returns "dark" at the threshold (YIQ === 128)', () => {
14
+ // #808080 → YIQ exactly 128; the comparison is `>=` so it counts as light bg.
15
+ expect(getTextContrast('#808080')).toBe('dark');
16
+ });
17
+
18
+ test('returns "light" just below the threshold (YIQ === 127)', () => {
19
+ expect(getTextContrast('#7F7F7F')).toBe('light');
20
+ });
21
+
22
+ test('weights green more heavily than red or blue', () => {
23
+ // Pure green (#00FF00) has high YIQ (≈ 150) → dark text reads better.
24
+ expect(getTextContrast('#00FF00')).toBe('dark');
25
+ // Pure red (#FF0000) has YIQ ≈ 76 → light text reads better.
26
+ expect(getTextContrast('#FF0000')).toBe('light');
27
+ // Pure blue (#0000FF) has YIQ ≈ 29 → light text reads better.
28
+ expect(getTextContrast('#0000FF')).toBe('light');
29
+ });
30
+
31
+ test('handles real-world status colours', () => {
32
+ expect(getTextContrast('#1F7A1F')).toBe('light'); // dark green
33
+ expect(getTextContrast('#B91C1C')).toBe('light'); // dark red
34
+ expect(getTextContrast('#FFE68A')).toBe('dark'); // pale yellow
35
+ });
36
+
37
+ describe('input parsing', () => {
38
+ test('expands 3-digit hex shorthand', () => {
39
+ expect(getTextContrast('#000')).toBe('light');
40
+ expect(getTextContrast('#fff')).toBe('dark');
41
+ expect(getTextContrast('#abc')).toBe('dark'); // #aabbcc → YIQ ≈ 184
42
+ });
43
+
44
+ test('accepts hex without a leading "#"', () => {
45
+ expect(getTextContrast('000000')).toBe('light');
46
+ expect(getTextContrast('ffffff')).toBe('dark');
47
+ });
48
+
49
+ test('is case-insensitive', () => {
50
+ expect(getTextContrast('#abcdef')).toBe(getTextContrast('#ABCDEF'));
51
+ });
52
+
53
+ test('trims surrounding whitespace', () => {
54
+ expect(getTextContrast(' #000000 ')).toBe('light');
55
+ });
56
+ });
57
+
58
+ describe('invalid input', () => {
59
+ test('falls back to "dark" for non-hex characters', () => {
60
+ expect(getTextContrast('#zzzzzz')).toBe('dark');
61
+ });
62
+
63
+ test('falls back to "dark" for malformed length', () => {
64
+ expect(getTextContrast('#12345')).toBe('dark'); // 5 chars
65
+ expect(getTextContrast('#1234567')).toBe('dark'); // 7 chars
66
+ });
67
+
68
+ test('falls back to "dark" for empty string', () => {
69
+ expect(getTextContrast('')).toBe('dark');
70
+ });
71
+
72
+ test('falls back to "dark" for CSS keyword colours', () => {
73
+ expect(getTextContrast('red')).toBe('dark');
74
+ expect(getTextContrast('rebeccapurple')).toBe('dark');
75
+ });
76
+
77
+ test('falls back to "dark" for rgb()/hsl() notation', () => {
78
+ expect(getTextContrast('rgb(0, 0, 0)')).toBe('dark');
79
+ expect(getTextContrast('hsl(0, 0%, 0%)')).toBe('dark');
80
+ });
81
+ });
82
+ });
@@ -0,0 +1,14 @@
1
+ type TextContrast = 'dark' | 'light';
2
+
3
+ export const getTextContrast = (color: string): TextContrast => {
4
+ const CONTRAST_THRESHOLD = 128;
5
+
6
+ let hex = color.trim().replace('#', '');
7
+ if (hex.length === 3) hex = hex.split('').map(c => c + c).join('');
8
+ if (hex.length !== 6 || /[^0-9a-f]/i.test(hex)) return 'dark';
9
+ const r = parseInt(hex.slice(0, 2), 16);
10
+ const g = parseInt(hex.slice(2, 4), 16);
11
+ const b = parseInt(hex.slice(4, 6), 16);
12
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
13
+ return yiq >= CONTRAST_THRESHOLD ? 'dark' : 'light';
14
+ };