@deephaven/components 0.78.1-use-widget.3 → 0.79.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/Button.d.ts +1 -1
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +12 -2
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/Checkbox.js.map +1 -1
- package/dist/RadioGroup.d.ts +23 -0
- package/dist/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup.js +38 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RadioItem.d.ts +31 -0
- package/dist/RadioItem.d.ts.map +1 -0
- package/dist/RadioItem.js +59 -0
- package/dist/RadioItem.js.map +1 -0
- package/dist/SocketedButton.d.ts.map +1 -1
- package/dist/SocketedButton.js +12 -2
- package/dist/SocketedButton.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/spectrum/buttons.d.ts +1 -1
- package/dist/spectrum/buttons.d.ts.map +1 -1
- package/dist/spectrum/buttons.js +1 -1
- package/dist/spectrum/buttons.js.map +1 -1
- package/dist/theme/SpectrumThemeProvider.js +2 -2
- package/dist/theme/SpectrumThemeProvider.js.map +1 -1
- package/dist/theme/theme-spectrum/theme-spectrum-overrides.css +1 -1
- package/dist/theme/theme-spectrum/theme-spectrum-overrides.css.map +1 -1
- package/package.json +9 -9
package/dist/Button.d.ts
CHANGED
|
@@ -30,6 +30,6 @@ type IconOnlyButtonJsxTooltip = BaseButtonProps & {
|
|
|
30
30
|
icon: IconDefinition | JSX.Element;
|
|
31
31
|
children?: undefined;
|
|
32
32
|
};
|
|
33
|
-
declare const Button: React.ForwardRefExoticComponent<(Pick<ButtonWithChildren, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind"> | Pick<IconOnlyButtonStringTooltip, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind"> | Pick<IconOnlyButtonJsxTooltip, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind">) & React.RefAttributes<HTMLButtonElement>>;
|
|
33
|
+
export declare const Button: React.ForwardRefExoticComponent<(Pick<ButtonWithChildren, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind"> | Pick<IconOnlyButtonStringTooltip, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind"> | Pick<IconOnlyButtonJsxTooltip, "className" | "placeholder" | "value" | "onChange" | "onSelect" | "onSubmit" | "onFocus" | "onBlur" | "data-testid" | "key" | "form" | "slot" | "style" | "title" | "color" | "hidden" | "type" | "onKeyDown" | "onSelectCapture" | "children" | "aria-label" | "id" | "defaultChecked" | "defaultValue" | "disabled" | "formAction" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "tooltip" | "onClick" | "tabIndex" | "role" | "icon" | "active" | "lang" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "autoFocus" | "variant" | "spellCheck" | "formEncType" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "kind">) & React.RefAttributes<HTMLButtonElement>>;
|
|
34
34
|
export default Button;
|
|
35
35
|
//# sourceMappingURL=Button.d.ts.map
|
package/dist/Button.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,QAAA,MAAM,YAAY,uFAQR,CAAC;AACX,KAAK,WAAW,GAAG,OAAO,YAAY,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE7C,QAAA,MAAM,aAAa,wBAAyB,CAAC;AAC7C,KAAK,YAAY,GAAG,OAAO,aAAa,CAAC;AACzC,KAAK,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAExC,KAAK,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD,UAAU,eAAgB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IACrE,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,kBAAkB,GAAG,eAAe,GAAG;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,KAAK,2BAA2B,GAAG,eAAe,GAAG;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,KAAK,wBAAwB,GAAG,eAAe,GAAG;IAChD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAmCF,eAAO,MAAM,MAAM,4wcAuHlB,CAAC;AA+EF,eAAe,MAAM,CAAC"}
|
package/dist/Button.js
CHANGED
|
@@ -7,6 +7,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
|
7
7
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
8
8
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
9
9
|
import React from 'react';
|
|
10
|
+
import { useSlotProps } from '@react-spectrum/utils';
|
|
10
11
|
import PropTypes from 'prop-types';
|
|
11
12
|
import classNames from 'classnames';
|
|
12
13
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
@@ -42,7 +43,7 @@ function getVariantClasses(kind) {
|
|
|
42
43
|
return classNames('pl-2', 'pr-3');
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
46
|
+
export var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
46
47
|
var {
|
|
47
48
|
kind,
|
|
48
49
|
variant,
|
|
@@ -66,6 +67,15 @@ var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
66
67
|
'aria-label': ariaLabel
|
|
67
68
|
} = props,
|
|
68
69
|
rest = _objectWithoutProperties(props, _excluded);
|
|
70
|
+
|
|
71
|
+
// Spectrum container components such as `ButtonGroup` provide
|
|
72
|
+
// UNSAFE_className prop for the `button` slot via a SlotProvider (
|
|
73
|
+
// https://github.com/adobe/react-spectrum/blob/%40adobe/react-spectrum%403.33.1/packages/%40react-spectrum/buttongroup/src/ButtonGroup.tsx#L104-L107)
|
|
74
|
+
// This can be retrieved via `useSlotProps` to allow our buttons to be styled
|
|
75
|
+
// correctly inside the container.
|
|
76
|
+
var {
|
|
77
|
+
UNSAFE_className
|
|
78
|
+
} = useSlotProps({}, 'button');
|
|
69
79
|
var variantClassName;
|
|
70
80
|
if (variant) {
|
|
71
81
|
variantClassName = getVariantClasses(variant);
|
|
@@ -101,7 +111,7 @@ var Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
101
111
|
type: type,
|
|
102
112
|
className: classNames('btn', btnClassName, variantClassName, {
|
|
103
113
|
active
|
|
104
|
-
}, className),
|
|
114
|
+
}, className, UNSAFE_className),
|
|
105
115
|
onClick: onClick,
|
|
106
116
|
onContextMenu: onContextMenu,
|
|
107
117
|
onMouseUp: onMouseUp,
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["React","PropTypes","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","variantClassName","iconElem","isValidElement","btnClassName","tooltipElem","undefined","ariaLabelString","button","_objectSpread","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 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 )}\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\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","useSlotProps","PropTypes","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","propTypes","oneOf","isRequired","Error","iconName","bool","func","number","node","string","object","defaultProps"],"sources":["../src/Button.tsx"],"sourcesContent":["import React from 'react';\nimport { useSlotProps } from '@react-spectrum/utils';\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\nexport const 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 // 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\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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"}
|
package/dist/Checkbox.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect, useCallback } from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
4
|
+
import { nanoid } from 'nanoid';
|
|
5
5
|
import { useForwardedRef } from '@deephaven/react-hooks';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -21,7 +21,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
|
|
|
21
21
|
onChange,
|
|
22
22
|
'data-testid': dataTestId
|
|
23
23
|
} = props;
|
|
24
|
-
var [id] = useState(
|
|
24
|
+
var [id] = useState(nanoid());
|
|
25
25
|
var ref = useForwardedRef(forwardedRef);
|
|
26
26
|
useEffect(function setIndeterminateProperty() {
|
|
27
27
|
if (ref.current) {
|
package/dist/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","PropTypes","
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["React","useState","useEffect","useCallback","classNames","PropTypes","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","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 { 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,\n inputClassName,\n isInvalid,\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\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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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type RadioGroupProps = {
|
|
3
|
+
/** The radio items to populate this radio. Should be of type RadioItem. */
|
|
4
|
+
children?: React.ReactElement | React.ReactElement[];
|
|
5
|
+
/** The name to use for the radio items. If not specified, a name is automatically generated */
|
|
6
|
+
name?: string;
|
|
7
|
+
/** Triggered when a radio button is changed */
|
|
8
|
+
onChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
9
|
+
/** The currently selected value. Will automatically set the `checked` attribute of the RadioItem. */
|
|
10
|
+
value?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
'data-testid'?: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A group of radio buttons. Use with RadioItems to populate, eg.
|
|
16
|
+
* <RadioGroup>
|
|
17
|
+
* <RadioItem .../>
|
|
18
|
+
* <RadioItem .../>
|
|
19
|
+
* </RadioGroup>
|
|
20
|
+
*/
|
|
21
|
+
declare function RadioGroup(props: RadioGroupProps): JSX.Element;
|
|
22
|
+
export default RadioGroup;
|
|
23
|
+
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../src/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,KAAK,eAAe,GAAG;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAErD,+FAA+F;IAC/F,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAErD,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CA2BvD;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
/**
|
|
6
|
+
* A group of radio buttons. Use with RadioItems to populate, eg.
|
|
7
|
+
* <RadioGroup>
|
|
8
|
+
* <RadioItem .../>
|
|
9
|
+
* <RadioItem .../>
|
|
10
|
+
* </RadioGroup>
|
|
11
|
+
*/
|
|
12
|
+
function RadioGroup(props) {
|
|
13
|
+
var {
|
|
14
|
+
children,
|
|
15
|
+
disabled = false,
|
|
16
|
+
name: propsName,
|
|
17
|
+
onChange,
|
|
18
|
+
value = '',
|
|
19
|
+
'data-testid': dataTestId
|
|
20
|
+
} = props;
|
|
21
|
+
var [name] = useState(propsName !== null && propsName !== void 0 ? propsName : nanoid());
|
|
22
|
+
|
|
23
|
+
// Need to use "text" type so we can apply a pattern and make selection properly
|
|
24
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
25
|
+
children: React.Children.map(children, child => {
|
|
26
|
+
var _child$props$onChange, _child$props$disabled;
|
|
27
|
+
return child ? /*#__PURE__*/React.cloneElement(child, {
|
|
28
|
+
name,
|
|
29
|
+
onChange: (_child$props$onChange = child.props.onChange) !== null && _child$props$onChange !== void 0 ? _child$props$onChange : onChange,
|
|
30
|
+
checked: value === child.props.value,
|
|
31
|
+
disabled: (_child$props$disabled = child.props.disabled) !== null && _child$props$disabled !== void 0 ? _child$props$disabled : disabled,
|
|
32
|
+
'data-testid': dataTestId
|
|
33
|
+
}) : null;
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export default RadioGroup;
|
|
38
|
+
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","names":["React","useState","nanoid","Fragment","_Fragment","jsx","_jsx","RadioGroup","props","children","disabled","name","propsName","onChange","value","dataTestId","Children","map","child","_child$props$onChange","_child$props$disabled","cloneElement","checked"],"sources":["../src/RadioGroup.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { nanoid } from 'nanoid';\n\ntype RadioGroupProps = {\n /** The radio items to populate this radio. Should be of type RadioItem. */\n children?: React.ReactElement | React.ReactElement[];\n\n /** The name to use for the radio items. If not specified, a name is automatically generated */\n name?: string;\n\n /** Triggered when a radio button is changed */\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n\n /** The currently selected value. Will automatically set the `checked` attribute of the RadioItem. */\n value?: string;\n\n disabled?: boolean;\n 'data-testid'?: string;\n};\n\n/**\n * A group of radio buttons. Use with RadioItems to populate, eg.\n * <RadioGroup>\n * <RadioItem .../>\n * <RadioItem .../>\n * </RadioGroup>\n */\nfunction RadioGroup(props: RadioGroupProps): JSX.Element {\n const {\n children,\n disabled = false,\n name: propsName,\n onChange,\n value = '',\n 'data-testid': dataTestId,\n } = props;\n const [name] = useState(propsName ?? nanoid());\n\n // Need to use \"text\" type so we can apply a pattern and make selection properly\n return (\n <>\n {React.Children.map(children, child =>\n child\n ? React.cloneElement(child, {\n name,\n onChange: child.props.onChange ?? onChange,\n checked: value === child.props.value,\n disabled: child.props.disabled ?? disabled,\n 'data-testid': dataTestId,\n })\n : null\n )}\n </>\n );\n}\n\nexport default RadioGroup;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,MAAM,QAAQ,QAAQ;AAAC,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAmBhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACC,KAAsB,EAAe;EACvD,IAAM;IACJC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChBC,IAAI,EAAEC,SAAS;IACfC,QAAQ;IACRC,KAAK,GAAG,EAAE;IACV,aAAa,EAAEC;EACjB,CAAC,GAAGP,KAAK;EACT,IAAM,CAACG,IAAI,CAAC,GAAGV,QAAQ,CAACW,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIV,MAAM,CAAC,CAAC,CAAC;;EAE9C;EACA,oBACEI,IAAA,CAAAF,SAAA;IAAAK,QAAA,EACGT,KAAK,CAACgB,QAAQ,CAACC,GAAG,CAACR,QAAQ,EAAES,KAAK;MAAA,IAAAC,qBAAA,EAAAC,qBAAA;MAAA,OACjCF,KAAK,gBACDlB,KAAK,CAACqB,YAAY,CAACH,KAAK,EAAE;QACxBP,IAAI;QACJE,QAAQ,GAAAM,qBAAA,GAAED,KAAK,CAACV,KAAK,CAACK,QAAQ,cAAAM,qBAAA,cAAAA,qBAAA,GAAIN,QAAQ;QAC1CS,OAAO,EAAER,KAAK,KAAKI,KAAK,CAACV,KAAK,CAACM,KAAK;QACpCJ,QAAQ,GAAAU,qBAAA,GAAEF,KAAK,CAACV,KAAK,CAACE,QAAQ,cAAAU,qBAAA,cAAAA,qBAAA,GAAIV,QAAQ;QAC1C,aAAa,EAAEK;MACjB,CAAC,CAAC,GACF,IAAI;IAAA,CACV;EAAC,CACD,CAAC;AAEP;AAEA,eAAeR,UAAU"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type RadioItemProps = {
|
|
3
|
+
/** Whether this value is currently checked or not */
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
/** The node/text to put in the label of this radio item */
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
/** An extra class name to add to the outer div component */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** An extra class for disabling the radio button component */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** An extra class name for the input component */
|
|
12
|
+
inputClassName?: string;
|
|
13
|
+
/** The value is invalid, style to show it's invalid */
|
|
14
|
+
isInvalid?: boolean;
|
|
15
|
+
/** An extra class name for the label component */
|
|
16
|
+
labelClassName?: string;
|
|
17
|
+
/** The name for this RadioItem. Should be specified by the parent Radio component */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** Triggered when the input is checked/unchecked. Provided by the parent Radio component. */
|
|
20
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
21
|
+
/** The value to associate with this radio item */
|
|
22
|
+
value: string;
|
|
23
|
+
/** An id used for test */
|
|
24
|
+
'data-testid'?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* A RadioItem to be used within the Radio component.
|
|
28
|
+
*/
|
|
29
|
+
declare const RadioItem: React.ForwardRefExoticComponent<RadioItemProps & React.RefAttributes<HTMLInputElement>>;
|
|
30
|
+
export default RadioItem;
|
|
31
|
+
//# sourceMappingURL=RadioItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioItem.d.ts","sourceRoot":"","sources":["../src/RadioItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,KAAK,cAAc,GAAG;IACpB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2DAA2D;IAC3D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAEtD,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,SAAS,yFA2Cd,CAAC;AAgBF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { nanoid } from 'nanoid';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
/**
|
|
7
|
+
* A RadioItem to be used within the Radio component.
|
|
8
|
+
*/
|
|
9
|
+
var RadioItem = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
10
|
+
var {
|
|
11
|
+
checked,
|
|
12
|
+
children,
|
|
13
|
+
className = '',
|
|
14
|
+
disabled = false,
|
|
15
|
+
inputClassName = '',
|
|
16
|
+
isInvalid = false,
|
|
17
|
+
labelClassName = '',
|
|
18
|
+
name,
|
|
19
|
+
onChange,
|
|
20
|
+
value,
|
|
21
|
+
'data-testid': dataTestId
|
|
22
|
+
} = props;
|
|
23
|
+
var [id] = useState(nanoid());
|
|
24
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
25
|
+
className: classNames('custom-control custom-radio', className),
|
|
26
|
+
children: [/*#__PURE__*/_jsx("input", {
|
|
27
|
+
type: "radio",
|
|
28
|
+
id: id,
|
|
29
|
+
"data-testid": dataTestId,
|
|
30
|
+
name: name,
|
|
31
|
+
ref: ref,
|
|
32
|
+
className: classNames('custom-control-input', inputClassName, {
|
|
33
|
+
'is-invalid': isInvalid
|
|
34
|
+
}),
|
|
35
|
+
checked: checked,
|
|
36
|
+
disabled: disabled,
|
|
37
|
+
value: value,
|
|
38
|
+
onChange: onChange
|
|
39
|
+
}), /*#__PURE__*/_jsx("label", {
|
|
40
|
+
className: classNames('custom-control-label', labelClassName),
|
|
41
|
+
htmlFor: id,
|
|
42
|
+
children: children
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
RadioItem.displayName = 'RadioItem';
|
|
47
|
+
RadioItem.defaultProps = {
|
|
48
|
+
checked: undefined,
|
|
49
|
+
className: '',
|
|
50
|
+
disabled: false,
|
|
51
|
+
inputClassName: '',
|
|
52
|
+
isInvalid: false,
|
|
53
|
+
labelClassName: '',
|
|
54
|
+
name: undefined,
|
|
55
|
+
onChange: undefined,
|
|
56
|
+
'data-testid': undefined
|
|
57
|
+
};
|
|
58
|
+
export default RadioItem;
|
|
59
|
+
//# sourceMappingURL=RadioItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioItem.js","names":["React","useState","classNames","nanoid","jsx","_jsx","jsxs","_jsxs","RadioItem","forwardRef","props","ref","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","name","onChange","value","dataTestId","id","type","htmlFor","displayName","defaultProps","undefined"],"sources":["../src/RadioItem.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid';\n\ntype RadioItemProps = {\n /** Whether this value is currently checked or not */\n checked?: boolean;\n\n /** The node/text to put in the label of this radio item */\n children: React.ReactNode;\n\n /** An extra class name to add to the outer div component */\n className?: string;\n\n /** An extra class for disabling the radio button component */\n disabled?: boolean;\n\n /** An extra class name for the input component */\n inputClassName?: string;\n\n /** The value is invalid, style to show it's invalid */\n isInvalid?: boolean;\n\n /** An extra class name for the label component */\n labelClassName?: string;\n\n /** The name for this RadioItem. Should be specified by the parent Radio component */\n name?: string;\n\n /** Triggered when the input is checked/unchecked. Provided by the parent Radio component. */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n\n /** The value to associate with this radio item */\n value: string;\n\n /** An id used for test */\n 'data-testid'?: string;\n};\n\n/**\n * A RadioItem to be used within the Radio component.\n */\nconst RadioItem = React.forwardRef<HTMLInputElement, RadioItemProps>(\n (props: RadioItemProps, ref) => {\n const {\n checked,\n children,\n className = '',\n disabled = false,\n inputClassName = '',\n isInvalid = false,\n labelClassName = '',\n name,\n onChange,\n value,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(nanoid());\n\n return (\n <div className={classNames('custom-control custom-radio', className)}>\n <input\n type=\"radio\"\n id={id}\n data-testid={dataTestId}\n name={name}\n ref={ref}\n className={classNames('custom-control-input', inputClassName, {\n 'is-invalid': isInvalid,\n })}\n checked={checked}\n disabled={disabled}\n value={value}\n onChange={onChange}\n />\n <label\n className={classNames('custom-control-label', labelClassName)}\n htmlFor={id}\n >\n {children}\n </label>\n </div>\n );\n }\n);\n\nRadioItem.displayName = 'RadioItem';\n\nRadioItem.defaultProps = {\n checked: undefined,\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 RadioItem;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAqChC;AACA;AACA;AACA,IAAMC,SAAS,gBAAGR,KAAK,CAACS,UAAU,CAChC,CAACC,KAAqB,EAAEC,GAAG,KAAK;EAC9B,IAAM;IACJC,OAAO;IACPC,QAAQ;IACRC,SAAS,GAAG,EAAE;IACdC,QAAQ,GAAG,KAAK;IAChBC,cAAc,GAAG,EAAE;IACnBC,SAAS,GAAG,KAAK;IACjBC,cAAc,GAAG,EAAE;IACnBC,IAAI;IACJC,QAAQ;IACRC,KAAK;IACL,aAAa,EAAEC;EACjB,CAAC,GAAGZ,KAAK;EAET,IAAM,CAACa,EAAE,CAAC,GAAGtB,QAAQ,CAACE,MAAM,CAAC,CAAC,CAAC;EAE/B,oBACEI,KAAA;IAAKO,SAAS,EAAEZ,UAAU,CAAC,6BAA6B,EAAEY,SAAS,CAAE;IAAAD,QAAA,gBACnER,IAAA;MACEmB,IAAI,EAAC,OAAO;MACZD,EAAE,EAAEA,EAAG;MACP,eAAaD,UAAW;MACxBH,IAAI,EAAEA,IAAK;MACXR,GAAG,EAAEA,GAAI;MACTG,SAAS,EAAEZ,UAAU,CAAC,sBAAsB,EAAEc,cAAc,EAAE;QAC5D,YAAY,EAAEC;MAChB,CAAC,CAAE;MACHL,OAAO,EAAEA,OAAQ;MACjBG,QAAQ,EAAEA,QAAS;MACnBM,KAAK,EAAEA,KAAM;MACbD,QAAQ,EAAEA;IAAS,CACpB,CAAC,eACFf,IAAA;MACES,SAAS,EAAEZ,UAAU,CAAC,sBAAsB,EAAEgB,cAAc,CAAE;MAC9DO,OAAO,EAAEF,EAAG;MAAAV,QAAA,EAEXA;IAAQ,CACJ,CAAC;EAAA,CACL,CAAC;AAEV,CACF,CAAC;AAEDL,SAAS,CAACkB,WAAW,GAAG,WAAW;AAEnClB,SAAS,CAACmB,YAAY,GAAG;EACvBf,OAAO,EAAEgB,SAAS;EAClBd,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,EAAE;EAClBC,SAAS,EAAE,KAAK;EAChBC,cAAc,EAAE,EAAE;EAClBC,IAAI,EAAES,SAAS;EACfR,QAAQ,EAAEQ,SAAS;EACnB,aAAa,EAAEA;AACjB,CAAC;AAED,eAAepB,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketedButton.d.ts","sourceRoot":"","sources":["../src/SocketedButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SocketedButton.d.ts","sourceRoot":"","sources":["../src/SocketedButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,uBAAuB,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,cAAc,+FA+DnB,CAAC;AAmBF,eAAe,cAAc,CAAC"}
|
package/dist/SocketedButton.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import { dhExclamation, vsLink } from '@deephaven/icons';
|
|
4
3
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
4
|
+
import { useSlotProps } from '@react-spectrum/utils';
|
|
5
|
+
import { dhExclamation, vsLink } from '@deephaven/icons';
|
|
5
6
|
import "./SocketedButton.css";
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -20,6 +21,15 @@ var SocketedButton = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
20
21
|
style,
|
|
21
22
|
'data-testid': dataTestId
|
|
22
23
|
} = props;
|
|
24
|
+
|
|
25
|
+
// Spectrum container components such as `ButtonGroup` provide
|
|
26
|
+
// UNSAFE_className prop for the `button` slot via a SlotProvider (
|
|
27
|
+
// https://github.com/adobe/react-spectrum/blob/%40adobe/react-spectrum%403.33.1/packages/%40react-spectrum/buttongroup/src/ButtonGroup.tsx#L104-L107)
|
|
28
|
+
// This can be retrieved via `useSlotProps` to allow our buttons to be styled
|
|
29
|
+
// correctly inside the container.
|
|
30
|
+
var {
|
|
31
|
+
UNSAFE_className
|
|
32
|
+
} = useSlotProps({}, 'button');
|
|
23
33
|
return /*#__PURE__*/_jsxs("button", {
|
|
24
34
|
ref: ref,
|
|
25
35
|
type: "button",
|
|
@@ -29,7 +39,7 @@ var SocketedButton = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
29
39
|
'btn-socketed-linked-source': isLinkedSource
|
|
30
40
|
}, {
|
|
31
41
|
'is-invalid': isInvalid
|
|
32
|
-
}, className),
|
|
42
|
+
}, className, UNSAFE_className),
|
|
33
43
|
id: id,
|
|
34
44
|
onClick: onClick,
|
|
35
45
|
onMouseEnter: onMouseEnter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketedButton.js","names":["React","classNames","
|
|
1
|
+
{"version":3,"file":"SocketedButton.js","names":["React","classNames","FontAwesomeIcon","useSlotProps","dhExclamation","vsLink","jsx","_jsx","jsxs","_jsxs","SocketedButton","forwardRef","props","ref","children","className","disabled","id","isLinked","isLinkedSource","isInvalid","onClick","onMouseEnter","onMouseLeave","style","dataTestId","UNSAFE_className","type","undefined","icon","transform","displayName","defaultProps"],"sources":["../src/SocketedButton.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useSlotProps } from '@react-spectrum/utils';\nimport { dhExclamation, vsLink } from '@deephaven/icons';\n\nimport './SocketedButton.scss';\n\ntype SocketedButtonProps = {\n children?: React.ReactNode;\n className?: string;\n disabled?: boolean;\n id?: string;\n isLinked?: boolean;\n isLinkedSource?: boolean;\n isInvalid?: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n style?: React.CSSProperties;\n 'data-testid'?: string;\n};\n\nconst SocketedButton = React.forwardRef<HTMLButtonElement, SocketedButtonProps>(\n (props: SocketedButtonProps, ref) => {\n const {\n children,\n className,\n disabled,\n id,\n isLinked,\n isLinkedSource,\n isInvalid,\n onClick,\n onMouseEnter,\n onMouseLeave,\n style,\n 'data-testid': dataTestId,\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 return (\n <button\n ref={ref}\n type=\"button\"\n className={classNames(\n 'btn-socketed',\n {\n 'btn-socketed-linked':\n (isLinked !== undefined && isLinked) || isLinkedSource,\n },\n { 'btn-socketed-linked-source': isLinkedSource },\n { 'is-invalid': isInvalid },\n className,\n UNSAFE_className\n )}\n id={id}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n disabled={disabled}\n data-testid={dataTestId}\n >\n {children}\n <FontAwesomeIcon\n icon={vsLink}\n className=\"linked btn-socketed-icon\"\n transform=\"down-1\"\n />\n <FontAwesomeIcon\n icon={dhExclamation}\n className=\"is-invalid btn-socketed-icon\"\n />\n </button>\n );\n }\n);\n\nSocketedButton.displayName = 'SocketedButton';\n\nSocketedButton.defaultProps = {\n children: undefined,\n className: '',\n disabled: false,\n id: undefined,\n isLinked: false,\n isLinkedSource: false,\n isInvalid: false,\n onClick: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n style: undefined,\n 'data-testid': undefined,\n};\n\nexport default SocketedButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,aAAa,EAAEC,MAAM,QAAQ,kBAAkB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAmBzD,IAAMC,cAAc,gBAAGV,KAAK,CAACW,UAAU,CACrC,CAACC,KAA0B,EAAEC,GAAG,KAAK;EACnC,IAAM;IACJC,QAAQ;IACRC,SAAS;IACTC,QAAQ;IACRC,EAAE;IACFC,QAAQ;IACRC,cAAc;IACdC,SAAS;IACTC,OAAO;IACPC,YAAY;IACZC,YAAY;IACZC,KAAK;IACL,aAAa,EAAEC;EACjB,CAAC,GAAGb,KAAK;;EAET;EACA;EACA;EACA;EACA;EACA,IAAM;IAAEc;EAAiB,CAAC,GAAGvB,YAAY,CACvC,CAAC,CAAC,EACF,QACF,CAAC;EAED,oBACEM,KAAA;IACEI,GAAG,EAAEA,GAAI;IACTc,IAAI,EAAC,QAAQ;IACbZ,SAAS,EAAEd,UAAU,CACnB,cAAc,EACd;MACE,qBAAqB,EAClBiB,QAAQ,KAAKU,SAAS,IAAIV,QAAQ,IAAKC;IAC5C,CAAC,EACD;MAAE,4BAA4B,EAAEA;IAAe,CAAC,EAChD;MAAE,YAAY,EAAEC;IAAU,CAAC,EAC3BL,SAAS,EACTW,gBACF,CAAE;IACFT,EAAE,EAAEA,EAAG;IACPI,OAAO,EAAEA,OAAQ;IACjBC,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA,YAAa;IAC3BC,KAAK,EAAEA,KAAM;IACbR,QAAQ,EAAEA,QAAS;IACnB,eAAaS,UAAW;IAAAX,QAAA,GAEvBA,QAAQ,eACTP,IAAA,CAACL,eAAe;MACd2B,IAAI,EAAExB,MAAO;MACbU,SAAS,EAAC,0BAA0B;MACpCe,SAAS,EAAC;IAAQ,CACnB,CAAC,eACFvB,IAAA,CAACL,eAAe;MACd2B,IAAI,EAAEzB,aAAc;MACpBW,SAAS,EAAC;IAA8B,CACzC,CAAC;EAAA,CACI,CAAC;AAEb,CACF,CAAC;AAEDL,cAAc,CAACqB,WAAW,GAAG,gBAAgB;AAE7CrB,cAAc,CAACsB,YAAY,GAAG;EAC5BlB,QAAQ,EAAEc,SAAS;EACnBb,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,KAAK;EACfC,EAAE,EAAEW,SAAS;EACbV,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,KAAK;EACrBC,SAAS,EAAE,KAAK;EAChBC,OAAO,EAAEO,SAAS;EAClBN,YAAY,EAAEM,SAAS;EACvBL,YAAY,EAAEK,SAAS;EACvBJ,KAAK,EAAEI,SAAS;EAChB,aAAa,EAAEA;AACjB,CAAC;AAED,eAAelB,cAAc"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export * from './actions';
|
|
|
3
3
|
export { default as AutoCompleteInput } from './AutoCompleteInput';
|
|
4
4
|
export { default as AutoResizeTextarea } from './AutoResizeTextarea';
|
|
5
5
|
export { default as BasicModal } from './BasicModal';
|
|
6
|
-
export
|
|
6
|
+
export * from './Button';
|
|
7
7
|
export * from './BulkActionBar';
|
|
8
8
|
export { default as CardFlip } from './CardFlip';
|
|
9
9
|
export * from './context-actions';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export * from "./actions/index.js";
|
|
|
2
2
|
export { default as AutoCompleteInput } from "./AutoCompleteInput.js";
|
|
3
3
|
export { default as AutoResizeTextarea } from "./AutoResizeTextarea.js";
|
|
4
4
|
export { default as BasicModal } from "./BasicModal.js";
|
|
5
|
-
export
|
|
5
|
+
export * from "./Button.js";
|
|
6
6
|
export * from "./BulkActionBar.js";
|
|
7
7
|
export { default as CardFlip } from "./CardFlip.js";
|
|
8
8
|
export * from "./context-actions/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","AutoCompleteInput","AutoResizeTextarea","BasicModal","CardFlip","Collapse","Checkbox","ComboBox","CopyButton","CustomTimeSelect","DateTimeInput","DateInput","DebouncedSearchInput","DraggableItemList","DragUtils","EditableItemList","ErrorView","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RandomAreaPlotAnimation","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"sources":["../src/index.ts"],"sourcesContent":["export type { Range } from '@deephaven/utils';\nexport * from './actions';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport * from './Button';\nexport * from './BulkActionBar';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport { default as ComboBox } from './ComboBox';\nexport { default as CopyButton } from './CopyButton';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport { default as DateTimeInput } from './DateTimeInput';\nexport { default as DateInput } from './DateInput';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport * from './dialogs';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as EditableItemList } from './EditableItemList';\nexport * from './ErrorBoundary';\nexport { default as ErrorView } from './ErrorView';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './MaskedInput';\nexport * from './MaskedInputUtils';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport * from './modal';\nexport { default as RandomAreaPlotAnimation } from './RandomAreaPlotAnimation';\nexport * from './SearchableCombobox';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport * from './spectrum';\nexport * from './SplitButtonGroup';\nexport * from './TableViewEmptyState';\nexport * from './TextWithTooltip';\nexport * from './theme';\nexport * from './transitions';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport { default as UISwitch } from './UISwitch';\n"],"mappings":";SAESA,OAAO,IAAIC,iBAAiB;AAAA,SAC5BD,OAAO,IAAIE,kBAAkB;AAAA,SAC7BF,OAAO,IAAIG,UAAU;AAAA;AAAA;AAAA,SAGrBH,OAAO,IAAII,QAAQ;AAAA;AAAA,SAEnBJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,QAAQ;AAAA,SACnBN,OAAO,IAAIO,QAAQ;AAAA,SACnBP,OAAO,IAAIQ,UAAU;AAAA,SACrBR,OAAO,IAAIS,gBAAgB;AAAA,SAC3BT,OAAO,IAAIU,aAAa;AAAA,SACxBV,OAAO,IAAIW,SAAS;AAAA,SACpBX,OAAO,IAAIY,oBAAoB;AAAA;AAAA,SAE/BZ,OAAO,IAAIa,iBAAiB;AAAA;AAAA,SAE5Bb,OAAO,IAAIc,SAAS;AAAA,SACpBd,OAAO,IAAIe,gBAAgB;AAAA;AAAA,SAE3Bf,OAAO,IAAIgB,SAAS;AAAA,SACpBhB,OAAO,IAAIiB,wBAAwB;AAAA;AAAA;AAAA,SAGnCjB,OAAO,IAAIkB,YAAY;AAAA,SACvBlB,OAAO,IAAImB,cAAc;AAAA,SACzBnB,OAAO,IAAIoB,cAAc;AAAA,SACzBpB,OAAO,IAAIqB,YAAY;AAAA;AAAA,SAEvBrB,OAAO,IAAIsB,WAAW;AAAA;AAAA;AAAA;AAAA,SAItBtB,OAAO,IAAIuB,MAAM;AAAA;AAAA;AAAA,SAGjBvB,OAAO,IAAIwB,uBAAuB;AAAA;AAAA,SAElCxB,OAAO,IAAIyB,MAAM;AAAA,SACjBzB,OAAO,IAAI0B,WAAW;AAAA,SACtB1B,OAAO,IAAI2B,eAAe;AAAA;AAAA;AAAA,SAG1B3B,OAAO,IAAI4B,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOzB5B,OAAO,IAAI6B,WAAW;AAAA,SACtB7B,OAAO,IAAI8B,SAAS;AAAA,SACpB9B,OAAO,IAAI+B,UAAU;AAAA,SACrB/B,OAAO,IAAIgC,iBAAiB;AAAA,SAC5BhC,OAAO,IAAIiC,QAAQ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ActionButton, type SpectrumActionButtonProps as ActionButtonProps, LogicButton, type SpectrumLogicButtonProps as LogicButtonProps, ToggleButton, type SpectrumToggleButtonProps as ToggleButtonProps, } from '@adobe/react-spectrum';
|
|
1
|
+
export { ActionButton, type SpectrumActionButtonProps as ActionButtonProps, ButtonGroup, type SpectrumButtonGroupProps as ButtonGroupProps, LogicButton, type SpectrumLogicButtonProps as LogicButtonProps, ToggleButton, type SpectrumToggleButtonProps as ToggleButtonProps, } from '@adobe/react-spectrum';
|
|
2
2
|
//# sourceMappingURL=buttons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/spectrum/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,yBAAyB,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"buttons.d.ts","sourceRoot":"","sources":["../../src/spectrum/buttons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,yBAAyB,IAAI,iBAAiB,EAEnD,WAAW,EACX,KAAK,wBAAwB,IAAI,gBAAgB,EAEjD,WAAW,EACX,KAAK,wBAAwB,IAAI,gBAAgB,EACjD,YAAY,EACZ,KAAK,yBAAyB,IAAI,iBAAiB,GACpD,MAAM,uBAAuB,CAAC"}
|
package/dist/spectrum/buttons.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ActionButton,
|
|
2
2
|
// Button - we want to use our own `Button` component instead of Spectrum's
|
|
3
|
-
|
|
3
|
+
ButtonGroup,
|
|
4
4
|
// FileTrigger - we aren't planning to support this component
|
|
5
5
|
LogicButton, ToggleButton } from '@adobe/react-spectrum';
|
|
6
6
|
//# sourceMappingURL=buttons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons.js","names":["ActionButton","LogicButton","ToggleButton"],"sources":["../../src/spectrum/buttons.ts"],"sourcesContent":["export {\n ActionButton,\n type SpectrumActionButtonProps as ActionButtonProps,\n // Button - we want to use our own `Button` component instead of Spectrum's\n
|
|
1
|
+
{"version":3,"file":"buttons.js","names":["ActionButton","ButtonGroup","LogicButton","ToggleButton"],"sources":["../../src/spectrum/buttons.ts"],"sourcesContent":["export {\n ActionButton,\n type SpectrumActionButtonProps as ActionButtonProps,\n // Button - we want to use our own `Button` component instead of Spectrum's\n ButtonGroup,\n type SpectrumButtonGroupProps as ButtonGroupProps,\n // FileTrigger - we aren't planning to support this component\n LogicButton,\n type SpectrumLogicButtonProps as LogicButtonProps,\n ToggleButton,\n type SpectrumToggleButtonProps as ToggleButtonProps,\n} from '@adobe/react-spectrum';\n"],"mappings":"AAAA,SACEA,YAAY;AAEZ;AACAC,WAAW;AAEX;AACAC,WAAW,EAEXC,YAAY,QAEP,uBAAuB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
2
|
import { Provider } from '@adobe/react-spectrum';
|
|
3
|
-
import
|
|
3
|
+
import { nanoid } from 'nanoid';
|
|
4
4
|
import { themeDHDefault } from "../spectrum/utils/index.js";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
/**
|
|
@@ -20,7 +20,7 @@ export function SpectrumThemeProvider(_ref) {
|
|
|
20
20
|
// a unique ID is used per provider to force it to render the theme wrapper element inside portals
|
|
21
21
|
// based on https://github.com/adobe/react-spectrum/issues/1697#issuecomment-999827266
|
|
22
22
|
// won't be needed if https://github.com/adobe/react-spectrum/pull/2669 is merged
|
|
23
|
-
var [id] = useState(isPortal ?
|
|
23
|
+
var [id] = useState(isPortal ? nanoid() : null);
|
|
24
24
|
return /*#__PURE__*/_jsx(Provider, {
|
|
25
25
|
UNSAFE_className: "spectrum-theme-provider",
|
|
26
26
|
theme: theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpectrumThemeProvider.js","names":["useState","Provider","
|
|
1
|
+
{"version":3,"file":"SpectrumThemeProvider.js","names":["useState","Provider","nanoid","themeDHDefault","jsx","_jsx","SpectrumThemeProvider","_ref","children","isPortal","theme","colorScheme","id","UNSAFE_className"],"sources":["../../src/theme/SpectrumThemeProvider.tsx"],"sourcesContent":["import { ReactNode, useState } from 'react';\nimport { Provider } from '@adobe/react-spectrum';\nimport type { Theme } from '@react-types/provider';\nimport { nanoid } from 'nanoid';\nimport { themeDHDefault } from '../spectrum/utils';\n\nexport interface SpectrumThemeProviderProps {\n children: ReactNode;\n isPortal?: boolean;\n theme?: Theme;\n colorScheme?: 'light' | 'dark';\n}\n\n/**\n * Wrapper around React Spectrum's theme Provider that provides DH mappings of\n * Spectrum's theme variables to DH's theme variables. Also exposes an optional\n * `isPortal` prop that if provided, adds a unique `data-unique-id` attribute to\n * the Provider. This is needed to force the Provider to render the theme wrapper\n * inside of portals.\n */\nexport function SpectrumThemeProvider({\n children,\n isPortal = false,\n theme = themeDHDefault,\n colorScheme,\n}: SpectrumThemeProviderProps): JSX.Element {\n // a unique ID is used per provider to force it to render the theme wrapper element inside portals\n // based on https://github.com/adobe/react-spectrum/issues/1697#issuecomment-999827266\n // won't be needed if https://github.com/adobe/react-spectrum/pull/2669 is merged\n const [id] = useState(isPortal ? nanoid() : null);\n\n return (\n <Provider\n UNSAFE_className=\"spectrum-theme-provider\"\n theme={theme}\n colorScheme={colorScheme}\n data-unique-id={id}\n >\n {children}\n </Provider>\n );\n}\n"],"mappings":"AAAA,SAAoBA,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAQ,uBAAuB;AAEhD,SAASC,MAAM,QAAQ,QAAQ;AAAC,SACvBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAKO;EAAA,IALN;IACpCC,QAAQ;IACRC,QAAQ,GAAG,KAAK;IAChBC,KAAK,GAAGP,cAAc;IACtBQ;EAC0B,CAAC,GAAAJ,IAAA;EAC3B;EACA;EACA;EACA,IAAM,CAACK,EAAE,CAAC,GAAGZ,QAAQ,CAACS,QAAQ,GAAGP,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;EAEjD,oBACEG,IAAA,CAACJ,QAAQ;IACPY,gBAAgB,EAAC,yBAAyB;IAC1CH,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzB,kBAAgBC,EAAG;IAAAJ,QAAA,EAElBA;EAAQ,CACD,CAAC;AAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[class*=spectrum]{font-family:var(--font-family-sans-serif) !important}label[class*=spectrum-]{margin-bottom:0}svg[class*=spectrum-Textfield-validationIcon]{box-sizing:content-box}.svg-inline--fa[class*=spectrum-Icon--sizeS]{--spectrum-alias-workflow-icon-size: var(--dh-svg-inline-icon-size)}.action-button-icon-with-tooltip{padding-right:var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85))}[class*=spectrum-Table-headCell]{--dh-table-header-cell-background-color: transparent;background:var(--dh-table-header-cell-background-color)}[class*=spectrum-Table-row]{--spectrum-table-row-border-color-selected: var( --dh-color-item-list-selected-border )}[class*=spectrum-Table--quiet]{--spectrum-alias-background-color-default: transparent}[class*=spectrum-ListView]{--spectrum-listview-item-border-color-selected: var( --dh-color-item-list-selected-border )}button[class*=spectrum-Button]{--spectrum-button-primary-text-gap: var(--spectrum-global-dimension-size-75);padding-bottom:calc(var(--spectrum-global-dimension-size-50) - 1px);padding-top:calc(var(--spectrum-global-dimension-size-50))}button[class*=spectrum-Button] svg{padding-bottom:var(--spectrum-global-dimension-size-25)}span[class*=spectrum-Checkbox-label],span[class*=spectrum-Radio-label]{margin-top:var(--spectrum-global-dimension-size-85)}label[class*=spectrum-Radio]{--spectrum-radio-emphasized-circle-border-color-error: var( --dh-color-negative-bg );--spectrum-radio-emphasized-circle-border-color-error-hover: var( --dh-color-negative-hover-bg );--spectrum-radio-emphasized-circle-border-color-error-down: var( --dh-color-negative-down-bg );--spectrum-radio-circle-border-color-error-key-focus: var( --dh-color-negative-key-focus-bg );--spectrum-radio-circle-border-color-error-selected-key-focus: var( --dh-color-negative-key-focus-bg )}/*# sourceMappingURL=theme-spectrum-overrides.css.map */
|
|
1
|
+
[class*=spectrum]{font-family:var(--font-family-sans-serif) !important}label[class*=spectrum-]{margin-bottom:0}svg[class*=spectrum-Textfield-validationIcon]{box-sizing:content-box}.svg-inline--fa[class*=spectrum-Icon--sizeS]{--spectrum-alias-workflow-icon-size: var(--dh-svg-inline-icon-size)}.action-button-icon-with-tooltip{padding-right:var(--spectrum-actionbutton-icon-padding-x, var(--spectrum-global-dimension-size-85))}[class*=spectrum-Table-headCell]{--dh-table-header-cell-background-color: transparent;background:var(--dh-table-header-cell-background-color)}[class*=spectrum-Table-row]{--spectrum-table-row-border-color-selected: var( --dh-color-item-list-selected-border )}[class*=spectrum-Table--quiet]{--spectrum-alias-background-color-default: transparent}[class*=spectrum-ListView]{--spectrum-listview-item-border-color-selected: var( --dh-color-item-list-selected-border )}button[class*=spectrum-Button]:not(.btn):not(.btn-socketed){--spectrum-button-primary-text-gap: var(--spectrum-global-dimension-size-75);padding-bottom:calc(var(--spectrum-global-dimension-size-50) - 1px);padding-top:calc(var(--spectrum-global-dimension-size-50))}button[class*=spectrum-Button]:not(.btn):not(.btn-socketed) svg{padding-bottom:var(--spectrum-global-dimension-size-25)}span[class*=spectrum-Checkbox-label],span[class*=spectrum-Radio-label]{margin-top:var(--spectrum-global-dimension-size-85)}label[class*=spectrum-Radio]{--spectrum-radio-emphasized-circle-border-color-error: var( --dh-color-negative-bg );--spectrum-radio-emphasized-circle-border-color-error-hover: var( --dh-color-negative-hover-bg );--spectrum-radio-emphasized-circle-border-color-error-down: var( --dh-color-negative-down-bg );--spectrum-radio-circle-border-color-error-key-focus: var( --dh-color-negative-key-focus-bg );--spectrum-radio-circle-border-color-error-selected-key-focus: var( --dh-color-negative-key-focus-bg )}/*# sourceMappingURL=theme-spectrum-overrides.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-spectrum/theme-spectrum-overrides.css"],"names":[],"mappings":"AAAA,kBAGE,qDAIF,wBACE,gBAGF,8CAEE,uBAGF,6CAKE,oEAQF,iCACE,oGAOF,iCAME,qDAEA,wDAGF,4BAEE,wFAKF,+BAEE,uDAGF,2BAEE,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/theme/theme-spectrum/theme-spectrum-overrides.css"],"names":[],"mappings":"AAAA,kBAGE,qDAIF,wBACE,gBAGF,8CAEE,uBAGF,6CAKE,oEAQF,iCACE,oGAOF,iCAME,qDAEA,wDAGF,4BAEE,wFAKF,+BAEE,uDAGF,2BAEE,4FAWF,4DAEE,6EAGA,oEACA,2DAEF,gEAKE,wDAGF,uEAKE,oDAEF,6BACE,qFAGA,iGAGA,+FAGA,8FAGA","file":"theme-spectrum-overrides.css","sourcesContent":["[class*='spectrum'] {\n /* --font-family-sans-serif is defined in Bootstrap's _root.scss. We want\n Spectrum to use the same default font-family */\n font-family: var(--font-family-sans-serif) !important;\n}\n\n/* Override _reboot.scss */\nlabel[class*='spectrum-'] {\n margin-bottom: 0;\n}\n\nsvg[class*='spectrum-Textfield-validationIcon'] {\n /* set as border-box by reboot, but spectrum expects this to be content-box */\n box-sizing: content-box;\n}\n\n.svg-inline--fa[class*='spectrum-Icon--sizeS'] {\n /* \n Resize fontawesome icons used inside a spectrum icon wrapper to match\n our icon size. Spectrum icons are 18px by default, but our icons are built on a 16px grid.\n */\n --spectrum-alias-workflow-icon-size: var(--dh-svg-inline-icon-size);\n}\n\n/** \n * Spectrum action button icons only include right padding if the the icon is \n * the only child. In cases where we add a <Tooltip>, we have to manually add \n * the right padding ourselves to keep the icon centered.\n */\n.action-button-icon-with-tooltip {\n padding-right: var(\n --spectrum-actionbutton-icon-padding-x,\n var(--spectrum-global-dimension-size-85)\n );\n}\n\n/* Table */\n[class*='spectrum-Table-headCell'] {\n /* \n Tables are styled with the assumption that the header is the same color as the bg\n which means they look bad against any other background color, instead just inherit the bg.\n There is also no variable exposed for this, so we have to target the class directly.\n */\n --dh-table-header-cell-background-color: transparent;\n\n background: var(--dh-table-header-cell-background-color);\n}\n\n[class*='spectrum-Table-row'] {\n /* border of selected color is hard-coded as blue rather than accent color */\n --spectrum-table-row-border-color-selected: var(\n --dh-color-item-list-selected-border\n );\n}\n\n[class*='spectrum-Table--quiet'] {\n /* Quiet shouldn't assume a bg color */\n --spectrum-alias-background-color-default: transparent;\n}\n\n[class*='spectrum-ListView'] {\n /* border of selected color is hard-coded as blue rather than accent color */\n --spectrum-listview-item-border-color-selected: var(\n --dh-color-item-list-selected-border\n );\n}\n\n/**\n Adjust Spectrum button text and icon alignment to account for DH using a\n different font and smaller icons. Spectrum `ButtonGroup` will add additional\n `-spectrum-ButtonGroup` classes to child buttons (including DH ones), so we\n explicitly exclude our buttons from the selector.\n */\nbutton[class*='spectrum-Button']:not(.btn):not(.btn-socketed) {\n /* make the icon closer to the text */\n --spectrum-button-primary-text-gap: var(--spectrum-global-dimension-size-75);\n\n /* Center the text vertically. We use a different font then spectrum so we require different custom centering */\n padding-bottom: calc(var(--spectrum-global-dimension-size-50) - 1px);\n padding-top: calc(var(--spectrum-global-dimension-size-50));\n}\nbutton[class*='spectrum-Button']:not(.btn):not(.btn-socketed) svg {\n /* \n We use smaller icons than Spectrum, so we need to adjust the padding to \n center when we use our icons inside of Spectrum buttons.\n */\n padding-bottom: var(--spectrum-global-dimension-size-25);\n}\n\nspan[class*='spectrum-Checkbox-label'],\nspan[class*='spectrum-Radio-label'] {\n /* I have no idea why these spectrum labels aren't centered,\n but this fixes it. Maybe difference in font baselines.\n */\n margin-top: var(--spectrum-global-dimension-size-85);\n}\nlabel[class*='spectrum-Radio'] {\n --spectrum-radio-emphasized-circle-border-color-error: var(\n --dh-color-negative-bg\n );\n --spectrum-radio-emphasized-circle-border-color-error-hover: var(\n --dh-color-negative-hover-bg\n );\n --spectrum-radio-emphasized-circle-border-color-error-down: var(\n --dh-color-negative-down-bg\n );\n --spectrum-radio-circle-border-color-error-key-focus: var(\n --dh-color-negative-key-focus-bg\n );\n --spectrum-radio-circle-border-color-error-selected-key-focus: var(\n --dh-color-negative-key-focus-bg\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.79.0",
|
|
4
4
|
"description": "Deephaven React component library",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@adobe/react-spectrum": "3.33.1",
|
|
28
|
-
"@deephaven/icons": "^0.
|
|
29
|
-
"@deephaven/log": "^0.
|
|
30
|
-
"@deephaven/react-hooks": "^0.
|
|
31
|
-
"@deephaven/utils": "^0.
|
|
28
|
+
"@deephaven/icons": "^0.79.0",
|
|
29
|
+
"@deephaven/log": "^0.79.0",
|
|
30
|
+
"@deephaven/react-hooks": "^0.79.0",
|
|
31
|
+
"@deephaven/utils": "^0.79.0",
|
|
32
32
|
"@fortawesome/fontawesome-svg-core": "^6.2.1",
|
|
33
33
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
34
34
|
"@react-spectrum/theme-default": "^3.5.1",
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"lodash.debounce": "^4.0.8",
|
|
43
43
|
"lodash.flatten": "^4.4.0",
|
|
44
44
|
"memoizee": "^0.4.15",
|
|
45
|
+
"nanoid": "^5.0.7",
|
|
45
46
|
"popper.js": "^1.16.1",
|
|
46
47
|
"prop-types": "^15.7.2",
|
|
47
48
|
"react-beautiful-dnd": "^13.1.0",
|
|
48
49
|
"react-transition-group": "^4.4.2",
|
|
49
50
|
"react-virtualized-auto-sizer": "1.0.6",
|
|
50
|
-
"react-window": "^1.8.6"
|
|
51
|
-
"shortid": "^2.2.16"
|
|
51
|
+
"react-window": "^1.8.6"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"react": ">=16.8.0",
|
|
55
55
|
"react-dom": ">=16.8.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@deephaven/mocks": "^0.
|
|
58
|
+
"@deephaven/mocks": "^0.79.0"
|
|
59
59
|
},
|
|
60
60
|
"files": [
|
|
61
61
|
"dist",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"publishConfig": {
|
|
70
70
|
"access": "public"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "95ec12ba29b3866c27a87d35252b073281f403af"
|
|
73
73
|
}
|