@mirohq/design-system-input 1.3.5-fix-button-types.2 → 1.4.0-fix-stitches-types.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/main.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var jsxRuntime = require('react/jsx-runtime');
6
4
  var React = require('react');
7
5
  var designSystemBaseInput = require('@mirohq/design-system-base-input');
@@ -9,10 +7,6 @@ var designSystemIcons = require('@mirohq/design-system-icons');
9
7
  var designSystemUtils = require('@mirohq/design-system-utils');
10
8
  var designSystemBaseForm = require('@mirohq/design-system-base-form');
11
9
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
-
16
10
  const createSyntheticChangeEvent = (inputRef) => {
17
11
  const event = {
18
12
  target: inputRef.current,
@@ -176,7 +170,7 @@ const ActionButton = designSystemBaseInput.BaseInput.ActionButton;
176
170
 
177
171
  const IconSlot = designSystemBaseInput.BaseInput.IconSlot;
178
172
 
179
- const Input = React__default["default"].forwardRef(
173
+ const Input = React.forwardRef(
180
174
  ({ children, ...restProps }, forwardRef) => {
181
175
  const {
182
176
  clearable = false,
@@ -206,7 +200,7 @@ const Input = React__default["default"].forwardRef(
206
200
  Input.ActionButton = ActionButton;
207
201
  Input.IconSlot = IconSlot;
208
202
 
209
- const InputPassword = React__default["default"].forwardRef(
203
+ const InputPassword = React.forwardRef(
210
204
  ({
211
205
  reveal,
212
206
  defaultReveal,
@@ -259,7 +253,7 @@ const InputPassword = React__default["default"].forwardRef(
259
253
  }
260
254
  );
261
255
 
262
- const InputEmail = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => {
256
+ const InputEmail = React.forwardRef(({ children, ...restProps }, forwardRef) => {
263
257
  const {
264
258
  clearable = false,
265
259
  onClearPress,
@@ -287,7 +281,7 @@ const InputEmail = React__default["default"].forwardRef(({ children, ...restProp
287
281
  });
288
282
  InputEmail.ActionButton = ActionButton;
289
283
 
290
- const InputSearch = React__default["default"].forwardRef(({ children, onChange, ...restProps }, forwardRef) => {
284
+ const InputSearch = React.forwardRef(({ children, onChange, ...restProps }, forwardRef) => {
291
285
  const {
292
286
  clearable = false,
293
287
  onClearPress,
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/clear-action.tsx","../src/hooks/use-base-input-props.ts","../src/partials/action-button.ts","../src/partials/icon-slot.ts","../src/input.tsx","../src/input-password.tsx","../src/input-email.tsx","../src/input-search.tsx"],"sourcesContent":["import { IconCross } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport type { PressEvent } from '@mirohq/design-system-use-press'\nimport { BaseInput, useInputContext } from '@mirohq/design-system-base-input'\n\nimport type { ClearProps } from './types'\n\nexport type ClearActionProps = ClearProps\n\nconst createSyntheticChangeEvent = (\n inputRef: React.RefObject<HTMLInputElement>\n): React.ChangeEvent<HTMLInputElement> => {\n const event: React.ChangeEvent<HTMLInputElement> = {\n target: inputRef.current,\n currentTarget: inputRef.current,\n nativeEvent: new Event('input', {\n bubbles: true,\n }),\n preventDefault: () => {},\n stopPropagation: () => {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist: () => {},\n } as unknown as React.ChangeEvent<HTMLInputElement>\n\n return event\n}\n\nexport const ClearAction = ({\n clearable,\n clearLabel,\n onClearPress,\n value,\n}: ClearActionProps): JSX.Element => {\n const {\n disabled,\n 'aria-disabled': ariaDisabled,\n readOnly,\n inputRef,\n onChange,\n } = useInputContext()\n\n if (!clearable) return <></>\n\n return (\n <BaseInput.ActionButton\n label={clearLabel}\n disabled={booleanify(disabled ?? ariaDisabled ?? readOnly)}\n onPress={(e: PressEvent) => {\n onClearPress?.(e)\n\n if (value === undefined && inputRef.current !== null) {\n if (inputRef.current.value === '') return\n inputRef.current.value = ''\n\n const event = createSyntheticChangeEvent(inputRef)\n onChange?.(event)\n }\n }}\n >\n <IconCross />\n </BaseInput.ActionButton>\n )\n}\n","import type { InputHTMLAttributes, ForwardedRef } from 'react'\nimport { useEffect } from 'react'\nimport type {\n BaseInputProps,\n BaseInputInputProps,\n BaseInputSharedProps,\n} from '@mirohq/design-system-base-input'\nimport { mergeRefs, stringAttrValue } from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\n\nimport type { InputFloatingLabelProps } from '../floating-label'\n\nconst baseInputAllowedEvents = [\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseMoveCapture',\n 'onMouseOut',\n 'onMouseOutCapture',\n 'onMouseOver',\n 'onMouseOverCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerMoveCapture',\n 'onPointerOut',\n 'onPointerOutCapture',\n 'onPointerOver',\n 'onPointerOverCapture',\n 'onTouchMove',\n 'onTouchMoveCapture',\n] as const\n\ntype BaseInputAllowedEventsKeys = typeof baseInputAllowedEvents[number]\n\ntype BaseInputEventProps = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n BaseInputAllowedEventsKeys\n>\n\ninterface AdditionalRootProps {\n // to pass down className generated by Stitches.styled when providing Input as an element\n className?: string\n}\n\nexport type BaseInputRootProps = BaseInputProps &\n BaseInputEventProps &\n AdditionalRootProps\n\nexport const useBaseInputProps = (\n allProps: BaseInputSharedProps & AdditionalRootProps,\n forwardRef: ForwardedRef<HTMLInputElement>\n): {\n baseInputProps: BaseInputRootProps\n inputProps: BaseInputInputProps\n floatingLabelProps: InputFloatingLabelProps\n} => {\n const {\n // base-input props\n valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n\n // input props\n id,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n\n // input & floatingLabel shared props\n placeholder,\n value,\n defaultValue,\n\n ...restProps\n } = allProps\n\n const {\n formElementId,\n formElementRef,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n } = useFormFieldContext<HTMLInputElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setReadOnly?.(readOnly)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n }, [\n disabled,\n ariaDisabled,\n readOnly,\n required,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n ])\n\n const baseInputProps: BaseInputRootProps = {\n valid: formFieldValid ?? valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n }\n\n const inputProps: BaseInputInputProps = {\n id: id ?? formElementId,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n placeholder,\n value,\n defaultValue,\n ref: mergeRefs<HTMLInputElement>([formElementRef, forwardRef]),\n }\n\n const floatingLabelProps = {\n placeholder,\n value,\n defaultValue,\n size,\n }\n\n Object.entries(restProps).forEach(([key, value]) => {\n if (baseInputAllowedEvents.includes(key as any)) {\n baseInputProps[key as BaseInputAllowedEventsKeys] = value\n } else {\n inputProps[key as keyof BaseInputInputProps] = value\n }\n })\n\n return { baseInputProps, inputProps, floatingLabelProps }\n}\n","import type { BaseInputActionButtonProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type ActionButtonProps = BaseInputActionButtonProps\nexport const ActionButton = BaseInput.ActionButton\n","import type { BaseInputIconSlotProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type IconSlotProps = BaseInputIconSlotProps\nexport const IconSlot = BaseInput.IconSlot\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\nimport { IconSlot } from './partials/icon-slot'\n\nexport type InputProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const Input = React.forwardRef<ElementRef<'input'>, InputProps>(\n ({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n </BaseInput>\n )\n }\n) as ForwardRefExoticComponent<InputProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n IconSlot: typeof IconSlot\n}\n\nInput.ActionButton = ActionButton\nInput.IconSlot = IconSlot\n","import React, { useState, useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport {\n IconEyeOpen,\n IconEyeClosed,\n IconLockClosed,\n} from '@mirohq/design-system-icons'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { BaseInputSharedProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport type { Value } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\n\nexport interface InputPasswordProps extends Omit<BaseInputSharedProps, 'type'> {\n /**\n * A boolean for the default password state (visible or masked).\n */\n defaultReveal?: boolean\n\n /**\n * Indicates whether the password should be revealed (visible) or hidden (masked).\n */\n reveal?: boolean\n\n /**\n * Callback function to be called when the password is revealed.\n */\n onReveal?: (value: Value) => void\n\n /**\n * Callback function to be called when the password is hidden (masked).\n */\n onHide?: (value: Value) => void\n\n /**\n * Tooltip label text for the action to reveal the password.\n */\n revealLabel: string\n\n /**\n * Tooltip label text for the action to hide (mask) the password.\n */\n hideLabel: string\n}\n\nexport const InputPassword = React.forwardRef<\n ElementRef<'input'>,\n InputPasswordProps\n>(\n (\n {\n reveal,\n defaultReveal,\n onReveal,\n onHide,\n hideLabel,\n revealLabel,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [revealState, setRevealState] = useState(defaultReveal ?? false)\n const revealInternal = reveal ?? revealState\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n restProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input\n {...inputProps}\n type={revealInternal ? 'text' : 'password'}\n ref={mergeRefs([inputRef, forwardRef])}\n />\n {children}\n <BaseInput.IconSlot>\n <IconLockClosed />\n </BaseInput.IconSlot>\n <BaseInput.ActionButton\n label={revealInternal ? hideLabel : revealLabel}\n disabled={false}\n onPress={() => {\n const valueInternal = inputProps.value ?? inputRef.current?.value\n\n if (revealInternal) {\n onHide?.(valueInternal)\n } else {\n onReveal?.(valueInternal)\n }\n\n if (reveal === undefined) {\n setRevealState(reveal => !reveal)\n }\n }}\n >\n {revealInternal ? <IconEyeOpen /> : <IconEyeClosed />}\n </BaseInput.ActionButton>\n </BaseInput>\n )\n }\n)\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconEnvelope } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputEmailProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputEmail = React.forwardRef<\n ElementRef<'input'>,\n InputEmailProps\n>(({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input type='email' {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n <BaseInput.IconSlot>\n <IconEnvelope />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputEmailProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputEmail.ActionButton = ActionButton\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconMagnifyingGlass } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputSearchProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputSearch = React.forwardRef<\n ElementRef<'input'>,\n InputSearchProps\n>(({ children, onChange, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n value,\n ...elementProps\n } = restProps as ClearProps\n const { baseInputProps, inputProps } = useBaseInputProps(\n { ...elementProps, onChange, value },\n forwardRef\n )\n\n const hasQuery = inputProps.value !== ''\n\n return (\n <BaseInput {...baseInputProps} variant='subtle'>\n <BaseInput.Input {...inputProps} ref={forwardRef} />\n {children}\n {hasQuery && (\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n )}\n <BaseInput.IconSlot>\n <IconMagnifyingGlass />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputSearchProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputSearch.ActionButton = ActionButton\n"],"names":["useInputContext","jsx","Fragment","BaseInput","booleanify","IconCross","useFormFieldContext","useEffect","stringAttrValue","mergeRefs","value","React","jsxs","useRef","useState","IconLockClosed","reveal","IconEyeOpen","IconEyeClosed","IconEnvelope","IconMagnifyingGlass"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/clear-action.tsx","../src/hooks/use-base-input-props.ts","../src/partials/action-button.ts","../src/partials/icon-slot.ts","../src/input.tsx","../src/input-password.tsx","../src/input-email.tsx","../src/input-search.tsx"],"sourcesContent":["import { IconCross } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport type { PressEvent } from '@mirohq/design-system-use-press'\nimport { BaseInput, useInputContext } from '@mirohq/design-system-base-input'\n\nimport type { ClearProps } from './types'\n\nexport type ClearActionProps = ClearProps\n\nconst createSyntheticChangeEvent = (\n inputRef: React.RefObject<HTMLInputElement>\n): React.ChangeEvent<HTMLInputElement> => {\n const event: React.ChangeEvent<HTMLInputElement> = {\n target: inputRef.current,\n currentTarget: inputRef.current,\n nativeEvent: new Event('input', {\n bubbles: true,\n }),\n preventDefault: () => {},\n stopPropagation: () => {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist: () => {},\n } as unknown as React.ChangeEvent<HTMLInputElement>\n\n return event\n}\n\nexport const ClearAction = ({\n clearable,\n clearLabel,\n onClearPress,\n value,\n}: ClearActionProps): JSX.Element => {\n const {\n disabled,\n 'aria-disabled': ariaDisabled,\n readOnly,\n inputRef,\n onChange,\n } = useInputContext()\n\n if (!clearable) return <></>\n\n return (\n <BaseInput.ActionButton\n label={clearLabel}\n disabled={booleanify(disabled ?? ariaDisabled ?? readOnly)}\n onPress={(e: PressEvent) => {\n onClearPress?.(e)\n\n if (value === undefined && inputRef.current !== null) {\n if (inputRef.current.value === '') return\n inputRef.current.value = ''\n\n const event = createSyntheticChangeEvent(inputRef)\n onChange?.(event)\n }\n }}\n >\n <IconCross />\n </BaseInput.ActionButton>\n )\n}\n","import type { InputHTMLAttributes, ForwardedRef } from 'react'\nimport { useEffect } from 'react'\nimport type {\n BaseInputProps,\n BaseInputInputProps,\n BaseInputSharedProps,\n} from '@mirohq/design-system-base-input'\nimport { mergeRefs, stringAttrValue } from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\n\nimport type { InputFloatingLabelProps } from '../floating-label'\n\nconst baseInputAllowedEvents = [\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseMoveCapture',\n 'onMouseOut',\n 'onMouseOutCapture',\n 'onMouseOver',\n 'onMouseOverCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerMoveCapture',\n 'onPointerOut',\n 'onPointerOutCapture',\n 'onPointerOver',\n 'onPointerOverCapture',\n 'onTouchMove',\n 'onTouchMoveCapture',\n] as const\n\ntype BaseInputAllowedEventsKeys = typeof baseInputAllowedEvents[number]\n\ntype BaseInputEventProps = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n BaseInputAllowedEventsKeys\n>\n\ninterface AdditionalRootProps {\n // to pass down className generated by Stitches.styled when providing Input as an element\n className?: string\n}\n\nexport type BaseInputRootProps = BaseInputProps &\n BaseInputEventProps &\n AdditionalRootProps\n\nexport const useBaseInputProps = (\n allProps: BaseInputSharedProps & AdditionalRootProps,\n forwardRef: ForwardedRef<HTMLInputElement>\n): {\n baseInputProps: BaseInputRootProps\n inputProps: BaseInputInputProps\n floatingLabelProps: InputFloatingLabelProps\n} => {\n const {\n // base-input props\n valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n\n // input props\n id,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n\n // input & floatingLabel shared props\n placeholder,\n value,\n defaultValue,\n\n ...restProps\n } = allProps\n\n const {\n formElementId,\n formElementRef,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n } = useFormFieldContext<HTMLInputElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setReadOnly?.(readOnly)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n }, [\n disabled,\n ariaDisabled,\n readOnly,\n required,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n ])\n\n const baseInputProps: BaseInputRootProps = {\n valid: formFieldValid ?? valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n }\n\n const inputProps: BaseInputInputProps = {\n id: id ?? formElementId,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n placeholder,\n value,\n defaultValue,\n ref: mergeRefs<HTMLInputElement>([formElementRef, forwardRef]),\n }\n\n const floatingLabelProps = {\n placeholder,\n value,\n defaultValue,\n size,\n }\n\n Object.entries(restProps).forEach(([key, value]) => {\n if (baseInputAllowedEvents.includes(key as any)) {\n baseInputProps[key as BaseInputAllowedEventsKeys] = value\n } else {\n inputProps[key as keyof BaseInputInputProps] = value\n }\n })\n\n return { baseInputProps, inputProps, floatingLabelProps }\n}\n","import type { BaseInputActionButtonProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type ActionButtonProps = BaseInputActionButtonProps\nexport const ActionButton = BaseInput.ActionButton\n","import type { BaseInputIconSlotProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type IconSlotProps = BaseInputIconSlotProps\nexport const IconSlot = BaseInput.IconSlot\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\nimport { IconSlot } from './partials/icon-slot'\n\nexport type InputProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const Input = React.forwardRef<ElementRef<'input'>, InputProps>(\n ({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n </BaseInput>\n )\n }\n) as ForwardRefExoticComponent<InputProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n IconSlot: typeof IconSlot\n}\n\nInput.ActionButton = ActionButton\nInput.IconSlot = IconSlot\n","import React, { useState, useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport {\n IconEyeOpen,\n IconEyeClosed,\n IconLockClosed,\n} from '@mirohq/design-system-icons'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { BaseInputSharedProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport type { Value } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\n\nexport interface InputPasswordProps extends Omit<BaseInputSharedProps, 'type'> {\n /**\n * A boolean for the default password state (visible or masked).\n */\n defaultReveal?: boolean\n\n /**\n * Indicates whether the password should be revealed (visible) or hidden (masked).\n */\n reveal?: boolean\n\n /**\n * Callback function to be called when the password is revealed.\n */\n onReveal?: (value: Value) => void\n\n /**\n * Callback function to be called when the password is hidden (masked).\n */\n onHide?: (value: Value) => void\n\n /**\n * Tooltip label text for the action to reveal the password.\n */\n revealLabel: string\n\n /**\n * Tooltip label text for the action to hide (mask) the password.\n */\n hideLabel: string\n}\n\nexport const InputPassword = React.forwardRef<\n ElementRef<'input'>,\n InputPasswordProps\n>(\n (\n {\n reveal,\n defaultReveal,\n onReveal,\n onHide,\n hideLabel,\n revealLabel,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [revealState, setRevealState] = useState(defaultReveal ?? false)\n const revealInternal = reveal ?? revealState\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n restProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input\n {...inputProps}\n type={revealInternal ? 'text' : 'password'}\n ref={mergeRefs([inputRef, forwardRef])}\n />\n {children}\n <BaseInput.IconSlot>\n <IconLockClosed />\n </BaseInput.IconSlot>\n <BaseInput.ActionButton\n label={revealInternal ? hideLabel : revealLabel}\n disabled={false}\n onPress={() => {\n const valueInternal = inputProps.value ?? inputRef.current?.value\n\n if (revealInternal) {\n onHide?.(valueInternal)\n } else {\n onReveal?.(valueInternal)\n }\n\n if (reveal === undefined) {\n setRevealState(reveal => !reveal)\n }\n }}\n >\n {revealInternal ? <IconEyeOpen /> : <IconEyeClosed />}\n </BaseInput.ActionButton>\n </BaseInput>\n )\n }\n)\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconEnvelope } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputEmailProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputEmail = React.forwardRef<\n ElementRef<'input'>,\n InputEmailProps\n>(({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input type='email' {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n <BaseInput.IconSlot>\n <IconEnvelope />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputEmailProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputEmail.ActionButton = ActionButton\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconMagnifyingGlass } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputSearchProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputSearch = React.forwardRef<\n ElementRef<'input'>,\n InputSearchProps\n>(({ children, onChange, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n value,\n ...elementProps\n } = restProps as ClearProps\n const { baseInputProps, inputProps } = useBaseInputProps(\n { ...elementProps, onChange, value },\n forwardRef\n )\n\n const hasQuery = inputProps.value !== ''\n\n return (\n <BaseInput {...baseInputProps} variant='subtle'>\n <BaseInput.Input {...inputProps} ref={forwardRef} />\n {children}\n {hasQuery && (\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n )}\n <BaseInput.IconSlot>\n <IconMagnifyingGlass />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputSearchProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputSearch.ActionButton = ActionButton\n"],"names":["useInputContext","jsx","Fragment","BaseInput","booleanify","IconCross","useFormFieldContext","useEffect","stringAttrValue","mergeRefs","value","jsxs","useRef","useState","IconLockClosed","reveal","IconEyeOpen","IconEyeClosed","IconEnvelope","IconMagnifyingGlass"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -2,7 +2,7 @@ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import React, { useEffect, useRef, useState } from 'react';
3
3
  import { useInputContext, BaseInput } from '@mirohq/design-system-base-input';
4
4
  import { IconCross, IconLockClosed, IconEyeOpen, IconEyeClosed, IconEnvelope, IconMagnifyingGlass } from '@mirohq/design-system-icons';
5
- import { booleanify, stringAttrValue, mergeRefs } from '@mirohq/design-system-utils';
5
+ import { booleanify, mergeRefs, stringAttrValue } from '@mirohq/design-system-utils';
6
6
  import { useFormFieldContext } from '@mirohq/design-system-base-form';
7
7
 
8
8
  const createSyntheticChangeEvent = (inputRef) => {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/clear-action.tsx","../src/hooks/use-base-input-props.ts","../src/partials/action-button.ts","../src/partials/icon-slot.ts","../src/input.tsx","../src/input-password.tsx","../src/input-email.tsx","../src/input-search.tsx"],"sourcesContent":["import { IconCross } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport type { PressEvent } from '@mirohq/design-system-use-press'\nimport { BaseInput, useInputContext } from '@mirohq/design-system-base-input'\n\nimport type { ClearProps } from './types'\n\nexport type ClearActionProps = ClearProps\n\nconst createSyntheticChangeEvent = (\n inputRef: React.RefObject<HTMLInputElement>\n): React.ChangeEvent<HTMLInputElement> => {\n const event: React.ChangeEvent<HTMLInputElement> = {\n target: inputRef.current,\n currentTarget: inputRef.current,\n nativeEvent: new Event('input', {\n bubbles: true,\n }),\n preventDefault: () => {},\n stopPropagation: () => {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist: () => {},\n } as unknown as React.ChangeEvent<HTMLInputElement>\n\n return event\n}\n\nexport const ClearAction = ({\n clearable,\n clearLabel,\n onClearPress,\n value,\n}: ClearActionProps): JSX.Element => {\n const {\n disabled,\n 'aria-disabled': ariaDisabled,\n readOnly,\n inputRef,\n onChange,\n } = useInputContext()\n\n if (!clearable) return <></>\n\n return (\n <BaseInput.ActionButton\n label={clearLabel}\n disabled={booleanify(disabled ?? ariaDisabled ?? readOnly)}\n onPress={(e: PressEvent) => {\n onClearPress?.(e)\n\n if (value === undefined && inputRef.current !== null) {\n if (inputRef.current.value === '') return\n inputRef.current.value = ''\n\n const event = createSyntheticChangeEvent(inputRef)\n onChange?.(event)\n }\n }}\n >\n <IconCross />\n </BaseInput.ActionButton>\n )\n}\n","import type { InputHTMLAttributes, ForwardedRef } from 'react'\nimport { useEffect } from 'react'\nimport type {\n BaseInputProps,\n BaseInputInputProps,\n BaseInputSharedProps,\n} from '@mirohq/design-system-base-input'\nimport { mergeRefs, stringAttrValue } from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\n\nimport type { InputFloatingLabelProps } from '../floating-label'\n\nconst baseInputAllowedEvents = [\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseMoveCapture',\n 'onMouseOut',\n 'onMouseOutCapture',\n 'onMouseOver',\n 'onMouseOverCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerMoveCapture',\n 'onPointerOut',\n 'onPointerOutCapture',\n 'onPointerOver',\n 'onPointerOverCapture',\n 'onTouchMove',\n 'onTouchMoveCapture',\n] as const\n\ntype BaseInputAllowedEventsKeys = typeof baseInputAllowedEvents[number]\n\ntype BaseInputEventProps = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n BaseInputAllowedEventsKeys\n>\n\ninterface AdditionalRootProps {\n // to pass down className generated by Stitches.styled when providing Input as an element\n className?: string\n}\n\nexport type BaseInputRootProps = BaseInputProps &\n BaseInputEventProps &\n AdditionalRootProps\n\nexport const useBaseInputProps = (\n allProps: BaseInputSharedProps & AdditionalRootProps,\n forwardRef: ForwardedRef<HTMLInputElement>\n): {\n baseInputProps: BaseInputRootProps\n inputProps: BaseInputInputProps\n floatingLabelProps: InputFloatingLabelProps\n} => {\n const {\n // base-input props\n valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n\n // input props\n id,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n\n // input & floatingLabel shared props\n placeholder,\n value,\n defaultValue,\n\n ...restProps\n } = allProps\n\n const {\n formElementId,\n formElementRef,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n } = useFormFieldContext<HTMLInputElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setReadOnly?.(readOnly)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n }, [\n disabled,\n ariaDisabled,\n readOnly,\n required,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n ])\n\n const baseInputProps: BaseInputRootProps = {\n valid: formFieldValid ?? valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n }\n\n const inputProps: BaseInputInputProps = {\n id: id ?? formElementId,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n placeholder,\n value,\n defaultValue,\n ref: mergeRefs<HTMLInputElement>([formElementRef, forwardRef]),\n }\n\n const floatingLabelProps = {\n placeholder,\n value,\n defaultValue,\n size,\n }\n\n Object.entries(restProps).forEach(([key, value]) => {\n if (baseInputAllowedEvents.includes(key as any)) {\n baseInputProps[key as BaseInputAllowedEventsKeys] = value\n } else {\n inputProps[key as keyof BaseInputInputProps] = value\n }\n })\n\n return { baseInputProps, inputProps, floatingLabelProps }\n}\n","import type { BaseInputActionButtonProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type ActionButtonProps = BaseInputActionButtonProps\nexport const ActionButton = BaseInput.ActionButton\n","import type { BaseInputIconSlotProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type IconSlotProps = BaseInputIconSlotProps\nexport const IconSlot = BaseInput.IconSlot\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\nimport { IconSlot } from './partials/icon-slot'\n\nexport type InputProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const Input = React.forwardRef<ElementRef<'input'>, InputProps>(\n ({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n </BaseInput>\n )\n }\n) as ForwardRefExoticComponent<InputProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n IconSlot: typeof IconSlot\n}\n\nInput.ActionButton = ActionButton\nInput.IconSlot = IconSlot\n","import React, { useState, useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport {\n IconEyeOpen,\n IconEyeClosed,\n IconLockClosed,\n} from '@mirohq/design-system-icons'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { BaseInputSharedProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport type { Value } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\n\nexport interface InputPasswordProps extends Omit<BaseInputSharedProps, 'type'> {\n /**\n * A boolean for the default password state (visible or masked).\n */\n defaultReveal?: boolean\n\n /**\n * Indicates whether the password should be revealed (visible) or hidden (masked).\n */\n reveal?: boolean\n\n /**\n * Callback function to be called when the password is revealed.\n */\n onReveal?: (value: Value) => void\n\n /**\n * Callback function to be called when the password is hidden (masked).\n */\n onHide?: (value: Value) => void\n\n /**\n * Tooltip label text for the action to reveal the password.\n */\n revealLabel: string\n\n /**\n * Tooltip label text for the action to hide (mask) the password.\n */\n hideLabel: string\n}\n\nexport const InputPassword = React.forwardRef<\n ElementRef<'input'>,\n InputPasswordProps\n>(\n (\n {\n reveal,\n defaultReveal,\n onReveal,\n onHide,\n hideLabel,\n revealLabel,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [revealState, setRevealState] = useState(defaultReveal ?? false)\n const revealInternal = reveal ?? revealState\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n restProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input\n {...inputProps}\n type={revealInternal ? 'text' : 'password'}\n ref={mergeRefs([inputRef, forwardRef])}\n />\n {children}\n <BaseInput.IconSlot>\n <IconLockClosed />\n </BaseInput.IconSlot>\n <BaseInput.ActionButton\n label={revealInternal ? hideLabel : revealLabel}\n disabled={false}\n onPress={() => {\n const valueInternal = inputProps.value ?? inputRef.current?.value\n\n if (revealInternal) {\n onHide?.(valueInternal)\n } else {\n onReveal?.(valueInternal)\n }\n\n if (reveal === undefined) {\n setRevealState(reveal => !reveal)\n }\n }}\n >\n {revealInternal ? <IconEyeOpen /> : <IconEyeClosed />}\n </BaseInput.ActionButton>\n </BaseInput>\n )\n }\n)\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconEnvelope } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputEmailProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputEmail = React.forwardRef<\n ElementRef<'input'>,\n InputEmailProps\n>(({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input type='email' {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n <BaseInput.IconSlot>\n <IconEnvelope />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputEmailProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputEmail.ActionButton = ActionButton\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconMagnifyingGlass } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputSearchProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputSearch = React.forwardRef<\n ElementRef<'input'>,\n InputSearchProps\n>(({ children, onChange, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n value,\n ...elementProps\n } = restProps as ClearProps\n const { baseInputProps, inputProps } = useBaseInputProps(\n { ...elementProps, onChange, value },\n forwardRef\n )\n\n const hasQuery = inputProps.value !== ''\n\n return (\n <BaseInput {...baseInputProps} variant='subtle'>\n <BaseInput.Input {...inputProps} ref={forwardRef} />\n {children}\n {hasQuery && (\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n )}\n <BaseInput.IconSlot>\n <IconMagnifyingGlass />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputSearchProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputSearch.ActionButton = ActionButton\n"],"names":["value","reveal"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/clear-action.tsx","../src/hooks/use-base-input-props.ts","../src/partials/action-button.ts","../src/partials/icon-slot.ts","../src/input.tsx","../src/input-password.tsx","../src/input-email.tsx","../src/input-search.tsx"],"sourcesContent":["import { IconCross } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport type { PressEvent } from '@mirohq/design-system-use-press'\nimport { BaseInput, useInputContext } from '@mirohq/design-system-base-input'\n\nimport type { ClearProps } from './types'\n\nexport type ClearActionProps = ClearProps\n\nconst createSyntheticChangeEvent = (\n inputRef: React.RefObject<HTMLInputElement>\n): React.ChangeEvent<HTMLInputElement> => {\n const event: React.ChangeEvent<HTMLInputElement> = {\n target: inputRef.current,\n currentTarget: inputRef.current,\n nativeEvent: new Event('input', {\n bubbles: true,\n }),\n preventDefault: () => {},\n stopPropagation: () => {},\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n persist: () => {},\n } as unknown as React.ChangeEvent<HTMLInputElement>\n\n return event\n}\n\nexport const ClearAction = ({\n clearable,\n clearLabel,\n onClearPress,\n value,\n}: ClearActionProps): JSX.Element => {\n const {\n disabled,\n 'aria-disabled': ariaDisabled,\n readOnly,\n inputRef,\n onChange,\n } = useInputContext()\n\n if (!clearable) return <></>\n\n return (\n <BaseInput.ActionButton\n label={clearLabel}\n disabled={booleanify(disabled ?? ariaDisabled ?? readOnly)}\n onPress={(e: PressEvent) => {\n onClearPress?.(e)\n\n if (value === undefined && inputRef.current !== null) {\n if (inputRef.current.value === '') return\n inputRef.current.value = ''\n\n const event = createSyntheticChangeEvent(inputRef)\n onChange?.(event)\n }\n }}\n >\n <IconCross />\n </BaseInput.ActionButton>\n )\n}\n","import type { InputHTMLAttributes, ForwardedRef } from 'react'\nimport { useEffect } from 'react'\nimport type {\n BaseInputProps,\n BaseInputInputProps,\n BaseInputSharedProps,\n} from '@mirohq/design-system-base-input'\nimport { mergeRefs, stringAttrValue } from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\n\nimport type { InputFloatingLabelProps } from '../floating-label'\n\nconst baseInputAllowedEvents = [\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseMoveCapture',\n 'onMouseOut',\n 'onMouseOutCapture',\n 'onMouseOver',\n 'onMouseOverCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerMoveCapture',\n 'onPointerOut',\n 'onPointerOutCapture',\n 'onPointerOver',\n 'onPointerOverCapture',\n 'onTouchMove',\n 'onTouchMoveCapture',\n] as const\n\ntype BaseInputAllowedEventsKeys = typeof baseInputAllowedEvents[number]\n\ntype BaseInputEventProps = Pick<\n InputHTMLAttributes<HTMLInputElement>,\n BaseInputAllowedEventsKeys\n>\n\ninterface AdditionalRootProps {\n // to pass down className generated by Stitches.styled when providing Input as an element\n className?: string\n}\n\nexport type BaseInputRootProps = BaseInputProps &\n BaseInputEventProps &\n AdditionalRootProps\n\nexport const useBaseInputProps = (\n allProps: BaseInputSharedProps & AdditionalRootProps,\n forwardRef: ForwardedRef<HTMLInputElement>\n): {\n baseInputProps: BaseInputRootProps\n inputProps: BaseInputInputProps\n floatingLabelProps: InputFloatingLabelProps\n} => {\n const {\n // base-input props\n valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n\n // input props\n id,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n\n // input & floatingLabel shared props\n placeholder,\n value,\n defaultValue,\n\n ...restProps\n } = allProps\n\n const {\n formElementId,\n formElementRef,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n } = useFormFieldContext<HTMLInputElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setReadOnly?.(readOnly)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n }, [\n disabled,\n ariaDisabled,\n readOnly,\n required,\n setRequired,\n setReadOnly,\n setDisabled,\n setAriaDisabled,\n ])\n\n const baseInputProps: BaseInputRootProps = {\n valid: formFieldValid ?? valid,\n 'aria-disabled': ariaDisabled,\n readOnly,\n required,\n disabled,\n size,\n className,\n css,\n onChange,\n }\n\n const inputProps: BaseInputInputProps = {\n id: id ?? formElementId,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n placeholder,\n value,\n defaultValue,\n ref: mergeRefs<HTMLInputElement>([formElementRef, forwardRef]),\n }\n\n const floatingLabelProps = {\n placeholder,\n value,\n defaultValue,\n size,\n }\n\n Object.entries(restProps).forEach(([key, value]) => {\n if (baseInputAllowedEvents.includes(key as any)) {\n baseInputProps[key as BaseInputAllowedEventsKeys] = value\n } else {\n inputProps[key as keyof BaseInputInputProps] = value\n }\n })\n\n return { baseInputProps, inputProps, floatingLabelProps }\n}\n","import type { BaseInputActionButtonProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type ActionButtonProps = BaseInputActionButtonProps\nexport const ActionButton = BaseInput.ActionButton\n","import type { BaseInputIconSlotProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nexport type IconSlotProps = BaseInputIconSlotProps\nexport const IconSlot = BaseInput.IconSlot\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\nimport { IconSlot } from './partials/icon-slot'\n\nexport type InputProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const Input = React.forwardRef<ElementRef<'input'>, InputProps>(\n ({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n </BaseInput>\n )\n }\n) as ForwardRefExoticComponent<InputProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n IconSlot: typeof IconSlot\n}\n\nInput.ActionButton = ActionButton\nInput.IconSlot = IconSlot\n","import React, { useState, useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport {\n IconEyeOpen,\n IconEyeClosed,\n IconLockClosed,\n} from '@mirohq/design-system-icons'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { BaseInputSharedProps } from '@mirohq/design-system-base-input'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport type { Value } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\n\nexport interface InputPasswordProps extends Omit<BaseInputSharedProps, 'type'> {\n /**\n * A boolean for the default password state (visible or masked).\n */\n defaultReveal?: boolean\n\n /**\n * Indicates whether the password should be revealed (visible) or hidden (masked).\n */\n reveal?: boolean\n\n /**\n * Callback function to be called when the password is revealed.\n */\n onReveal?: (value: Value) => void\n\n /**\n * Callback function to be called when the password is hidden (masked).\n */\n onHide?: (value: Value) => void\n\n /**\n * Tooltip label text for the action to reveal the password.\n */\n revealLabel: string\n\n /**\n * Tooltip label text for the action to hide (mask) the password.\n */\n hideLabel: string\n}\n\nexport const InputPassword = React.forwardRef<\n ElementRef<'input'>,\n InputPasswordProps\n>(\n (\n {\n reveal,\n defaultReveal,\n onReveal,\n onHide,\n hideLabel,\n revealLabel,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [revealState, setRevealState] = useState(defaultReveal ?? false)\n const revealInternal = reveal ?? revealState\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n restProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input\n {...inputProps}\n type={revealInternal ? 'text' : 'password'}\n ref={mergeRefs([inputRef, forwardRef])}\n />\n {children}\n <BaseInput.IconSlot>\n <IconLockClosed />\n </BaseInput.IconSlot>\n <BaseInput.ActionButton\n label={revealInternal ? hideLabel : revealLabel}\n disabled={false}\n onPress={() => {\n const valueInternal = inputProps.value ?? inputRef.current?.value\n\n if (revealInternal) {\n onHide?.(valueInternal)\n } else {\n onReveal?.(valueInternal)\n }\n\n if (reveal === undefined) {\n setRevealState(reveal => !reveal)\n }\n }}\n >\n {revealInternal ? <IconEyeOpen /> : <IconEyeClosed />}\n </BaseInput.ActionButton>\n </BaseInput>\n )\n }\n)\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconEnvelope } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputEmailProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputEmail = React.forwardRef<\n ElementRef<'input'>,\n InputEmailProps\n>(({ children, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n ...elementProps\n } = restProps as ClearProps\n\n const { baseInputProps, inputProps } = useBaseInputProps(\n elementProps,\n forwardRef\n )\n\n return (\n <BaseInput {...baseInputProps}>\n <BaseInput.Input type='email' {...inputProps} />\n {children}\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n <BaseInput.IconSlot>\n <IconEnvelope />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputEmailProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputEmail.ActionButton = ActionButton\n","import React from 'react'\nimport type {\n ElementRef,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react'\nimport { IconMagnifyingGlass } from '@mirohq/design-system-icons'\nimport { BaseInput } from '@mirohq/design-system-base-input'\n\nimport { ClearAction } from './clear-action'\nimport type { ClearableInputProps, ClearProps } from './types'\nimport { useBaseInputProps } from './hooks/use-base-input-props'\nimport { ActionButton } from './partials/action-button'\n\nexport type InputSearchProps = ClearableInputProps &\n RefAttributes<ElementRef<'input'>>\n\nexport const InputSearch = React.forwardRef<\n ElementRef<'input'>,\n InputSearchProps\n>(({ children, onChange, ...restProps }, forwardRef) => {\n const {\n clearable = false,\n onClearPress,\n clearLabel,\n value,\n ...elementProps\n } = restProps as ClearProps\n const { baseInputProps, inputProps } = useBaseInputProps(\n { ...elementProps, onChange, value },\n forwardRef\n )\n\n const hasQuery = inputProps.value !== ''\n\n return (\n <BaseInput {...baseInputProps} variant='subtle'>\n <BaseInput.Input {...inputProps} ref={forwardRef} />\n {children}\n {hasQuery && (\n <ClearAction\n clearable={clearable}\n clearLabel={clearLabel}\n onClearPress={onClearPress}\n value={inputProps.value}\n />\n )}\n <BaseInput.IconSlot>\n <IconMagnifyingGlass />\n </BaseInput.IconSlot>\n </BaseInput>\n )\n}) as ForwardRefExoticComponent<InputSearchProps> & Partials\n\nexport interface Partials {\n ActionButton: typeof ActionButton\n}\n\nInputSearch.ActionButton = ActionButton\n"],"names":["value","reveal"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import * as react from 'react';
2
- import react__default, { HTMLProps, RefAttributes, ElementRef, ForwardRefExoticComponent } from 'react';
2
+ import react__default, { HTMLProps, ForwardRefExoticComponent, RefAttributes, ElementRef } from 'react';
3
3
  import { PressEvent } from '@mirohq/design-system-use-press';
4
4
  import { BaseInputSharedProps, BaseInputActionButtonProps, BaseInputIconSlotProps } from '@mirohq/design-system-base-input';
5
- import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
6
5
  import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
7
6
  import * as _mirohq_design_system_components_internal_base_button from '@mirohq/design-system-components/internal/base-button';
8
7
  import * as _mirohq_design_system_components_primitive from '@mirohq/design-system-components/primitive';
@@ -30,8 +29,28 @@ type ClearableInputProps = BaseInputSharedProps & ({
30
29
  clearable?: never;
31
30
  } | ClearProps);
32
31
 
32
+ /* Utilities */
33
+ /* ========================================================================== */
34
+
35
+ /** Returns a string with the given prefix followed by the given values. */
36
+ type Prefixed<K extends string, T> = `${K}${Extract<T, boolean | number | string>}`
37
+
38
+ type TransformProps<Props, Media> = {
39
+ [K in keyof Props]: (
40
+ | Props[K]
41
+ | (
42
+ & {
43
+ [KMedia in Prefixed<'@', 'initial' | keyof Media>]?: Props[K]
44
+ }
45
+ & {
46
+ [KMedia in string]: Props[K]
47
+ }
48
+ )
49
+ )
50
+ }
51
+
33
52
  type ActionButtonProps = BaseInputActionButtonProps;
34
- declare const ActionButton: react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_components_internal_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "readOnlyAppearance" | "disableAppearance"> & _stitches_react_types_styled_component.TransformProps<{
53
+ declare const ActionButton: react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_components_internal_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "readOnlyAppearance" | "disableAppearance"> & TransformProps<{
35
54
  readOnlyAppearance?: boolean | "true" | undefined;
36
55
  disableAppearance?: boolean | "true" | undefined;
37
56
  }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>, "ref"> & {
@@ -39,7 +58,7 @@ declare const ActionButton: react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit
39
58
  } & {
40
59
  label: string;
41
60
  'aria-label'?: string;
42
- }, "ref"> | Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_components_internal_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "readOnlyAppearance" | "disableAppearance"> & _stitches_react_types_styled_component.TransformProps<{
61
+ }, "ref"> | Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<Omit<_mirohq_design_system_components_internal_base_button.BaseButtonProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>>, "readOnlyAppearance" | "disableAppearance"> & TransformProps<{
43
62
  readOnlyAppearance?: boolean | "true" | undefined;
44
63
  disableAppearance?: boolean | "true" | undefined;
45
64
  }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>, "ref"> & {
@@ -50,7 +69,7 @@ declare const ActionButton: react.ForwardRefExoticComponent<(Omit<Omit<Omit<Omit
50
69
  }, "ref">) & react.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
51
70
 
52
71
  type IconSlotProps = BaseInputIconSlotProps;
53
- declare const IconSlot: react.ForwardRefExoticComponent<Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_components_primitive.PrimitiveProps<"div">>>, "disabled" | "variant"> & _stitches_react_types_styled_component.TransformProps<{
72
+ declare const IconSlot: react.ForwardRefExoticComponent<Omit<Omit<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_components_primitive.PrimitiveProps<"div">>>, "disabled" | "variant"> & TransformProps<{
54
73
  variant?: "outline" | "subtle" | undefined;
55
74
  disabled?: boolean | "true" | undefined;
56
75
  }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>, "ref"> & {
@@ -104,4 +123,5 @@ interface Partials {
104
123
  ActionButton: typeof ActionButton;
105
124
  }
106
125
 
107
- export { Input, ActionButtonProps as InputActionButtonProps, InputEmail, InputEmailProps, IconSlotProps as InputIconSlotProps, InputPassword, InputPasswordProps, InputProps, InputSearch, InputSearchProps };
126
+ export { Input, InputEmail, InputPassword, InputSearch };
127
+ export type { ActionButtonProps as InputActionButtonProps, InputEmailProps, IconSlotProps as InputIconSlotProps, InputPasswordProps, InputProps, InputSearchProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-input",
3
- "version": "1.3.5-fix-button-types.2",
3
+ "version": "1.4.0-fix-stitches-types.0",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -26,9 +26,9 @@
26
26
  "react": "^16.14 || ^17 || ^18 || ^19"
27
27
  },
28
28
  "dependencies": {
29
- "@mirohq/design-system-base-form": "^1.1.3",
30
- "@mirohq/design-system-base-input": "^1.2.3-fix-button-types.2",
31
- "@mirohq/design-system-icons": "^1.27.0",
29
+ "@mirohq/design-system-base-form": "^1.2.0-fix-stitches-types.0",
30
+ "@mirohq/design-system-base-input": "^1.3.0-fix-stitches-types.0",
31
+ "@mirohq/design-system-icons": "^1.28.0-fix-stitches-types.0",
32
32
  "@mirohq/design-system-use-press": "^1.1.1",
33
33
  "@mirohq/design-system-utils": "^1.2.1"
34
34
  },