@hitachivantara/uikit-react-core 5.82.4 → 5.83.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.
Files changed (161) hide show
  1. package/dist/cjs/BaseInput/BaseInput.cjs +4 -7
  2. package/dist/cjs/ButtonBase/ButtonBase.styles.cjs +6 -5
  3. package/dist/cjs/Calendar/Calendar.cjs +2 -2
  4. package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs +12 -28
  5. package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.cjs +2 -1
  6. package/dist/cjs/Calendar/utils.cjs +53 -21
  7. package/dist/cjs/ColorPicker/ColorPicker.cjs +11 -9
  8. package/dist/cjs/ColorPicker/ColorPicker.styles.cjs +14 -7
  9. package/dist/cjs/ColorPicker/Fields/Fields.cjs +6 -3
  10. package/dist/cjs/DatePicker/DatePicker.cjs +1 -2
  11. package/dist/cjs/DatePicker/utils.cjs +2 -2
  12. package/dist/cjs/Input/Input.cjs +9 -8
  13. package/dist/cjs/Select/Option.cjs +1 -2
  14. package/dist/cjs/Select/Select.cjs +6 -1
  15. package/dist/cjs/Table/TableRow/TableRow.styles.cjs +20 -5
  16. package/dist/cjs/Table/hooks/{useBulkActions.cjs → useHvBulkActions.cjs} +6 -7
  17. package/dist/cjs/Table/hooks/{useFilters.cjs → useHvFilters.cjs} +2 -2
  18. package/dist/cjs/Table/hooks/{useGlobalFilter.cjs → useHvGlobalFilter.cjs} +2 -2
  19. package/dist/cjs/Table/hooks/{useHeaderGroups.cjs → useHvHeaderGroups.cjs} +4 -4
  20. package/dist/cjs/Table/hooks/{usePagination.cjs → useHvPagination.cjs} +4 -4
  21. package/dist/cjs/Table/hooks/{useResizeColumns.cjs → useHvResizeColumns.cjs} +4 -4
  22. package/dist/cjs/Table/hooks/{useRowExpand.cjs → useHvRowExpand.cjs} +6 -5
  23. package/dist/cjs/Table/hooks/{useRowSelection.cjs → useHvRowSelection.cjs} +4 -8
  24. package/dist/cjs/Table/hooks/{useRowState.cjs → useHvRowState.cjs} +2 -2
  25. package/dist/cjs/Table/hooks/{useSortBy.cjs → useHvSortBy.cjs} +4 -4
  26. package/dist/cjs/Table/hooks/{useSticky.cjs → useHvSticky.cjs} +4 -6
  27. package/dist/cjs/Table/hooks/{useTable.cjs → useHvTable.cjs} +6 -4
  28. package/dist/cjs/Table/hooks/{useTableStyles.cjs → useHvTableStyles.cjs} +4 -5
  29. package/dist/cjs/Table/renderers/{DateColumnCell/DateColumnCell.cjs → DateColumnCell.cjs} +1 -1
  30. package/dist/cjs/Table/renderers/DefaultCell.cjs +21 -0
  31. package/dist/cjs/Table/renderers/{DropdownColumnCell/DropdownColumnCell.cjs → DropdownColumnCell.cjs} +1 -1
  32. package/dist/cjs/Table/renderers/{ProgressColumnCell/ProgressColumnCell.cjs → ProgressColumnCell.cjs} +20 -2
  33. package/dist/cjs/Table/renderers/{SwitchColumnCell/SwitchColumnCell.cjs → SwitchColumnCell.cjs} +13 -4
  34. package/dist/cjs/Table/renderers/renderers.cjs +21 -8
  35. package/dist/cjs/Tag/Tag.cjs +67 -49
  36. package/dist/cjs/Tag/Tag.styles.cjs +50 -64
  37. package/dist/cjs/TagsInput/TagsInput.cjs +1 -4
  38. package/dist/cjs/TagsInput/TagsInput.styles.cjs +1 -4
  39. package/dist/cjs/TextArea/TextArea.cjs +4 -4
  40. package/dist/cjs/TimeAgo/TimeAgo.cjs +2 -1
  41. package/dist/cjs/TimePicker/TimePicker.cjs +2 -1
  42. package/dist/cjs/index.cjs +40 -50
  43. package/dist/cjs/utils/keyboardUtils.cjs +4 -0
  44. package/dist/esm/BaseInput/BaseInput.js +3 -6
  45. package/dist/esm/BaseInput/BaseInput.js.map +1 -1
  46. package/dist/esm/ButtonBase/ButtonBase.styles.js +6 -5
  47. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  48. package/dist/esm/Calendar/Calendar.js +3 -3
  49. package/dist/esm/Calendar/Calendar.js.map +1 -1
  50. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js +13 -24
  51. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  52. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js +3 -2
  53. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  54. package/dist/esm/Calendar/utils.js +54 -20
  55. package/dist/esm/Calendar/utils.js.map +1 -1
  56. package/dist/esm/ColorPicker/ColorPicker.js +12 -10
  57. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  58. package/dist/esm/ColorPicker/ColorPicker.styles.js +14 -7
  59. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  60. package/dist/esm/ColorPicker/Fields/Fields.js +6 -3
  61. package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
  62. package/dist/esm/Controls/Controls.js.map +1 -1
  63. package/dist/esm/DatePicker/DatePicker.js +2 -3
  64. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  65. package/dist/esm/DatePicker/utils.js +2 -2
  66. package/dist/esm/DatePicker/utils.js.map +1 -1
  67. package/dist/esm/Input/Input.js +10 -9
  68. package/dist/esm/Input/Input.js.map +1 -1
  69. package/dist/esm/Select/Option.js +1 -2
  70. package/dist/esm/Select/Option.js.map +1 -1
  71. package/dist/esm/Select/Select.js +6 -1
  72. package/dist/esm/Select/Select.js.map +1 -1
  73. package/dist/esm/Table/TableRow/TableRow.styles.js +16 -1
  74. package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
  75. package/dist/esm/Table/hooks/{useBulkActions.js → useHvBulkActions.js} +5 -6
  76. package/dist/esm/Table/hooks/useHvBulkActions.js.map +1 -0
  77. package/dist/esm/Table/hooks/{useFilters.js → useHvFilters.js} +1 -1
  78. package/dist/esm/Table/hooks/useHvFilters.js.map +1 -0
  79. package/dist/esm/Table/hooks/{useGlobalFilter.js → useHvGlobalFilter.js} +1 -1
  80. package/dist/esm/Table/hooks/useHvGlobalFilter.js.map +1 -0
  81. package/dist/esm/Table/hooks/{useHeaderGroups.js → useHvHeaderGroups.js} +3 -3
  82. package/dist/esm/Table/hooks/useHvHeaderGroups.js.map +1 -0
  83. package/dist/esm/Table/hooks/{usePagination.js → useHvPagination.js} +4 -4
  84. package/dist/esm/Table/hooks/useHvPagination.js.map +1 -0
  85. package/dist/esm/Table/hooks/{useResizeColumns.js → useHvResizeColumns.js} +3 -3
  86. package/dist/esm/Table/hooks/useHvResizeColumns.js.map +1 -0
  87. package/dist/esm/Table/hooks/{useRowExpand.js → useHvRowExpand.js} +5 -4
  88. package/dist/esm/Table/hooks/useHvRowExpand.js.map +1 -0
  89. package/dist/esm/Table/hooks/{useRowSelection.js → useHvRowSelection.js} +3 -7
  90. package/dist/esm/Table/hooks/useHvRowSelection.js.map +1 -0
  91. package/dist/esm/Table/hooks/{useRowState.js → useHvRowState.js} +1 -1
  92. package/dist/esm/Table/hooks/useHvRowState.js.map +1 -0
  93. package/dist/esm/Table/hooks/{useSortBy.js → useHvSortBy.js} +3 -3
  94. package/dist/esm/Table/hooks/useHvSortBy.js.map +1 -0
  95. package/dist/esm/Table/hooks/{useSticky.js → useHvSticky.js} +3 -5
  96. package/dist/esm/Table/hooks/useHvSticky.js.map +1 -0
  97. package/dist/esm/Table/hooks/{useTable.js → useHvTable.js} +5 -3
  98. package/dist/esm/Table/hooks/useHvTable.js.map +1 -0
  99. package/dist/esm/Table/hooks/{useTableStyles.js → useHvTableStyles.js} +3 -4
  100. package/dist/esm/Table/hooks/useHvTableStyles.js.map +1 -0
  101. package/dist/esm/Table/renderers/{DateColumnCell/DateColumnCell.js → DateColumnCell.js} +1 -1
  102. package/dist/esm/Table/renderers/DateColumnCell.js.map +1 -0
  103. package/dist/esm/Table/renderers/DefaultCell.js +21 -0
  104. package/dist/esm/Table/renderers/DefaultCell.js.map +1 -0
  105. package/dist/esm/Table/renderers/{DropdownColumnCell/DropdownColumnCell.js → DropdownColumnCell.js} +1 -1
  106. package/dist/esm/Table/renderers/DropdownColumnCell.js.map +1 -0
  107. package/dist/esm/Table/renderers/{ProgressColumnCell/ProgressColumnCell.js → ProgressColumnCell.js} +19 -1
  108. package/dist/esm/Table/renderers/ProgressColumnCell.js.map +1 -0
  109. package/dist/esm/Table/renderers/{SwitchColumnCell/SwitchColumnCell.js → SwitchColumnCell.js} +12 -3
  110. package/dist/esm/Table/renderers/SwitchColumnCell.js.map +1 -0
  111. package/dist/esm/Table/renderers/renderers.js +18 -5
  112. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  113. package/dist/esm/Tag/Tag.js +71 -51
  114. package/dist/esm/Tag/Tag.js.map +1 -1
  115. package/dist/esm/Tag/Tag.styles.js +50 -64
  116. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  117. package/dist/esm/TagsInput/TagsInput.js +1 -4
  118. package/dist/esm/TagsInput/TagsInput.js.map +1 -1
  119. package/dist/esm/TagsInput/TagsInput.styles.js +1 -4
  120. package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
  121. package/dist/esm/TextArea/TextArea.js +4 -4
  122. package/dist/esm/TextArea/TextArea.js.map +1 -1
  123. package/dist/esm/TimeAgo/TimeAgo.js +2 -1
  124. package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
  125. package/dist/esm/TimePicker/TimePicker.js +2 -1
  126. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  127. package/dist/esm/index.js +34 -44
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/utils/keyboardUtils.js +4 -0
  130. package/dist/esm/utils/keyboardUtils.js.map +1 -1
  131. package/dist/types/index.d.ts +367 -395
  132. package/package.json +6 -6
  133. package/dist/cjs/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.cjs +0 -26
  134. package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.cjs +0 -21
  135. package/dist/cjs/Table/utils/fallbacks.cjs +0 -16
  136. package/dist/cjs/Table/utils/utils.cjs +0 -19
  137. package/dist/esm/Table/hooks/useBulkActions.js.map +0 -1
  138. package/dist/esm/Table/hooks/useFilters.js.map +0 -1
  139. package/dist/esm/Table/hooks/useGlobalFilter.js.map +0 -1
  140. package/dist/esm/Table/hooks/useHeaderGroups.js.map +0 -1
  141. package/dist/esm/Table/hooks/usePagination.js.map +0 -1
  142. package/dist/esm/Table/hooks/useResizeColumns.js.map +0 -1
  143. package/dist/esm/Table/hooks/useRowExpand.js.map +0 -1
  144. package/dist/esm/Table/hooks/useRowSelection.js.map +0 -1
  145. package/dist/esm/Table/hooks/useRowState.js.map +0 -1
  146. package/dist/esm/Table/hooks/useSortBy.js.map +0 -1
  147. package/dist/esm/Table/hooks/useSticky.js.map +0 -1
  148. package/dist/esm/Table/hooks/useTable.js.map +0 -1
  149. package/dist/esm/Table/hooks/useTableStyles.js.map +0 -1
  150. package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +0 -1
  151. package/dist/esm/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +0 -1
  152. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +0 -1
  153. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js +0 -26
  154. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +0 -1
  155. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +0 -1
  156. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js +0 -21
  157. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +0 -1
  158. package/dist/esm/Table/utils/fallbacks.js +0 -16
  159. package/dist/esm/Table/utils/fallbacks.js.map +0 -1
  160. package/dist/esm/Table/utils/utils.js +0 -19
  161. package/dist/esm/Table/utils/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sources":["../../../src/TimePicker/TimePicker.tsx"],"sourcesContent":["import { forwardRef, useMemo, useRef, useState } from \"react\";\nimport { Time } from \"@internationalized/date\";\nimport { useForkRef } from \"@mui/material/utils\";\nimport { useTimeField } from \"@react-aria/datepicker\";\nimport {\n useTimeFieldState,\n type TimeFieldStateOptions,\n} from \"@react-stately/datepicker\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseDropdown, HvBaseDropdownProps } from \"../BaseDropdown\";\nimport {\n HvFormElement,\n HvFormElementProps,\n HvFormStatus,\n HvInfoMessage,\n HvLabel,\n HvWarningText,\n} from \"../FormElement\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\nimport { Placeholder, PlaceholderProps } from \"./Placeholder\";\nimport { staticClasses, useClasses } from \"./TimePicker.styles\";\nimport { Unit } from \"./Unit\";\n\nconst toTime = (value?: HvTimePickerValue | null) => {\n if (!value) return value;\n const { hours, minutes, seconds } = value;\n return new Time(hours, minutes, seconds);\n};\n\nexport { staticClasses as timePickerClasses };\n\nexport type TimeFormat = \"12\" | \"24\";\n\nexport type HvTimePickerClasses = ExtractNames<typeof useClasses>;\n\nexport type HvTimePickerClassKey =\n | \"root\"\n | \"input\"\n | \"label\"\n | \"placeholder\"\n | \"timePopperContainer\"\n | \"separator\"\n | \"periodContainer\"\n | \"formElementRoot\"\n | \"dropdownPlaceholder\"\n | \"iconBaseRoot\"\n | \"error\"\n | \"labelContainer\"\n | \"description\"\n | \"dropdownHeaderInvalid\"\n | \"dropdownPlaceholderDisabled\"\n | \"dropdownHeaderOpen\";\n\nexport type HvTimePickerValue = {\n hours: number;\n minutes: number;\n seconds: number;\n};\n\nexport interface HvTimePickerProps\n extends Omit<\n HvFormElementProps,\n \"classes\" | \"value\" | \"defaultValue\" | \"onChange\"\n > {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTimePickerClasses;\n /** Current value of the element when _controlled_. Follows the 24-hour format. */\n value?: HvTimePickerValue | null;\n /** Initial value of the element when _uncontrolled_. Follows the 24-hour format. */\n defaultValue?: HvTimePickerValue | null;\n /** The placeholder value when no time is selected. */\n placeholder?: string;\n /** The placeholder of the hours input. */\n hoursPlaceholder?: string;\n /** The placeholder of the minutes input. */\n minutesPlaceholder?: string;\n /** The placeholder of the seconds input. */\n secondsPlaceholder?: string;\n /**\n * Whether the time picker should show the AM/PM 12-hour clock or the 24-hour one.\n * If undefined, the component will use a format according to the passed locale.\n */\n timeFormat?: TimeFormat;\n /** Whether to visually show the seconds control */\n showSeconds?: boolean;\n /** Locale that will provide the time format(12 or 24 hour format). It is \"overwritten\" by `showAmPm` */\n locale?: string;\n /** Whether the dropdown is expandable. */\n disableExpand?: boolean;\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a `{hours, minutes, seconds}` object, always in the 24h format\n */\n onChange?: (value: HvTimePickerValue) => void;\n /** Callback called when dropdown changes the expanded state. */\n onToggle?: (event: Event, isOpen: boolean) => void;\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Sets if the calendar container should follow the date picker input out of the screen or stay visible. */\n escapeWithReference?: boolean;\n /** Extra properties to be passed to the TimePicker's dropdown. */\n dropdownProps?: Partial<HvBaseDropdownProps>;\n}\n\n/**\n * A Time Picker allows the user to choose a specific time or a time range.\n */\nexport const HvTimePicker = forwardRef<HTMLDivElement, HvTimePickerProps>(\n function HvTimePicker(props, ref) {\n const {\n classes: classesProp,\n className,\n\n id: idProp,\n name,\n required,\n disabled,\n readOnly,\n label,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat,\n showSeconds,\n disableExpand,\n locale = \"en\",\n\n onToggle,\n onChange,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps = {},\n ...others\n } = useDefaultProps(\"HvTimePicker\", props);\n\n const id = useUniqueId(idProp);\n\n const { classes, cx } = useClasses(classesProp);\n\n const timeFieldRef = useRef<HTMLDivElement>(null);\n\n const { ref: refProp, ...otherDropdownProps } = dropdownProps;\n const dropdownForkedRef = useForkRef(ref, refProp);\n\n const stateProps: TimeFieldStateOptions = {\n value: toTime(valueProp),\n defaultValue: toTime(defaultValueProp),\n label,\n locale,\n isRequired: required,\n isReadOnly: readOnly,\n isDisabled: disabled,\n granularity: showSeconds === false ? \"minute\" : \"second\",\n hourCycle: timeFormat === \"12\" ? 12 : 24,\n onChange: (value) => {\n const { hour: hours, minute: minutes, second: seconds } = value;\n onChange?.({ hours, minutes, seconds });\n },\n };\n const state = useTimeFieldState(stateProps);\n const { labelProps, fieldProps, descriptionProps } = useTimeField(\n {\n ...stateProps,\n id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n },\n state,\n timeFieldRef,\n );\n\n const [open, setOpen] = useState(false);\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState] = useControlled<HvFormStatus>(status, \"standBy\");\n\n const placeholders: PlaceholderProps[\"placeholders\"] = useMemo(\n () => ({\n hour: hoursPlaceholder,\n minute: minutesPlaceholder,\n second: secondsPlaceholder,\n }),\n [hoursPlaceholder, minutesPlaceholder, secondsPlaceholder],\n );\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n const errorMessageId = isStateInvalid\n ? canShowError\n ? setId(id, \"error\")\n : ariaErrorMessage\n : undefined;\n\n return (\n <HvFormElement\n name={name}\n required={required}\n disabled={disabled}\n status={validationState}\n className={cx(classes.root, className)}\n {...others}\n >\n {(label || description) && (\n <div className={classes.labelContainer}>\n {label && (\n <HvLabel\n label={label}\n className={classes.label}\n {...labelProps}\n />\n )}\n {description && (\n <HvInfoMessage\n className={classes.description}\n {...descriptionProps}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n <HvBaseDropdown\n ref={dropdownForkedRef}\n role=\"combobox\"\n variableWidth\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n placeholder && !state.value ? (\n placeholder\n ) : (\n <Placeholder\n ref={timeFieldRef}\n name={name}\n state={state}\n placeholders={placeholders}\n className={cx(classes.placeholder, {\n [classes.placeholderDisabled]: disabled,\n })}\n {...fieldProps}\n />\n )\n }\n classes={{\n header: cx(classes.dropdownHeader, {\n [classes.dropdownHeaderInvalid]: isStateInvalid,\n }),\n panel: classes.dropdownPanel,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n placement=\"right\"\n adornment={\n <TimeIcon\n color={disabled ? \"secondary_60\" : undefined}\n className={classes.icon}\n />\n }\n expanded={open}\n onToggle={(evt, newOpen) => {\n if (disableExpand) return;\n setOpen(newOpen);\n onToggle?.(evt, newOpen);\n }}\n onContainerCreation={(containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={fieldProps[\"aria-labelledby\"]}\n aria-describedby={fieldProps[\"aria-describedby\"]}\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n disablePortal={disablePortal}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n {...otherDropdownProps}\n >\n <div ref={timeFieldRef} className={classes.timePopperContainer}>\n {state.segments.map((segment, i) => (\n <Unit\n key={i}\n state={state}\n segment={segment}\n placeholder={placeholders[segment.type]}\n onAdd={() => state.increment(segment.type)}\n onSub={() => state.decrement(segment.type)}\n onChange={(evt, val) => {\n state.setSegment(segment.type, Number(val));\n }}\n />\n ))}\n </div>\n </HvBaseDropdown>\n\n {canShowError && (\n <HvWarningText\n id={setId(id, \"error\")}\n disableBorder\n className={classes.error}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n },\n);\n"],"names":["Time","HvTimePicker","TimeIcon"],"mappings":"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"}
1
+ {"version":3,"file":"TimePicker.js","sources":["../../../src/TimePicker/TimePicker.tsx"],"sourcesContent":["import { forwardRef, useMemo, useRef, useState } from \"react\";\nimport { Time } from \"@internationalized/date\";\nimport { useForkRef } from \"@mui/material/utils\";\nimport { useTimeField } from \"@react-aria/datepicker\";\nimport {\n useTimeFieldState,\n type TimeFieldStateOptions,\n} from \"@react-stately/datepicker\";\nimport { Time as TimeIcon } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseDropdown, HvBaseDropdownProps } from \"../BaseDropdown\";\nimport { DEFAULT_LOCALE } from \"../Calendar/utils\";\nimport {\n HvFormElement,\n HvFormElementProps,\n HvFormStatus,\n HvInfoMessage,\n HvLabel,\n HvWarningText,\n} from \"../FormElement\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\nimport { Placeholder, PlaceholderProps } from \"./Placeholder\";\nimport { staticClasses, useClasses } from \"./TimePicker.styles\";\nimport { Unit } from \"./Unit\";\n\nconst toTime = (value?: HvTimePickerValue | null) => {\n if (!value) return value;\n const { hours, minutes, seconds } = value;\n return new Time(hours, minutes, seconds);\n};\n\nexport { staticClasses as timePickerClasses };\n\nexport type TimeFormat = \"12\" | \"24\";\n\nexport type HvTimePickerClasses = ExtractNames<typeof useClasses>;\n\nexport type HvTimePickerClassKey =\n | \"root\"\n | \"input\"\n | \"label\"\n | \"placeholder\"\n | \"timePopperContainer\"\n | \"separator\"\n | \"periodContainer\"\n | \"formElementRoot\"\n | \"dropdownPlaceholder\"\n | \"iconBaseRoot\"\n | \"error\"\n | \"labelContainer\"\n | \"description\"\n | \"dropdownHeaderInvalid\"\n | \"dropdownPlaceholderDisabled\"\n | \"dropdownHeaderOpen\";\n\nexport type HvTimePickerValue = {\n hours: number;\n minutes: number;\n seconds: number;\n};\n\nexport interface HvTimePickerProps\n extends Omit<\n HvFormElementProps,\n \"classes\" | \"value\" | \"defaultValue\" | \"onChange\"\n > {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvTimePickerClasses;\n /** Current value of the element when _controlled_. Follows the 24-hour format. */\n value?: HvTimePickerValue | null;\n /** Initial value of the element when _uncontrolled_. Follows the 24-hour format. */\n defaultValue?: HvTimePickerValue | null;\n /** The placeholder value when no time is selected. */\n placeholder?: string;\n /** The placeholder of the hours input. */\n hoursPlaceholder?: string;\n /** The placeholder of the minutes input. */\n minutesPlaceholder?: string;\n /** The placeholder of the seconds input. */\n secondsPlaceholder?: string;\n /**\n * Whether the time picker should show the AM/PM 12-hour clock or the 24-hour one.\n * If undefined, the component will use a format according to the passed locale.\n */\n timeFormat?: TimeFormat;\n /** Whether to visually show the seconds control */\n showSeconds?: boolean;\n /** Locale that will provide the time format(12 or 24 hour format). It is \"overwritten\" by `showAmPm` */\n locale?: string;\n /** Whether the dropdown is expandable. */\n disableExpand?: boolean;\n /**\n * Callback function to be triggered when the input value is changed.\n * It is invoked with a `{hours, minutes, seconds}` object, always in the 24h format\n */\n onChange?: (value: HvTimePickerValue) => void;\n /** Callback called when dropdown changes the expanded state. */\n onToggle?: (event: Event, isOpen: boolean) => void;\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Sets if the calendar container should follow the date picker input out of the screen or stay visible. */\n escapeWithReference?: boolean;\n /** Extra properties to be passed to the TimePicker's dropdown. */\n dropdownProps?: Partial<HvBaseDropdownProps>;\n}\n\n/**\n * A Time Picker allows the user to choose a specific time or a time range.\n */\nexport const HvTimePicker = forwardRef<HTMLDivElement, HvTimePickerProps>(\n function HvTimePicker(props, ref) {\n const {\n classes: classesProp,\n className,\n\n id: idProp,\n name,\n required,\n disabled,\n readOnly,\n label,\n\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n\n placeholder,\n hoursPlaceholder = \"hh\",\n minutesPlaceholder = \"mm\",\n secondsPlaceholder = \"ss\",\n\n value: valueProp,\n defaultValue: defaultValueProp,\n\n timeFormat,\n showSeconds,\n disableExpand,\n locale = DEFAULT_LOCALE,\n\n onToggle,\n onChange,\n\n // misc properties:\n disablePortal = true,\n escapeWithReference = true,\n dropdownProps = {},\n ...others\n } = useDefaultProps(\"HvTimePicker\", props);\n\n const id = useUniqueId(idProp);\n\n const { classes, cx } = useClasses(classesProp);\n\n const timeFieldRef = useRef<HTMLDivElement>(null);\n\n const { ref: refProp, ...otherDropdownProps } = dropdownProps;\n const dropdownForkedRef = useForkRef(ref, refProp);\n\n const stateProps: TimeFieldStateOptions = {\n value: toTime(valueProp),\n defaultValue: toTime(defaultValueProp),\n label,\n locale,\n isRequired: required,\n isReadOnly: readOnly,\n isDisabled: disabled,\n granularity: showSeconds === false ? \"minute\" : \"second\",\n hourCycle: timeFormat === \"12\" ? 12 : 24,\n onChange: (value) => {\n const { hour: hours, minute: minutes, second: seconds } = value;\n onChange?.({ hours, minutes, seconds });\n },\n };\n const state = useTimeFieldState(stateProps);\n const { labelProps, fieldProps, descriptionProps } = useTimeField(\n {\n ...stateProps,\n id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n },\n state,\n timeFieldRef,\n );\n\n const [open, setOpen] = useState(false);\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n const [validationState] = useControlled<HvFormStatus>(status, \"standBy\");\n\n const placeholders: PlaceholderProps[\"placeholders\"] = useMemo(\n () => ({\n hour: hoursPlaceholder,\n minute: minutesPlaceholder,\n second: secondsPlaceholder,\n }),\n [hoursPlaceholder, minutesPlaceholder, secondsPlaceholder],\n );\n\n // the error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const isStateInvalid = validationState === \"invalid\";\n const errorMessageId = isStateInvalid\n ? canShowError\n ? setId(id, \"error\")\n : ariaErrorMessage\n : undefined;\n\n return (\n <HvFormElement\n name={name}\n required={required}\n disabled={disabled}\n status={validationState}\n className={cx(classes.root, className)}\n {...others}\n >\n {(label || description) && (\n <div className={classes.labelContainer}>\n {label && (\n <HvLabel\n label={label}\n className={classes.label}\n {...labelProps}\n />\n )}\n {description && (\n <HvInfoMessage\n className={classes.description}\n {...descriptionProps}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n\n <HvBaseDropdown\n ref={dropdownForkedRef}\n role=\"combobox\"\n variableWidth\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n placeholder && !state.value ? (\n placeholder\n ) : (\n <Placeholder\n ref={timeFieldRef}\n name={name}\n state={state}\n placeholders={placeholders}\n className={cx(classes.placeholder, {\n [classes.placeholderDisabled]: disabled,\n })}\n {...fieldProps}\n />\n )\n }\n classes={{\n header: cx(classes.dropdownHeader, {\n [classes.dropdownHeaderInvalid]: isStateInvalid,\n }),\n panel: classes.dropdownPanel,\n headerOpen: classes.dropdownHeaderOpen,\n }}\n placement=\"right\"\n adornment={\n <TimeIcon\n color={disabled ? \"secondary_60\" : undefined}\n className={classes.icon}\n />\n }\n expanded={open}\n onToggle={(evt, newOpen) => {\n if (disableExpand) return;\n setOpen(newOpen);\n onToggle?.(evt, newOpen);\n }}\n onContainerCreation={(containerRef) => {\n containerRef?.getElementsByTagName(\"input\")[0]?.focus();\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={fieldProps[\"aria-labelledby\"]}\n aria-describedby={fieldProps[\"aria-describedby\"]}\n aria-invalid={isStateInvalid ? true : undefined}\n aria-errormessage={errorMessageId}\n disablePortal={disablePortal}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n {...otherDropdownProps}\n >\n <div ref={timeFieldRef} className={classes.timePopperContainer}>\n {state.segments.map((segment, i) => (\n <Unit\n key={i}\n state={state}\n segment={segment}\n placeholder={placeholders[segment.type]}\n onAdd={() => state.increment(segment.type)}\n onSub={() => state.decrement(segment.type)}\n onChange={(evt, val) => {\n state.setSegment(segment.type, Number(val));\n }}\n />\n ))}\n </div>\n </HvBaseDropdown>\n\n {canShowError && (\n <HvWarningText\n id={setId(id, \"error\")}\n disableBorder\n className={classes.error}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFormElement>\n );\n },\n);\n"],"names":["Time","HvTimePicker","TimeIcon"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -22,7 +22,7 @@ import { outlineStyles } from "./utils/focusUtils.js";
22
22
  import { getComponentName } from "./utils/getComponentName.js";
23
23
  import { hexToRgbA } from "./utils/hexToRgbA.js";
24
24
  import { iconVariant } from "./utils/iconVariant.js";
25
- import { isKey, isOneOfKeys } from "./utils/keyboardUtils.js";
25
+ import { isDeleteKey, isKey, isOneOfKeys } from "./utils/keyboardUtils.js";
26
26
  import { multiSelectionEventHandler } from "./utils/multiSelectionEventHandler.js";
27
27
  import { Random } from "./utils/Random.js";
28
28
  import { setId, setUid } from "./utils/setId.js";
@@ -31,19 +31,6 @@ import { createTheme, getVarValue, processThemes, setElementAttrs } from "./util
31
31
  import { useSavedState } from "./utils/useSavedState.js";
32
32
  import { wrapperTooltip } from "./utils/wrapperTooltip.js";
33
33
  import { uniqueId } from "./utils/helpers.js";
34
- import { default as default2, default as default3 } from "./Table/hooks/useTable.js";
35
- import { getHeaderFooterPropsHook, default as default4 } from "./Table/hooks/useTableStyles.js";
36
- import { default as default5 } from "./Table/hooks/useSortBy.js";
37
- import { getHeaderGroupPropsHook, getTableHeadPropsHook, default as default6 } from "./Table/hooks/useSticky.js";
38
- import { defaultGetHvPaginationProps, default as default7 } from "./Table/hooks/usePagination.js";
39
- import { CellWithCheckBox, defaultGetToggleAllPageRowsSelectedProps, defaultGetToggleAllRowsSelectedProps, defaultGetToggleRowSelectedProps, prepareRow, reducer, default as default8, useInstance } from "./Table/hooks/useRowSelection.js";
40
- import { defaultgetHvBulkActionsProps, default as default9 } from "./Table/hooks/useBulkActions.js";
41
- import { CellWithExpandButton, default as default10 } from "./Table/hooks/useRowExpand.js";
42
- import { default as default11 } from "./Table/hooks/useHeaderGroups.js";
43
- import { default as default12 } from "./Table/hooks/useResizeColumns.js";
44
- import { default as default13 } from "./Table/hooks/useGlobalFilter.js";
45
- import { default as default14 } from "./Table/hooks/useFilters.js";
46
- import { default as default15 } from "./Table/hooks/useRowState.js";
47
34
  import { typographyVariants } from "./Typography/utils.js";
48
35
  import { staticClasses } from "./Typography/Typography.styles.js";
49
36
  import { HvTypography } from "./Typography/Typography.js";
@@ -243,6 +230,7 @@ import { staticClasses as staticClasses94 } from "./Switch/Switch.styles.js";
243
230
  import { HvSwitch } from "./Switch/Switch.js";
244
231
  import { staticClasses as staticClasses95 } from "./Tab/Tab.styles.js";
245
232
  import { HvTab } from "./Tab/Tab.js";
233
+ import { useHvTable, useHvTable as useHvTable2 } from "./Table/hooks/useHvTable.js";
246
234
  import { staticClasses as staticClasses96 } from "./Table/Table.styles.js";
247
235
  import { HvTable } from "./Table/Table.js";
248
236
  import { staticClasses as staticClasses97 } from "./Table/TableContainer/TableContainer.styles.js";
@@ -257,13 +245,23 @@ import { staticClasses as staticClasses101 } from "./Table/TableRow/TableRow.sty
257
245
  import { HvTableRow } from "./Table/TableRow/TableRow.js";
258
246
  import { staticClasses as staticClasses102 } from "./Table/TableCell/TableCell.styles.js";
259
247
  import { HvTableCell } from "./Table/TableCell/TableCell.js";
260
- import { hvDateColumn, hvDropdownColumn, hvExpandColumn, hvNumberColumn, hvProgressColumn, hvSwitchColumn, hvTagColumn, hvTextColumn } from "./Table/renderers/renderers.js";
261
- import { HvDateColumnCell } from "./Table/renderers/DateColumnCell/DateColumnCell.js";
262
- import { HvDropdownColumnCell } from "./Table/renderers/DropdownColumnCell/DropdownColumnCell.js";
263
- import { HvProgressColumnCell, normalizeProgressBar } from "./Table/renderers/ProgressColumnCell/ProgressColumnCell.js";
264
- import { HvSwitchColumnCell } from "./Table/renderers/SwitchColumnCell/SwitchColumnCell.js";
265
- import { hvNodeFallback, hvNumberFallback, hvStringFallback } from "./Table/utils/fallbacks.js";
266
- import { getBorderStyles } from "./Table/utils/utils.js";
248
+ import { useHvTableStyles } from "./Table/hooks/useHvTableStyles.js";
249
+ import { useHvSortBy } from "./Table/hooks/useHvSortBy.js";
250
+ import { useHvTableSticky } from "./Table/hooks/useHvSticky.js";
251
+ import { defaultGetHvPaginationProps, useHvPagination } from "./Table/hooks/useHvPagination.js";
252
+ import { defaultGetToggleAllPageRowsSelectedProps, defaultGetToggleAllRowsSelectedProps, defaultGetToggleRowSelectedProps, useHvRowSelection } from "./Table/hooks/useHvRowSelection.js";
253
+ import { useHvBulkActions } from "./Table/hooks/useHvBulkActions.js";
254
+ import { CellWithExpandButton, useHvRowExpand } from "./Table/hooks/useHvRowExpand.js";
255
+ import { useHvHeaderGroups } from "./Table/hooks/useHvHeaderGroups.js";
256
+ import { useHvResizeColumns } from "./Table/hooks/useHvResizeColumns.js";
257
+ import { useHvGlobalFilter } from "./Table/hooks/useHvGlobalFilter.js";
258
+ import { useHvFilters } from "./Table/hooks/useHvFilters.js";
259
+ import { useHvRowState } from "./Table/hooks/useHvRowState.js";
260
+ import { hvDateColumn, hvDropdownColumn, hvExpandColumn, hvNodeFallback, hvNumberColumn, hvNumberFallback, hvProgressColumn, hvStringFallback, hvSwitchColumn, hvTagColumn, hvTextColumn } from "./Table/renderers/renderers.js";
261
+ import { HvDateColumnCell } from "./Table/renderers/DateColumnCell.js";
262
+ import { HvDropdownColumnCell } from "./Table/renderers/DropdownColumnCell.js";
263
+ import { HvProgressColumnCell, normalizeProgressBar } from "./Table/renderers/ProgressColumnCell.js";
264
+ import { HvSwitchColumnCell } from "./Table/renderers/SwitchColumnCell.js";
267
265
  import { staticClasses as staticClasses103 } from "./Tabs/Tabs.styles.js";
268
266
  import { HvTabs } from "./Tabs/Tabs.js";
269
267
  import { staticClasses as staticClasses104 } from "./Tag/Tag.styles.js";
@@ -308,7 +306,6 @@ import { staticClasses as staticClasses121 } from "./Skeleton/Skeleton.styles.js
308
306
  import { HvSkeleton } from "./Skeleton/Skeleton.js";
309
307
  import { EmotionContext, HvThemeContext, defaultCacheKey, defaultEmotionCache } from "@hitachivantara/uikit-react-shared";
310
308
  export {
311
- CellWithCheckBox,
312
309
  CellWithExpandButton,
313
310
  EmotionContext,
314
311
  HvAccordion,
@@ -496,7 +493,6 @@ export {
496
493
  defaultGetToggleAllPageRowsSelectedProps,
497
494
  defaultGetToggleAllRowsSelectedProps,
498
495
  defaultGetToggleRowSelectedProps,
499
- defaultgetHvBulkActionsProps,
500
496
  staticClasses50 as dialogActionClasses,
501
497
  staticClasses51 as dialogClasses,
502
498
  staticClasses49 as dialogContentClasses,
@@ -515,15 +511,11 @@ export {
515
511
  staticClasses3 as focusClasses,
516
512
  staticClasses60 as footerClasses,
517
513
  staticClasses8 as formElementClasses,
518
- getBorderStyles,
519
514
  getComponentName,
520
515
  getFirstAndLastFocus,
521
516
  getFocusableList,
522
- getHeaderFooterPropsHook,
523
- getHeaderGroupPropsHook,
524
517
  getPrevNextFocus,
525
518
  getSelectorIcons,
526
- getTableHeadPropsHook,
527
519
  getVarValue,
528
520
  staticClasses61 as globalActionsClasses,
529
521
  staticClasses62 as gridClasses,
@@ -553,6 +545,7 @@ export {
553
545
  staticClasses67 as inlineEditorClasses,
554
546
  staticClasses68 as inputClasses,
555
547
  isBrowser,
548
+ isDeleteKey,
556
549
  isKey,
557
550
  isOneOfKeys,
558
551
  staticClasses69 as kpiClasses,
@@ -575,13 +568,11 @@ export {
575
568
  staticClasses77 as paginationClasses,
576
569
  staticClasses78 as panelClasses,
577
570
  pentahoPlus,
578
- prepareRow,
579
571
  processThemes,
580
572
  staticClasses79 as progressBarClasses,
581
573
  staticClasses80 as queryBuilderClasses,
582
574
  staticClasses81 as radioClasses,
583
575
  staticClasses82 as radioGroupClasses,
584
- reducer,
585
576
  staticClasses46 as rightControlClasses,
586
577
  staticClasses86 as scrollToHorizontalClasses,
587
578
  staticClasses84 as scrollToVerticalClasses,
@@ -632,24 +623,23 @@ export {
632
623
  useDefaultProps,
633
624
  useEnhancedEffect,
634
625
  useForkRef,
635
- default9 as useHvBulkActions,
636
- default2 as useHvData,
637
- default14 as useHvFilters,
638
- default13 as useHvGlobalFilter,
639
- default11 as useHvHeaderGroups,
640
- default7 as useHvPagination,
641
- default12 as useHvResizeColumns,
642
- default10 as useHvRowExpand,
643
- default8 as useHvRowSelection,
644
- default15 as useHvRowState,
626
+ useHvBulkActions,
627
+ useHvTable as useHvData,
628
+ useHvFilters,
629
+ useHvGlobalFilter,
630
+ useHvHeaderGroups,
631
+ useHvPagination,
632
+ useHvResizeColumns,
633
+ useHvRowExpand,
634
+ useHvRowSelection,
635
+ useHvRowState,
645
636
  useHvSnackbar,
646
- default5 as useHvSortBy,
647
- default3 as useHvTable,
648
- default6 as useHvTableSticky,
649
- default4 as useHvTableStyles,
637
+ useHvSortBy,
638
+ useHvTable2 as useHvTable,
639
+ useHvTableSticky,
640
+ useHvTableStyles,
650
641
  useHvTreeItem,
651
642
  useImageLoaded,
652
- useInstance,
653
643
  useIsMounted,
654
644
  useLabels,
655
645
  useQueryBuilderContext,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,7 +23,11 @@ const isKey = (event, keyCode) => {
23
23
  const isOneOfKeys = (event, keys) => {
24
24
  return keys.some((key) => isKey(event, key));
25
25
  };
26
+ function isDeleteKey(event) {
27
+ return isOneOfKeys(event, ["Backspace", "Delete"]);
28
+ }
26
29
  export {
30
+ isDeleteKey,
27
31
  isKey,
28
32
  isOneOfKeys
29
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardUtils.js","sources":["../../../src/utils/keyboardUtils.ts"],"sourcesContent":["/** Map of keys to key `code` @see https://mdn.io/event/code */\nconst keyboardCodes = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"ShiftLeft\",\n Ctrl: \"ControlLeft\",\n Alt: \"AltLeft\",\n Delete: \"Delete\",\n Esc: \"Escape\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Space: \"Space\",\n PageUp: \"PageUp\",\n PageDown: \"PageDown\",\n Home: \"Home\",\n End: \"End\",\n} as const;\n\ntype Key = keyof typeof keyboardCodes;\n\n/** Check whether a keyboard `event` is pressing the `keyCode` key. */\nexport const isKey = (event: any, keyCode: Key) => {\n return event?.code === keyCode || event?.code === keyboardCodes[keyCode];\n};\n\nexport const isOneOfKeys = (event: any, keys: Key[]) => {\n return keys.some((key) => isKey(event, key));\n};\n"],"names":[],"mappings":"AACA,MAAM,gBAAgB;AAAA,EACpB,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AACP;AAKa,MAAA,QAAQ,CAAC,OAAY,YAAiB;AACjD,SAAO,OAAO,SAAS,WAAW,OAAO,SAAS,cAAc,OAAO;AACzE;AAEa,MAAA,cAAc,CAAC,OAAY,SAAgB;AACtD,SAAO,KAAK,KAAK,CAAC,QAAQ,MAAM,OAAO,GAAG,CAAC;AAC7C;"}
1
+ {"version":3,"file":"keyboardUtils.js","sources":["../../../src/utils/keyboardUtils.ts"],"sourcesContent":["/** Map of keys to key `code` @see https://mdn.io/event/code */\nconst keyboardCodes = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"ShiftLeft\",\n Ctrl: \"ControlLeft\",\n Alt: \"AltLeft\",\n Delete: \"Delete\",\n Esc: \"Escape\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Space: \"Space\",\n PageUp: \"PageUp\",\n PageDown: \"PageDown\",\n Home: \"Home\",\n End: \"End\",\n} as const;\n\ntype Key = keyof typeof keyboardCodes;\n\n/** Check whether a keyboard `event` is pressing the `keyCode` key. */\nexport const isKey = (event: any, keyCode: Key) => {\n return event?.code === keyCode || event?.code === keyboardCodes[keyCode];\n};\n\nexport const isOneOfKeys = (event: any, keys: Key[]) => {\n return keys.some((key) => isKey(event, key));\n};\n\nexport function isDeleteKey(event: React.KeyboardEvent) {\n return isOneOfKeys(event, [\"Backspace\", \"Delete\"]);\n}\n"],"names":[],"mappings":"AACA,MAAM,gBAAgB;AAAA,EACpB,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AACP;AAKa,MAAA,QAAQ,CAAC,OAAY,YAAiB;AACjD,SAAO,OAAO,SAAS,WAAW,OAAO,SAAS,cAAc,OAAO;AACzE;AAEa,MAAA,cAAc,CAAC,OAAY,SAAgB;AACtD,SAAO,KAAK,KAAK,CAAC,QAAQ,MAAM,OAAO,GAAG,CAAC;AAC7C;AAEO,SAAS,YAAY,OAA4B;AACtD,SAAO,YAAY,OAAO,CAAC,aAAa,QAAQ,CAAC;AACnD;"}