@economic/taco 2.14.0 → 2.14.2

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.
@@ -5,7 +5,7 @@ export declare type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {
5
5
  children: React.ReactNode;
6
6
  /** Changes the style to indicate the element is disabled */
7
7
  disabled?: boolean;
8
- error?: boolean;
8
+ invalid?: boolean;
9
9
  warning?: boolean;
10
10
  /**
11
11
  * Text displayed below the children of Field.
@@ -18,7 +18,7 @@ export declare const Field: React.ForwardRefExoticComponent<React.LabelHTMLAttri
18
18
  children: React.ReactNode;
19
19
  /** Changes the style to indicate the element is disabled */
20
20
  disabled?: boolean | undefined;
21
- error?: boolean | undefined;
21
+ invalid?: boolean | undefined;
22
22
  warning?: boolean | undefined;
23
23
  /**
24
24
  * Text displayed below the children of Field.
@@ -860,7 +860,7 @@
860
860
  }
861
861
 
862
862
  [data-font-size='small'] [role='cell'][data-editable] {
863
- @apply px-[calc(var(--table3-cell-padding-x)_-_7px)];
863
+ @apply px-[calc(var(--table3-cell-padding-x)_-_6px)];
864
864
  }
865
865
 
866
866
  [data-font-size='small'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -890,7 +890,7 @@
890
890
  }
891
891
 
892
892
  [data-font-size='medium'] [role='cell'][data-editable] {
893
- @apply px-[calc(var(--table3-cell-padding-x)_-_9px)];
893
+ @apply px-[calc(var(--table3-cell-padding-x)_-_8px)];
894
894
  }
895
895
 
896
896
  [data-font-size='medium'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -934,7 +934,7 @@
934
934
  }
935
935
 
936
936
  [data-font-size='large'] [role='cell'][data-editable] {
937
- @apply px-[calc(var(--table3-cell-padding-x)_-_11px)];
937
+ @apply px-[calc(var(--table3-cell-padding-x)_-_10px)];
938
938
  }
939
939
 
940
940
  [data-font-size='large'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -943,3 +943,9 @@
943
943
  [data-font-size='large'] [role='cell'][data-editable] [data-taco='switch-container'] {
944
944
  @apply !mx-[calc(var(--table3-cell-padding-x)_-_5px)] !mt-px;
945
945
  }
946
+
947
+ /* Icon inside column header button uses em values therefore text-sm is required to prevent icon
948
+ from overflowing button's boundaries */
949
+ [data-font-size='large'] [role='columnheader'] button {
950
+ @apply !text-sm;
951
+ }
@@ -5,7 +5,7 @@ const Field = /*#__PURE__*/forwardRef(function Field(props, ref) {
5
5
  const {
6
6
  disabled,
7
7
  children,
8
- error = false,
8
+ invalid = false,
9
9
  warning = false,
10
10
  message,
11
11
  ...otherProps
@@ -14,9 +14,9 @@ const Field = /*#__PURE__*/forwardRef(function Field(props, ref) {
14
14
  'text-grey-300': disabled
15
15
  }, props.className);
16
16
  const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {
17
- 'text-grey-700': !error && !warning,
18
- 'text-red-500': error,
19
- 'text-yellow-700': warning && !error,
17
+ 'text-grey-700': !invalid && !warning,
18
+ 'text-red-500': invalid,
19
+ 'text-yellow-700': warning && !invalid,
20
20
  'opacity-50': disabled
21
21
  });
22
22
  return /*#__PURE__*/createElement("label", Object.assign({}, otherProps, {
@@ -25,7 +25,7 @@ const Field = /*#__PURE__*/forwardRef(function Field(props, ref) {
25
25
  ref: ref
26
26
  }), children, message && /*#__PURE__*/createElement("span", {
27
27
  className: messageClassName,
28
- role: error ? 'alert' : undefined
28
+ role: invalid ? 'alert' : undefined
29
29
  }, message));
30
30
  });
31
31
 
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../../../../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\n\nimport './Field.css';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an error state */\n error?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const { disabled, children, error = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-grey-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-grey-700': !error && !warning,\n 'text-red-500': error,\n 'text-yellow-700': warning && !error,\n 'opacity-50': disabled,\n });\n\n return (\n <label {...otherProps} className={className} data-taco=\"label\" ref={ref}>\n {children}\n {message && (\n <span className={messageClassName} role={error ? 'alert' : undefined}>\n {message}\n </span>\n )}\n </label>\n );\n});\n"],"names":["Field","React","props","ref","disabled","children","error","warning","message","otherProps","className","cn","messageClassName","role","undefined"],"mappings":";;;MAqBaA,KAAK,gBAAGC,UAAgB,CAAC,SAASD,KAAKA,CAACE,KAAiB,EAAEC,GAAgC;EACpG,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,KAAK,GAAG,KAAK;IAAEC,OAAO,GAAG,KAAK;IAAEC,OAAO;IAAE,GAAGC;GAAY,GAAGP,KAAK;EAC5F,MAAMQ,SAAS,GAAGC,EAAE,CAChB,8EAA8E,EAC9E;IACI,eAAe,EAAEP;GACpB,EACDF,KAAK,CAACQ,SAAS,CAClB;EACD,MAAME,gBAAgB,GAAGD,EAAE,CAAC,iEAAiE,EAAE;IAC3F,eAAe,EAAE,CAACL,KAAK,IAAI,CAACC,OAAO;IACnC,cAAc,EAAED,KAAK;IACrB,iBAAiB,EAAEC,OAAO,IAAI,CAACD,KAAK;IACpC,YAAY,EAAEF;GACjB,CAAC;EAEF,oBACIH,yCAAWQ,UAAU;IAAEC,SAAS,EAAEA,SAAS;iBAAY,OAAO;IAACP,GAAG,EAAEA;MAC/DE,QAAQ,EACRG,OAAO,iBACJP;IAAMS,SAAS,EAAEE,gBAAgB;IAAEC,IAAI,EAAEP,KAAK,GAAG,OAAO,GAAGQ;KACtDN,OAAO,CAEf,CACG;AAEhB,CAAC;;;;"}
1
+ {"version":3,"file":"Field.js","sources":["../../../../../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\n\nimport './Field.css';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-grey-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-grey-700': !invalid && !warning,\n 'text-red-500': invalid,\n 'text-yellow-700': warning && !invalid,\n 'opacity-50': disabled,\n });\n\n return (\n <label {...otherProps} className={className} data-taco=\"label\" ref={ref}>\n {children}\n {message && (\n <span className={messageClassName} role={invalid ? 'alert' : undefined}>\n {message}\n </span>\n )}\n </label>\n );\n});\n"],"names":["Field","React","props","ref","disabled","children","invalid","warning","message","otherProps","className","cn","messageClassName","role","undefined"],"mappings":";;;MAqBaA,KAAK,gBAAGC,UAAgB,CAAC,SAASD,KAAKA,CAACE,KAAiB,EAAEC,GAAgC;EACpG,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,OAAO,GAAG,KAAK;IAAEC,OAAO,GAAG,KAAK;IAAEC,OAAO;IAAE,GAAGC;GAAY,GAAGP,KAAK;EAC9F,MAAMQ,SAAS,GAAGC,EAAE,CAChB,8EAA8E,EAC9E;IACI,eAAe,EAAEP;GACpB,EACDF,KAAK,CAACQ,SAAS,CAClB;EACD,MAAME,gBAAgB,GAAGD,EAAE,CAAC,iEAAiE,EAAE;IAC3F,eAAe,EAAE,CAACL,OAAO,IAAI,CAACC,OAAO;IACrC,cAAc,EAAED,OAAO;IACvB,iBAAiB,EAAEC,OAAO,IAAI,CAACD,OAAO;IACtC,YAAY,EAAEF;GACjB,CAAC;EAEF,oBACIH,yCAAWQ,UAAU;IAAEC,SAAS,EAAEA,SAAS;iBAAY,OAAO;IAACP,GAAG,EAAEA;MAC/DE,QAAQ,EACRG,OAAO,iBACJP;IAAMS,SAAS,EAAEE,gBAAgB;IAAEC,IAAI,EAAEP,OAAO,GAAG,OAAO,GAAGQ;KACxDN,OAAO,CAEf,CACG;AAEhB,CAAC;;;;"}
@@ -136,7 +136,7 @@ const EditPopover = props => {
136
136
  className: cn('!min-h-fit', {
137
137
  '!pb-0': !validationError
138
138
  }),
139
- error: !!validationError,
139
+ invalid: !!validationError,
140
140
  message: validationError === null || validationError === void 0 ? void 0 : validationError.message
141
141
  }, /*#__PURE__*/React__default.createElement(Input, {
142
142
  invalid: !!validationError,
@@ -1 +1 @@
1
- {"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n // Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.\n if (event.key === 'Escape' || event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const popoverContentKeyDown = event => {\n // Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,\n // to avoid 'Tab' key execution on Option component and closing the dropdown.\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps}>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n onKeyDown={popoverContentKeyDown}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n error={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","Promise","resolve","e","reject","handleDelete","_temp","then","_temp2","_catch","error","_ref$current","preventDefault","current","focus","_temp3","handleCloseAutoFocus","_searchRef$current","_selectRef$current","handleInteractOutside","preventKeyDownPropagation","shiftKey","popoverContentKeyDown","Popover","Content","onCloseAutoFocus","onInteractOutside","onClick","onKeyDown","placement","tabIndex","className","Field","cn","message","Input","invalid","onChange","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","AVAILABLE_COLORS","map","availableColor","getSubtleColorShadeClasses","onFocus","asChild"],"mappings":"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"}
1
+ {"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n // Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.\n if (event.key === 'Escape' || event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const popoverContentKeyDown = event => {\n // Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,\n // to avoid 'Tab' key execution on Option component and closing the dropdown.\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps}>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n onKeyDown={popoverContentKeyDown}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","Promise","resolve","e","reject","handleDelete","_temp","then","_temp2","_catch","error","_ref$current","preventDefault","current","focus","_temp3","handleCloseAutoFocus","_searchRef$current","_selectRef$current","handleInteractOutside","preventKeyDownPropagation","shiftKey","popoverContentKeyDown","Popover","Content","onCloseAutoFocus","onInteractOutside","onClick","onKeyDown","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","AVAILABLE_COLORS","map","availableColor","getSubtleColorShadeClasses","onFocus","asChild"],"mappings":"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"}
@@ -46,7 +46,7 @@ const Search = /*#__PURE__*/React__default.forwardRef(function ListboxSearch(pro
46
46
  className: cn('mx-1.5 mb-1.5 !min-h-fit ', {
47
47
  '!pb-0': !validationError
48
48
  }),
49
- error: !!validationError,
49
+ invalid: !!validationError,
50
50
  message: validationError === null || validationError === void 0 ? void 0 : validationError.message
51
51
  }, /*#__PURE__*/React__default.createElement(Input, Object.assign({}, otherProps, {
52
52
  "aria-hidden": true,
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Select2/components/Search.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Input, InputProps } from '../../Input/Input';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { isAriaSelectionKey } from '../../../utils/aria';\n\nexport type Select2SearchProps = InputProps & {};\n\nexport const Search = React.forwardRef<HTMLInputElement, Select2SearchProps>(function ListboxSearch(props, ref) {\n const { ...otherProps } = props;\n const { listboxRef, searchQuery, setSearchQuery, setValidationError, validationError, setOpen } = useSelect2Context();\n\n const handleChange = event => {\n if (validationError) {\n setValidationError(undefined);\n }\n\n setSearchQuery(event.target.value);\n };\n\n const handleKeyDown = event => {\n // space is an aria selection key, so we have to remove it to allow spaces\n if (event.key === ' ') {\n return;\n }\n\n // Select2 should close dropdown and receive focus, when user press Tab while searching (UX requirement to support better keyboard navigation)\n if (event.key === 'Tab') {\n setOpen(false);\n return;\n }\n\n if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n // forward navigation events onto the underlying collection - we want arrow keys to work from inside the filter input\n listboxRef?.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n return;\n }\n };\n\n return (\n <Field\n className={cn('mx-1.5 mb-1.5 !min-h-fit ', { '!pb-0': !validationError })}\n error={!!validationError}\n message={validationError?.message}>\n <Input\n {...otherProps}\n aria-hidden\n autoFocus\n invalid={!!validationError}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={ref}\n value={searchQuery}\n />\n </Field>\n );\n});\n"],"names":["Search","React","forwardRef","ListboxSearch","props","ref","otherProps","listboxRef","searchQuery","setSearchQuery","setValidationError","validationError","setOpen","useSelect2Context","handleChange","event","undefined","target","value","handleKeyDown","key","isAriaSelectionKey","_listboxRef$current","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","Field","className","cn","error","message","Input","autoFocus","invalid","onChange","onKeyDown"],"mappings":";;;;;;;;MAUaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAuC,SAASC,aAAaA,CAACC,KAAK,EAAEC,GAAG;EAC1G,MAAM;IAAE,GAAGC;GAAY,GAAGF,KAAK;EAC/B,MAAM;IAAEG,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC,eAAe;IAAEC;GAAS,GAAGC,iBAAiB,EAAE;EAErH,MAAMC,YAAY,GAAGC,KAAK;IACtB,IAAIJ,eAAe,EAAE;MACjBD,kBAAkB,CAACM,SAAS,CAAC;;IAGjCP,cAAc,CAACM,KAAK,CAACE,MAAM,CAACC,KAAK,CAAC;GACrC;EAED,MAAMC,aAAa,GAAGJ,KAAK;;IAEvB,IAAIA,KAAK,CAACK,GAAG,KAAK,GAAG,EAAE;MACnB;;;IAIJ,IAAIL,KAAK,CAACK,GAAG,KAAK,KAAK,EAAE;MACrBR,OAAO,CAAC,KAAK,CAAC;MACd;;IAGJ,IAAIS,kBAAkB,CAACN,KAAK,CAAC,IAAIA,KAAK,CAACK,GAAG,KAAK,WAAW,IAAIL,KAAK,CAACK,GAAG,KAAK,SAAS,EAAE;MAAA,IAAAE,mBAAA;MACnFP,KAAK,CAACQ,cAAc,EAAE;;MAEtBhB,UAAU,aAAVA,UAAU,wBAAAe,mBAAA,GAAVf,UAAU,CAAEiB,OAAO,cAAAF,mBAAA,uBAAnBA,mBAAA,CAAqBG,aAAa,CAACC,yBAAyB,CAACX,KAA8C,CAAC,CAAC;MAC7G;;GAEP;EAED,oBACId,6BAAC0B,KAAK;IACFC,SAAS,EAAEC,EAAE,CAAC,2BAA2B,EAAE;MAAE,OAAO,EAAE,CAAClB;KAAiB,CAAC;IACzEmB,KAAK,EAAE,CAAC,CAACnB,eAAe;IACxBoB,OAAO,EAAEpB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEoB;kBAC1B9B,6BAAC+B,KAAK,oBACE1B,UAAU;;IAEd2B,SAAS;IACTC,OAAO,EAAE,CAAC,CAACvB,eAAe;IAC1BwB,QAAQ,EAAErB,YAAY;IACtBsB,SAAS,EAAEjB,aAAa;IACxBd,GAAG,EAAEA,GAAG;IACRa,KAAK,EAAEV;KACT,CACE;AAEhB,CAAC;;;;"}
1
+ {"version":3,"file":"Search.js","sources":["../../../../../../../../src/components/Select2/components/Search.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\nimport { Input, InputProps } from '../../Input/Input';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { isAriaSelectionKey } from '../../../utils/aria';\n\nexport type Select2SearchProps = InputProps & {};\n\nexport const Search = React.forwardRef<HTMLInputElement, Select2SearchProps>(function ListboxSearch(props, ref) {\n const { ...otherProps } = props;\n const { listboxRef, searchQuery, setSearchQuery, setValidationError, validationError, setOpen } = useSelect2Context();\n\n const handleChange = event => {\n if (validationError) {\n setValidationError(undefined);\n }\n\n setSearchQuery(event.target.value);\n };\n\n const handleKeyDown = event => {\n // space is an aria selection key, so we have to remove it to allow spaces\n if (event.key === ' ') {\n return;\n }\n\n // Select2 should close dropdown and receive focus, when user press Tab while searching (UX requirement to support better keyboard navigation)\n if (event.key === 'Tab') {\n setOpen(false);\n return;\n }\n\n if (isAriaSelectionKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n // forward navigation events onto the underlying collection - we want arrow keys to work from inside the filter input\n listboxRef?.current?.dispatchEvent(createCustomKeyboardEvent(event as React.KeyboardEvent<HTMLInputElement>));\n return;\n }\n };\n\n return (\n <Field\n className={cn('mx-1.5 mb-1.5 !min-h-fit ', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n {...otherProps}\n aria-hidden\n autoFocus\n invalid={!!validationError}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={ref}\n value={searchQuery}\n />\n </Field>\n );\n});\n"],"names":["Search","React","forwardRef","ListboxSearch","props","ref","otherProps","listboxRef","searchQuery","setSearchQuery","setValidationError","validationError","setOpen","useSelect2Context","handleChange","event","undefined","target","value","handleKeyDown","key","isAriaSelectionKey","_listboxRef$current","preventDefault","current","dispatchEvent","createCustomKeyboardEvent","Field","className","cn","invalid","message","Input","autoFocus","onChange","onKeyDown"],"mappings":";;;;;;;;MAUaA,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAuC,SAASC,aAAaA,CAACC,KAAK,EAAEC,GAAG;EAC1G,MAAM;IAAE,GAAGC;GAAY,GAAGF,KAAK;EAC/B,MAAM;IAAEG,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEC,eAAe;IAAEC;GAAS,GAAGC,iBAAiB,EAAE;EAErH,MAAMC,YAAY,GAAGC,KAAK;IACtB,IAAIJ,eAAe,EAAE;MACjBD,kBAAkB,CAACM,SAAS,CAAC;;IAGjCP,cAAc,CAACM,KAAK,CAACE,MAAM,CAACC,KAAK,CAAC;GACrC;EAED,MAAMC,aAAa,GAAGJ,KAAK;;IAEvB,IAAIA,KAAK,CAACK,GAAG,KAAK,GAAG,EAAE;MACnB;;;IAIJ,IAAIL,KAAK,CAACK,GAAG,KAAK,KAAK,EAAE;MACrBR,OAAO,CAAC,KAAK,CAAC;MACd;;IAGJ,IAAIS,kBAAkB,CAACN,KAAK,CAAC,IAAIA,KAAK,CAACK,GAAG,KAAK,WAAW,IAAIL,KAAK,CAACK,GAAG,KAAK,SAAS,EAAE;MAAA,IAAAE,mBAAA;MACnFP,KAAK,CAACQ,cAAc,EAAE;;MAEtBhB,UAAU,aAAVA,UAAU,wBAAAe,mBAAA,GAAVf,UAAU,CAAEiB,OAAO,cAAAF,mBAAA,uBAAnBA,mBAAA,CAAqBG,aAAa,CAACC,yBAAyB,CAACX,KAA8C,CAAC,CAAC;MAC7G;;GAEP;EAED,oBACId,6BAAC0B,KAAK;IACFC,SAAS,EAAEC,EAAE,CAAC,2BAA2B,EAAE;MAAE,OAAO,EAAE,CAAClB;KAAiB,CAAC;IACzEmB,OAAO,EAAE,CAAC,CAACnB,eAAe;IAC1BoB,OAAO,EAAEpB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEoB;kBAC1B9B,6BAAC+B,KAAK,oBACE1B,UAAU;;IAEd2B,SAAS;IACTH,OAAO,EAAE,CAAC,CAACnB,eAAe;IAC1BuB,QAAQ,EAAEpB,YAAY;IACtBqB,SAAS,EAAEhB,aAAa;IACxBd,GAAG,EAAEA,GAAG;IACRa,KAAK,EAAEV;KACT,CACE;AAEhB,CAAC;;;;"}
@@ -5,7 +5,6 @@ import { useLocalization } from '../../../../Provider/Localization.js';
5
5
  import { Menu as Menu$1 } from '../../../../Menu/Menu.js';
6
6
  import { _finallyRethrows, _catch } from '../../../../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js';
7
7
  import { GotoPopover } from './Goto.js';
8
- import { FONT_SIZE } from '../../toolbar/FontSize.js';
9
8
  import { SORT_DIRECTION } from './Header.js';
10
9
  import { isInternalColumn } from '../../../util/columns.js';
11
10
 
@@ -44,7 +43,6 @@ function Menu(props) {
44
43
  } = useLocalization();
45
44
  const [popover, setPopover] = React__default.useState(undefined);
46
45
  const [sortDirectionState, setSortDirectionState] = React__default.useState(sortDirection);
47
- const isFontSizeLarge = tableMeta.fontSize.size === FONT_SIZE.large;
48
46
  const handleSortMenuRadioGroupChange = newSortDirection => {
49
47
  setSortDirectionState(newSortDirection);
50
48
  handleSortToggle(newSortDirection);
@@ -87,10 +85,7 @@ function Menu(props) {
87
85
  }
88
86
  }
89
87
  const className = cn('-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] flex-shrink-0 justify-end !w-0 !min-w-0 !overflow-hidden', 'aria-expanded:!min-w-[theme(spacing.6)] aria-expanded:!w-6 aria-expanded:!overflow-auto', 'focus:!min-w-[theme(spacing.6)] focus:!w-6 focus:!overflow-auto', 'group-hover/column:!min-w-[theme(spacing.6)] group-hover/column:!w-6 group-hover/column:!overflow-auto', {
90
- '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement,
91
- // Icon inside button uses em values therefore text-sm is required to prevent icon from overflowing
92
- // button's boundaries
93
- '!text-sm': isFontSizeLarge
88
+ '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement
94
89
  }, props.className);
95
90
  const memoedMenuItems = React__default.useMemo(() => {
96
91
  const menuItems = [];
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../Menu/Menu';\nimport { isInternalColumn } from '../../../util/columns';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3ColumnHeaderMenu, TableStrategy } from '../../../types';\nimport { GotoPopover } from './Goto';\nimport { HeaderSortDirection, SORT_DIRECTION, SortToggleHandler } from './Header';\nimport { RadioGroupItemValue } from '../../../../RadioGroup/RadioGroup';\nimport { FONT_SIZE } from '../../toolbar/FontSize';\n\nexport function isGotoAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>) {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return !!(tableMeta.rowGoto.isEnabled && header.column.getCanSort() && header.column.getIsSorted());\n}\n\nexport function isMenuAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>): boolean {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return (\n !!header.column.columnDef.meta?.menu ||\n !!tableMeta.columnFreezing.isEnabled ||\n (!!table.options.enableHiding && !!header.column.getCanHide()) ||\n isGotoAvailable(table, header)\n );\n}\n\nexport type MenuProps<TType = unknown> = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFreeze: boolean;\n canHide: boolean;\n canSort: boolean;\n index: number;\n menu?: Table3ColumnHeaderMenu;\n onGoto?: (query: string) => Promise<number>;\n onHide: (event: unknown) => void;\n onSortToggle: SortToggleHandler;\n scrollToIndex: TableStrategy['scrollToIndex'];\n sortDirection: HeaderSortDirection;\n table: RTable<TType>;\n};\n\nexport function Menu<TType = unknown>(props: MenuProps<TType>) {\n const {\n canFreeze,\n canHide,\n canSort,\n index,\n menu,\n onGoto: handleGoto,\n onHide: handleHide,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n sortDirection,\n table,\n } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n const [sortDirectionState, setSortDirectionState] = React.useState<HeaderSortDirection>(sortDirection);\n\n const isFontSizeLarge = tableMeta.fontSize.size === FONT_SIZE.large;\n\n const handleSortMenuRadioGroupChange = (newSortDirection: RadioGroupItemValue) => {\n setSortDirectionState(newSortDirection as HeaderSortDirection);\n handleSortToggle(newSortDirection as HeaderSortDirection);\n };\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n tableMeta.currentRow.setCurrentRowIndex(index);\n scrollToIndex(index + 2, { align: 'center' });\n } catch {\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] flex-shrink-0 justify-end !w-0 !min-w-0 !overflow-hidden',\n 'aria-expanded:!min-w-[theme(spacing.6)] aria-expanded:!w-6 aria-expanded:!overflow-auto',\n 'focus:!min-w-[theme(spacing.6)] focus:!w-6 focus:!overflow-auto',\n 'group-hover/column:!min-w-[theme(spacing.6)] group-hover/column:!w-6 group-hover/column:!overflow-auto',\n {\n '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement,\n // Icon inside button uses em values therefore text-sm is required to prevent icon from overflowing\n // button's boundaries\n '!text-sm': isFontSizeLarge,\n },\n props.className\n );\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table3.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n // We rely on canSort value instead of onSort function's value because some columns might have sorting disabled,\n // so even though onSort is truthy, we don't want to show sorting menu.\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortMenuRadioGroupChange} value={sortDirectionState}>\n <MenuPrimitive.RadioGroup.Item value={SORT_DIRECTION.ASC}>\n {texts.table3.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={SORT_DIRECTION.DESC}>\n {texts.table3.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table3.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table3.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (handleGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table3.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canFreeze) {\n const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;\n const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={handleClick}>\n {frozenIndex === 0\n ? texts.table3.columns.menu.freezeFirstColumn\n : texts.table3.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(frozenIndex + 1))}\n </MenuPrimitive.Item>\n );\n\n if (tableMeta.columnFreezing.frozenColumnIndex !== undefined) {\n const handleClick = () => {\n tableMeta.columnFreezing.setFrozenColumnIndex(undefined);\n };\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={handleClick}>\n {texts.table3.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n }\n\n if (menu) {\n const customMenu = menu({ trigger: undefined });\n const customItems = React.Children.toArray(customMenu.props.children.props.children) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n menu,\n index,\n canFreeze,\n canHide,\n canSort,\n handleGoto,\n handleSortToggle,\n sortDirection,\n tableMeta.columnFreezing.frozenColumnIndex,\n ]);\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n />\n );\n}\n"],"names":["isGotoAvailable","table","header","isInternalColumn","id","tableMeta","options","meta","rowGoto","isEnabled","column","getCanSort","getIsSorted","isMenuAvailable","_header$column$column","columnDef","menu","columnFreezing","enableHiding","getCanHide","Menu","props","canFreeze","canHide","canSort","index","onGoto","handleGoto","onHide","handleHide","onSortToggle","handleSortToggle","scrollToIndex","sortDirection","texts","useLocalization","popover","setPopover","React","useState","undefined","sortDirectionState","setSortDirectionState","isFontSizeLarge","fontSize","size","FONT_SIZE","large","handleSortMenuRadioGroupChange","newSortDirection","popoverElement","handleClosePopover","goto","query","Promise","resolve","then","currentRow","setCurrentRowIndex","align","_wasThrown","_result","_temp","e","reject","GotoPopover","open","onChange","className","cn","memoedMenuItems","useMemo","menuItems","handleClick","event","setTimeout","push","MenuPrimitive","Item","icon","onClick","table3","columns","hideColumn","subMenu","SubMenu","RadioGroup","value","SORT_DIRECTION","ASC","sortingOrder","ascending","DESC","descending","unsorted","sorting","shortcut","gotoRow","frozenIndex","frozenInternalColumnCount","setFrozenColumnIndex","freezeFirstColumn","freezeUptoColumn","replace","String","frozenColumnIndex","unfreezeColumns","customMenu","trigger","customItems","Children","toArray","children","length","Separator","map","item","key","cloneElement","IconButton","menuProps","Content","onClickCapture","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../Menu/Menu';\nimport { isInternalColumn } from '../../../util/columns';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3ColumnHeaderMenu, TableStrategy } from '../../../types';\nimport { GotoPopover } from './Goto';\nimport { HeaderSortDirection, SORT_DIRECTION, SortToggleHandler } from './Header';\nimport { RadioGroupItemValue } from '../../../../RadioGroup/RadioGroup';\n\nexport function isGotoAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>) {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return !!(tableMeta.rowGoto.isEnabled && header.column.getCanSort() && header.column.getIsSorted());\n}\n\nexport function isMenuAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>): boolean {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return (\n !!header.column.columnDef.meta?.menu ||\n !!tableMeta.columnFreezing.isEnabled ||\n (!!table.options.enableHiding && !!header.column.getCanHide()) ||\n isGotoAvailable(table, header)\n );\n}\n\nexport type MenuProps<TType = unknown> = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFreeze: boolean;\n canHide: boolean;\n canSort: boolean;\n index: number;\n menu?: Table3ColumnHeaderMenu;\n onGoto?: (query: string) => Promise<number>;\n onHide: (event: unknown) => void;\n onSortToggle: SortToggleHandler;\n scrollToIndex: TableStrategy['scrollToIndex'];\n sortDirection: HeaderSortDirection;\n table: RTable<TType>;\n};\n\nexport function Menu<TType = unknown>(props: MenuProps<TType>) {\n const {\n canFreeze,\n canHide,\n canSort,\n index,\n menu,\n onGoto: handleGoto,\n onHide: handleHide,\n onSortToggle: handleSortToggle,\n scrollToIndex,\n sortDirection,\n table,\n } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n const [sortDirectionState, setSortDirectionState] = React.useState<HeaderSortDirection>(sortDirection);\n\n const handleSortMenuRadioGroupChange = (newSortDirection: RadioGroupItemValue) => {\n setSortDirectionState(newSortDirection as HeaderSortDirection);\n handleSortToggle(newSortDirection as HeaderSortDirection);\n };\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n tableMeta.currentRow.setCurrentRowIndex(index);\n scrollToIndex(index + 2, { align: 'center' });\n } catch {\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] flex-shrink-0 justify-end !w-0 !min-w-0 !overflow-hidden',\n 'aria-expanded:!min-w-[theme(spacing.6)] aria-expanded:!w-6 aria-expanded:!overflow-auto',\n 'focus:!min-w-[theme(spacing.6)] focus:!w-6 focus:!overflow-auto',\n 'group-hover/column:!min-w-[theme(spacing.6)] group-hover/column:!w-6 group-hover/column:!overflow-auto',\n {\n '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement,\n },\n props.className\n );\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (canHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"eye-off\" onClick={handleClick}>\n {texts.table3.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n // We rely on canSort value instead of onSort function's value because some columns might have sorting disabled,\n // so even though onSort is truthy, we don't want to show sorting menu.\n if (canSort) {\n menuItems.push(\n <MenuPrimitive.Item\n icon=\"sort-by\"\n subMenu={() => (\n <MenuPrimitive.SubMenu>\n <MenuPrimitive.RadioGroup onChange={handleSortMenuRadioGroupChange} value={sortDirectionState}>\n <MenuPrimitive.RadioGroup.Item value={SORT_DIRECTION.ASC}>\n {texts.table3.columns.menu.sortingOrder.ascending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={SORT_DIRECTION.DESC}>\n {texts.table3.columns.menu.sortingOrder.descending}\n </MenuPrimitive.RadioGroup.Item>\n <MenuPrimitive.RadioGroup.Item value={false}>\n {texts.table3.columns.menu.sortingOrder.unsorted}\n </MenuPrimitive.RadioGroup.Item>\n </MenuPrimitive.RadioGroup>\n </MenuPrimitive.SubMenu>\n )}>\n {texts.table3.columns.menu.sorting}\n </MenuPrimitive.Item>\n );\n }\n\n if (handleGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table3.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canFreeze) {\n const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;\n const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={handleClick}>\n {frozenIndex === 0\n ? texts.table3.columns.menu.freezeFirstColumn\n : texts.table3.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(frozenIndex + 1))}\n </MenuPrimitive.Item>\n );\n\n if (tableMeta.columnFreezing.frozenColumnIndex !== undefined) {\n const handleClick = () => {\n tableMeta.columnFreezing.setFrozenColumnIndex(undefined);\n };\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={handleClick}>\n {texts.table3.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n }\n\n if (menu) {\n const customMenu = menu({ trigger: undefined });\n const customItems = React.Children.toArray(customMenu.props.children.props.children) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [\n menu,\n index,\n canFreeze,\n canHide,\n canSort,\n handleGoto,\n handleSortToggle,\n sortDirection,\n tableMeta.columnFreezing.frozenColumnIndex,\n ]);\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n />\n );\n}\n"],"names":["isGotoAvailable","table","header","isInternalColumn","id","tableMeta","options","meta","rowGoto","isEnabled","column","getCanSort","getIsSorted","isMenuAvailable","_header$column$column","columnDef","menu","columnFreezing","enableHiding","getCanHide","Menu","props","canFreeze","canHide","canSort","index","onGoto","handleGoto","onHide","handleHide","onSortToggle","handleSortToggle","scrollToIndex","sortDirection","texts","useLocalization","popover","setPopover","React","useState","undefined","sortDirectionState","setSortDirectionState","handleSortMenuRadioGroupChange","newSortDirection","popoverElement","handleClosePopover","goto","query","Promise","resolve","then","currentRow","setCurrentRowIndex","align","_wasThrown","_result","_temp","e","reject","GotoPopover","open","onChange","className","cn","memoedMenuItems","useMemo","menuItems","handleClick","event","setTimeout","push","MenuPrimitive","Item","icon","onClick","table3","columns","hideColumn","subMenu","SubMenu","RadioGroup","value","SORT_DIRECTION","ASC","sortingOrder","ascending","DESC","descending","unsorted","sorting","shortcut","gotoRow","frozenIndex","frozenInternalColumnCount","setFrozenColumnIndex","freezeFirstColumn","freezeUptoColumn","replace","String","frozenColumnIndex","unfreezeColumns","customMenu","trigger","customItems","Children","toArray","children","length","Separator","map","item","key","cloneElement","IconButton","menuProps","Content","onClickCapture","preventDefault"],"mappings":"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"}
@@ -4,11 +4,11 @@ import { IconButton } from '../../../../IconButton/IconButton.js';
4
4
  import { useLocalization } from '../../../../Provider/Localization.js';
5
5
  import { Shortcut } from '../../../../Shortcut/Shortcut.js';
6
6
  import { Menu } from '../../../../Menu/Menu.js';
7
- import { FONT_SIZE } from '../../toolbar/FontSize.js';
8
7
  import { Header } from '../header/Header.js';
9
8
  import { RowContext } from '../../rows/RowContext.js';
10
9
  import { DisplayCell } from '../cell/DisplayCell.js';
11
10
  import { Footer } from '../footer/Footer.js';
11
+ import { FONT_SIZE } from '../../toolbar/FontSize.js';
12
12
 
13
13
  const COLUMN_ID = '__actions';
14
14
  const MemoedCell = /*#__PURE__*/React__default.memo(function MemoedCell(props) {
package/dist/index.css CHANGED
@@ -860,7 +860,7 @@
860
860
  }
861
861
 
862
862
  [data-font-size='small'] [role='cell'][data-editable] {
863
- @apply px-[calc(var(--table3-cell-padding-x)_-_7px)];
863
+ @apply px-[calc(var(--table3-cell-padding-x)_-_6px)];
864
864
  }
865
865
 
866
866
  [data-font-size='small'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -890,7 +890,7 @@
890
890
  }
891
891
 
892
892
  [data-font-size='medium'] [role='cell'][data-editable] {
893
- @apply px-[calc(var(--table3-cell-padding-x)_-_9px)];
893
+ @apply px-[calc(var(--table3-cell-padding-x)_-_8px)];
894
894
  }
895
895
 
896
896
  [data-font-size='medium'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -934,7 +934,7 @@
934
934
  }
935
935
 
936
936
  [data-font-size='large'] [role='cell'][data-editable] {
937
- @apply px-[calc(var(--table3-cell-padding-x)_-_11px)];
937
+ @apply px-[calc(var(--table3-cell-padding-x)_-_10px)];
938
938
  }
939
939
 
940
940
  [data-font-size='large'] [role='cell'][data-editable] [data-taco='checkbox'],
@@ -943,3 +943,9 @@
943
943
  [data-font-size='large'] [role='cell'][data-editable] [data-taco='switch-container'] {
944
944
  @apply !mx-[calc(var(--table3-cell-padding-x)_-_5px)] !mt-px;
945
945
  }
946
+
947
+ /* Icon inside column header button uses em values therefore text-sm is required to prevent icon
948
+ from overflowing button's boundaries */
949
+ [data-font-size='large'] [role='columnheader'] button {
950
+ @apply !text-sm;
951
+ }
@@ -6788,7 +6788,7 @@ const Field = /*#__PURE__*/React.forwardRef(function Field(props, ref) {
6788
6788
  const {
6789
6789
  disabled,
6790
6790
  children,
6791
- error = false,
6791
+ invalid = false,
6792
6792
  warning = false,
6793
6793
  message,
6794
6794
  ...otherProps
@@ -6797,9 +6797,9 @@ const Field = /*#__PURE__*/React.forwardRef(function Field(props, ref) {
6797
6797
  'text-grey-300': disabled
6798
6798
  }, props.className);
6799
6799
  const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {
6800
- 'text-grey-700': !error && !warning,
6801
- 'text-red-500': error,
6802
- 'text-yellow-700': warning && !error,
6800
+ 'text-grey-700': !invalid && !warning,
6801
+ 'text-red-500': invalid,
6802
+ 'text-yellow-700': warning && !invalid,
6803
6803
  'opacity-50': disabled
6804
6804
  });
6805
6805
  return /*#__PURE__*/React.createElement("label", Object.assign({}, otherProps, {
@@ -6808,7 +6808,7 @@ const Field = /*#__PURE__*/React.forwardRef(function Field(props, ref) {
6808
6808
  ref: ref
6809
6809
  }), children, message && /*#__PURE__*/React.createElement("span", {
6810
6810
  className: messageClassName,
6811
- role: error ? 'alert' : undefined
6811
+ role: invalid ? 'alert' : undefined
6812
6812
  }, message));
6813
6813
  });
6814
6814
 
@@ -9695,7 +9695,7 @@ const EditPopover = props => {
9695
9695
  className: cn('!min-h-fit', {
9696
9696
  '!pb-0': !validationError
9697
9697
  }),
9698
- error: !!validationError,
9698
+ invalid: !!validationError,
9699
9699
  message: validationError === null || validationError === void 0 ? void 0 : validationError.message
9700
9700
  }, /*#__PURE__*/React__default.createElement(Input, {
9701
9701
  invalid: !!validationError,
@@ -10249,7 +10249,7 @@ const Search$1 = /*#__PURE__*/React__default.forwardRef(function ListboxSearch(p
10249
10249
  className: cn('mx-1.5 mb-1.5 !min-h-fit ', {
10250
10250
  '!pb-0': !validationError
10251
10251
  }),
10252
- error: !!validationError,
10252
+ invalid: !!validationError,
10253
10253
  message: validationError === null || validationError === void 0 ? void 0 : validationError.message
10254
10254
  }, /*#__PURE__*/React__default.createElement(Input, Object.assign({}, otherProps, {
10255
10255
  "aria-hidden": true,
@@ -12197,30 +12197,6 @@ function GotoPopover(props) {
12197
12197
  })));
12198
12198
  }
12199
12199
 
12200
- const FONT_SIZE = {
12201
- small: 'small',
12202
- medium: 'medium',
12203
- large: 'large'
12204
- };
12205
- function FontSize$1(props) {
12206
- const {
12207
- texts
12208
- } = useLocalization();
12209
- const meta = props.table.options.meta;
12210
- const handleChange = value => meta.fontSize.setSize(value);
12211
- return /*#__PURE__*/React__default.createElement(Menu$1.SubMenu, null, /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup, {
12212
- onChange: handleChange,
12213
- value: meta.fontSize.size
12214
- }, /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12215
- value: FONT_SIZE.small
12216
- }, texts.table3.fontSize.sizes.small), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12217
- value: FONT_SIZE.medium
12218
- }, texts.table3.fontSize.sizes.medium), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12219
- disabled: meta.rowHeight.height === 'short',
12220
- value: FONT_SIZE.large
12221
- }, texts.table3.fontSize.sizes.large)));
12222
- }
12223
-
12224
12200
  function isGotoAvailable(table, header) {
12225
12201
  if (isInternalColumn(header.id)) {
12226
12202
  return false;
@@ -12256,7 +12232,6 @@ function Menu$3(props) {
12256
12232
  } = useLocalization();
12257
12233
  const [popover, setPopover] = React__default.useState(undefined);
12258
12234
  const [sortDirectionState, setSortDirectionState] = React__default.useState(sortDirection);
12259
- const isFontSizeLarge = tableMeta.fontSize.size === FONT_SIZE.large;
12260
12235
  const handleSortMenuRadioGroupChange = newSortDirection => {
12261
12236
  setSortDirectionState(newSortDirection);
12262
12237
  handleSortToggle(newSortDirection);
@@ -12299,10 +12274,7 @@ function Menu$3(props) {
12299
12274
  }
12300
12275
  }
12301
12276
  const className = cn('-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] flex-shrink-0 justify-end !w-0 !min-w-0 !overflow-hidden', 'aria-expanded:!min-w-[theme(spacing.6)] aria-expanded:!w-6 aria-expanded:!overflow-auto', 'focus:!min-w-[theme(spacing.6)] focus:!w-6 focus:!overflow-auto', 'group-hover/column:!min-w-[theme(spacing.6)] group-hover/column:!w-6 group-hover/column:!overflow-auto', {
12302
- '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement,
12303
- // Icon inside button uses em values therefore text-sm is required to prevent icon from overflowing
12304
- // button's boundaries
12305
- '!text-sm': isFontSizeLarge
12277
+ '!w-6 !min-w-[theme(spacing.6)] !overflow-auto': !!popoverElement
12306
12278
  }, props.className);
12307
12279
  const memoedMenuItems = React__default.useMemo(() => {
12308
12280
  const menuItems = [];
@@ -12797,6 +12769,30 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
12797
12769
  }, meta.footer(table.getRowModel().rows.map(row => row.original[id]))) : null);
12798
12770
  });
12799
12771
 
12772
+ const FONT_SIZE = {
12773
+ small: 'small',
12774
+ medium: 'medium',
12775
+ large: 'large'
12776
+ };
12777
+ function FontSize$1(props) {
12778
+ const {
12779
+ texts
12780
+ } = useLocalization();
12781
+ const meta = props.table.options.meta;
12782
+ const handleChange = value => meta.fontSize.setSize(value);
12783
+ return /*#__PURE__*/React__default.createElement(Menu$1.SubMenu, null, /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup, {
12784
+ onChange: handleChange,
12785
+ value: meta.fontSize.size
12786
+ }, /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12787
+ value: FONT_SIZE.small
12788
+ }, texts.table3.fontSize.sizes.small), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12789
+ value: FONT_SIZE.medium
12790
+ }, texts.table3.fontSize.sizes.medium), /*#__PURE__*/React__default.createElement(Menu$1.RadioGroup.Item, {
12791
+ disabled: meta.rowHeight.height === 'short',
12792
+ value: FONT_SIZE.large
12793
+ }, texts.table3.fontSize.sizes.large)));
12794
+ }
12795
+
12800
12796
  const COLUMN_ID = '__actions';
12801
12797
  const MemoedCell = /*#__PURE__*/React__default.memo(function MemoedCell(props) {
12802
12798
  const {