@deephaven/components 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AutoCompleteInput.js +41 -79
- package/dist/AutoCompleteInput.js.map +1 -1
- package/dist/AutoResizeTextarea.js +29 -13
- package/dist/AutoResizeTextarea.js.map +1 -1
- package/dist/BasicModal.js +17 -15
- package/dist/BasicModal.js.map +1 -1
- package/dist/BulkActionBar.js +3 -5
- package/dist/BulkActionBar.js.map +1 -1
- package/dist/Button.js +24 -25
- package/dist/Button.js.map +1 -1
- package/dist/CardFlip.js +4 -6
- package/dist/CardFlip.js.map +1 -1
- package/dist/Checkbox.js +22 -13
- package/dist/Checkbox.js.map +1 -1
- package/dist/Collapse.js +6 -9
- package/dist/Collapse.js.map +1 -1
- package/dist/CopyButton.js +14 -6
- package/dist/CopyButton.js.map +1 -1
- package/dist/CustomTimeSelect.js +49 -88
- package/dist/CustomTimeSelect.js.map +1 -1
- package/dist/DateInput.js +25 -10
- package/dist/DateInput.js.map +1 -1
- package/dist/DateInputUtils.js +1 -3
- package/dist/DateInputUtils.js.map +1 -1
- package/dist/DateTimeInput.js +28 -12
- package/dist/DateTimeInput.js.map +1 -1
- package/dist/DebouncedSearchInput.js +10 -19
- package/dist/DebouncedSearchInput.js.map +1 -1
- package/dist/DragUtils.js +15 -6
- package/dist/DragUtils.js.map +1 -1
- package/dist/DraggableItemList.js +42 -57
- package/dist/DraggableItemList.js.map +1 -1
- package/dist/EditableItemList.js +28 -13
- package/dist/EditableItemList.js.map +1 -1
- package/dist/ErrorBoundary.js +6 -11
- package/dist/ErrorBoundary.js.map +1 -1
- package/dist/ErrorView.js +20 -8
- package/dist/ErrorView.js.map +1 -1
- package/dist/HierarchicalCheckboxMenu.js +30 -28
- package/dist/HierarchicalCheckboxMenu.js.map +1 -1
- package/dist/ItemList.js +96 -168
- package/dist/ItemList.js.map +1 -1
- package/dist/ItemListItem.js +46 -60
- package/dist/ItemListItem.js.map +1 -1
- package/dist/LoadingOverlay.js +13 -9
- package/dist/LoadingOverlay.js.map +1 -1
- package/dist/LoadingSpinner.js +3 -4
- package/dist/LoadingSpinner.js.map +1 -1
- package/dist/MaskedInput.js +44 -41
- package/dist/MaskedInput.js.map +1 -1
- package/dist/MaskedInputUtils.js +1 -3
- package/dist/MaskedInputUtils.js.map +1 -1
- package/dist/Option.js +1 -3
- package/dist/Option.js.map +1 -1
- package/dist/RadioGroup.js +17 -9
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioItem.js +25 -14
- package/dist/RadioItem.js.map +1 -1
- package/dist/RandomAreaPlotAnimation.js +17 -13
- package/dist/RandomAreaPlotAnimation.js.map +1 -1
- package/dist/SearchInput.js +13 -14
- package/dist/SearchInput.js.map +1 -1
- package/dist/SearchableCombobox.js +3 -5
- package/dist/SearchableCombobox.js.map +1 -1
- package/dist/Select.js +5 -7
- package/dist/Select.js.map +1 -1
- package/dist/SelectValueList.js +21 -30
- package/dist/SelectValueList.js.map +1 -1
- package/dist/SocketedButton.js +18 -17
- package/dist/SocketedButton.js.map +1 -1
- package/dist/SplitButtonGroup.js +4 -6
- package/dist/SplitButtonGroup.js.map +1 -1
- package/dist/TableViewEmptyState.js +14 -6
- package/dist/TableViewEmptyState.js.map +1 -1
- package/dist/TextWithTooltip.js +3 -4
- package/dist/TextWithTooltip.js.map +1 -1
- package/dist/TimeInput.js +29 -12
- package/dist/TimeInput.js.map +1 -1
- package/dist/TimeSlider.js +46 -38
- package/dist/TimeSlider.js.map +1 -1
- package/dist/ToastNotification.js +9 -10
- package/dist/ToastNotification.js.map +1 -1
- package/dist/UISwitch.js +8 -9
- package/dist/UISwitch.js.map +1 -1
- package/dist/actions/ConfirmActionButton.js +7 -9
- package/dist/actions/ConfirmActionButton.js.map +1 -1
- package/dist/actions/IconActionButton.js +3 -5
- package/dist/actions/IconActionButton.js.map +1 -1
- package/dist/context-actions/ContextActionUtils.js +1 -3
- package/dist/context-actions/ContextActionUtils.js.map +1 -1
- package/dist/context-actions/ContextActions.js +8 -18
- package/dist/context-actions/ContextActions.js.map +1 -1
- package/dist/context-actions/ContextMenu.js +53 -89
- package/dist/context-actions/ContextMenu.js.map +1 -1
- package/dist/context-actions/ContextMenuItem.js +11 -11
- package/dist/context-actions/ContextMenuItem.js.map +1 -1
- package/dist/context-actions/ContextMenuRoot.js +6 -11
- package/dist/context-actions/ContextMenuRoot.js.map +1 -1
- package/dist/context-actions/GlobalContextAction.js +2 -6
- package/dist/context-actions/GlobalContextAction.js.map +1 -1
- package/dist/context-actions/GlobalContextActions.js +4 -7
- package/dist/context-actions/GlobalContextActions.js.map +1 -1
- package/dist/dialogs/ActionButtonDialogTrigger.js +7 -9
- package/dist/dialogs/ActionButtonDialogTrigger.js.map +1 -1
- package/dist/dialogs/ConfirmationDialog.js +8 -11
- package/dist/dialogs/ConfirmationDialog.js.map +1 -1
- package/dist/menu-actions/DropdownMenu.js +12 -22
- package/dist/menu-actions/DropdownMenu.js.map +1 -1
- package/dist/menu-actions/Menu.js +19 -45
- package/dist/menu-actions/Menu.js.map +1 -1
- package/dist/modal/DebouncedModal.js +8 -9
- package/dist/modal/DebouncedModal.js.map +1 -1
- package/dist/modal/InfoModal.js +6 -7
- package/dist/modal/InfoModal.js.map +1 -1
- package/dist/modal/Modal.js +27 -15
- package/dist/modal/Modal.js.map +1 -1
- package/dist/modal/ModalBody.js +4 -6
- package/dist/modal/ModalBody.js.map +1 -1
- package/dist/modal/ModalFooter.js +3 -5
- package/dist/modal/ModalFooter.js.map +1 -1
- package/dist/modal/ModalHeader.js +7 -8
- package/dist/modal/ModalHeader.js.map +1 -1
- package/dist/navigation/DashboardList.js +17 -6
- package/dist/navigation/DashboardList.js.map +1 -1
- package/dist/navigation/Menu.js +4 -5
- package/dist/navigation/Menu.js.map +1 -1
- package/dist/navigation/MenuItem.js +7 -10
- package/dist/navigation/MenuItem.js.map +1 -1
- package/dist/navigation/NavTab.js +14 -17
- package/dist/navigation/NavTab.js.map +1 -1
- package/dist/navigation/NavTabList.js +39 -33
- package/dist/navigation/NavTabList.js.map +1 -1
- package/dist/navigation/Page.js +5 -7
- package/dist/navigation/Page.js.map +1 -1
- package/dist/navigation/Stack.js +20 -7
- package/dist/navigation/Stack.js.map +1 -1
- package/dist/popper/Popper.js +30 -57
- package/dist/popper/Popper.js.map +1 -1
- package/dist/popper/Tooltip.js +24 -54
- package/dist/popper/Tooltip.js.map +1 -1
- package/dist/shortcuts/Shortcut.js +10 -15
- package/dist/shortcuts/Shortcut.js.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.js +1 -3
- package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
- package/dist/spectrum/ActionGroup.js +7 -9
- package/dist/spectrum/ActionGroup.js.map +1 -1
- package/dist/spectrum/ActionMenu.js +3 -5
- package/dist/spectrum/ActionMenu.js.map +1 -1
- package/dist/spectrum/CheckboxGroup.js +1 -3
- package/dist/spectrum/CheckboxGroup.js.map +1 -1
- package/dist/spectrum/Heading.js +2 -4
- package/dist/spectrum/Heading.js.map +1 -1
- package/dist/spectrum/ItemContent.js +16 -10
- package/dist/spectrum/ItemContent.js.map +1 -1
- package/dist/spectrum/ItemTooltip.js +2 -4
- package/dist/spectrum/ItemTooltip.js.map +1 -1
- package/dist/spectrum/TabPanels.js +3 -4
- package/dist/spectrum/TabPanels.js.map +1 -1
- package/dist/spectrum/Text.js +2 -4
- package/dist/spectrum/Text.js.map +1 -1
- package/dist/spectrum/View.js +11 -14
- package/dist/spectrum/View.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBox.js +5 -9
- package/dist/spectrum/comboBox/ComboBox.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBoxNormalized.js +3 -7
- package/dist/spectrum/comboBox/ComboBoxNormalized.js.map +1 -1
- package/dist/spectrum/listView/ListView.js +11 -11
- package/dist/spectrum/listView/ListView.js.map +1 -1
- package/dist/spectrum/listView/ListViewNormalized.js +22 -24
- package/dist/spectrum/listView/ListViewNormalized.js.map +1 -1
- package/dist/spectrum/listView/ListViewWrapper.js +11 -15
- package/dist/spectrum/listView/ListViewWrapper.js.map +1 -1
- package/dist/spectrum/multiSelect/MultiSelect.js +113 -100
- package/dist/spectrum/multiSelect/MultiSelect.js.map +1 -1
- package/dist/spectrum/multiSelect/MultiSelectListBox.js +9 -11
- package/dist/spectrum/multiSelect/MultiSelectListBox.js.map +1 -1
- package/dist/spectrum/multiSelect/MultiSelectNormalized.js +3 -7
- package/dist/spectrum/multiSelect/MultiSelectNormalized.js.map +1 -1
- package/dist/spectrum/multiSelect/MultiSelectTag.js +5 -7
- package/dist/spectrum/multiSelect/MultiSelectTag.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectFilter.js +20 -14
- package/dist/spectrum/multiSelect/useMultiSelectFilter.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js +27 -20
- package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js +14 -7
- package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js +20 -22
- package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js +13 -6
- package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js.map +1 -1
- package/dist/spectrum/multiSelect/useMultiSelectState.js +16 -9
- package/dist/spectrum/multiSelect/useMultiSelectState.js.map +1 -1
- package/dist/spectrum/picker/Picker.js +5 -9
- package/dist/spectrum/picker/Picker.js.map +1 -1
- package/dist/spectrum/picker/PickerNormalized.js +2 -6
- package/dist/spectrum/picker/PickerNormalized.js.map +1 -1
- package/dist/spectrum/picker/usePickerItemScale.js +2 -3
- package/dist/spectrum/picker/usePickerItemScale.js.map +1 -1
- package/dist/spectrum/picker/usePickerNormalizedProps.js +31 -33
- package/dist/spectrum/picker/usePickerNormalizedProps.js.map +1 -1
- package/dist/spectrum/picker/usePickerProps.js +26 -29
- package/dist/spectrum/picker/usePickerProps.js.map +1 -1
- package/dist/spectrum/picker/usePickerScrollOnOpen.js +6 -9
- package/dist/spectrum/picker/usePickerScrollOnOpen.js.map +1 -1
- package/dist/spectrum/utils/itemUtils.js +4 -6
- package/dist/spectrum/utils/itemUtils.js.map +1 -1
- package/dist/spectrum/utils/propsUtils.js +35 -37
- package/dist/spectrum/utils/propsUtils.js.map +1 -1
- package/dist/spectrum/utils/themeUtils.js +5 -7
- package/dist/spectrum/utils/themeUtils.js.map +1 -1
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js +13 -6
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js.map +1 -1
- package/dist/spectrum/utils/useRenderNormalizedItem.js +5 -7
- package/dist/spectrum/utils/useRenderNormalizedItem.js.map +1 -1
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js +4 -6
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedMultiSelection.js +5 -7
- package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedSelection.js +5 -7
- package/dist/spectrum/utils/useStringifiedSelection.js.map +1 -1
- package/dist/theme/FontBootstrap.js +13 -5
- package/dist/theme/FontBootstrap.js.map +1 -1
- package/dist/theme/FontsLoaded.js +1 -3
- package/dist/theme/FontsLoaded.js.map +1 -1
- package/dist/theme/Logo.js +2 -4
- package/dist/theme/Logo.js.map +1 -1
- package/dist/theme/SpectrumThemeProvider.js +17 -9
- package/dist/theme/SpectrumThemeProvider.js.map +1 -1
- package/dist/theme/ThemePicker.js +4 -5
- package/dist/theme/ThemePicker.js.map +1 -1
- package/dist/theme/ThemeProvider.js +20 -8
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/ThemeUtils.js +35 -19
- package/dist/theme/ThemeUtils.js.map +1 -1
- package/dist/theme/useExternalTheme.js +16 -7
- package/dist/theme/useExternalTheme.js.map +1 -1
- package/dist/transitions/FadeTransition.js +5 -6
- package/dist/transitions/FadeTransition.js.map +1 -1
- package/dist/transitions/SlideTransition.js +6 -7
- package/dist/transitions/SlideTransition.js.map +1 -1
- package/package.json +8 -8
package/dist/Button.js
CHANGED
|
@@ -42,28 +42,28 @@ function getVariantClasses(kind) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
export var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
45
|
+
var kind = props.kind,
|
|
46
|
+
variant = props.variant,
|
|
47
|
+
_props$type = props.type,
|
|
48
|
+
type = _props$type === void 0 ? 'button' : _props$type,
|
|
49
|
+
tooltip = props.tooltip,
|
|
50
|
+
icon = props.icon,
|
|
51
|
+
_props$disabled = props.disabled,
|
|
52
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
53
|
+
active = props.active,
|
|
54
|
+
onClick = props.onClick,
|
|
55
|
+
onContextMenu = props.onContextMenu,
|
|
56
|
+
onMouseDown = props.onMouseDown,
|
|
57
|
+
onMouseUp = props.onMouseUp,
|
|
58
|
+
onMouseEnter = props.onMouseEnter,
|
|
59
|
+
onMouseLeave = props.onMouseLeave,
|
|
60
|
+
onKeyDown = props.onKeyDown,
|
|
61
|
+
className = props.className,
|
|
62
|
+
style = props.style,
|
|
63
|
+
children = props.children,
|
|
64
|
+
tabIndex = props.tabIndex,
|
|
65
|
+
dataTestId = props['data-testid'],
|
|
66
|
+
ariaLabel = props['aria-label'],
|
|
67
67
|
rest = _objectWithoutProperties(props, _excluded);
|
|
68
68
|
|
|
69
69
|
// Spectrum container components such as `ButtonGroup` provide
|
|
@@ -71,9 +71,8 @@ export var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
71
71
|
// https://github.com/adobe/react-spectrum/blob/%40adobe/react-spectrum%403.33.1/packages/%40react-spectrum/buttongroup/src/ButtonGroup.tsx#L104-L107)
|
|
72
72
|
// This can be retrieved via `useSlotProps` to allow our buttons to be styled
|
|
73
73
|
// correctly inside the container.
|
|
74
|
-
var {
|
|
75
|
-
UNSAFE_className
|
|
76
|
-
} = useSlotProps({}, 'button');
|
|
74
|
+
var _useSlotProps = useSlotProps({}, 'button'),
|
|
75
|
+
UNSAFE_className = _useSlotProps.UNSAFE_className;
|
|
77
76
|
var variantClassName;
|
|
78
77
|
if (variant) {
|
|
79
78
|
variantClassName = getVariantClasses(variant);
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["React","useSlotProps","classNames","FontAwesomeIcon","Tooltip","jsx","_jsx","jsxs","_jsxs","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","_objectWithoutProperties","_excluded","UNSAFE_className","variantClassName","iconElem","isValidElement","btnClassName","tooltipElem","undefined","ariaLabelString","button","_objectSpread","displayName"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport { useSlotProps } from '@react-spectrum/utils';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type 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\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type = 'button',\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 // Spectrum container components such as `ButtonGroup` provide\n // UNSAFE_className prop for the `button` slot via a SlotProvider (\n // https://github.com/adobe/react-spectrum/blob/%40adobe/react-spectrum%403.33.1/packages/%40react-spectrum/buttongroup/src/ButtonGroup.tsx#L104-L107)\n // This can be retrieved via `useSlotProps` to allow our buttons to be styled\n // correctly inside the container.\n const { UNSAFE_className } = useSlotProps<{ UNSAFE_className?: string }>(\n {},\n 'button'\n );\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 // not entirely accurate, as button can have non-visible children\n const iconOnly = iconElem != null && children == null;\n\n const btnClassName = getClassName(kind, iconOnly);\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 UNSAFE_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 && tooltip != null ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAAC,SAExDC,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhB,IAAMC,YAAY,GAAG,CACnB,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,CACC;AAIV,IAAMC,aAAa,GAAG,CAAC,WAAW,CAAU;AAqC5C,SAASC,YAAYA,CAACC,IAAgB,EAAEC,QAAiB,EAAU;EACjE,QAAQD,IAAI;IACV,KAAK,SAAS;MACZ,OAAO,aAAa;IACtB,KAAK,WAAW;MACd,OAAO,qBAAqB;IAC9B,KAAK,UAAU;MACb,OAAO,eAAe;IACxB,KAAK,SAAS;MACZ,OAAO,aAAa;IACtB,KAAK,QAAQ;MACX,OAAO,YAAY;IACrB,KAAK,QAAQ;MACX,OAAO,YAAY;IACrB,KAAK,OAAO;MACV,OAAOV,UAAU,CAAC,UAAU,EAAE;QAC5B,eAAe,EAAEW,QAAQ;QACzB,oBAAoB,EAAEA;MACxB,CAAC,CAAC;EACN;AACF;AAEA,SAASC,iBAAiBA,CAACF,IAAiB,EAAU;EACpD,QAAQA,IAAI;IACV,KAAK,WAAW;MACd,OAAOV,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;EACrC;AACF;AAEA,OAAO,IAAMa,MAAM,gBAAGf,KAAK,CAACgB,UAAU,CACpC,CAACC,KAAkB,EAAEC,GAAG,KAAK;EAC3B,
|
|
1
|
+
{"version":3,"file":"Button.js","names":["React","useSlotProps","classNames","FontAwesomeIcon","Tooltip","jsx","_jsx","jsxs","_jsxs","BUTTON_KINDS","VARIANT_KINDS","getClassName","kind","iconOnly","getVariantClasses","Button","forwardRef","props","ref","variant","_props$type","type","tooltip","icon","_props$disabled","disabled","active","onClick","onContextMenu","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onKeyDown","className","style","children","tabIndex","dataTestId","ariaLabel","rest","_objectWithoutProperties","_excluded","_useSlotProps","UNSAFE_className","variantClassName","iconElem","isValidElement","btnClassName","tooltipElem","undefined","ariaLabelString","button","_objectSpread","displayName"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport { useSlotProps } from '@react-spectrum/utils';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { type 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\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props: ButtonProps, ref) => {\n const {\n kind,\n variant,\n type = 'button',\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 // Spectrum container components such as `ButtonGroup` provide\n // UNSAFE_className prop for the `button` slot via a SlotProvider (\n // https://github.com/adobe/react-spectrum/blob/%40adobe/react-spectrum%403.33.1/packages/%40react-spectrum/buttongroup/src/ButtonGroup.tsx#L104-L107)\n // This can be retrieved via `useSlotProps` to allow our buttons to be styled\n // correctly inside the container.\n const { UNSAFE_className } = useSlotProps<{ UNSAFE_className?: string }>(\n {},\n 'button'\n );\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 // not entirely accurate, as button can have non-visible children\n const iconOnly = iconElem != null && children == null;\n\n const btnClassName = getClassName(kind, iconOnly);\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 UNSAFE_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 && tooltip != null ? (\n <span className=\"btn-disabled-wrapper\">\n {button}\n {tooltipElem}\n </span>\n ) : (\n button\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/CardFlip.js
CHANGED
|
@@ -11,12 +11,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
11
11
|
* @returns
|
|
12
12
|
*/
|
|
13
13
|
function CardFlip(_ref) {
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
'data-testid': dataTestId
|
|
19
|
-
} = _ref;
|
|
14
|
+
var className = _ref.className,
|
|
15
|
+
isFlipped = _ref.isFlipped,
|
|
16
|
+
children = _ref.children,
|
|
17
|
+
dataTestId = _ref['data-testid'];
|
|
20
18
|
var getComponent = key => {
|
|
21
19
|
if (children.length !== 2) {
|
|
22
20
|
throw new Error('CardFlip requires 2 children to function');
|
package/dist/CardFlip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardFlip.js","names":["React","useCallback","useEffect","useRef","classNames","jsx","_jsx","jsxs","_jsxs","CardFlip","_ref","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","ref","onTransitionEnd"],"sources":["../src/CardFlip.tsx"],"sourcesContent":["import React, { type ReactNode, 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): ReactNode => {\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: TransitionEvent) => {\n if (event.target === event.currentTarget) {\n document.body.classList.add('card-flip--is-flipping');\n }\n }, []);\n\n const transitionEnd = useCallback(\n (event: React.TransitionEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) {\n document.body.classList.remove('card-flip--is-flipping');\n }\n },\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,IAAoBC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7E,OAAOC,UAAU,MAAM,YAAY;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAAC,IAAA,EAKc;EAAA,
|
|
1
|
+
{"version":3,"file":"CardFlip.js","names":["React","useCallback","useEffect","useRef","classNames","jsx","_jsx","jsxs","_jsxs","CardFlip","_ref","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","ref","onTransitionEnd"],"sources":["../src/CardFlip.tsx"],"sourcesContent":["import React, { type ReactNode, 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): ReactNode => {\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: TransitionEvent) => {\n if (event.target === event.currentTarget) {\n document.body.classList.add('card-flip--is-flipping');\n }\n }, []);\n\n const transitionEnd = useCallback(\n (event: React.TransitionEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget) {\n document.body.classList.remove('card-flip--is-flipping');\n }\n },\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,IAAoBC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7E,OAAOC,UAAU,MAAM,YAAY;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAAAC,IAAA,EAKc;EAAA,IAJ7BC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACOC,UAAU,GAAAJ,IAAA,CAAzB,aAAa;EAEb,IAAMK,YAAY,GAAIC,GAAU,IAAgB;IAC9C,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,GAAGhB,MAAM,CAAiB,IAAI,CAAC;EAE1C,IAAMiB,eAAe,GAAGnB,WAAW,CAAEoB,KAAsB,IAAK;IAC9D,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,GAAG3B,WAAW,CAC9BoB,KAA4C,IAAK;IAChD,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAE;MACxCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACG,MAAM,CAAC,wBAAwB,CAAC;IAC1D;EACF,CAAC,EACD,EACF,CAAC;EAED3B,SAAS,CACP,SAAS4B,mCAAmCA,CAAA,EAAG;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,eAAeA,CAAA,EAAG;MAChC,IAAID,MAAM,IAAI,IAAI,EAAE;QAClB,OAAOA,MAAM,CAACE,mBAAmB,CAAC,iBAAiB,EAAEf,eAAe,CAAC;MACvE;IACF,CAAC;EACH,CAAC,EACD,CAACA,eAAe,CAClB,CAAC;EAED,oBACEZ,KAAA;IACEG,SAAS,EAAEP,UAAU,CAACO,SAAS,EAAE;MAC/B,uBAAuB,EAAEC,SAAS;MAClC,sBAAsB,EAAE,CAACA;IAC3B,CAAC,CAAE;IACH,eAAaE,UAAW;IAAAD,QAAA,gBAExBP,IAAA;MAAKK,SAAS,EAAC,iBAAiB;MAAAE,QAAA,EAAEE,YAAY,CAAC,CAAC;IAAC,CAAM,CAAC,eACxDT,IAAA;MACE8B,GAAG,EAAEjB,KAAM;MACXR,SAAS,EAAC,kBAAkB;MAC5B0B,eAAe,EAAET,aAAc;MAAAf,QAAA,EAE9BE,YAAY,CAAC,CAAC;IAAC,CACb,CAAC;EAAA,CACH,CAAC;AAEV;AAEA,eAAeN,QAAQ","ignoreList":[]}
|
package/dist/Checkbox.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
import React, { useState, useEffect, useCallback } from 'react';
|
|
2
8
|
import classNames from 'classnames';
|
|
3
9
|
import { nanoid } from 'nanoid';
|
|
@@ -7,19 +13,22 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
7
13
|
* A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.
|
|
8
14
|
*/
|
|
9
15
|
var Checkbox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
|
|
10
|
-
var
|
|
11
|
-
checked = false,
|
|
12
|
-
children,
|
|
13
|
-
className,
|
|
14
|
-
disabled =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
var _props$checked = props.checked,
|
|
17
|
+
checked = _props$checked === void 0 ? false : _props$checked,
|
|
18
|
+
children = props.children,
|
|
19
|
+
className = props.className,
|
|
20
|
+
_props$disabled = props.disabled,
|
|
21
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
22
|
+
inputClassName = props.inputClassName,
|
|
23
|
+
_props$isInvalid = props.isInvalid,
|
|
24
|
+
isInvalid = _props$isInvalid === void 0 ? false : _props$isInvalid,
|
|
25
|
+
labelClassName = props.labelClassName,
|
|
26
|
+
name = props.name,
|
|
27
|
+
onChange = props.onChange,
|
|
28
|
+
dataTestId = props['data-testid'];
|
|
29
|
+
var _useState = useState(nanoid()),
|
|
30
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
31
|
+
id = _useState2[0];
|
|
23
32
|
var ref = useForwardedRef(forwardedRef);
|
|
24
33
|
useEffect(function setIndeterminateProperty() {
|
|
25
34
|
if (ref.current) {
|
package/dist/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","nanoid","useForwardedRef","jsx","_jsx","jsxs","_jsxs","Checkbox","forwardRef","props","forwardedRef","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","name","onChange","dataTestId","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","type","htmlFor","displayName"],"sources":["../src/Checkbox.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid';\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 = false,\n inputClassName,\n isInvalid = false,\n labelClassName,\n name,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(nanoid());\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\nexport default Checkbox;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,eAAe,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAezD;AACA;AACA;AACA,IAAMC,QAAQ,gBAAGX,KAAK,CAACY,UAAU,CAC/B,CAACC,KAAK,EAAEC,YAAY,KAAK;EACvB,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","nanoid","useForwardedRef","jsx","_jsx","jsxs","_jsxs","Checkbox","forwardRef","props","forwardedRef","_props$checked","checked","children","className","_props$disabled","disabled","inputClassName","_props$isInvalid","isInvalid","labelClassName","name","onChange","dataTestId","_useState","_useState2","_slicedToArray","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","type","htmlFor","displayName"],"sources":["../src/Checkbox.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid';\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 = false,\n inputClassName,\n isInvalid = false,\n labelClassName,\n name,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(nanoid());\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\nexport default Checkbox;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,eAAe,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAezD;AACA;AACA;AACA,IAAMC,QAAQ,gBAAGX,KAAK,CAACY,UAAU,CAC/B,CAACC,KAAK,EAAEC,YAAY,KAAK;EACvB,IAAAC,cAAA,GAWIF,KAAK,CAVPG,OAAO;IAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IACfE,QAAQ,GASNJ,KAAK,CATPI,QAAQ;IACRC,SAAS,GAQPL,KAAK,CARPK,SAAS;IAAAC,eAAA,GAQPN,KAAK,CAPPO,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAChBE,cAAc,GAMZR,KAAK,CANPQ,cAAc;IAAAC,gBAAA,GAMZT,KAAK,CALPU,SAAS;IAATA,SAAS,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA;IACjBE,cAAc,GAIZX,KAAK,CAJPW,cAAc;IACdC,IAAI,GAGFZ,KAAK,CAHPY,IAAI;IACJC,QAAQ,GAENb,KAAK,CAFPa,QAAQ;IACOC,UAAU,GACvBd,KAAK,CADP,aAAa;EAGf,IAAAe,SAAA,GAAa3B,QAAQ,CAACI,MAAM,CAAC,CAAC,CAAC;IAAAwB,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAxBG,EAAE,GAAAF,UAAA;EAET,IAAMG,GAAG,GAAG1B,eAAe,CAAmBQ,YAAY,CAAC;EAE3DZ,SAAS,CACP,SAAS+B,wBAAwBA,CAAA,EAAG;IAClC,IAAID,GAAG,CAACE,OAAO,EAAE;MACf;MACAF,GAAG,CAACE,OAAO,CAACC,aAAa,GAAGnB,OAAO,KAAK,IAAI;IAC9C;EACF,CAAC,EACD,CAACgB,GAAG,EAAEhB,OAAO,CACf,CAAC;EAED,IAAMoB,cAA0D,GAC9DjC,WAAW,CACTkC,KAAK,IAAI;IACP,IAAIL,GAAG,CAACE,OAAO,EAAE;MACf;MACAF,GAAG,CAACE,OAAO,CAACC,aAAa,GAAGnB,OAAO,KAAK,IAAI;IAC9C;IAEA,IAAIU,QAAQ,EAAE;MACZA,QAAQ,CAACW,KAAK,CAAC;IACjB;EACF,CAAC,EACD,CAACL,GAAG,EAAEhB,OAAO,EAAEU,QAAQ,CACzB,CAAC;EAEH,oBACEhB,KAAA;IAAKQ,SAAS,EAAEd,UAAU,CAAC,gCAAgC,EAAEc,SAAS,CAAE;IAAAD,QAAA,gBACtET,IAAA;MACE8B,IAAI,EAAC,UAAU;MACfN,GAAG,EAAEA,GAAI;MACThB,OAAO,EAAEA,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,KAAM,CAAC;MAAA;MAC3BE,SAAS,EAAEd,UAAU,CAAC,sBAAsB,EAAEiB,cAAc,EAAE;QAC5D,YAAY,EAAEE;MAChB,CAAC,CAAE;MACHH,QAAQ,EAAEA,QAAS;MACnBW,EAAE,EAAEA,EAAG;MACPN,IAAI,EAAEA,IAAK;MACXC,QAAQ,EAAEU,cAAe;MACzB,eAAaT;IAAW,CACzB,CAAC,eACFnB,IAAA;MACEU,SAAS,EAAEd,UAAU,CAAC,sBAAsB,EAAEoB,cAAc,CAAE;MAC9De,OAAO,EAAER,EAAG;MAAAd,QAAA,EAEXA;IAAQ,CACJ,CAAC;EAAA,CACL,CAAC;AAEV,CACF,CAAC;;AAED;AACA;AACAN,QAAQ,CAAC6B,WAAW,GAAG,UAAU;AAEjC,eAAe7B,QAAQ","ignoreList":[]}
|
package/dist/Collapse.js
CHANGED
|
@@ -22,9 +22,7 @@ class Collapse extends Component {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
elem.style.height = '';
|
|
25
|
-
var
|
|
26
|
-
autoFocusOnShow
|
|
27
|
-
} = this.props;
|
|
25
|
+
var autoFocusOnShow = this.props.autoFocusOnShow;
|
|
28
26
|
if (autoFocusOnShow !== undefined && autoFocusOnShow) {
|
|
29
27
|
var input = elem.querySelector('input, select, textarea');
|
|
30
28
|
if (input != null) {
|
|
@@ -61,12 +59,11 @@ class Collapse extends Component {
|
|
|
61
59
|
elem.style.height = "".concat(Collapse.getHeight(elem), "px");
|
|
62
60
|
}
|
|
63
61
|
render() {
|
|
64
|
-
var
|
|
65
|
-
children
|
|
66
|
-
className,
|
|
67
|
-
in
|
|
68
|
-
'data-testid'
|
|
69
|
-
} = this.props;
|
|
62
|
+
var _this$props = this.props,
|
|
63
|
+
_children = _this$props.children,
|
|
64
|
+
className = _this$props.className,
|
|
65
|
+
inTransition = _this$props.in,
|
|
66
|
+
dataTestId = _this$props['data-testid'];
|
|
70
67
|
return /*#__PURE__*/_jsx(CSSTransition, {
|
|
71
68
|
in: inTransition,
|
|
72
69
|
classNames: {
|
package/dist/Collapse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collapse.js","names":["React","Component","classNames","CSSTransition","jsx","_jsx","Collapse","getHeight","elem","scrollBarWidth","scrollWidth","clientWidth","scrollHeight","constructor","props","_defineProperty","createRef","handleEntered","bind","nodeRef","current","style","height","autoFocusOnShow","undefined","input","querySelector","focus","handleEnter","handleEntering","concat","handleExiting","handleExit","render","children","className","
|
|
1
|
+
{"version":3,"file":"Collapse.js","names":["React","Component","classNames","CSSTransition","jsx","_jsx","Collapse","getHeight","elem","scrollBarWidth","scrollWidth","clientWidth","scrollHeight","constructor","props","_defineProperty","createRef","handleEntered","bind","nodeRef","current","style","height","autoFocusOnShow","undefined","input","querySelector","focus","handleEnter","handleEntering","concat","handleExiting","handleExit","render","_this$props","children","className","inTransition","in","dataTestId","enterActive","enterDone","exitActive","exitDone","onEnter","onEntering","onEntered","onExit","onExiting","timeout","state","ref","collapse"],"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 { 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 defaultProps = {\n className: '',\n autoFocusOnShow: false,\n 'data-testid': undefined,\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 nodeRef = React.createRef<HTMLDivElement>();\n\n handleEntered(): void {\n const elem = this.nodeRef.current;\n if (!elem) {\n return;\n }\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 handleEnter(): void {\n const elem = this.nodeRef.current;\n if (!elem) {\n return;\n }\n elem.style.height = '0';\n }\n\n handleEntering(): void {\n const elem = this.nodeRef.current;\n if (!elem) {\n return;\n }\n elem.style.height = `${Collapse.getHeight(elem)}px`;\n }\n\n handleExiting(): void {\n const elem = this.nodeRef.current;\n if (!elem) {\n return;\n }\n elem.style.height = '0';\n }\n\n handleExit(): void {\n const elem = this.nodeRef.current;\n if (!elem) {\n return;\n }\n elem.style.height = `${Collapse.getHeight(elem)}px`;\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={this.handleEnter}\n onEntering={this.handleEntering}\n onEntered={this.handleEntered}\n onExit={this.handleExit}\n onExiting={this.handleExiting}\n timeout={350}\n nodeRef={this.nodeRef}\n >\n {state => (\n <div\n ref={this.nodeRef}\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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","ignoreList":[]}
|
package/dist/CopyButton.js
CHANGED
|
@@ -4,6 +4,12 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
10
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
13
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
8
14
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
9
15
|
/* eslint-disable react/jsx-props-no-spreading */
|
|
@@ -18,13 +24,15 @@ var DEFAULT_TOOLTIP = 'Copy';
|
|
|
18
24
|
* Button that has a copy icon, and copies text to a clipboard when clicked.
|
|
19
25
|
*/
|
|
20
26
|
function CopyButton(_ref) {
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
} = _ref,
|
|
27
|
+
var copy = _ref.copy,
|
|
28
|
+
_ref$tooltip = _ref.tooltip,
|
|
29
|
+
tooltip = _ref$tooltip === void 0 ? DEFAULT_TOOLTIP : _ref$tooltip,
|
|
30
|
+
children = _ref.children,
|
|
26
31
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
27
|
-
var
|
|
32
|
+
var _useCopyToClipboard = useCopyToClipboard(),
|
|
33
|
+
_useCopyToClipboard2 = _slicedToArray(_useCopyToClipboard, 2),
|
|
34
|
+
copied = _useCopyToClipboard2[0],
|
|
35
|
+
copyToClipboard = _useCopyToClipboard2[1];
|
|
28
36
|
var currentTooltip = copied ? 'Copied' : tooltip;
|
|
29
37
|
return /*#__PURE__*/_jsxs(ActionButton, _objectSpread(_objectSpread({}, rest), {}, {
|
|
30
38
|
"aria-label": currentTooltip,
|
package/dist/CopyButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.js","names":["FontAwesomeIcon","vsPassFilled","vsCopy","useCopyToClipboard","ActionButton","Icon","Text","Tooltip","jsx","_jsx","jsxs","_jsxs","DEFAULT_TOOLTIP","CopyButton","_ref","copy","tooltip","children","rest","_objectWithoutProperties","_excluded","copied","copyToClipboard","currentTooltip","_objectSpread","onPress","UNSAFE_className","undefined","icon","displayName"],"sources":["../src/CopyButton.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsPassFilled, vsCopy } from '@deephaven/icons';\nimport { useCopyToClipboard } from '@deephaven/react-hooks';\nimport { ActionButton, Icon, Text, type ActionButtonProps } from './spectrum';\nimport { Tooltip } from './popper';\n\nconst DEFAULT_TOOLTIP = 'Copy';\n\nexport interface CopyButtonProps\n extends Omit<ActionButtonProps, 'aria-label' | 'onPress'> {\n /** The value to copy when clicked, accepts string or function returning a string. */\n copy: string | (() => string);\n /** Optional tooltip label ex. 'Copy column name'. Defaults to 'Copy'. */\n tooltip?: string;\n}\n\n/**\n * Button that has a copy icon, and copies text to a clipboard when clicked.\n */\nfunction CopyButton({\n copy,\n tooltip = DEFAULT_TOOLTIP,\n children,\n ...rest\n}: CopyButtonProps): JSX.Element {\n const [copied, copyToClipboard] = useCopyToClipboard();\n const currentTooltip = copied ? 'Copied' : tooltip;\n\n return (\n <ActionButton\n {...rest}\n aria-label={currentTooltip}\n onPress={() => {\n copyToClipboard(typeof copy === 'function' ? copy() : copy);\n }}\n >\n <Icon\n UNSAFE_className={\n children == null ? 'action-button-icon-with-tooltip' : undefined\n }\n >\n <FontAwesomeIcon icon={copied ? vsPassFilled : vsCopy} />\n </Icon>\n {children != null && <Text>{children}</Text>}\n {/* Assumes children means button has a label, and no longer needs a tooltip */}\n {(children == null || currentTooltip !== DEFAULT_TOOLTIP) && (\n <Tooltip>{currentTooltip}</Tooltip>\n )}\n </ActionButton>\n );\n}\n\nCopyButton.displayName = 'CopyButton';\n\nexport default CopyButton;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CopyButton.js","names":["FontAwesomeIcon","vsPassFilled","vsCopy","useCopyToClipboard","ActionButton","Icon","Text","Tooltip","jsx","_jsx","jsxs","_jsxs","DEFAULT_TOOLTIP","CopyButton","_ref","copy","_ref$tooltip","tooltip","children","rest","_objectWithoutProperties","_excluded","_useCopyToClipboard","_useCopyToClipboard2","_slicedToArray","copied","copyToClipboard","currentTooltip","_objectSpread","onPress","UNSAFE_className","undefined","icon","displayName"],"sources":["../src/CopyButton.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsPassFilled, vsCopy } from '@deephaven/icons';\nimport { useCopyToClipboard } from '@deephaven/react-hooks';\nimport { ActionButton, Icon, Text, type ActionButtonProps } from './spectrum';\nimport { Tooltip } from './popper';\n\nconst DEFAULT_TOOLTIP = 'Copy';\n\nexport interface CopyButtonProps\n extends Omit<ActionButtonProps, 'aria-label' | 'onPress'> {\n /** The value to copy when clicked, accepts string or function returning a string. */\n copy: string | (() => string);\n /** Optional tooltip label ex. 'Copy column name'. Defaults to 'Copy'. */\n tooltip?: string;\n}\n\n/**\n * Button that has a copy icon, and copies text to a clipboard when clicked.\n */\nfunction CopyButton({\n copy,\n tooltip = DEFAULT_TOOLTIP,\n children,\n ...rest\n}: CopyButtonProps): JSX.Element {\n const [copied, copyToClipboard] = useCopyToClipboard();\n const currentTooltip = copied ? 'Copied' : tooltip;\n\n return (\n <ActionButton\n {...rest}\n aria-label={currentTooltip}\n onPress={() => {\n copyToClipboard(typeof copy === 'function' ? copy() : copy);\n }}\n >\n <Icon\n UNSAFE_className={\n children == null ? 'action-button-icon-with-tooltip' : undefined\n }\n >\n <FontAwesomeIcon icon={copied ? vsPassFilled : vsCopy} />\n </Icon>\n {children != null && <Text>{children}</Text>}\n {/* Assumes children means button has a label, and no longer needs a tooltip */}\n {(children == null || currentTooltip !== DEFAULT_TOOLTIP) && (\n <Tooltip>{currentTooltip}</Tooltip>\n )}\n </ActionButton>\n );\n}\n\nCopyButton.displayName = 'CopyButton';\n\nexport default CopyButton;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA,SAASA,eAAe,QAAQ,gCAAgC;AAChE,SAASC,YAAY,EAAEC,MAAM,QAAQ,kBAAkB;AACvD,SAASC,kBAAkB,QAAQ,wBAAwB;AAAC,SACnDC,YAAY,EAAEC,IAAI,EAAEC,IAAI;AAAA,SACxBC,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhB,IAAMC,eAAe,GAAG,MAAM;AAU9B;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,IAAA,EAKc;EAAA,IAJ/BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,YAAA,GAAAF,IAAA,CACJG,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAGJ,eAAe,GAAAI,YAAA;IACzBE,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACLC,IAAI,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EAEP,IAAAC,mBAAA,GAAkCnB,kBAAkB,CAAC,CAAC;IAAAoB,oBAAA,GAAAC,cAAA,CAAAF,mBAAA;IAA/CG,MAAM,GAAAF,oBAAA;IAAEG,eAAe,GAAAH,oBAAA;EAC9B,IAAMI,cAAc,GAAGF,MAAM,GAAG,QAAQ,GAAGR,OAAO;EAElD,oBACEN,KAAA,CAACP,YAAY,EAAAwB,aAAA,CAAAA,aAAA,KACPT,IAAI;IACR,cAAYQ,cAAe;IAC3BE,OAAO,EAAEA,CAAA,KAAM;MACbH,eAAe,CAAC,OAAOX,IAAI,KAAK,UAAU,GAAGA,IAAI,CAAC,CAAC,GAAGA,IAAI,CAAC;IAC7D,CAAE;IAAAG,QAAA,gBAEFT,IAAA,CAACJ,IAAI;MACHyB,gBAAgB,EACdZ,QAAQ,IAAI,IAAI,GAAG,iCAAiC,GAAGa,SACxD;MAAAb,QAAA,eAEDT,IAAA,CAACT,eAAe;QAACgC,IAAI,EAAEP,MAAM,GAAGxB,YAAY,GAAGC;MAAO,CAAE;IAAC,CACrD,CAAC,EACNgB,QAAQ,IAAI,IAAI,iBAAIT,IAAA,CAACH,IAAI;MAAAY,QAAA,EAAEA;IAAQ,CAAO,CAAC,EAE3C,CAACA,QAAQ,IAAI,IAAI,IAAIS,cAAc,KAAKf,eAAe,kBACtDH,IAAA,CAACF,OAAO;MAAAW,QAAA,EAAES;IAAc,CAAU,CACnC;EAAA,EACW,CAAC;AAEnB;AAEAd,UAAU,CAACoB,WAAW,GAAG,YAAY;AAErC,eAAepB,UAAU","ignoreList":[]}
|
package/dist/CustomTimeSelect.js
CHANGED
|
@@ -25,10 +25,8 @@ class CustomTimeSelect extends Component {
|
|
|
25
25
|
_defineProperty(this, "menuContainer", void 0);
|
|
26
26
|
_defineProperty(this, "button", void 0);
|
|
27
27
|
_defineProperty(this, "input", void 0);
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
valueToTime
|
|
31
|
-
} = props;
|
|
28
|
+
var value = props.value,
|
|
29
|
+
valueToTime = props.valueToTime;
|
|
32
30
|
this.toggleMenu = this.toggleMenu.bind(this);
|
|
33
31
|
this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);
|
|
34
32
|
this.closeMenu = this.closeMenu.bind(this);
|
|
@@ -50,14 +48,11 @@ class CustomTimeSelect extends Component {
|
|
|
50
48
|
};
|
|
51
49
|
}
|
|
52
50
|
getSelectedText() {
|
|
53
|
-
var
|
|
54
|
-
options,
|
|
55
|
-
value,
|
|
56
|
-
placeholder
|
|
57
|
-
|
|
58
|
-
var {
|
|
59
|
-
customTime
|
|
60
|
-
} = this.state;
|
|
51
|
+
var _this$props = this.props,
|
|
52
|
+
options = _this$props.options,
|
|
53
|
+
value = _this$props.value,
|
|
54
|
+
placeholder = _this$props.placeholder;
|
|
55
|
+
var customTime = this.state.customTime;
|
|
61
56
|
if (value === null) {
|
|
62
57
|
return placeholder;
|
|
63
58
|
}
|
|
@@ -81,9 +76,7 @@ class CustomTimeSelect extends Component {
|
|
|
81
76
|
(_this$button$current = this.button.current) === null || _this$button$current === void 0 || _this$button$current.focus();
|
|
82
77
|
}
|
|
83
78
|
updateInputValue(value) {
|
|
84
|
-
var
|
|
85
|
-
onChange
|
|
86
|
-
} = this.props;
|
|
79
|
+
var onChange = this.props.onChange;
|
|
87
80
|
onChange(value);
|
|
88
81
|
}
|
|
89
82
|
handleResize() {
|
|
@@ -91,13 +84,10 @@ class CustomTimeSelect extends Component {
|
|
|
91
84
|
}
|
|
92
85
|
handleMenuKeyDown(event) {
|
|
93
86
|
var _this$button$current2;
|
|
94
|
-
var
|
|
95
|
-
keyboardOptionIndex,
|
|
96
|
-
inputFocused
|
|
97
|
-
|
|
98
|
-
var {
|
|
99
|
-
options
|
|
100
|
-
} = this.props;
|
|
87
|
+
var _this$state = this.state,
|
|
88
|
+
keyboardOptionIndex = _this$state.keyboardOptionIndex,
|
|
89
|
+
inputFocused = _this$state.inputFocused;
|
|
90
|
+
var options = this.props.options;
|
|
101
91
|
switch (event.key) {
|
|
102
92
|
case 'Enter':
|
|
103
93
|
case ' ':
|
|
@@ -139,13 +129,10 @@ class CustomTimeSelect extends Component {
|
|
|
139
129
|
}
|
|
140
130
|
}
|
|
141
131
|
handleMenuNavigation(direction) {
|
|
142
|
-
var
|
|
143
|
-
keyboardOptionIndex,
|
|
144
|
-
inputFocused
|
|
145
|
-
|
|
146
|
-
var {
|
|
147
|
-
options
|
|
148
|
-
} = this.props;
|
|
132
|
+
var _this$state2 = this.state,
|
|
133
|
+
keyboardOptionIndex = _this$state2.keyboardOptionIndex,
|
|
134
|
+
inputFocused = _this$state2.inputFocused;
|
|
135
|
+
var options = this.props.options;
|
|
149
136
|
var menuOptionsLength = options.length;
|
|
150
137
|
var newKeyboardOptionIndex = keyboardOptionIndex;
|
|
151
138
|
switch (direction) {
|
|
@@ -190,13 +177,10 @@ class CustomTimeSelect extends Component {
|
|
|
190
177
|
}
|
|
191
178
|
handleOptionClick(event) {
|
|
192
179
|
var optionIndex = Number(event.currentTarget.value);
|
|
193
|
-
var
|
|
194
|
-
options,
|
|
195
|
-
timeToValue
|
|
196
|
-
|
|
197
|
-
var {
|
|
198
|
-
customTime
|
|
199
|
-
} = this.state;
|
|
180
|
+
var _this$props2 = this.props,
|
|
181
|
+
options = _this$props2.options,
|
|
182
|
+
timeToValue = _this$props2.timeToValue;
|
|
183
|
+
var customTime = this.state.customTime;
|
|
200
184
|
if (optionIndex === CUSTOM_OPTION) {
|
|
201
185
|
var update = timeToValue(customTime);
|
|
202
186
|
this.updateAndClose(update);
|
|
@@ -217,13 +201,10 @@ class CustomTimeSelect extends Component {
|
|
|
217
201
|
}
|
|
218
202
|
handleMenuOpened() {
|
|
219
203
|
var _this$menuContainer$c;
|
|
220
|
-
var
|
|
221
|
-
options,
|
|
222
|
-
value
|
|
223
|
-
|
|
224
|
-
var {
|
|
225
|
-
keyboardOptionIndex
|
|
226
|
-
} = this.state;
|
|
204
|
+
var _this$props3 = this.props,
|
|
205
|
+
options = _this$props3.options,
|
|
206
|
+
value = _this$props3.value;
|
|
207
|
+
var keyboardOptionIndex = this.state.keyboardOptionIndex;
|
|
227
208
|
this.scrollOptionIntoView(keyboardOptionIndex);
|
|
228
209
|
var activeOption = (_this$menuContainer$c = this.menuContainer.current) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.querySelector('.cs-option-btn.keyboard-active');
|
|
229
210
|
if (activeOption instanceof HTMLElement) {
|
|
@@ -253,9 +234,7 @@ class CustomTimeSelect extends Component {
|
|
|
253
234
|
}
|
|
254
235
|
}
|
|
255
236
|
handleMenuExited() {
|
|
256
|
-
var
|
|
257
|
-
menuIsOpen
|
|
258
|
-
} = this.state;
|
|
237
|
+
var menuIsOpen = this.state.menuIsOpen;
|
|
259
238
|
if (menuIsOpen) {
|
|
260
239
|
this.setState({
|
|
261
240
|
menuIsOpen: false,
|
|
@@ -264,9 +243,7 @@ class CustomTimeSelect extends Component {
|
|
|
264
243
|
}
|
|
265
244
|
}
|
|
266
245
|
handleCustomInput(value) {
|
|
267
|
-
var
|
|
268
|
-
timeToValue
|
|
269
|
-
} = this.props;
|
|
246
|
+
var timeToValue = this.props.timeToValue;
|
|
270
247
|
var update = timeToValue(value);
|
|
271
248
|
this.updateInputValue(update);
|
|
272
249
|
this.setState({
|
|
@@ -274,19 +251,13 @@ class CustomTimeSelect extends Component {
|
|
|
274
251
|
});
|
|
275
252
|
}
|
|
276
253
|
updateFromCustom() {
|
|
277
|
-
var
|
|
278
|
-
|
|
279
|
-
} = this.props;
|
|
280
|
-
var {
|
|
281
|
-
customTime
|
|
282
|
-
} = this.state;
|
|
254
|
+
var timeToValue = this.props.timeToValue;
|
|
255
|
+
var customTime = this.state.customTime;
|
|
283
256
|
var update = timeToValue(customTime);
|
|
284
257
|
this.updateInputValue(update);
|
|
285
258
|
}
|
|
286
259
|
toggleMenu(event) {
|
|
287
|
-
var
|
|
288
|
-
menuIsOpen
|
|
289
|
-
} = this.state;
|
|
260
|
+
var menuIsOpen = this.state.menuIsOpen;
|
|
290
261
|
if (menuIsOpen) {
|
|
291
262
|
this.closeMenu();
|
|
292
263
|
} else {
|
|
@@ -312,10 +283,9 @@ class CustomTimeSelect extends Component {
|
|
|
312
283
|
}
|
|
313
284
|
}
|
|
314
285
|
updateKeyboardIndex() {
|
|
315
|
-
var
|
|
316
|
-
options,
|
|
317
|
-
value
|
|
318
|
-
} = this.props;
|
|
286
|
+
var _this$props4 = this.props,
|
|
287
|
+
options = _this$props4.options,
|
|
288
|
+
value = _this$props4.value;
|
|
319
289
|
if (value === null) {
|
|
320
290
|
return;
|
|
321
291
|
}
|
|
@@ -339,9 +309,7 @@ class CustomTimeSelect extends Component {
|
|
|
339
309
|
}
|
|
340
310
|
}
|
|
341
311
|
renderMenuElement() {
|
|
342
|
-
var
|
|
343
|
-
inputWidth
|
|
344
|
-
} = this.state;
|
|
312
|
+
var inputWidth = this.state.inputWidth;
|
|
345
313
|
return /*#__PURE__*/_jsx("div", {
|
|
346
314
|
className: "cs-menu-container",
|
|
347
315
|
ref: this.menuContainer,
|
|
@@ -363,17 +331,15 @@ class CustomTimeSelect extends Component {
|
|
|
363
331
|
});
|
|
364
332
|
}
|
|
365
333
|
renderOptions() {
|
|
366
|
-
var
|
|
367
|
-
options,
|
|
368
|
-
value,
|
|
369
|
-
icon,
|
|
370
|
-
customText
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
inputFocused
|
|
376
|
-
} = this.state;
|
|
334
|
+
var _this$props5 = this.props,
|
|
335
|
+
options = _this$props5.options,
|
|
336
|
+
value = _this$props5.value,
|
|
337
|
+
icon = _this$props5.icon,
|
|
338
|
+
customText = _this$props5.customText;
|
|
339
|
+
var _this$state3 = this.state,
|
|
340
|
+
keyboardOptionIndex = _this$state3.keyboardOptionIndex,
|
|
341
|
+
customTime = _this$state3.customTime,
|
|
342
|
+
inputFocused = _this$state3.inputFocused;
|
|
377
343
|
var matchFound = false;
|
|
378
344
|
var optionArray = [];
|
|
379
345
|
for (var index = 0; index < options.length; index += 1) {
|
|
@@ -438,18 +404,13 @@ class CustomTimeSelect extends Component {
|
|
|
438
404
|
return optionArray;
|
|
439
405
|
}
|
|
440
406
|
render() {
|
|
441
|
-
var
|
|
442
|
-
disabled,
|
|
443
|
-
invalid,
|
|
444
|
-
value,
|
|
445
|
-
'data-testid'
|
|
446
|
-
|
|
447
|
-
var
|
|
448
|
-
menuIsOpen
|
|
449
|
-
} = this.state;
|
|
450
|
-
var {
|
|
451
|
-
popperOptions
|
|
452
|
-
} = this.props;
|
|
407
|
+
var _this$props6 = this.props,
|
|
408
|
+
disabled = _this$props6.disabled,
|
|
409
|
+
invalid = _this$props6.invalid,
|
|
410
|
+
value = _this$props6.value,
|
|
411
|
+
dataTestId = _this$props6['data-testid'];
|
|
412
|
+
var menuIsOpen = this.state.menuIsOpen;
|
|
413
|
+
var popperOptions = this.props.popperOptions;
|
|
453
414
|
popperOptions = _objectSpread({
|
|
454
415
|
placement: 'bottom-end',
|
|
455
416
|
modifiers: {
|