@deephaven/components 0.46.1-beta.2 → 0.46.1-beta.4

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 (111) hide show
  1. package/dist/AutoCompleteInput.js +40 -34
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.js +2 -1
  4. package/dist/AutoResizeTextarea.js.map +1 -1
  5. package/dist/BasicModal.js +48 -33
  6. package/dist/BasicModal.js.map +1 -1
  7. package/dist/Button.js +19 -8
  8. package/dist/Button.js.map +1 -1
  9. package/dist/ButtonGroup.js +5 -3
  10. package/dist/ButtonGroup.js.map +1 -1
  11. package/dist/ButtonOld.js +5 -3
  12. package/dist/ButtonOld.js.map +1 -1
  13. package/dist/CardFlip.js +14 -9
  14. package/dist/CardFlip.js.map +1 -1
  15. package/dist/Checkbox.js +23 -19
  16. package/dist/Checkbox.js.map +1 -1
  17. package/dist/Collapse.js +12 -9
  18. package/dist/Collapse.js.map +1 -1
  19. package/dist/ComboBox.js +61 -51
  20. package/dist/ComboBox.js.map +1 -1
  21. package/dist/CopyButton.js +5 -3
  22. package/dist/CopyButton.js.map +1 -1
  23. package/dist/CustomTimeSelect.js +92 -84
  24. package/dist/CustomTimeSelect.js.map +1 -1
  25. package/dist/DateInput.js +19 -17
  26. package/dist/DateInput.js.map +1 -1
  27. package/dist/DateTimeInput.js +20 -18
  28. package/dist/DateTimeInput.js.map +1 -1
  29. package/dist/DebouncedSearchInput.js +2 -1
  30. package/dist/DebouncedSearchInput.js.map +1 -1
  31. package/dist/DraggableItemList.js +97 -80
  32. package/dist/DraggableItemList.js.map +1 -1
  33. package/dist/EditableItemList.js +53 -46
  34. package/dist/EditableItemList.js.map +1 -1
  35. package/dist/HierarchicalCheckboxMenu.js +59 -49
  36. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  37. package/dist/ItemList.js +42 -37
  38. package/dist/ItemList.js.map +1 -1
  39. package/dist/ItemListItem.js +5 -3
  40. package/dist/ItemListItem.js.map +1 -1
  41. package/dist/LoadingOverlay.js +28 -20
  42. package/dist/LoadingOverlay.js.map +1 -1
  43. package/dist/LoadingSpinner.js +13 -10
  44. package/dist/LoadingSpinner.js.map +1 -1
  45. package/dist/MaskedInput.js +2 -1
  46. package/dist/MaskedInput.js.map +1 -1
  47. package/dist/Option.js +5 -3
  48. package/dist/Option.js.map +1 -1
  49. package/dist/RadioGroup.js +14 -10
  50. package/dist/RadioGroup.js.map +1 -1
  51. package/dist/RadioItem.js +23 -19
  52. package/dist/RadioItem.js.map +1 -1
  53. package/dist/RandomAreaPlotAnimation.js +8 -6
  54. package/dist/RandomAreaPlotAnimation.js.map +1 -1
  55. package/dist/SearchInput.js +26 -21
  56. package/dist/SearchInput.js.map +1 -1
  57. package/dist/Select.js +5 -3
  58. package/dist/Select.js.map +1 -1
  59. package/dist/SelectValueList.js +29 -24
  60. package/dist/SelectValueList.js.map +1 -1
  61. package/dist/SocketedButton.js +13 -10
  62. package/dist/SocketedButton.js.map +1 -1
  63. package/dist/TimeInput.js +2 -1
  64. package/dist/TimeInput.js.map +1 -1
  65. package/dist/TimeSlider.js +123 -106
  66. package/dist/TimeSlider.js.map +1 -1
  67. package/dist/ToastNotification.js +35 -27
  68. package/dist/ToastNotification.js.map +1 -1
  69. package/dist/UISwitch.js +7 -5
  70. package/dist/UISwitch.js.map +1 -1
  71. package/dist/ValidateLabelInput.js +33 -24
  72. package/dist/ValidateLabelInput.js.map +1 -1
  73. package/dist/context-actions/ContextActions.js +7 -5
  74. package/dist/context-actions/ContextActions.js.map +1 -1
  75. package/dist/context-actions/ContextMenu.js +44 -41
  76. package/dist/context-actions/ContextMenu.js.map +1 -1
  77. package/dist/context-actions/ContextMenuItem.js +34 -24
  78. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  79. package/dist/context-actions/ContextMenuRoot.js +6 -4
  80. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  81. package/dist/context-actions/GlobalContextActions.js +3 -3
  82. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  83. package/dist/menu-actions/DropdownMenu.js +19 -16
  84. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  85. package/dist/menu-actions/Menu.js +8 -9
  86. package/dist/menu-actions/Menu.js.map +1 -1
  87. package/dist/modal/DebouncedModal.js +14 -9
  88. package/dist/modal/DebouncedModal.js.map +1 -1
  89. package/dist/modal/InfoModal.js +22 -13
  90. package/dist/modal/InfoModal.js.map +1 -1
  91. package/dist/modal/Modal.js +70 -60
  92. package/dist/modal/Modal.js.map +1 -1
  93. package/dist/modal/ModalBody.js +5 -3
  94. package/dist/modal/ModalBody.js.map +1 -1
  95. package/dist/modal/ModalFooter.js +5 -3
  96. package/dist/modal/ModalFooter.js.map +1 -1
  97. package/dist/modal/ModalHeader.js +19 -13
  98. package/dist/modal/ModalHeader.js.map +1 -1
  99. package/dist/navigation/Menu.js +15 -12
  100. package/dist/navigation/Menu.js.map +1 -1
  101. package/dist/navigation/MenuItem.js +29 -22
  102. package/dist/navigation/MenuItem.js.map +1 -1
  103. package/dist/navigation/Page.js +35 -26
  104. package/dist/navigation/Page.js.map +1 -1
  105. package/dist/navigation/Stack.js +33 -20
  106. package/dist/navigation/Stack.js.map +1 -1
  107. package/dist/popper/Popper.js +31 -25
  108. package/dist/popper/Popper.js.map +1 -1
  109. package/dist/popper/Tooltip.js +18 -13
  110. package/dist/popper/Tooltip.js.map +1 -1
  111. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","PropTypes","classNames","FontAwesomeIcon","Tooltip","BUTTON_KINDS","VARIANT_KINDS","getClassName","kind","iconOnly","getVariantClasses","Button","forwardRef","props","ref","variant","type","tooltip","icon","disabled","active","onClick","onContextMenu","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onKeyDown","className","style","children","tabIndex","dataTestId","ariaLabel","rest","Boolean","btnClassName","variantClassName","iconElem","isValidElement","tooltipElem","undefined","ariaLabelString","button","displayName","propTypes","oneOf","isRequired","Error","iconName","bool","func","number","node","string","object","defaultProps"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { Tooltip } from './popper';\n\nconst BUTTON_KINDS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'danger',\n 'inline',\n 'ghost',\n] as const;\ntype ButtonTuple = typeof BUTTON_KINDS;\nexport type ButtonKind = ButtonTuple[number];\n\nconst VARIANT_KINDS = ['group-end'] as const;\ntype VariantTuple = typeof VARIANT_KINDS;\ntype VariantKind = VariantTuple[number];\n\ntype ButtonTypes = 'submit' | 'reset' | 'button';\n\ninterface BaseButtonProps extends React.ComponentPropsWithRef<'button'> {\n kind: ButtonKind;\n type?: ButtonTypes;\n variant?: VariantKind;\n tooltip?: string | JSX.Element;\n icon?: IconDefinition | JSX.Element;\n active?: boolean;\n 'data-testid'?: string;\n}\n\ntype ButtonWithChildren = BaseButtonProps & {\n children: React.ReactNode;\n};\n\ntype IconOnlyButtonStringTooltip = BaseButtonProps & {\n tooltip: string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButtonJsxTooltip = BaseButtonProps & {\n tooltip: JSX.Element;\n 'aria-label': string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButton = IconOnlyButtonStringTooltip | IconOnlyButtonJsxTooltip;\n\ntype ButtonProps = IconOnlyButton | ButtonWithChildren;\n\nfunction getClassName(kind: ButtonKind, iconOnly: boolean): string {\n switch (kind) {\n case 'primary':\n return 'btn-primary';\n case 'secondary':\n return 'btn-outline-primary';\n case 'tertiary':\n return 'btn-secondary';\n case 'success':\n return 'btn-success';\n case 'danger':\n return 'btn-danger';\n case 'inline':\n return 'btn-inline';\n case 'ghost':\n return classNames('btn-link', {\n 'btn-link-icon': iconOnly,\n 'btn-link-icon-only': iconOnly,\n });\n }\n}\n\nfunction getVariantClasses(kind: VariantKind): string {\n switch (kind) {\n case 'group-end':\n return classNames('pl-2', 'pr-3');\n }\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type,\n tooltip,\n icon,\n disabled = false,\n active,\n onClick,\n onContextMenu,\n onMouseDown,\n onMouseUp,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n className,\n style,\n children,\n tabIndex,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const iconOnly = Boolean(icon && children == null);\n const btnClassName = getClassName(kind, iconOnly);\n\n let variantClassName;\n if (variant) {\n variantClassName = getVariantClasses(variant);\n }\n\n let iconElem: JSX.Element | undefined;\n if (icon) {\n iconElem = React.isValidElement(icon) ? (\n icon\n ) : (\n <FontAwesomeIcon icon={icon as IconDefinition} />\n );\n }\n\n let tooltipElem: JSX.Element | undefined;\n if (tooltip !== undefined) {\n tooltipElem =\n typeof tooltip === 'string' ? <Tooltip>{tooltip}</Tooltip> : tooltip;\n }\n\n // use tooltip as arial-label for iconOnly buttons only\n // if tooltip is also a string and aria-label is not set\n let ariaLabelString = ariaLabel;\n if (\n ariaLabel === undefined &&\n iconOnly &&\n tooltip != null &&\n typeof tooltip === 'string'\n ) {\n ariaLabelString = tooltip;\n }\n\n const button = (\n <button\n data-testid={dataTestId}\n ref={ref}\n // eslint-disable-next-line react/button-has-type\n type={type}\n className={classNames(\n 'btn',\n btnClassName,\n variantClassName,\n { active },\n className\n )}\n onClick={onClick}\n onContextMenu={onContextMenu}\n onMouseUp={onMouseUp}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onKeyDown={onKeyDown}\n style={style}\n disabled={disabled}\n tabIndex={tabIndex}\n aria-label={ariaLabelString}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n >\n {icon && iconElem}\n {children}\n {tooltip != null && !disabled && tooltipElem}\n </button>\n );\n\n // disabled buttons tooltips need a wrapped element to receive pointer events\n // https://jakearchibald.com/2017/events-and-disabled-form-fields/\n\n return disabled ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltip !== undefined && tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n kind: PropTypes.oneOf(BUTTON_KINDS).isRequired,\n variant: PropTypes.oneOf(VARIANT_KINDS),\n type: PropTypes.oneOf<ButtonTypes>(['submit', 'reset', 'button']),\n tooltip(props) {\n const { tooltip, icon, children } = props;\n if (tooltip === undefined && icon != null && children == null) {\n return new Error('Tooltip is required for icon only buttons');\n }\n return null;\n },\n icon(props) {\n const { children, icon } = props;\n if (icon == null && children == null) {\n return new Error('Icon is required if no children are provided');\n }\n\n if (\n children == null &&\n !React.isValidElement(icon) &&\n (icon == null || icon.iconName === '' || icon.iconName == null)\n ) {\n return new Error(\n 'Icon must be react element or fontawesome IconDefinition'\n );\n }\n\n return null;\n },\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n onClick(props) {\n const { onClick, type } = props;\n if (type === 'button' && typeof onClick !== 'function') {\n return new Error('type button requires an onClick function');\n }\n if (onClick !== undefined && typeof onClick !== 'function') {\n return new Error('onClick must be a function');\n }\n return null;\n },\n onContextMenu: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onKeyDown: PropTypes.func,\n tabIndex: PropTypes.number,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButton.defaultProps = {\n type: 'button',\n onClick: undefined,\n onContextMenu: undefined,\n onMouseUp: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onKeyDown: undefined,\n variant: undefined,\n tooltip: undefined,\n icon: undefined,\n disabled: false,\n active: undefined,\n tabIndex: undefined,\n children: undefined,\n className: undefined,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default Button;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["React","PropTypes","classNames","FontAwesomeIcon","Tooltip","BUTTON_KINDS","VARIANT_KINDS","getClassName","kind","iconOnly","getVariantClasses","Button","forwardRef","props","ref","variant","type","tooltip","icon","disabled","active","onClick","onContextMenu","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onKeyDown","className","style","children","tabIndex","dataTestId","ariaLabel","rest","Boolean","btnClassName","variantClassName","iconElem","isValidElement","tooltipElem","undefined","ariaLabelString","button","displayName","propTypes","oneOf","isRequired","Error","iconName","bool","func","number","node","string","object","defaultProps"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { Tooltip } from './popper';\n\nconst BUTTON_KINDS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'danger',\n 'inline',\n 'ghost',\n] as const;\ntype ButtonTuple = typeof BUTTON_KINDS;\nexport type ButtonKind = ButtonTuple[number];\n\nconst VARIANT_KINDS = ['group-end'] as const;\ntype VariantTuple = typeof VARIANT_KINDS;\ntype VariantKind = VariantTuple[number];\n\ntype ButtonTypes = 'submit' | 'reset' | 'button';\n\ninterface BaseButtonProps extends React.ComponentPropsWithRef<'button'> {\n kind: ButtonKind;\n type?: ButtonTypes;\n variant?: VariantKind;\n tooltip?: string | JSX.Element;\n icon?: IconDefinition | JSX.Element;\n active?: boolean;\n 'data-testid'?: string;\n}\n\ntype ButtonWithChildren = BaseButtonProps & {\n children: React.ReactNode;\n};\n\ntype IconOnlyButtonStringTooltip = BaseButtonProps & {\n tooltip: string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButtonJsxTooltip = BaseButtonProps & {\n tooltip: JSX.Element;\n 'aria-label': string;\n icon: IconDefinition | JSX.Element;\n children?: undefined;\n};\n\ntype IconOnlyButton = IconOnlyButtonStringTooltip | IconOnlyButtonJsxTooltip;\n\ntype ButtonProps = IconOnlyButton | ButtonWithChildren;\n\nfunction getClassName(kind: ButtonKind, iconOnly: boolean): string {\n switch (kind) {\n case 'primary':\n return 'btn-primary';\n case 'secondary':\n return 'btn-outline-primary';\n case 'tertiary':\n return 'btn-secondary';\n case 'success':\n return 'btn-success';\n case 'danger':\n return 'btn-danger';\n case 'inline':\n return 'btn-inline';\n case 'ghost':\n return classNames('btn-link', {\n 'btn-link-icon': iconOnly,\n 'btn-link-icon-only': iconOnly,\n });\n }\n}\n\nfunction getVariantClasses(kind: VariantKind): string {\n switch (kind) {\n case 'group-end':\n return classNames('pl-2', 'pr-3');\n }\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type,\n tooltip,\n icon,\n disabled = false,\n active,\n onClick,\n onContextMenu,\n onMouseDown,\n onMouseUp,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n className,\n style,\n children,\n tabIndex,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n\n const iconOnly = Boolean(icon && children == null);\n const btnClassName = getClassName(kind, iconOnly);\n\n let variantClassName;\n if (variant) {\n variantClassName = getVariantClasses(variant);\n }\n\n let iconElem: JSX.Element | undefined;\n if (icon) {\n iconElem = React.isValidElement(icon) ? (\n icon\n ) : (\n <FontAwesomeIcon icon={icon as IconDefinition} />\n );\n }\n\n let tooltipElem: JSX.Element | undefined;\n if (tooltip !== undefined) {\n tooltipElem =\n typeof tooltip === 'string' ? <Tooltip>{tooltip}</Tooltip> : tooltip;\n }\n\n // use tooltip as arial-label for iconOnly buttons only\n // if tooltip is also a string and aria-label is not set\n let ariaLabelString = ariaLabel;\n if (\n ariaLabel === undefined &&\n iconOnly &&\n tooltip != null &&\n typeof tooltip === 'string'\n ) {\n ariaLabelString = tooltip;\n }\n\n const button = (\n <button\n data-testid={dataTestId}\n ref={ref}\n // eslint-disable-next-line react/button-has-type\n type={type}\n className={classNames(\n 'btn',\n btnClassName,\n variantClassName,\n { active },\n className\n )}\n onClick={onClick}\n onContextMenu={onContextMenu}\n onMouseUp={onMouseUp}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onKeyDown={onKeyDown}\n style={style}\n disabled={disabled}\n tabIndex={tabIndex}\n aria-label={ariaLabelString}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...rest}\n >\n {icon && iconElem}\n {children}\n {tooltip != null && !disabled && tooltipElem}\n </button>\n );\n\n // disabled buttons tooltips need a wrapped element to receive pointer events\n // https://jakearchibald.com/2017/events-and-disabled-form-fields/\n\n return disabled ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltip !== undefined && tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n kind: PropTypes.oneOf(BUTTON_KINDS).isRequired,\n variant: PropTypes.oneOf(VARIANT_KINDS),\n type: PropTypes.oneOf<ButtonTypes>(['submit', 'reset', 'button']),\n tooltip(props) {\n const { tooltip, icon, children } = props;\n if (tooltip === undefined && icon != null && children == null) {\n return new Error('Tooltip is required for icon only buttons');\n }\n return null;\n },\n icon(props) {\n const { children, icon } = props;\n if (icon == null && children == null) {\n return new Error('Icon is required if no children are provided');\n }\n\n if (\n children == null &&\n !React.isValidElement(icon) &&\n (icon == null || icon.iconName === '' || icon.iconName == null)\n ) {\n return new Error(\n 'Icon must be react element or fontawesome IconDefinition'\n );\n }\n\n return null;\n },\n disabled: PropTypes.bool,\n active: PropTypes.bool,\n onClick(props) {\n const { onClick, type } = props;\n if (type === 'button' && typeof onClick !== 'function') {\n return new Error('type button requires an onClick function');\n }\n if (onClick !== undefined && typeof onClick !== 'function') {\n return new Error('onClick must be a function');\n }\n return null;\n },\n onContextMenu: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onKeyDown: PropTypes.func,\n tabIndex: PropTypes.number,\n children: PropTypes.node,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButton.defaultProps = {\n type: 'button',\n onClick: undefined,\n onContextMenu: undefined,\n onMouseUp: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n onKeyDown: undefined,\n variant: undefined,\n tooltip: undefined,\n icon: undefined,\n disabled: false,\n active: undefined,\n tabIndex: undefined,\n children: undefined,\n className: undefined,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default Button;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
4
5
  function ButtonGroup(props) {
5
6
  var {
6
7
  children,
@@ -8,12 +9,13 @@ function ButtonGroup(props) {
8
9
  style,
9
10
  'data-testid': dataTestId
10
11
  } = props;
11
- return /*#__PURE__*/React.createElement("div", {
12
+ return /*#__PURE__*/_jsx("div", {
12
13
  className: classNames('btn-group', className),
13
14
  style: style,
14
15
  role: "group",
15
- "data-testid": dataTestId
16
- }, children);
16
+ "data-testid": dataTestId,
17
+ children: children
18
+ });
17
19
  }
18
20
  ButtonGroup.displayName = 'ButtonGroup';
19
21
  ButtonGroup.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","names":["React","classNames","PropTypes","ButtonGroup","props","children","className","style","dataTestId","displayName","propTypes","node","isRequired","string","object","defaultProps","undefined"],"sources":["../src/ButtonGroup.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\ninterface ButtonGroupProps {\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n 'data-testid'?: string;\n}\n\nfunction ButtonGroup(props: ButtonGroupProps): JSX.Element {\n const { children, className, style, 'data-testid': dataTestId } = props;\n\n return (\n <div\n className={classNames('btn-group', className)}\n style={style}\n role=\"group\"\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n}\n\nButtonGroup.displayName = 'ButtonGroup';\n\nButtonGroup.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButtonGroup.defaultProps = {\n className: null,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default ButtonGroup;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AASlC,SAASC,WAAW,CAACC,KAAuB,EAAe;EACzD,IAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,KAAK;IAAE,aAAa,EAAEC;EAAW,CAAC,GAAGJ,KAAK;EAEvE,oBACE;IACE,SAAS,EAAEH,UAAU,CAAC,WAAW,EAAEK,SAAS,CAAE;IAC9C,KAAK,EAAEC,KAAM;IACb,IAAI,EAAC,OAAO;IACZ,eAAaC;EAAW,GAEvBH,QAAQ,CACL;AAEV;AAEAF,WAAW,CAACM,WAAW,GAAG,aAAa;AAEvCN,WAAW,CAACO,SAAS,GAAG;EACtBL,QAAQ,EAAEH,SAAS,CAACS,IAAI,CAACC,UAAU;EACnCN,SAAS,EAAEJ,SAAS,CAACW,MAAM;EAC3BN,KAAK,EAAEL,SAAS,CAACY,MAAM;EACvB,aAAa,EAAEZ,SAAS,CAACW;AAC3B,CAAC;AAEDV,WAAW,CAACY,YAAY,GAAG;EACzBT,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,CAAC,CAAC;EACT,aAAa,EAAES;AACjB,CAAC;AAED,eAAeb,WAAW"}
1
+ {"version":3,"file":"ButtonGroup.js","names":["React","classNames","PropTypes","ButtonGroup","props","children","className","style","dataTestId","displayName","propTypes","node","isRequired","string","object","defaultProps","undefined"],"sources":["../src/ButtonGroup.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\ninterface ButtonGroupProps {\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n 'data-testid'?: string;\n}\n\nfunction ButtonGroup(props: ButtonGroupProps): JSX.Element {\n const { children, className, style, 'data-testid': dataTestId } = props;\n\n return (\n <div\n className={classNames('btn-group', className)}\n style={style}\n role=\"group\"\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n}\n\nButtonGroup.displayName = 'ButtonGroup';\n\nButtonGroup.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n 'data-testid': PropTypes.string,\n};\n\nButtonGroup.defaultProps = {\n className: null,\n style: {},\n 'data-testid': undefined,\n};\n\nexport default ButtonGroup;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAAC;AASnC,SAASC,WAAW,CAACC,KAAuB,EAAe;EACzD,IAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,KAAK;IAAE,aAAa,EAAEC;EAAW,CAAC,GAAGJ,KAAK;EAEvE,oBACE;IACE,SAAS,EAAEH,UAAU,CAAC,WAAW,EAAEK,SAAS,CAAE;IAC9C,KAAK,EAAEC,KAAM;IACb,IAAI,EAAC,OAAO;IACZ,eAAaC,UAAW;IAAA,UAEvBH;EAAQ,EACL;AAEV;AAEAF,WAAW,CAACM,WAAW,GAAG,aAAa;AAEvCN,WAAW,CAACO,SAAS,GAAG;EACtBL,QAAQ,EAAEH,SAAS,CAACS,IAAI,CAACC,UAAU;EACnCN,SAAS,EAAEJ,SAAS,CAACW,MAAM;EAC3BN,KAAK,EAAEL,SAAS,CAACY,MAAM;EACvB,aAAa,EAAEZ,SAAS,CAACW;AAC3B,CAAC;AAEDV,WAAW,CAACY,YAAY,GAAG;EACzBT,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,CAAC,CAAC;EACT,aAAa,EAAES;AACjB,CAAC;AAED,eAAeb,WAAW"}
package/dist/ButtonOld.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
4
5
  var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
5
6
  var {
6
7
  children,
@@ -10,15 +11,16 @@ var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
10
11
  style,
11
12
  id
12
13
  } = props;
13
- return /*#__PURE__*/React.createElement("button", {
14
+ return /*#__PURE__*/_jsx("button", {
14
15
  ref: ref,
15
16
  type: "button",
16
17
  className: classNames('btn', className),
17
18
  onClick: onClick,
18
19
  style: style,
19
20
  disabled: disabled,
20
- id: id
21
- }, children);
21
+ id: id,
22
+ children: children
23
+ });
22
24
  });
23
25
  Button.displayName = 'Button';
24
26
  Button.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonOld.js","names":["React","classNames","PropTypes","Button","forwardRef","props","ref","children","className","disabled","onClick","style","id","displayName","propTypes","node","string","bool","func","shape","defaultProps"],"sources":["../src/ButtonOld.tsx"],"sourcesContent":["import React, { MouseEventHandler } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\ninterface ButtonProps {\n children?: React.ReactNode;\n className?: string;\n disabled?: boolean;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n style?: React.CSSProperties;\n id?: string;\n}\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const { children, className, disabled, onClick, style, id } = props;\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('btn', className)}\n onClick={onClick}\n style={style}\n disabled={disabled}\n id={id}\n >\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.shape({}),\n id: PropTypes.string,\n};\n\nButton.defaultProps = {\n children: null,\n className: '',\n disabled: false,\n onClick: () => null,\n style: {},\n id: '',\n};\n\nexport default Button;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6B,OAAO;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAUlC,IAAMC,MAAM,gBAAGH,KAAK,CAACI,UAAU,CAC7B,CAACC,KAAkB,EAAEC,GAAG,KAAK;EAC3B,IAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAG,CAAC,GAAGP,KAAK;EACnE,oBACE;IACE,GAAG,EAAEC,GAAI;IACT,IAAI,EAAC,QAAQ;IACb,SAAS,EAAEL,UAAU,CAAC,KAAK,EAAEO,SAAS,CAAE;IACxC,OAAO,EAAEE,OAAQ;IACjB,KAAK,EAAEC,KAAM;IACb,QAAQ,EAAEF,QAAS;IACnB,EAAE,EAAEG;EAAG,GAENL,QAAQ,CACF;AAEb,CAAC,CACF;AAEDJ,MAAM,CAACU,WAAW,GAAG,QAAQ;AAE7BV,MAAM,CAACW,SAAS,GAAG;EACjBP,QAAQ,EAAEL,SAAS,CAACa,IAAI;EACxBP,SAAS,EAAEN,SAAS,CAACc,MAAM;EAC3BP,QAAQ,EAAEP,SAAS,CAACe,IAAI;EACxBP,OAAO,EAAER,SAAS,CAACgB,IAAI;EACvBP,KAAK,EAAET,SAAS,CAACiB,KAAK,CAAC,CAAC,CAAC,CAAC;EAC1BP,EAAE,EAAEV,SAAS,CAACc;AAChB,CAAC;AAEDb,MAAM,CAACiB,YAAY,GAAG;EACpBb,QAAQ,EAAE,IAAI;EACdC,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,MAAM,IAAI;EACnBC,KAAK,EAAE,CAAC,CAAC;EACTC,EAAE,EAAE;AACN,CAAC;AAED,eAAeT,MAAM"}
1
+ {"version":3,"file":"ButtonOld.js","names":["React","classNames","PropTypes","Button","forwardRef","props","ref","children","className","disabled","onClick","style","id","displayName","propTypes","node","string","bool","func","shape","defaultProps"],"sources":["../src/ButtonOld.tsx"],"sourcesContent":["import React, { MouseEventHandler } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\ninterface ButtonProps {\n children?: React.ReactNode;\n className?: string;\n disabled?: boolean;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n style?: React.CSSProperties;\n id?: string;\n}\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const { children, className, disabled, onClick, style, id } = props;\n return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames('btn', className)}\n onClick={onClick}\n style={style}\n disabled={disabled}\n id={id}\n >\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nButton.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.shape({}),\n id: PropTypes.string,\n};\n\nButton.defaultProps = {\n children: null,\n className: '',\n disabled: false,\n onClick: () => null,\n style: {},\n id: '',\n};\n\nexport default Button;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6B,OAAO;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,YAAY;AAAC;AAUnC,IAAMC,MAAM,gBAAGH,KAAK,CAACI,UAAU,CAC7B,CAACC,KAAkB,EAAEC,GAAG,KAAK;EAC3B,IAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,KAAK;IAAEC;EAAG,CAAC,GAAGP,KAAK;EACnE,oBACE;IACE,GAAG,EAAEC,GAAI;IACT,IAAI,EAAC,QAAQ;IACb,SAAS,EAAEL,UAAU,CAAC,KAAK,EAAEO,SAAS,CAAE;IACxC,OAAO,EAAEE,OAAQ;IACjB,KAAK,EAAEC,KAAM;IACb,QAAQ,EAAEF,QAAS;IACnB,EAAE,EAAEG,EAAG;IAAA,UAENL;EAAQ,EACF;AAEb,CAAC,CACF;AAEDJ,MAAM,CAACU,WAAW,GAAG,QAAQ;AAE7BV,MAAM,CAACW,SAAS,GAAG;EACjBP,QAAQ,EAAEL,SAAS,CAACa,IAAI;EACxBP,SAAS,EAAEN,SAAS,CAACc,MAAM;EAC3BP,QAAQ,EAAEP,SAAS,CAACe,IAAI;EACxBP,OAAO,EAAER,SAAS,CAACgB,IAAI;EACvBP,KAAK,EAAET,SAAS,CAACiB,KAAK,CAAC,CAAC,CAAC,CAAC;EAC1BP,EAAE,EAAEV,SAAS,CAACc;AAChB,CAAC;AAEDb,MAAM,CAACiB,YAAY,GAAG;EACpBb,QAAQ,EAAE,IAAI;EACdC,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,KAAK;EACfC,OAAO,EAAE,MAAM,IAAI;EACnBC,KAAK,EAAE,CAAC,CAAC;EACTC,EAAE,EAAE;AACN,CAAC;AAED,eAAeT,MAAM"}
package/dist/CardFlip.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import React, { useCallback, useEffect, useRef } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import "./CardFlip.css";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { jsxs as _jsxs } from "react/jsx-runtime";
4
6
  /**
5
7
  * Card flip component, switches between a front and back face being visible.
6
8
  * Has logic to handle overflow on body, caused by perspective transforms
@@ -43,19 +45,22 @@ function CardFlip(_ref) {
43
45
  }
44
46
  };
45
47
  }, [transitionStart]);
46
- return /*#__PURE__*/React.createElement("div", {
48
+ return /*#__PURE__*/_jsxs("div", {
47
49
  className: classNames(className, {
48
50
  'card-flip--show-front': isFlipped,
49
51
  'card-flip--show-back': !isFlipped
50
52
  }),
51
- "data-testid": dataTestId
52
- }, /*#__PURE__*/React.createElement("div", {
53
- className: "card-flip--back"
54
- }, getComponent(0)), /*#__PURE__*/React.createElement("div", {
55
- ref: front,
56
- className: "card-flip--front",
57
- onTransitionEnd: transitionEnd
58
- }, getComponent(1)));
53
+ "data-testid": dataTestId,
54
+ children: [/*#__PURE__*/_jsx("div", {
55
+ className: "card-flip--back",
56
+ children: getComponent(0)
57
+ }), /*#__PURE__*/_jsx("div", {
58
+ ref: front,
59
+ className: "card-flip--front",
60
+ onTransitionEnd: transitionEnd,
61
+ children: getComponent(1)
62
+ })]
63
+ });
59
64
  }
60
65
  export default CardFlip;
61
66
  //# sourceMappingURL=CardFlip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardFlip.js","names":["React","useCallback","useEffect","useRef","classNames","CardFlip","className","isFlipped","children","dataTestId","getComponent","key","length","Error","front","transitionStart","event","target","currentTarget","document","body","classList","add","transitionEnd","remove","setIsFlippingClassOnTransitionStart","current","addEventListener","refObj","cleanupListener","removeEventListener"],"sources":["../src/CardFlip.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport './CardFlip.scss';\n\ntype CardFlipProps = {\n isFlipped: boolean;\n children: [React.ReactNode, React.ReactNode];\n className?: string;\n 'data-testid'?: string;\n};\n\n/**\n * Card flip component, switches between a front and back face being visible.\n * Has logic to handle overflow on body, caused by perspective transforms\n * and moves z-index to top during transition.\n * @param isFlipped true shows second child, false shows first child\n * @param children Expects exactly two children\n * @returns\n */\nfunction CardFlip({\n className,\n isFlipped,\n children,\n 'data-testid': dataTestId,\n}: CardFlipProps): JSX.Element {\n const getComponent = (key: 0 | 1) => {\n if (children.length !== 2) {\n throw new Error('CardFlip requires 2 children to function');\n }\n return children[key];\n };\n\n const front = useRef<HTMLDivElement>(null);\n\n const transitionStart = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.add('card-flip--is-flipping');\n }\n }, []);\n\n const transitionEnd = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.remove('card-flip--is-flipping');\n }\n }, []);\n\n useEffect(\n function setIsFlippingClassOnTransitionStart() {\n if (!front.current) throw Error('ref undefined');\n front.current.addEventListener('transitionstart', transitionStart);\n\n const refObj = front.current;\n return function cleanupListener() {\n if (refObj != null) {\n return refObj.removeEventListener('transitionstart', transitionStart);\n }\n };\n },\n [transitionStart]\n );\n\n return (\n <div\n className={classNames(className, {\n 'card-flip--show-front': isFlipped,\n 'card-flip--show-back': !isFlipped,\n })}\n data-testid={dataTestId}\n >\n <div className=\"card-flip--back\">{getComponent(0)}</div>\n <div\n ref={front}\n className=\"card-flip--front\"\n onTransitionEnd={transitionEnd}\n >\n {getComponent(1)}\n </div>\n </div>\n );\n}\n\nexport default CardFlip;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,OAAOC,UAAU,MAAM,YAAY;AAAC;AAUpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQ,OAKc;EAAA,IALb;IAChBC,SAAS;IACTC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACF,CAAC;EACd,IAAMC,YAAY,GAAIC,GAAU,IAAK;IACnC,IAAIH,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE;MACzB,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IACA,OAAOL,QAAQ,CAACG,GAAG,CAAC;EACtB,CAAC;EAED,IAAMG,KAAK,GAAGX,MAAM,CAAiB,IAAI,CAAC;EAE1C,IAAMY,eAAe,GAAGd,WAAW,CAACe,KAAK,IAAI;IAC3C,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAE;MACxCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACvD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,aAAa,GAAGtB,WAAW,CAACe,KAAK,IAAI;IACzC,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAE;MACxCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACG,MAAM,CAAC,wBAAwB,CAAC;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;EAENtB,SAAS,CACP,SAASuB,mCAAmC,GAAG;IAC7C,IAAI,CAACX,KAAK,CAACY,OAAO,EAAE,MAAMb,KAAK,CAAC,eAAe,CAAC;IAChDC,KAAK,CAACY,OAAO,CAACC,gBAAgB,CAAC,iBAAiB,EAAEZ,eAAe,CAAC;IAElE,IAAMa,MAAM,GAAGd,KAAK,CAACY,OAAO;IAC5B,OAAO,SAASG,eAAe,GAAG;MAChC,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,OAAOA,MAAM,CAACE,mBAAmB,CAAC,iBAAiB,EAAEf,eAAe,CAAC;MACvE;IACF,CAAC;EACH,CAAC,EACD,CAACA,eAAe,CAAC,CAClB;EAED,oBACE;IACE,SAAS,EAAEX,UAAU,CAACE,SAAS,EAAE;MAC/B,uBAAuB,EAAEC,SAAS;MAClC,sBAAsB,EAAE,CAACA;IAC3B,CAAC,CAAE;IACH,eAAaE;EAAW,gBAExB;IAAK,SAAS,EAAC;EAAiB,GAAEC,YAAY,CAAC,CAAC,CAAC,CAAO,eACxD;IACE,GAAG,EAAEI,KAAM;IACX,SAAS,EAAC,kBAAkB;IAC5B,eAAe,EAAES;EAAc,GAE9Bb,YAAY,CAAC,CAAC,CAAC,CACZ,CACF;AAEV;AAEA,eAAeL,QAAQ"}
1
+ {"version":3,"file":"CardFlip.js","names":["React","useCallback","useEffect","useRef","classNames","CardFlip","className","isFlipped","children","dataTestId","getComponent","key","length","Error","front","transitionStart","event","target","currentTarget","document","body","classList","add","transitionEnd","remove","setIsFlippingClassOnTransitionStart","current","addEventListener","refObj","cleanupListener","removeEventListener"],"sources":["../src/CardFlip.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport './CardFlip.scss';\n\ntype CardFlipProps = {\n isFlipped: boolean;\n children: [React.ReactNode, React.ReactNode];\n className?: string;\n 'data-testid'?: string;\n};\n\n/**\n * Card flip component, switches between a front and back face being visible.\n * Has logic to handle overflow on body, caused by perspective transforms\n * and moves z-index to top during transition.\n * @param isFlipped true shows second child, false shows first child\n * @param children Expects exactly two children\n * @returns\n */\nfunction CardFlip({\n className,\n isFlipped,\n children,\n 'data-testid': dataTestId,\n}: CardFlipProps): JSX.Element {\n const getComponent = (key: 0 | 1) => {\n if (children.length !== 2) {\n throw new Error('CardFlip requires 2 children to function');\n }\n return children[key];\n };\n\n const front = useRef<HTMLDivElement>(null);\n\n const transitionStart = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.add('card-flip--is-flipping');\n }\n }, []);\n\n const transitionEnd = useCallback(event => {\n if (event.target === event.currentTarget) {\n document.body.classList.remove('card-flip--is-flipping');\n }\n }, []);\n\n useEffect(\n function setIsFlippingClassOnTransitionStart() {\n if (!front.current) throw Error('ref undefined');\n front.current.addEventListener('transitionstart', transitionStart);\n\n const refObj = front.current;\n return function cleanupListener() {\n if (refObj != null) {\n return refObj.removeEventListener('transitionstart', transitionStart);\n }\n };\n },\n [transitionStart]\n );\n\n return (\n <div\n className={classNames(className, {\n 'card-flip--show-front': isFlipped,\n 'card-flip--show-back': !isFlipped,\n })}\n data-testid={dataTestId}\n >\n <div className=\"card-flip--back\">{getComponent(0)}</div>\n <div\n ref={front}\n className=\"card-flip--front\"\n onTransitionEnd={transitionEnd}\n >\n {getComponent(1)}\n </div>\n </div>\n );\n}\n\nexport default CardFlip;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,OAAOC,UAAU,MAAM,YAAY;AAAC;AAAA;AAAA;AAUpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQ,OAKc;EAAA,IALb;IAChBC,SAAS;IACTC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACF,CAAC;EACd,IAAMC,YAAY,GAAIC,GAAU,IAAK;IACnC,IAAIH,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE;MACzB,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IACA,OAAOL,QAAQ,CAACG,GAAG,CAAC;EACtB,CAAC;EAED,IAAMG,KAAK,GAAGX,MAAM,CAAiB,IAAI,CAAC;EAE1C,IAAMY,eAAe,GAAGd,WAAW,CAACe,KAAK,IAAI;IAC3C,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAE;MACxCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACvD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,aAAa,GAAGtB,WAAW,CAACe,KAAK,IAAI;IACzC,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAE;MACxCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACG,MAAM,CAAC,wBAAwB,CAAC;IAC1D;EACF,CAAC,EAAE,EAAE,CAAC;EAENtB,SAAS,CACP,SAASuB,mCAAmC,GAAG;IAC7C,IAAI,CAACX,KAAK,CAACY,OAAO,EAAE,MAAMb,KAAK,CAAC,eAAe,CAAC;IAChDC,KAAK,CAACY,OAAO,CAACC,gBAAgB,CAAC,iBAAiB,EAAEZ,eAAe,CAAC;IAElE,IAAMa,MAAM,GAAGd,KAAK,CAACY,OAAO;IAC5B,OAAO,SAASG,eAAe,GAAG;MAChC,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,OAAOA,MAAM,CAACE,mBAAmB,CAAC,iBAAiB,EAAEf,eAAe,CAAC;MACvE;IACF,CAAC;EACH,CAAC,EACD,CAACA,eAAe,CAAC,CAClB;EAED,oBACE;IACE,SAAS,EAAEX,UAAU,CAACE,SAAS,EAAE;MAC/B,uBAAuB,EAAEC,SAAS;MAClC,sBAAsB,EAAE,CAACA;IAC3B,CAAC,CAAE;IACH,eAAaE,UAAW;IAAA,wBAExB;MAAK,SAAS,EAAC,iBAAiB;MAAA,UAAEC,YAAY,CAAC,CAAC;IAAC,EAAO,eACxD;MACE,GAAG,EAAEI,KAAM;MACX,SAAS,EAAC,kBAAkB;MAC5B,eAAe,EAAES,aAAc;MAAA,UAE9Bb,YAAY,CAAC,CAAC;IAAC,EACZ;EAAA,EACF;AAEV;AAEA,eAAeL,QAAQ"}
package/dist/Checkbox.js CHANGED
@@ -3,6 +3,8 @@ import classNames from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
4
  import shortid from 'shortid';
5
5
  import { useForwardedRef } from '@deephaven/react-hooks';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsxs as _jsxs } from "react/jsx-runtime";
6
8
  /**
7
9
  * A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.
8
10
  */
@@ -36,25 +38,27 @@ var Checkbox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
36
38
  onChange(event);
37
39
  }
38
40
  }, [ref, checked, onChange]);
39
- return /*#__PURE__*/React.createElement("div", {
40
- className: classNames('custom-control custom-checkbox', className)
41
- }, /*#__PURE__*/React.createElement("input", {
42
- type: "checkbox",
43
- ref: ref,
44
- checked: checked !== null && checked !== void 0 ? checked : false // checked attr must always have a value to remain as a controlled component
45
- ,
46
- className: classNames('custom-control-input', inputClassName, {
47
- 'is-invalid': isInvalid
48
- }),
49
- disabled: disabled,
50
- id: id,
51
- name: name,
52
- onChange: handleOnChange,
53
- "data-testid": dataTestId
54
- }), /*#__PURE__*/React.createElement("label", {
55
- className: classNames('custom-control-label', labelClassName),
56
- htmlFor: id
57
- }, children));
41
+ return /*#__PURE__*/_jsxs("div", {
42
+ className: classNames('custom-control custom-checkbox', className),
43
+ children: [/*#__PURE__*/_jsx("input", {
44
+ type: "checkbox",
45
+ ref: ref,
46
+ checked: checked !== null && checked !== void 0 ? checked : false // checked attr must always have a value to remain as a controlled component
47
+ ,
48
+ className: classNames('custom-control-input', inputClassName, {
49
+ 'is-invalid': isInvalid
50
+ }),
51
+ disabled: disabled,
52
+ id: id,
53
+ name: name,
54
+ onChange: handleOnChange,
55
+ "data-testid": dataTestId
56
+ }), /*#__PURE__*/_jsx("label", {
57
+ className: classNames('custom-control-label', labelClassName),
58
+ htmlFor: id,
59
+ children: children
60
+ })]
61
+ });
58
62
  });
59
63
 
60
64
  // Forward ref causes a false positive for display-name in eslint:
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","PropTypes","shortid","useForwardedRef","Checkbox","forwardRef","props","forwardedRef","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","name","onChange","dataTestId","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","displayName","propTypes","propName","checkedType","Error","node","isRequired","string","bool","func","defaultProps","undefined"],"sources":["../src/Checkbox.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport { useForwardedRef } from '@deephaven/react-hooks';\n\ninterface CheckboxProps {\n checked: boolean | null;\n className?: string;\n disabled?: boolean;\n inputClassName?: string;\n isInvalid?: boolean;\n labelClassName?: string;\n name?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n 'data-testid'?: string;\n}\n\n/**\n * A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, forwardedRef) => {\n const {\n checked = false,\n children,\n className,\n disabled,\n inputClassName,\n isInvalid,\n labelClassName,\n name,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(shortid());\n\n const ref = useForwardedRef<HTMLInputElement>(forwardedRef);\n\n useEffect(\n function setIndeterminateProperty() {\n if (ref.current) {\n // indeterminate is not actually an html attr, can only be set via JS\n ref.current.indeterminate = checked === null;\n }\n },\n [ref, checked]\n );\n\n const handleOnChange: React.ChangeEventHandler<HTMLInputElement> =\n useCallback(\n event => {\n if (ref.current) {\n // ref.current can be null in tests, doesn't impact behaviour\n ref.current.indeterminate = checked === null;\n }\n\n if (onChange) {\n onChange(event);\n }\n },\n [ref, checked, onChange]\n );\n\n return (\n <div className={classNames('custom-control custom-checkbox', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n checked={checked ?? false} // checked attr must always have a value to remain as a controlled component\n className={classNames('custom-control-input', inputClassName, {\n 'is-invalid': isInvalid,\n })}\n disabled={disabled}\n id={id}\n name={name}\n onChange={handleOnChange}\n data-testid={dataTestId}\n />\n <label\n className={classNames('custom-control-label', labelClassName)}\n htmlFor={id}\n >\n {children}\n </label>\n </div>\n );\n }\n);\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\nCheckbox.displayName = 'Checkbox';\n\nCheckbox.propTypes = {\n /** Current value of the checkbox. */\n checked: (props, propName) => {\n const { [propName]: checkedType } = props;\n if (checkedType !== null && typeof checkedType !== 'boolean') {\n return new Error('Checked must be a boolean or null for indeterminate');\n }\n return null;\n },\n\n /** The node/text to put in the label of this checkbox */\n children: PropTypes.node.isRequired,\n\n /** An extra class name to add to the outer div component */\n className: PropTypes.string,\n\n /** An extra class for disabling the checkbox component */\n disabled: PropTypes.bool,\n\n /** An extra class name for the input component */\n inputClassName: PropTypes.string,\n\n /** Convenience for styling appropriately for an invalid value */\n isInvalid: PropTypes.bool,\n\n /** An extra class name for the label component */\n labelClassName: PropTypes.string,\n\n /** Checkbox input name attribute */\n name: PropTypes.string,\n\n /** Triggered when the input is checked/unchecked */\n onChange: PropTypes.func,\n\n 'data-testid': PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n checked: false,\n className: '',\n disabled: false,\n inputClassName: '',\n isInvalid: false,\n labelClassName: '',\n name: undefined,\n onChange: undefined,\n 'data-testid': undefined,\n};\n\nexport default Checkbox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","PropTypes","shortid","useForwardedRef","Checkbox","forwardRef","props","forwardedRef","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","name","onChange","dataTestId","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","displayName","propTypes","propName","checkedType","Error","node","isRequired","string","bool","func","defaultProps","undefined"],"sources":["../src/Checkbox.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport { useForwardedRef } from '@deephaven/react-hooks';\n\ninterface CheckboxProps {\n checked: boolean | null;\n className?: string;\n disabled?: boolean;\n inputClassName?: string;\n isInvalid?: boolean;\n labelClassName?: string;\n name?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n 'data-testid'?: string;\n}\n\n/**\n * A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, forwardedRef) => {\n const {\n checked = false,\n children,\n className,\n disabled,\n inputClassName,\n isInvalid,\n labelClassName,\n name,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(shortid());\n\n const ref = useForwardedRef<HTMLInputElement>(forwardedRef);\n\n useEffect(\n function setIndeterminateProperty() {\n if (ref.current) {\n // indeterminate is not actually an html attr, can only be set via JS\n ref.current.indeterminate = checked === null;\n }\n },\n [ref, checked]\n );\n\n const handleOnChange: React.ChangeEventHandler<HTMLInputElement> =\n useCallback(\n event => {\n if (ref.current) {\n // ref.current can be null in tests, doesn't impact behaviour\n ref.current.indeterminate = checked === null;\n }\n\n if (onChange) {\n onChange(event);\n }\n },\n [ref, checked, onChange]\n );\n\n return (\n <div className={classNames('custom-control custom-checkbox', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n checked={checked ?? false} // checked attr must always have a value to remain as a controlled component\n className={classNames('custom-control-input', inputClassName, {\n 'is-invalid': isInvalid,\n })}\n disabled={disabled}\n id={id}\n name={name}\n onChange={handleOnChange}\n data-testid={dataTestId}\n />\n <label\n className={classNames('custom-control-label', labelClassName)}\n htmlFor={id}\n >\n {children}\n </label>\n </div>\n );\n }\n);\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\nCheckbox.displayName = 'Checkbox';\n\nCheckbox.propTypes = {\n /** Current value of the checkbox. */\n checked: (props, propName) => {\n const { [propName]: checkedType } = props;\n if (checkedType !== null && typeof checkedType !== 'boolean') {\n return new Error('Checked must be a boolean or null for indeterminate');\n }\n return null;\n },\n\n /** The node/text to put in the label of this checkbox */\n children: PropTypes.node.isRequired,\n\n /** An extra class name to add to the outer div component */\n className: PropTypes.string,\n\n /** An extra class for disabling the checkbox component */\n disabled: PropTypes.bool,\n\n /** An extra class name for the input component */\n inputClassName: PropTypes.string,\n\n /** Convenience for styling appropriately for an invalid value */\n isInvalid: PropTypes.bool,\n\n /** An extra class name for the label component */\n labelClassName: PropTypes.string,\n\n /** Checkbox input name attribute */\n name: PropTypes.string,\n\n /** Triggered when the input is checked/unchecked */\n onChange: PropTypes.func,\n\n 'data-testid': PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n checked: false,\n className: '',\n disabled: false,\n inputClassName: '',\n isInvalid: false,\n labelClassName: '',\n name: undefined,\n onChange: undefined,\n 'data-testid': undefined,\n};\n\nexport default Checkbox;\n"],"mappings":"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"}
package/dist/Collapse.js CHANGED
@@ -6,6 +6,7 @@ import React, { Component } from 'react';
6
6
  import classNames from 'classnames';
7
7
  import PropTypes from 'prop-types';
8
8
  import { CSSTransition } from 'react-transition-group';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
9
10
  class Collapse extends Component {
10
11
  static handleEnter(elemParam) {
11
12
  var elem = elemParam;
@@ -46,12 +47,12 @@ class Collapse extends Component {
46
47
  }
47
48
  render() {
48
49
  var {
49
- children,
50
+ children: _children,
50
51
  className,
51
52
  in: inTransition,
52
53
  'data-testid': dataTestId
53
54
  } = this.props;
54
- return /*#__PURE__*/React.createElement(CSSTransition, {
55
+ return /*#__PURE__*/_jsx(CSSTransition, {
55
56
  in: inTransition,
56
57
  classNames: {
57
58
  enterActive: 'collapsing',
@@ -64,13 +65,15 @@ class Collapse extends Component {
64
65
  onEntered: this.handleEntered,
65
66
  onExit: Collapse.handleExit,
66
67
  onExiting: Collapse.handleExiting,
67
- timeout: 350
68
- }, state => /*#__PURE__*/React.createElement("div", {
69
- className: classNames({
70
- collapse: state === 'exited'
71
- }, className),
72
- "data-testid": dataTestId
73
- }, children));
68
+ timeout: 350,
69
+ children: state => /*#__PURE__*/_jsx("div", {
70
+ className: classNames({
71
+ collapse: state === 'exited'
72
+ }, className),
73
+ "data-testid": dataTestId,
74
+ children: _children
75
+ })
76
+ });
74
77
  }
75
78
  }
76
79
  _defineProperty(Collapse, "propTypes", {
@@ -1 +1 @@
1
- {"version":3,"file":"Collapse.js","names":["React","Component","classNames","PropTypes","CSSTransition","Collapse","handleEnter","elemParam","elem","style","height","handleEntering","getHeight","handleExiting","handleExit","scrollBarWidth","scrollWidth","clientWidth","scrollHeight","constructor","props","handleEntered","bind","autoFocusOnShow","undefined","input","querySelector","focus","render","children","className","in","inTransition","dataTestId","enterActive","enterDone","exitActive","exitDone","state","collapse","string","bool","isRequired","node"],"sources":["../src/Collapse.tsx"],"sourcesContent":["// Port of https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Collapse.js\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\ninterface CollapseProps {\n className?: string;\n in: boolean;\n children: React.ReactNode;\n autoFocusOnShow?: boolean;\n 'data-testid'?: string;\n}\n\nclass Collapse extends Component<CollapseProps> {\n static propTypes = {\n className: PropTypes.string,\n in: PropTypes.bool.isRequired,\n children: PropTypes.node.isRequired,\n autoFocusOnShow: PropTypes.bool,\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n className: '',\n autoFocusOnShow: false,\n 'data-testid': undefined,\n };\n\n static handleEnter(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '0';\n }\n\n static handleEntering(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = `${Collapse.getHeight(elem)}px`;\n }\n\n static handleExiting(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '0';\n }\n\n static handleExit(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = `${Collapse.getHeight(elem)}px`;\n }\n\n static getHeight(elem: HTMLElement): number {\n const scrollBarWidth = elem.scrollWidth - elem.clientWidth;\n return elem.scrollHeight - scrollBarWidth;\n }\n\n constructor(props: CollapseProps) {\n super(props);\n\n this.handleEntered = this.handleEntered.bind(this);\n }\n\n handleEntered(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '';\n\n const { autoFocusOnShow } = this.props;\n if (autoFocusOnShow !== undefined && autoFocusOnShow) {\n const input = elem.querySelector(\n 'input, select, textarea'\n ) as HTMLInputElement;\n\n if (input != null) {\n input.focus();\n }\n }\n }\n\n render(): JSX.Element {\n const {\n children,\n className,\n in: inTransition,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <CSSTransition\n in={inTransition}\n classNames={{\n enterActive: 'collapsing',\n enterDone: 'collapse show',\n exitActive: 'collapsing',\n exitDone: 'collapse',\n }}\n onEnter={Collapse.handleEnter}\n onEntering={Collapse.handleEntering}\n onEntered={this.handleEntered}\n onExit={Collapse.handleExit}\n onExiting={Collapse.handleExiting}\n timeout={350}\n >\n {state => (\n <div\n className={classNames({ collapse: state === 'exited' }, className)}\n data-testid={dataTestId}\n >\n {children}\n </div>\n )}\n </CSSTransition>\n );\n }\n}\n\nexport default Collapse;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Collapse.js","names":["React","Component","classNames","PropTypes","CSSTransition","Collapse","handleEnter","elemParam","elem","style","height","handleEntering","getHeight","handleExiting","handleExit","scrollBarWidth","scrollWidth","clientWidth","scrollHeight","constructor","props","handleEntered","bind","autoFocusOnShow","undefined","input","querySelector","focus","render","children","className","in","inTransition","dataTestId","enterActive","enterDone","exitActive","exitDone","state","collapse","string","bool","isRequired","node"],"sources":["../src/Collapse.tsx"],"sourcesContent":["// Port of https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Collapse.js\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { CSSTransition } from 'react-transition-group';\n\ninterface CollapseProps {\n className?: string;\n in: boolean;\n children: React.ReactNode;\n autoFocusOnShow?: boolean;\n 'data-testid'?: string;\n}\n\nclass Collapse extends Component<CollapseProps> {\n static propTypes = {\n className: PropTypes.string,\n in: PropTypes.bool.isRequired,\n children: PropTypes.node.isRequired,\n autoFocusOnShow: PropTypes.bool,\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n className: '',\n autoFocusOnShow: false,\n 'data-testid': undefined,\n };\n\n static handleEnter(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '0';\n }\n\n static handleEntering(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = `${Collapse.getHeight(elem)}px`;\n }\n\n static handleExiting(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '0';\n }\n\n static handleExit(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = `${Collapse.getHeight(elem)}px`;\n }\n\n static getHeight(elem: HTMLElement): number {\n const scrollBarWidth = elem.scrollWidth - elem.clientWidth;\n return elem.scrollHeight - scrollBarWidth;\n }\n\n constructor(props: CollapseProps) {\n super(props);\n\n this.handleEntered = this.handleEntered.bind(this);\n }\n\n handleEntered(elemParam: HTMLElement): void {\n const elem = elemParam;\n elem.style.height = '';\n\n const { autoFocusOnShow } = this.props;\n if (autoFocusOnShow !== undefined && autoFocusOnShow) {\n const input = elem.querySelector(\n 'input, select, textarea'\n ) as HTMLInputElement;\n\n if (input != null) {\n input.focus();\n }\n }\n }\n\n render(): JSX.Element {\n const {\n children,\n className,\n in: inTransition,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <CSSTransition\n in={inTransition}\n classNames={{\n enterActive: 'collapsing',\n enterDone: 'collapse show',\n exitActive: 'collapsing',\n exitDone: 'collapse',\n }}\n onEnter={Collapse.handleEnter}\n onEntering={Collapse.handleEntering}\n onEntered={this.handleEntered}\n onExit={Collapse.handleExit}\n onExiting={Collapse.handleExiting}\n timeout={350}\n >\n {state => (\n <div\n className={classNames({ collapse: state === 'exited' }, className)}\n data-testid={dataTestId}\n >\n {children}\n </div>\n )}\n </CSSTransition>\n );\n }\n}\n\nexport default Collapse;\n"],"mappings":"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"}
package/dist/ComboBox.js CHANGED
@@ -26,6 +26,8 @@ import classNames from 'classnames';
26
26
  import SearchInput from "./SearchInput.js";
27
27
  import { Popper } from "./popper/index.js";
28
28
  import "./ComboBox.css";
29
+ import { jsx as _jsx } from "react/jsx-runtime";
30
+ import { jsxs as _jsxs } from "react/jsx-runtime";
29
31
  var MENU_NAVIGATION_DIRECTION;
30
32
  (function (MENU_NAVIGATION_DIRECTION) {
31
33
  MENU_NAVIGATION_DIRECTION["UP"] = "UP";
@@ -337,7 +339,7 @@ class ComboBox extends Component {
337
339
  filter,
338
340
  inputWidth
339
341
  } = this.state;
340
- return /*#__PURE__*/React.createElement("div", {
342
+ return /*#__PURE__*/_jsxs("div", {
341
343
  className: "cb-menu-container",
342
344
  ref: this.menuContainer,
343
345
  role: "presentation",
@@ -348,20 +350,24 @@ class ComboBox extends Component {
348
350
  style: {
349
351
  width: inputWidth
350
352
  },
351
- onBlur: this.handleMenuBlur
352
- }, /*#__PURE__*/React.createElement("div", {
353
- className: "cb-search-input-container"
354
- }, /*#__PURE__*/React.createElement(SearchInput, {
355
- value: filter,
356
- ref: this.searchInput,
357
- onChange: this.handleFilterChange,
358
- className: "cb-search-input",
359
- placeholder: searchPlaceholder
360
- })), /*#__PURE__*/React.createElement("div", {
361
- className: "cb-options-container"
362
- }, /*#__PURE__*/React.createElement("div", {
363
- className: "cb-options"
364
- }, this.renderOptions())));
353
+ onBlur: this.handleMenuBlur,
354
+ children: [/*#__PURE__*/_jsx("div", {
355
+ className: "cb-search-input-container",
356
+ children: /*#__PURE__*/_jsx(SearchInput, {
357
+ value: filter,
358
+ ref: this.searchInput,
359
+ onChange: this.handleFilterChange,
360
+ className: "cb-search-input",
361
+ placeholder: searchPlaceholder
362
+ })
363
+ }), /*#__PURE__*/_jsx("div", {
364
+ className: "cb-options-container",
365
+ children: /*#__PURE__*/_jsx("div", {
366
+ className: "cb-options",
367
+ children: this.renderOptions()
368
+ })
369
+ })]
370
+ });
365
371
  }
366
372
  renderOptions() {
367
373
  var {
@@ -375,16 +381,16 @@ class ComboBox extends Component {
375
381
  var menuOptions = filter ? filteredOptions : options;
376
382
  return menuOptions.map((option, index) => {
377
383
  var key = "option-".concat(index, "-").concat(option.value);
378
- return /*#__PURE__*/React.createElement("button", {
379
- key: key,
384
+ return /*#__PURE__*/_jsx("button", {
380
385
  type: "button",
381
386
  value: index,
382
387
  className: classNames('cb-option-btn', {
383
388
  'keyboard-active': keyboardOptionIndex === index
384
389
  }),
385
390
  onClick: this.handleOptionClick,
386
- onFocus: this.handleOptionFocus
387
- }, option.title);
391
+ onFocus: this.handleOptionFocus,
392
+ children: option.title
393
+ }, key);
388
394
  });
389
395
  }
390
396
  render() {
@@ -411,39 +417,43 @@ class ComboBox extends Component {
411
417
  }
412
418
  }
413
419
  }, popperOptions);
414
- return /*#__PURE__*/React.createElement("div", {
420
+ return /*#__PURE__*/_jsxs("div", {
415
421
  className: "input-group cb-container",
416
- ref: this.cbContainer
417
- }, /*#__PURE__*/React.createElement("input", {
418
- value: value || defaultValue,
419
- className: classNames('form-control', className, 'cb-input'),
420
- ref: this.input,
421
- onChange: this.handleInputChange,
422
- placeholder: inputPlaceholder || (options[0] != null ? options[0].title : undefined),
423
- disabled: disabled,
424
- onBlur: this.handleInputBlur,
425
- onKeyDown: this.handleInputKeyDown,
426
- spellCheck: spellCheck,
427
- "data-testid": dataTestId !== undefined ? "".concat(dataTestId, "-input") : undefined
428
- }), /*#__PURE__*/React.createElement("div", {
429
- className: "input-group-append cb-dropdown"
430
- }, /*#__PURE__*/React.createElement("button", {
431
- type: "button",
432
- className: "btn cb-btn form-control",
433
- ref: this.toggleButton,
434
- onClick: this.toggleMenu,
435
- onKeyDown: this.handleInputKeyDown,
436
- disabled: disabled,
437
- "data-testid": dataTestId !== undefined ? "".concat(dataTestId, "-btn") : undefined
438
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
439
- icon: vsTriangleDown
440
- }), /*#__PURE__*/React.createElement(Popper, {
441
- ref: this.popper,
442
- options: popperOptions,
443
- className: classNames('combobox interactive'),
444
- onEntered: this.handleMenuOpened,
445
- onExited: this.handleMenuExited
446
- }, this.renderMenuElement()))));
422
+ ref: this.cbContainer,
423
+ children: [/*#__PURE__*/_jsx("input", {
424
+ value: value || defaultValue,
425
+ className: classNames('form-control', className, 'cb-input'),
426
+ ref: this.input,
427
+ onChange: this.handleInputChange,
428
+ placeholder: inputPlaceholder || (options[0] != null ? options[0].title : undefined),
429
+ disabled: disabled,
430
+ onBlur: this.handleInputBlur,
431
+ onKeyDown: this.handleInputKeyDown,
432
+ spellCheck: spellCheck,
433
+ "data-testid": dataTestId !== undefined ? "".concat(dataTestId, "-input") : undefined
434
+ }), /*#__PURE__*/_jsx("div", {
435
+ className: "input-group-append cb-dropdown",
436
+ children: /*#__PURE__*/_jsxs("button", {
437
+ type: "button",
438
+ className: "btn cb-btn form-control",
439
+ ref: this.toggleButton,
440
+ onClick: this.toggleMenu,
441
+ onKeyDown: this.handleInputKeyDown,
442
+ disabled: disabled,
443
+ "data-testid": dataTestId !== undefined ? "".concat(dataTestId, "-btn") : undefined,
444
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
445
+ icon: vsTriangleDown
446
+ }), /*#__PURE__*/_jsx(Popper, {
447
+ ref: this.popper,
448
+ options: popperOptions,
449
+ className: classNames('combobox interactive'),
450
+ onEntered: this.handleMenuOpened,
451
+ onExited: this.handleMenuExited,
452
+ children: this.renderMenuElement()
453
+ })]
454
+ })
455
+ })]
456
+ });
447
457
  }
448
458
  }
449
459
  _defineProperty(ComboBox, "MENU_NAVIGATION_DIRECTION", MENU_NAVIGATION_DIRECTION);