@oracle/oraclejet-preact 18.1.4 → 18.1.5

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 (108) hide show
  1. package/amd/InputDatePicker-ecd4a7ce.js +2 -0
  2. package/amd/{InputDatePicker-cf7e7ea3.js.map → InputDatePicker-ecd4a7ce.js.map} +1 -1
  3. package/amd/Legend-6fa54628.js +2 -0
  4. package/amd/Legend-6fa54628.js.map +1 -0
  5. package/amd/LegendRendered-d8626509.js.map +1 -1
  6. package/amd/MaxLengthCounter-9a95922c.js +2 -0
  7. package/amd/MaxLengthCounter-9a95922c.js.map +1 -0
  8. package/amd/TextArea-f6b13c73.js +2 -0
  9. package/amd/TextArea-f6b13c73.js.map +1 -0
  10. package/amd/TextAreaAutosize-af350c32.js +2 -0
  11. package/amd/{TextAreaAutosize-b7e56051.js.map → TextAreaAutosize-af350c32.js.map} +1 -1
  12. package/amd/Theme-redwood/theme.css +130 -130
  13. package/amd/Theme-stable/theme.css +254 -254
  14. package/amd/UNSAFE_InputDatePicker.js +1 -1
  15. package/amd/UNSAFE_Legend.js +1 -1
  16. package/amd/UNSAFE_TextArea.js +1 -1
  17. package/amd/UNSAFE_TextAreaAutosize.js +1 -1
  18. package/cjs/CheckboxSetContext-c62db26d.js +12 -0
  19. package/{es/CheckboxSetContext-1be56556.js.map → cjs/CheckboxSetContext-c62db26d.js.map} +1 -1
  20. package/cjs/{InputDatePicker-6c8cbbf7.js → InputDatePicker-3dace90c.js} +2 -2
  21. package/cjs/{InputDatePicker-6c8cbbf7.js.map → InputDatePicker-3dace90c.js.map} +1 -1
  22. package/cjs/{Legend-743ebb76.js → Legend-7e72e911.js} +4 -4
  23. package/cjs/Legend-7e72e911.js.map +1 -0
  24. package/cjs/LegendRendered-c12152bc.js.map +1 -1
  25. package/cjs/MaxLengthCounter-9ab3f74b.js +27 -0
  26. package/cjs/MaxLengthCounter-9ab3f74b.js.map +1 -0
  27. package/cjs/{TextArea-f4a84aab.js → TextArea-a11875f3.js} +4 -22
  28. package/cjs/TextArea-a11875f3.js.map +1 -0
  29. package/cjs/{TextAreaAutosize-08ca17cf.js → TextAreaAutosize-5a8e8335.js} +3 -3
  30. package/cjs/{TextAreaAutosize-08ca17cf.js.map → TextAreaAutosize-5a8e8335.js.map} +1 -1
  31. package/cjs/Theme-redwood/theme.css +182 -182
  32. package/cjs/Theme-stable/theme.css +205 -205
  33. package/cjs/UNSAFE_CheckboxItem.js +30 -82
  34. package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
  35. package/cjs/UNSAFE_CheckboxSet.js +44 -15
  36. package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
  37. package/cjs/UNSAFE_InputDatePicker.js +90 -90
  38. package/cjs/UNSAFE_Legend.js +1 -1
  39. package/cjs/UNSAFE_RichCheckboxSet.js +26 -29
  40. package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
  41. package/cjs/UNSAFE_RichSelectionItem.js +46 -184
  42. package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
  43. package/cjs/UNSAFE_TextArea.js +4 -3
  44. package/cjs/UNSAFE_TextArea.js.map +1 -1
  45. package/cjs/UNSAFE_TextAreaAutosize.js +3 -3
  46. package/es/CheckboxSet-28953b25.js +49 -0
  47. package/{cjs/CheckboxSet-abbf7a03.js.map → es/CheckboxSet-28953b25.js.map} +1 -1
  48. package/es/InputPassword-fa63ac17.js +1 -1
  49. package/es/{Legend-a60126aa.js → Legend-0e274097.js} +4 -4
  50. package/es/Legend-0e274097.js.map +1 -0
  51. package/es/LegendRendered-65a3684e.js.map +1 -1
  52. package/es/MaxLengthCounter-181b4fc9.js +25 -0
  53. package/es/MaxLengthCounter-181b4fc9.js.map +1 -0
  54. package/es/{NavigationListItem-07f041e6.js → NavigationListItem-37edc23b.js} +1 -14
  55. package/es/{NavigationListItem-07f041e6.js.map → NavigationListItem-37edc23b.js.map} +1 -1
  56. package/es/{OverflowTabBar-c920e944.js → OverflowTabBar-87b36877.js} +2 -2
  57. package/es/{OverflowTabBar-c920e944.js.map → OverflowTabBar-87b36877.js.map} +1 -1
  58. package/es/{OverflowTabBarItem-ccfa49a3.js → OverflowTabBarItem-a2684d2b.js} +2 -2
  59. package/es/{OverflowTabBarItem-ccfa49a3.js.map → OverflowTabBarItem-a2684d2b.js.map} +1 -1
  60. package/es/PRIVATE_RevealToggleIcon.js +2 -2
  61. package/es/{RevealToggleIcon-2f49fd19.js → RevealToggleIcon-35baaadf.js} +2 -2
  62. package/es/{RevealToggleIcon-2f49fd19.js.map → RevealToggleIcon-35baaadf.js.map} +1 -1
  63. package/es/SplitMenuButtonTheme.styles.css +4 -4
  64. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  65. package/es/{TextArea-d7eb6b00.js → TextArea-2eb362ec.js} +8 -25
  66. package/es/TextArea-2eb362ec.js.map +1 -0
  67. package/es/{TextAreaAutosize-301eb2b7.js → TextAreaAutosize-35a923c3.js} +2 -2
  68. package/es/{TextAreaAutosize-301eb2b7.js.map → TextAreaAutosize-35a923c3.js.map} +1 -1
  69. package/es/Theme-redwood/theme.css +545 -545
  70. package/es/Theme-stable/theme.css +483 -483
  71. package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
  72. package/es/UNSAFE_CheckboxItem.js +82 -30
  73. package/es/UNSAFE_CheckboxItem.js.map +1 -1
  74. package/es/UNSAFE_CheckboxSet.js +10 -44
  75. package/es/UNSAFE_CheckboxSet.js.map +1 -1
  76. package/es/UNSAFE_InputPassword.js +1 -1
  77. package/es/UNSAFE_InputSensitiveText.js +1 -1
  78. package/es/UNSAFE_Legend.js +1 -1
  79. package/es/UNSAFE_NavigationList.js +4 -4
  80. package/es/UNSAFE_OverflowTabBar.js +3 -3
  81. package/es/UNSAFE_RichCheckboxSet.js +28 -25
  82. package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
  83. package/es/UNSAFE_RichSelectionItem.js +182 -44
  84. package/es/UNSAFE_RichSelectionItem.js.map +1 -1
  85. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  86. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  87. package/es/UNSAFE_SplitMenuButton.js +1 -1
  88. package/es/UNSAFE_TabBar.js +2 -2
  89. package/es/UNSAFE_TabBarCommon.js +2 -2
  90. package/es/UNSAFE_TabBarMixed.js +2 -2
  91. package/es/UNSAFE_TextArea.js +3 -2
  92. package/es/UNSAFE_TextArea.js.map +1 -1
  93. package/es/UNSAFE_TextAreaAutosize.js +3 -3
  94. package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
  95. package/package.json +2 -2
  96. package/types/hooks/UNSAFE_useLegendPreferredSize/LegendRendered.d.ts +1 -1
  97. package/amd/InputDatePicker-cf7e7ea3.js +0 -2
  98. package/amd/Legend-76df298c.js +0 -2
  99. package/amd/Legend-76df298c.js.map +0 -1
  100. package/amd/TextArea-d69acd23.js +0 -2
  101. package/amd/TextArea-d69acd23.js.map +0 -1
  102. package/amd/TextAreaAutosize-b7e56051.js +0 -2
  103. package/cjs/CheckboxSet-abbf7a03.js +0 -53
  104. package/cjs/Legend-743ebb76.js.map +0 -1
  105. package/cjs/TextArea-f4a84aab.js.map +0 -1
  106. package/es/CheckboxSetContext-1be56556.js +0 -9
  107. package/es/Legend-a60126aa.js.map +0 -1
  108. package/es/TextArea-d7eb6b00.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"UNSAFE_RichSelectionItem.js","sources":["../../src/UNSAFE_RichSelectionItem/RichSelectionTextContent.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionMediaItem.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionControl.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionItem.tsx"],"sourcesContent":["import { TruncatingText } from '#UNSAFE_TruncatingText';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\ntype RichSelectionTextContentProps = {\n secondaryTextId?: string;\n label?: string;\n secondaryText?: string;\n isDisabled?: boolean;\n // INFO: label truncates for 1 line in only XL\n isLayoutXL?: boolean;\n labelId: string;\n};\n\n// INFO: Label and SecondaryText Content handling\nexport const RichSelectionTextContent = ({\n secondaryTextId,\n isDisabled,\n isLayoutXL,\n label,\n labelId,\n secondaryText\n}: RichSelectionTextContentProps) => {\n const labelContent = (\n <TruncatingText\n variant={isDisabled ? 'disabled' : 'primary'}\n lineClamp={isLayoutXL ? 1 : 2}\n id={labelId}>\n {label}\n </TruncatingText>\n );\n const classes = classNames([\n isLayoutXL ? styles.densityWrapper : styles.growOneColumn,\n !isLayoutXL && !secondaryText && styles.labelOnly\n ]);\n\n return (\n <div className={classes}>\n {labelContent}\n {secondaryText && (\n <TruncatingText\n size=\"sm\"\n variant={isDisabled ? 'disabled' : 'secondary'}\n lineClamp={3}\n id={secondaryTextId}>\n {secondaryText}\n </TruncatingText>\n )}\n </div>\n );\n};\n","import { Avatar } from '#UNSAFE_Avatar';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { Center } from '#UNSAFE_Center';\nimport { View } from '#UNSAFE_View';\nimport { AspectRatio } from '#UNSAFE_AspectRatio';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { RichSelectionMediaItemProps } from './RichSelectionTypes';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\ntype DisabledType = {\n isDisabled?: boolean;\n};\n\ntype ThumbnailProps = TestIdProps &\n DisabledType &\n Pick<RichSelectionMediaItemProps, 'layout'> & {\n thumbnailSrc?: string;\n mediaAccessibleLabel?: string;\n };\n\nconst ThumbnailXL = ({\n thumbnailSrc,\n mediaAccessibleLabel,\n testId,\n isDisabled\n}: ThumbnailProps) => {\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n\n return (\n <AspectRatio ratio=\"4/3\">\n <img\n alt={mediaAccessibleLabel}\n className={classNames([styles.thumbnailImage, isDisabled && styles.mediaDisabledOpacity])}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n </AspectRatio>\n );\n};\n\nconst Thumbnail = ({\n thumbnailSrc,\n mediaAccessibleLabel,\n layout,\n testId,\n isDisabled\n}: ThumbnailProps) => {\n const thumbnailClass = classNames([\n layout === 'md' ? styles.mdMediaVariant : styles.smMediaVariant,\n isDisabled && styles.mediaDisabledOpacity\n ]);\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n return (\n <img\n alt={mediaAccessibleLabel}\n className={thumbnailClass}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n );\n};\n\nconst MediumRenderer = ({\n mediaAccessibleLabel,\n thumbnailSrc,\n layout,\n avatar,\n testId,\n isDisabled\n}: Partial<RichSelectionMediaItemProps> & DisabledType) => {\n const testIdProps = useTestId(testId ? `${testId}_medium` : undefined);\n let mediumMediaItem;\n\n if (avatar) {\n const avatarElement = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"md\" {...testIdProps} />\n );\n mediumMediaItem = isDisabled ? (\n <span className={styles.mediaDisabledOpacity}>{avatarElement}</span>\n ) : (\n avatarElement\n );\n } else {\n mediumMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n />\n );\n }\n\n return <Center>{mediumMediaItem}</Center>;\n};\n\nconst SmallRenderer = ({\n avatar,\n iconClass,\n isDisabled,\n layout,\n thumbnailSrc,\n mediaAccessibleLabel,\n testId\n}: RichSelectionMediaItemProps & DisabledType) => {\n const testIdProps = useTestId(testId ? `${testId}_small` : undefined);\n const { iconWrapper, iconEnabledColor, iconDisabledColor, mediaDisabledOpacity } = styles;\n let smallMediaItem;\n\n if (avatar) {\n const avatarElement = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"xs\" {...testIdProps} />\n );\n smallMediaItem = isDisabled ? (\n <span className={mediaDisabledOpacity}>{avatarElement}</span>\n ) : (\n avatarElement\n );\n } else if (thumbnailSrc) {\n smallMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n {...testIdProps}\n />\n );\n } else if (iconClass) {\n const classes = classNames([\n iconClass,\n iconWrapper,\n isDisabled ? iconDisabledColor : iconEnabledColor\n ]);\n smallMediaItem = <div class={classes} {...testIdProps}></div>;\n }\n\n return <Center>{smallMediaItem}</Center>;\n};\n\n// INFO: Media Item handling\nexport const RichSelectionMediaItem = ({\n avatar,\n iconClass,\n isDisabled,\n hasSecondaryText,\n mediaAccessibleLabel,\n layout,\n thumbnailSrc,\n testId\n}: RichSelectionMediaItemProps & DisabledType) => {\n if (!layout) {\n return null;\n }\n\n switch (layout) {\n case 'xl':\n return (\n <ThumbnailXL\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n testId={testId}\n isDisabled={isDisabled}\n />\n );\n\n case 'md':\n const mediumMedia = avatar ? { avatar } : thumbnailSrc ? { thumbnailSrc } : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <MediumRenderer\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n {...mediumMedia}\n />\n </View>\n );\n\n case 'sm':\n const smallMedia = avatar\n ? { avatar, mediaAccessibleLabel }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel }\n : iconClass\n ? { iconClass }\n : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <SmallRenderer {...smallMedia} layout={layout} testId={testId} isDisabled={isDisabled} />\n </View>\n );\n\n default:\n return null;\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { useInteractionStyle } from '#hooks/UNSAFE_useInteractionStyle';\nimport { useTabbableMode } from '#hooks/UNSAFE_useTabbableMode';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { StyledCheckbox } from '#PRIVATE_StyledCheckbox';\nimport { CheckIcon } from '#PRIVATE_ThemedIcons/CheckIcon';\nimport { RadioOffIcon } from '#PRIVATE_ThemedIcons/RadioOffIcon';\nimport { RadioOnIcon } from '#PRIVATE_ThemedIcons/RadioOnIcon';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\nimport { useRadioItemContext } from '#UNSAFE_RadioItem/RadioItemContext';\nimport { radioIconVars } from '#UNSAFE_RadioItem/themes/RadioIconContract.css';\nimport { RadioIconVariantOptions } from '#UNSAFE_RadioItem/themes/RadioIconStyles.css';\nimport { radioDefaultColor, radioDisabledColor } from '#UNSAFE_RadioItem/themes/RadioStyles.css';\nimport { RadioIconRedwoodTheme } from '#UNSAFE_RadioItem/themes/redwood/RadioIconTheme';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\n/**\n * Selective Element Props Type.\n */\ntype RichSelectionControlProps = {\n value: string | number;\n inputRef?: RefObject<HTMLInputElement>;\n inputReadonlyRef?: RefObject<HTMLInputElement>;\n isFocus?: boolean;\n isLayoutXL?: boolean;\n isDisabled?: boolean;\n isReadonly?: boolean;\n isSelected?: boolean;\n describedBy?: string;\n labelledBy: string;\n testId?: string;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n};\n\nexport const RadioControl = ({\n value,\n inputRef,\n inputReadonlyRef,\n isFocus,\n isDisabled,\n isLayoutXL,\n isReadonly,\n isSelected,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name, value: radioGroupValue, onCommit } = useRadioSetContext();\n\n const testIdProps = useTestId(testId);\n\n const IconComp = isReadonly\n ? isSelected\n ? CheckIcon\n : RadioOffIcon\n : isSelected\n ? RadioOnIcon\n : RadioOffIcon;\n\n const spanRef = useRef<HTMLSpanElement>(null);\n const { interactionProps, applyActiveStyle } = useInteractionStyle();\n\n const onChangeHandler = useCallback(\n (event: Event) => {\n event.stopPropagation();\n onCommit?.({ previousValue: radioGroupValue, value });\n },\n [value, radioGroupValue, onCommit]\n );\n\n /**\n * When focused the view should have the respective RichSelectionItem.\n */\n useEffect(() => {\n if (isFocus) {\n spanRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, spanRef]);\n\n const radioColor = isDisabled ? radioDisabledColor : radioDefaultColor;\n const { classes: radioIconClasses } = useComponentTheme<RadioIconVariantOptions>(\n RadioIconRedwoodTheme,\n {\n disabled: isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n richSelection: isLayoutXL ? 'isLayoutXL' : 'notLayoutXL'\n }\n );\n\n const { isTabbable } = useTabbableMode();\n const { index } = useRadioItemContext();\n const tabIndex =\n isTabbable !== false && ((index === 0 && !radioGroupValue) || isSelected) ? 0 : -1;\n\n const hiddenInput = (\n <HiddenAccessible>\n <input\n type=\"radio\"\n name={name}\n value={value}\n {...(!isReadonly &&\n !isDisabled && {\n onChange: onChangeHandler\n })}\n checked={isSelected}\n disabled={isDisabled}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n tabIndex={tabIndex}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={isReadonly ? inputReadonlyRef : inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n );\n\n // Radio control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return <span class={styles.inputElement}>{hiddenInput}</span>;\n }\n\n return (\n <span\n ref={spanRef}\n class={classNames([radioColor, isLayoutXL ? styles.radioWrapper : undefined])}>\n {hiddenInput}\n <span aria-hidden=\"true\" class={radioIconClasses} {...interactionProps}>\n <IconComp size={radioIconVars.iconSize} color=\"currentColor\" />\n </span>\n </span>\n );\n};\n\nexport const CheckboxControl = ({\n value,\n inputRef,\n inputReadonlyRef,\n isSelected,\n isLayoutXL,\n isDisabled,\n isReadonly,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name } = useCheckboxSetContext();\n const testIdProps = useTestId(testId);\n const { isTabbable } = useTabbableMode();\n const checkboxStyles = isLayoutXL ? styles.checkboxWrapper : styles.checkboxAlign;\n\n // Checkbox control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return (\n <span class={styles.inputElement}>\n <HiddenAccessible>\n <input\n aria-readonly={true}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n type=\"checkbox\"\n name={name}\n value={value}\n checked={false}\n disabled={isDisabled}\n tabIndex={isTabbable ? 0 : -1}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputReadonlyRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n </span>\n );\n }\n\n return (\n <span class={checkboxStyles}>\n <StyledCheckbox\n aria-describedby={describedBy}\n aria-labelledby={labelledBy}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isChecked={isSelected ? 'checked' : 'unchecked'}\n name={name}\n value={value}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={isReadonly ? inputReadonlyRef : inputRef}\n {...testIdProps}\n />\n </span>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport { useFormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useRichSelectionContext } from '#PRIVATE_RichSelectionCommon/RichSelectionContext';\nimport { StyledCard } from '#PRIVATE_StyledCard';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { RichSelectionTextContent } from './RichSelectionTextContent';\nimport { RichSelectionMediaItem } from './RichSelectionMediaItem';\nimport { Flex } from '#UNSAFE_Flex';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { usePress } from '#hooks/UNSAFE_usePress';\nimport { RadioControl, CheckboxControl } from './RichSelectionControl';\nimport { type RichSelectionItemData } from './RichSelectionTypes';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\nimport { useFocusableTextField } from '#hooks/UNSAFE_useFocusableTextField';\nimport { useRichSelectionStartContext } from '#PRIVATE_RichSelectionCommon/RichSelectionStartContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\ntype RichSelectionItemProps<V extends string | number> = RichSelectionItemData<V> &\n TestIdProps & {\n /**\n * Specifies if the card is read-only.\n */\n isReadonly?: boolean;\n };\n\nconst onMouseDown = (event: Event) => {\n // Prevent focus from going to the body when the user clicks something within\n // the card that is not focusable. This is important because we are detecting\n // focus loss on the core pack side and showing hidden messages.\n event.preventDefault();\n};\n\n/**\n * `RichSelectionItem` is a customizable input card element used in selection interfaces. It can display a label,\n * optional secondary text, and media (such as an avatar, thumbnail, or icon). It supports both radio and checkbox\n * controls, allowing users to make a single or multiple selections, respectively. The component also handles\n * different states such as disabled, readonly, and focus, and renders dynamically based on layout( 'xl', 'md', or 'sm').\n */\nexport const RichSelectionItem = <V extends string | number>({\n avatar,\n iconClass,\n isReadonly: propsIsReadonly,\n mediaAccessibleLabel,\n secondaryText,\n thumbnailSrc,\n label,\n value,\n testId\n}: RichSelectionItemProps<V>) => {\n const { isReadonly: isFormReadonly, isDisabled: isFormDisabled } = useFormContext();\n const styledCardRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputReadonlyRef = useRef<HTMLInputElement>(null);\n const { selection, layout, messageSeverity } = useRichSelectionContext()!;\n const { isDisabled: isFieldDisabled, isReadonly: isFieldReadonly } = useFormFieldContext();\n const { value: radioGroupValue, onCommit: onRadioCommit } = useRadioSetContext();\n const { value: checkboxGroupValue, onCommit: onCheckboxCommit } = useCheckboxSetContext();\n\n // Determining selection state for error\n const styledCardVariant = messageSeverity === 'error' ? 'danger' : undefined;\n const isDisabled = isFieldDisabled ?? isFormDisabled;\n const isReadonly = isFieldReadonly || isFormReadonly || propsIsReadonly;\n const isEnabled = !isDisabled && !isReadonly;\n const id = useId();\n const isLayoutXL = layout === 'xl';\n const hasMedia = !!avatar || !!thumbnailSrc || !!iconClass;\n const labelId = `${id}-labelled-text`;\n const secondaryTextId = secondaryText ? `${id}-secondary-text` : undefined;\n const isSingleSelection = selection === 'single';\n const isSelected = isSingleSelection\n ? radioGroupValue === value\n : !!checkboxGroupValue?.has(value);\n\n const {\n isFocused: isFocus,\n focusProps: { onFocusIn, onFocusOut },\n methods\n } = useFocusableTextField({\n enabledElementRef: inputRef,\n readonlyElementRef: inputReadonlyRef,\n isReadonly,\n isDisabled\n });\n\n // Scroll into view when the RichSelectionItem is focused\n useEffect(() => {\n if (isFocus) {\n styledCardRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, styledCardRef]);\n\n // Text content of label and secondaryText rendering\n const textContent = (\n <RichSelectionTextContent\n secondaryTextId={secondaryTextId}\n labelId={labelId}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n label={label}\n secondaryText={secondaryText}\n />\n );\n\n // Media content rendering based on available media props respective to layout\n const media = avatar\n ? { avatar, mediaAccessibleLabel, layout: layout as 'md' | 'sm' }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel, layout: layout as 'xl' | 'md' | 'sm' }\n : iconClass\n ? { iconClass, layout: layout as 'sm' }\n : undefined;\n\n const mediaContent = hasMedia ? (\n <RichSelectionMediaItem\n {...media}\n isDisabled={isDisabled}\n hasSecondaryText={!!secondaryText}\n testId={testId ? `${testId}_media` : undefined}\n />\n ) : undefined;\n\n // Selection control rendering (radio or checkbox)\n const selectionControl = (\n <Flex align={secondaryText ? 'start' : 'center'}>\n {isSingleSelection ? (\n <RadioControl\n onFocus={onFocusIn}\n onBlur={onFocusOut}\n value={value}\n inputRef={inputRef}\n inputReadonlyRef={inputReadonlyRef}\n isFocus={isFocus}\n isLayoutXL={isLayoutXL}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_radio` : undefined}\n />\n ) : (\n <CheckboxControl\n onFocus={onFocusIn}\n onBlur={onFocusOut}\n value={value}\n inputRef={inputRef}\n inputReadonlyRef={inputReadonlyRef}\n isFocus={isFocus}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_checkbox` : undefined}\n />\n )}\n </Flex>\n );\n\n // Handler for checkbox selection changes\n const triggerCheckBoxAction = useCallback(() => {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n methods.focus();\n\n const newGroupValue = new Set(checkboxGroupValue);\n // If the value is already selected, remove it; otherwise, add it\n if (newGroupValue.has(value)) {\n newGroupValue.delete(value);\n } else {\n newGroupValue.add(value);\n }\n onCheckboxCommit?.({\n previousValue: checkboxGroupValue,\n value: newGroupValue.size > 0 ? newGroupValue : undefined\n });\n }, [checkboxGroupValue, methods, onCheckboxCommit, value]);\n\n // Handler for radio selection changes\n const triggerRadioAction = useCallback(() => {\n if (radioGroupValue !== value) {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n methods.focus();\n\n onRadioCommit?.({\n previousValue: radioGroupValue,\n value: value\n });\n }\n }, [radioGroupValue, value, methods, onRadioCommit]);\n\n // due to the placement of the start label in rich selection, we need to check if the first item contains media or secondary text.\n const startData = useMemo(\n () => ({ hasMedia, hasSecondaryText: !!secondaryText }),\n [hasMedia, secondaryText]\n );\n const richSelectionStartContext = useRichSelectionStartContext();\n if (richSelectionStartContext?.isFirst) {\n richSelectionStartContext?.setStartData?.(startData);\n }\n\n // Event handlers for the interaction of the StyledCard\n const { pressProps } = usePress(isSingleSelection ? triggerRadioAction : triggerCheckBoxAction, {\n isDisabled: !isEnabled\n });\n\n return (\n <StyledCard\n cursor={isEnabled ? 'pointer' : 'arrow'}\n display=\"inlineFlex\"\n height=\"100%\"\n isDisabled={!isEnabled}\n isFocusWithin={isFocus}\n isSelected={styledCardVariant !== 'danger' && isEnabled && isSelected}\n onMouseDown={onMouseDown}\n parentComponentVariant=\"richSelectionItemCard\"\n ref={styledCardRef}\n role=\"listitem\"\n styleVariant={styledCardVariant}\n testId={testId ? `${testId}_styled_card` : undefined}\n width=\"100%\"\n {...(isReadonly ? { onClick: () => methods.focus() } : pressProps)}>\n {isLayoutXL ? (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n {mediaContent}\n <div class={styles.selectionElement}>{selectionControl}</div>\n {textContent}\n </Flex>\n ) : (\n <div\n className={classNames([\n styles.densityWrapper,\n // if the item has a sm/md layout, without media or secondary text,\n // we need to set the min height of the card to match the start label\n !isLayoutXL &&\n !hasMedia &&\n !secondaryText &&\n richSelectionStartContext !== null &&\n styles.startMinHeight\n ])}>\n <Flex direction=\"row\" gap=\"4x\" height=\"100%\" width=\"100%\">\n {selectionControl}\n {textContent}\n {mediaContent}\n </Flex>\n </div>\n )}\n </StyledCard>\n );\n};\n"],"names":["_jsx","TruncatingText","classNames","styles","_jsxs","useTestId","AspectRatio","Avatar","Center","View","useRadioSetContext","CheckIcon","RadioOffIcon","RadioOnIcon","useRef","useInteractionStyle","useCallback","useEffect","radioDisabledColor","radioDefaultColor","useComponentTheme","RadioIconRedwoodTheme","useTabbableMode","useRadioItemContext","HiddenAccessible","radioIconVars","useCheckboxSetContext","StyledCheckbox","useFormContext","useRichSelectionContext","useFormFieldContext","useId","useFocusableTextField","Flex","useMemo","useRichSelectionStartContext","usePress","StyledCard"],"mappings":"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"}
1
+ {"version":3,"file":"UNSAFE_RichSelectionItem.js","sources":["../../src/UNSAFE_RichSelectionItem/RichSelectionTextContent.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionMediaItem.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionControl.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionItem.tsx"],"sourcesContent":["import { TruncatingText } from '#UNSAFE_TruncatingText';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\ntype RichSelectionTextContentProps = {\n secondaryTextId?: string;\n label?: string;\n secondaryText?: string;\n isDisabled?: boolean;\n // INFO: label truncates for 1 line in only XL\n isLayoutXL?: boolean;\n labelId: string;\n};\n\n// INFO: Label and SecondaryText Content handling\nexport const RichSelectionTextContent = ({\n secondaryTextId,\n isDisabled,\n isLayoutXL,\n label,\n labelId,\n secondaryText\n}: RichSelectionTextContentProps) => {\n const labelContent = (\n <TruncatingText\n variant={isDisabled ? 'disabled' : 'primary'}\n lineClamp={isLayoutXL ? 1 : 2}\n id={labelId}>\n {label}\n </TruncatingText>\n );\n const classes = classNames([\n isLayoutXL ? styles.densityWrapper : styles.growOneColumn,\n !isLayoutXL && !secondaryText && styles.labelOnly\n ]);\n\n return (\n <div className={classes}>\n {labelContent}\n {secondaryText && (\n <TruncatingText\n size=\"sm\"\n variant={isDisabled ? 'disabled' : 'secondary'}\n lineClamp={3}\n id={secondaryTextId}>\n {secondaryText}\n </TruncatingText>\n )}\n </div>\n );\n};\n","import { Avatar } from '#UNSAFE_Avatar';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { Center } from '#UNSAFE_Center';\nimport { View } from '#UNSAFE_View';\nimport { AspectRatio } from '#UNSAFE_AspectRatio';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { RichSelectionMediaItemProps } from './RichSelectionTypes';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\ntype DisabledType = {\n isDisabled?: boolean;\n};\n\ntype ThumbnailProps = TestIdProps &\n DisabledType &\n Pick<RichSelectionMediaItemProps, 'layout'> & {\n thumbnailSrc?: string;\n mediaAccessibleLabel?: string;\n };\n\nconst ThumbnailXL = ({\n thumbnailSrc,\n mediaAccessibleLabel,\n testId,\n isDisabled\n}: ThumbnailProps) => {\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n\n return (\n <AspectRatio ratio=\"4/3\">\n <img\n alt={mediaAccessibleLabel}\n className={classNames([styles.thumbnailImage, isDisabled && styles.mediaDisabledOpacity])}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n </AspectRatio>\n );\n};\n\nconst Thumbnail = ({\n thumbnailSrc,\n mediaAccessibleLabel,\n layout,\n testId,\n isDisabled\n}: ThumbnailProps) => {\n const thumbnailClass = classNames([\n layout === 'md' ? styles.mdMediaVariant : styles.smMediaVariant,\n isDisabled && styles.mediaDisabledOpacity\n ]);\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n return (\n <img\n alt={mediaAccessibleLabel}\n className={thumbnailClass}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n );\n};\n\nconst MediumRenderer = ({\n mediaAccessibleLabel,\n thumbnailSrc,\n layout,\n avatar,\n testId,\n isDisabled\n}: Partial<RichSelectionMediaItemProps> & DisabledType) => {\n const testIdProps = useTestId(testId ? `${testId}_medium` : undefined);\n let mediumMediaItem;\n\n if (avatar) {\n const avatarElement = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"md\" {...testIdProps} />\n );\n mediumMediaItem = isDisabled ? (\n <span className={styles.mediaDisabledOpacity}>{avatarElement}</span>\n ) : (\n avatarElement\n );\n } else {\n mediumMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n />\n );\n }\n\n return <Center>{mediumMediaItem}</Center>;\n};\n\nconst SmallRenderer = ({\n avatar,\n iconClass,\n isDisabled,\n layout,\n thumbnailSrc,\n mediaAccessibleLabel,\n testId\n}: RichSelectionMediaItemProps & DisabledType) => {\n const testIdProps = useTestId(testId ? `${testId}_small` : undefined);\n const { iconWrapper, iconEnabledColor, iconDisabledColor, mediaDisabledOpacity } = styles;\n let smallMediaItem;\n\n if (avatar) {\n const avatarElement = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"xs\" {...testIdProps} />\n );\n smallMediaItem = isDisabled ? (\n <span className={mediaDisabledOpacity}>{avatarElement}</span>\n ) : (\n avatarElement\n );\n } else if (thumbnailSrc) {\n smallMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n {...testIdProps}\n />\n );\n } else if (iconClass) {\n const classes = classNames([\n iconClass,\n iconWrapper,\n isDisabled ? iconDisabledColor : iconEnabledColor\n ]);\n smallMediaItem = <div class={classes} {...testIdProps}></div>;\n }\n\n return <Center>{smallMediaItem}</Center>;\n};\n\n// INFO: Media Item handling\nexport const RichSelectionMediaItem = ({\n avatar,\n iconClass,\n isDisabled,\n hasSecondaryText,\n mediaAccessibleLabel,\n layout,\n thumbnailSrc,\n testId\n}: RichSelectionMediaItemProps & DisabledType) => {\n if (!layout) {\n return null;\n }\n\n switch (layout) {\n case 'xl':\n return (\n <ThumbnailXL\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n testId={testId}\n isDisabled={isDisabled}\n />\n );\n\n case 'md':\n const mediumMedia = avatar ? { avatar } : thumbnailSrc ? { thumbnailSrc } : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <MediumRenderer\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n isDisabled={isDisabled}\n {...mediumMedia}\n />\n </View>\n );\n\n case 'sm':\n const smallMedia = avatar\n ? { avatar, mediaAccessibleLabel }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel }\n : iconClass\n ? { iconClass }\n : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <SmallRenderer {...smallMedia} layout={layout} testId={testId} isDisabled={isDisabled} />\n </View>\n );\n\n default:\n return null;\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { useInteractionStyle } from '#hooks/UNSAFE_useInteractionStyle';\nimport { useTabbableMode } from '#hooks/UNSAFE_useTabbableMode';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { StyledCheckbox } from '#PRIVATE_StyledCheckbox';\nimport { CheckIcon } from '#PRIVATE_ThemedIcons/CheckIcon';\nimport { RadioOffIcon } from '#PRIVATE_ThemedIcons/RadioOffIcon';\nimport { RadioOnIcon } from '#PRIVATE_ThemedIcons/RadioOnIcon';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\nimport { useRadioItemContext } from '#UNSAFE_RadioItem/RadioItemContext';\nimport { radioIconVars } from '#UNSAFE_RadioItem/themes/RadioIconContract.css';\nimport { RadioIconVariantOptions } from '#UNSAFE_RadioItem/themes/RadioIconStyles.css';\nimport { radioDefaultColor, radioDisabledColor } from '#UNSAFE_RadioItem/themes/RadioStyles.css';\nimport { RadioIconRedwoodTheme } from '#UNSAFE_RadioItem/themes/redwood/RadioIconTheme';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\n/**\n * Selective Element Props Type.\n */\ntype RichSelectionControlProps = {\n value: string | number;\n inputRef?: RefObject<HTMLInputElement>;\n inputReadonlyRef?: RefObject<HTMLInputElement>;\n isFocus?: boolean;\n isLayoutXL?: boolean;\n isDisabled?: boolean;\n isReadonly?: boolean;\n isSelected?: boolean;\n describedBy?: string;\n labelledBy: string;\n testId?: string;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n};\n\nexport const RadioControl = ({\n value,\n inputRef,\n inputReadonlyRef,\n isFocus,\n isDisabled,\n isLayoutXL,\n isReadonly,\n isSelected,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name, value: radioGroupValue, onCommit } = useRadioSetContext();\n\n const testIdProps = useTestId(testId);\n\n const IconComp = isReadonly\n ? isSelected\n ? CheckIcon\n : RadioOffIcon\n : isSelected\n ? RadioOnIcon\n : RadioOffIcon;\n\n const spanRef = useRef<HTMLSpanElement>(null);\n const { interactionProps, applyActiveStyle } = useInteractionStyle();\n\n const onChangeHandler = useCallback(\n (event: Event) => {\n event.stopPropagation();\n onCommit?.({ previousValue: radioGroupValue, value });\n },\n [value, radioGroupValue, onCommit]\n );\n\n /**\n * When focused the view should have the respective RichSelectionItem.\n */\n useEffect(() => {\n if (isFocus) {\n spanRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, spanRef]);\n\n const radioColor = isDisabled ? radioDisabledColor : radioDefaultColor;\n const { classes: radioIconClasses } = useComponentTheme<RadioIconVariantOptions>(\n RadioIconRedwoodTheme,\n {\n disabled: isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n richSelection: isLayoutXL ? 'isLayoutXL' : 'notLayoutXL'\n }\n );\n\n const { isTabbable } = useTabbableMode();\n const { index } = useRadioItemContext();\n const tabIndex =\n isTabbable !== false && ((index === 0 && !radioGroupValue) || isSelected) ? 0 : -1;\n\n const hiddenInput = (\n <HiddenAccessible>\n <input\n type=\"radio\"\n name={name}\n value={value}\n {...(!isReadonly &&\n !isDisabled && {\n onChange: onChangeHandler\n })}\n checked={isSelected}\n disabled={isDisabled}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n tabIndex={tabIndex}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={isReadonly ? inputReadonlyRef : inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n );\n\n // Radio control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return <span class={styles.inputElement}>{hiddenInput}</span>;\n }\n\n return (\n <span\n ref={spanRef}\n class={classNames([radioColor, isLayoutXL ? styles.radioWrapper : undefined])}>\n {hiddenInput}\n <span aria-hidden=\"true\" class={radioIconClasses} {...interactionProps}>\n <IconComp size={radioIconVars.iconSize} color=\"currentColor\" />\n </span>\n </span>\n );\n};\n\nexport const CheckboxControl = ({\n value,\n inputRef,\n inputReadonlyRef,\n isSelected,\n isLayoutXL,\n isDisabled,\n isReadonly,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name } = useCheckboxSetContext();\n const testIdProps = useTestId(testId);\n const { isTabbable } = useTabbableMode();\n const checkboxStyles = isLayoutXL ? styles.checkboxWrapper : styles.checkboxAlign;\n\n // Checkbox control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return (\n <span class={styles.inputElement}>\n <HiddenAccessible>\n <input\n aria-readonly={true}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n type=\"checkbox\"\n name={name}\n value={value}\n checked={false}\n disabled={isDisabled}\n tabIndex={isTabbable ? 0 : -1}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputReadonlyRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n </span>\n );\n }\n\n return (\n <span class={checkboxStyles}>\n <StyledCheckbox\n aria-describedby={describedBy}\n aria-labelledby={labelledBy}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isChecked={isSelected ? 'checked' : 'unchecked'}\n name={name}\n value={value}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={isReadonly ? inputReadonlyRef : inputRef}\n {...testIdProps}\n />\n </span>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useEffect, useMemo, useRef } from 'preact/hooks';\n\nimport { useFormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useRichSelectionContext } from '#PRIVATE_RichSelectionCommon/RichSelectionContext';\nimport { StyledCard } from '#PRIVATE_StyledCard';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { RichSelectionTextContent } from './RichSelectionTextContent';\nimport { RichSelectionMediaItem } from './RichSelectionMediaItem';\nimport { Flex } from '#UNSAFE_Flex';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { usePress } from '#hooks/UNSAFE_usePress';\nimport { RadioControl, CheckboxControl } from './RichSelectionControl';\nimport { type RichSelectionItemData } from './RichSelectionTypes';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\nimport { useFocusableTextField } from '#hooks/UNSAFE_useFocusableTextField';\nimport { useRichSelectionStartContext } from '#PRIVATE_RichSelectionCommon/RichSelectionStartContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\n\ntype RichSelectionItemProps<V extends string | number> = RichSelectionItemData<V> &\n TestIdProps & {\n /**\n * Specifies if the card is read-only.\n */\n isReadonly?: boolean;\n };\n\nconst onMouseDown = (event: Event) => {\n // Prevent focus from going to the body when the user clicks something within\n // the card that is not focusable. This is important because we are detecting\n // focus loss on the core pack side and showing hidden messages.\n event.preventDefault();\n};\n\n/**\n * `RichSelectionItem` is a customizable input card element used in selection interfaces. It can display a label,\n * optional secondary text, and media (such as an avatar, thumbnail, or icon). It supports both radio and checkbox\n * controls, allowing users to make a single or multiple selections, respectively. The component also handles\n * different states such as disabled, readonly, and focus, and renders dynamically based on layout( 'xl', 'md', or 'sm').\n */\nexport const RichSelectionItem = <V extends string | number>({\n avatar,\n iconClass,\n isReadonly: propsIsReadonly,\n mediaAccessibleLabel,\n secondaryText,\n thumbnailSrc,\n label,\n value,\n testId\n}: RichSelectionItemProps<V>) => {\n const { isReadonly: isFormReadonly, isDisabled: isFormDisabled } = useFormContext();\n const styledCardRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputReadonlyRef = useRef<HTMLInputElement>(null);\n const { selection, layout, messageSeverity } = useRichSelectionContext()!;\n const { isDisabled: isFieldDisabled, isReadonly: isFieldReadonly } = useFormFieldContext();\n const { value: radioGroupValue, onCommit: onRadioCommit } = useRadioSetContext();\n const { value: checkboxGroupValue, onCommit: onCheckboxCommit } = useCheckboxSetContext();\n\n // Determining selection state for error\n const styledCardVariant = messageSeverity === 'error' ? 'danger' : undefined;\n const isDisabled = isFieldDisabled ?? isFormDisabled;\n const isReadonly = isFieldReadonly || isFormReadonly || propsIsReadonly;\n const isEnabled = !isDisabled && !isReadonly;\n const id = useId();\n const isLayoutXL = layout === 'xl';\n const hasMedia = !!avatar || !!thumbnailSrc || !!iconClass;\n const labelId = `${id}-labelled-text`;\n const secondaryTextId = secondaryText ? `${id}-secondary-text` : undefined;\n const isSingleSelection = selection === 'single';\n const isSelected = isSingleSelection\n ? radioGroupValue === value\n : !!checkboxGroupValue?.has(value);\n\n const {\n isFocused: isFocus,\n focusProps: { onFocusIn, onFocusOut },\n methods\n } = useFocusableTextField({\n enabledElementRef: inputRef,\n readonlyElementRef: inputReadonlyRef,\n isReadonly,\n isDisabled\n });\n\n // Scroll into view when the RichSelectionItem is focused\n useEffect(() => {\n if (isFocus) {\n styledCardRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, styledCardRef]);\n\n // Text content of label and secondaryText rendering\n const textContent = (\n <RichSelectionTextContent\n secondaryTextId={secondaryTextId}\n labelId={labelId}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n label={label}\n secondaryText={secondaryText}\n />\n );\n\n // Media content rendering based on available media props respective to layout\n const media = avatar\n ? { avatar, mediaAccessibleLabel, layout: layout as 'md' | 'sm' }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel, layout: layout as 'xl' | 'md' | 'sm' }\n : iconClass\n ? { iconClass, layout: layout as 'sm' }\n : undefined;\n\n const mediaContent = hasMedia ? (\n <RichSelectionMediaItem\n {...media}\n isDisabled={isDisabled}\n hasSecondaryText={!!secondaryText}\n testId={testId ? `${testId}_media` : undefined}\n />\n ) : undefined;\n\n // Selection control rendering (radio or checkbox)\n const selectionControl = (\n <Flex align={secondaryText ? 'start' : 'center'}>\n {isSingleSelection ? (\n <RadioControl\n onFocus={onFocusIn}\n onBlur={onFocusOut}\n value={value}\n inputRef={inputRef}\n inputReadonlyRef={inputReadonlyRef}\n isFocus={isFocus}\n isLayoutXL={isLayoutXL}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_radio` : undefined}\n />\n ) : (\n <CheckboxControl\n onFocus={onFocusIn}\n onBlur={onFocusOut}\n value={value}\n inputRef={inputRef}\n inputReadonlyRef={inputReadonlyRef}\n isFocus={isFocus}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_checkbox` : undefined}\n />\n )}\n </Flex>\n );\n\n // Handler for checkbox selection changes\n const triggerCheckBoxAction = useCallback(() => {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n methods.focus();\n\n const newGroupValue = new Set(checkboxGroupValue);\n // If the value is already selected, remove it; otherwise, add it\n if (newGroupValue.has(value)) {\n newGroupValue.delete(value);\n } else {\n newGroupValue.add(value);\n }\n onCheckboxCommit?.({\n previousValue: checkboxGroupValue,\n value: newGroupValue.size > 0 ? newGroupValue : undefined\n });\n }, [checkboxGroupValue, methods, onCheckboxCommit, value]);\n\n // Handler for radio selection changes\n const triggerRadioAction = useCallback(() => {\n if (radioGroupValue !== value) {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n methods.focus();\n\n onRadioCommit?.({\n previousValue: radioGroupValue,\n value: value\n });\n }\n }, [radioGroupValue, value, methods, onRadioCommit]);\n\n // due to the placement of the start label in rich selection, we need to check if the first item contains media or secondary text.\n const startData = useMemo(\n () => ({ hasMedia, hasSecondaryText: !!secondaryText }),\n [hasMedia, secondaryText]\n );\n const richSelectionStartContext = useRichSelectionStartContext();\n if (richSelectionStartContext?.isFirst) {\n richSelectionStartContext?.setStartData?.(startData);\n }\n\n // Event handlers for the interaction of the StyledCard\n const { pressProps } = usePress(isSingleSelection ? triggerRadioAction : triggerCheckBoxAction, {\n isDisabled: !isEnabled\n });\n\n return (\n <StyledCard\n cursor={isEnabled ? 'pointer' : 'arrow'}\n display=\"inlineFlex\"\n height=\"100%\"\n isDisabled={!isEnabled}\n isFocusWithin={isFocus}\n isSelected={styledCardVariant !== 'danger' && isEnabled && isSelected}\n onMouseDown={onMouseDown}\n parentComponentVariant=\"richSelectionItemCard\"\n ref={styledCardRef}\n role=\"listitem\"\n styleVariant={styledCardVariant}\n testId={testId ? `${testId}_styled_card` : undefined}\n width=\"100%\"\n {...(isReadonly ? { onClick: () => methods.focus() } : pressProps)}>\n {isLayoutXL ? (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n {mediaContent}\n <div class={styles.selectionElement}>{selectionControl}</div>\n {textContent}\n </Flex>\n ) : (\n <div\n className={classNames([\n styles.densityWrapper,\n // if the item has a sm/md layout, without media or secondary text,\n // we need to set the min height of the card to match the start label\n !isLayoutXL &&\n !hasMedia &&\n !secondaryText &&\n richSelectionStartContext !== null &&\n styles.startMinHeight\n ])}>\n <Flex direction=\"row\" gap=\"4x\" height=\"100%\" width=\"100%\">\n {selectionControl}\n {textContent}\n {mediaContent}\n </Flex>\n </div>\n )}\n </StyledCard>\n );\n};\n"],"names":["_jsx","TruncatingText","classNames","styles","_jsxs","useTestId","AspectRatio","Avatar","Center","View","useRadioSetContext","CheckIcon","RadioOffIcon","RadioOnIcon","useRef","useInteractionStyle","useCallback","useEffect","radioDisabledColor","radioDefaultColor","useComponentTheme","RadioIconRedwoodTheme","useTabbableMode","useRadioItemContext","HiddenAccessible","radioIconVars","useCheckboxSetContext","StyledCheckbox","useFormContext","useRichSelectionContext","useFormFieldContext","useId","useFocusableTextField","Flex","useMemo","useRichSelectionStartContext","usePress","StyledCard"],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var TextArea = require('./TextArea-f4a84aab.js');
6
+ var TextArea = require('./TextArea-a11875f3.js');
7
+ var MaxLengthCounter = require('./MaxLengthCounter-9ab3f74b.js');
7
8
  require('preact/jsx-runtime');
8
9
  require('preact/compat');
9
10
  require('./FormContext-9452bd30.js');
@@ -258,12 +259,12 @@ require('./CompactUserAssistance-b3c3929e.js');
258
259
  require('./Separator-85962472.js');
259
260
  require('./useLengthFilter-d4cb6f47.js');
260
261
  require('./lengthFilter-88f15099.js');
261
-
262
262
  require('./useCurrentValueReducer-f37ac024.js');
263
263
  require('./useSelectableTextField-892b62db.js');
264
264
 
265
265
 
266
266
 
267
- exports.MaxLengthCounter = TextArea.MaxLengthCounter;
267
+
268
268
  exports.TextArea = TextArea.TextArea;
269
+ exports.MaxLengthCounter = MaxLengthCounter.MaxLengthCounter;
269
270
  //# sourceMappingURL=UNSAFE_TextArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UNSAFE_TextArea.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UNSAFE_TextArea.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var TextAreaAutosize = require('./TextAreaAutosize-08ca17cf.js');
6
+ var TextAreaAutosize = require('./TextAreaAutosize-5a8e8335.js');
7
7
  require('preact/jsx-runtime');
8
8
  require('preact/compat');
9
9
  require('./FormContext-9452bd30.js');
@@ -259,9 +259,9 @@ require('./Separator-85962472.js');
259
259
  require('./useLengthFilter-d4cb6f47.js');
260
260
  require('./lengthFilter-88f15099.js');
261
261
  require('./useCurrentValueReducer-f37ac024.js');
262
- require('./TextArea-f4a84aab.js');
263
-
264
262
  require('./useSelectableTextField-892b62db.js');
263
+ require('./MaxLengthCounter-9ab3f74b.js');
264
+
265
265
 
266
266
 
267
267
 
@@ -0,0 +1,49 @@
1
+ /* @oracle/oraclejet-preact: undefined */
2
+ import { jsx } from 'preact/jsx-runtime';
3
+ import { createContext, toChildArray } from 'preact';
4
+ import { useContext, useMemo } from 'preact/hooks';
5
+ import { forwardRef } from 'preact/compat';
6
+ import './FormContext-4d71f9c7.js';
7
+ import { u as useFormContext } from './useFormContext-875cacd7.js';
8
+ import { F as FormFieldContext } from './FormFieldContext-68eb5946.js';
9
+ import { u as useFormFieldContextProps } from './useFormFieldContextProps-d07cd618.js';
10
+ import './CheckboxSetStyles.styles.css';
11
+ import { u as useId } from './useId-03dbfdf0.js';
12
+ import { C as CheckboxRadioField } from './CheckboxRadioField-922ab9ff.js';
13
+
14
+ const CheckboxSetContext = createContext({});
15
+ const useCheckboxSetContext = () => useContext(CheckboxSetContext);
16
+
17
+ var styles = {ul:'CheckboxSetStyles_styles_ul__68p6630'};
18
+
19
+ /**
20
+ * A CheckboxSet allows the user to select one or more options from a set.
21
+ */
22
+ const CheckboxSet = forwardRef(({ 'aria-describedby': ariaDescribedBy, assistiveText, columnSpan, direction = 'column', helpSourceLink, helpSourceText, isDisabled: propIsDisabled, isReadonly: propIsReadonly, isRequired = false, label, labelEdge: propLabelEdge, labelStartWidth: propLabelStartWidth, messages, onCommit, userAssistanceDensity: propUserAssistanceDensity, value, children, testId }, ref) => {
23
+ const hasValue = value !== undefined ? value.size > 0 : false;
24
+ const baseId = useId();
25
+ const { isDisabled: isFormDisabled, isReadonly: isFormReadonly, labelEdge: formLabelEdge, labelStartWidth: formLabelStartWidth, userAssistanceDensity: formUserAssistanceDensity } = useFormContext();
26
+ // default to FormContext values if component properties are not specified
27
+ const isDisabled = propIsDisabled ?? isFormDisabled;
28
+ const isReadonly = propIsReadonly ?? isFormReadonly;
29
+ const labelEdge = propLabelEdge ?? formLabelEdge;
30
+ const labelStartWidth = propLabelStartWidth ?? formLabelStartWidth;
31
+ const userAssistanceDensity = propUserAssistanceDensity ?? formUserAssistanceDensity;
32
+ const formFieldContext = useFormFieldContextProps({
33
+ hasValue,
34
+ isDisabled,
35
+ isReadonly
36
+ });
37
+ const checkboxSetContext = useMemo(() => ({
38
+ name: baseId,
39
+ value,
40
+ onCommit
41
+ }), [baseId, onCommit, value]);
42
+ // wrap each CheckboxItem in an <li> tag and the entire set with <ul>
43
+ const childrenArray = toChildArray(children).filter(Boolean);
44
+ const wrappedChildren = childrenArray.map((item) => jsx("li", { children: item }));
45
+ return (jsx(FormFieldContext.Provider, { value: formFieldContext, children: jsx(CheckboxRadioField, { "aria-describedby": ariaDescribedBy, assistiveText: assistiveText, baseId: baseId, columnSpan: columnSpan, direction: direction, helpSourceLink: helpSourceLink, helpSourceText: helpSourceText, isDisabled: isDisabled, isReadonly: isReadonly, isRequired: isRequired, label: label, labelEdge: labelEdge, labelStartWidth: labelStartWidth, parentComponentVariant: "checkboxSet", messages: messages, userAssistanceDensity: userAssistanceDensity, hasValue: hasValue, role: "group", testId: testId, ref: ref, children: jsx(CheckboxSetContext.Provider, { value: checkboxSetContext, children: jsx("ul", { className: styles.ul, children: wrappedChildren }) }) }) }));
46
+ });
47
+
48
+ export { CheckboxSet as C, CheckboxSetContext as a, useCheckboxSetContext as u };
49
+ //# sourceMappingURL=CheckboxSet-28953b25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxSet-abbf7a03.js","sources":["../../src/UNSAFE_CheckboxSet/CheckboxSetContext.ts","../../src/UNSAFE_CheckboxSet/CheckboxSet.tsx"],"sourcesContent":["import { createContext } from 'preact';\nimport { useContext } from 'preact/hooks';\n\nimport { ValueUpdateDetail } from '../utils/UNSAFE_valueUpdateDetail';\n\ntype CheckboxSetContextValue = {\n name: string;\n value?: Set<string | number>;\n onCommit?: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n};\n\nconst CheckboxSetContext = createContext<CheckboxSetContextValue>({} as CheckboxSetContextValue);\nconst useCheckboxSetContext = () => useContext(CheckboxSetContext);\n\nexport { CheckboxSetContext, useCheckboxSetContext };\n","import { ComponentChildren, ComponentProps, Ref, toChildArray } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { CheckboxSetContext } from './CheckboxSetContext';\nimport { CheckboxRadioField } from '#PRIVATE_CheckboxRadioField';\nimport { InlineUserAssistance, UserAssistanceDensityType } from '#UNSAFE_UserAssistance';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { FormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useFormFieldContextProps } from '#hooks/UNSAFE_useFormFieldContextProps';\nimport { FlexboxProps } from '#utils/UNSAFE_interpolations/flexbox';\nimport { Size } from '#utils/UNSAFE_size';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { FocusableHandle } from '#hooks/UNSAFE_useFocusableTextField';\nimport { styles } from './CheckboxSetStyles.css';\nimport { AriaAttributesSignalExcluded } from '#utils/UNSAFE_attributeUtils';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { LayoutColumnSpan } from '#utils/UNSAFE_styles/Layout';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\n\ntype InlineUserAssistanceProps = ComponentProps<typeof InlineUserAssistance>;\n\ntype Props = {\n /**\n * The ID of an element (or space separated IDs of multiple elements) that\n * describes the input.\n */\n 'aria-describedby'?: AriaAttributesSignalExcluded['aria-describedby'];\n /**\n * Text to provide guidance to help the user understand what data to enter.\n */\n assistiveText?: InlineUserAssistanceProps['assistiveText'];\n /**\n * set of CheckboxItems\n */\n children: ComponentChildren;\n /**\n * Specifies how many columns to span in a FormLayout with direction === 'row'\n */\n columnSpan?: LayoutColumnSpan;\n /**\n * layout direction of the children elements\n */\n direction?: FlexboxProps['direction'];\n /**\n * Help source URL associated with the component.\n */\n helpSourceLink?: InlineUserAssistanceProps['helpSourceLink'];\n /**\n * Custom text to be rendered for the <code>helpSourceLink</code>.\n */\n helpSourceText?: InlineUserAssistanceProps['helpSourceText'];\n /**\n * Specifies whether the checkbox set requires a selection to be made.\n */\n isRequired?: boolean;\n /**\n * Specifies if the checkbox set is read-only.\n */\n isReadonly?: boolean;\n /**\n * Specifies if the checkbox set is disabled.\n */\n isDisabled?: boolean;\n /**\n * Label text for the group of checkbox items.\n */\n label: string;\n /**\n * Specifies where the label is positioned relative to the field.\n */\n labelEdge?: 'none' | 'top' | 'start' | 'inside';\n /**\n * Specifies the width of the label when <code>labelEdge</code> is <code>\"start\"</code>.\n */\n labelStartWidth?: Size;\n /**\n * Messages to show on screen that are associated with the component.\n */\n messages?: InlineUserAssistanceProps['messages'];\n /**\n * Callback invoked each time the user changes selected option.\n */\n onCommit: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n /**\n * Specifies the density of the user assistance presentation. It can be set to:\n * <ul>\n * <li><code>'reflow'</code>: Show inline. Layout will reflow when text is displayed.</li>\n * <li><code>'efficient'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * <li><code>'compact'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * </ul>\n */\n userAssistanceDensity?: UserAssistanceDensityType;\n /**\n * Value of the selected checkbox option.\n */\n value?: Set<string | number>;\n} & TestIdProps;\n/**\n * A CheckboxSet allows the user to select one or more options from a set.\n */\nexport const CheckboxSet = forwardRef(\n (\n {\n 'aria-describedby': ariaDescribedBy,\n assistiveText,\n columnSpan,\n direction = 'column',\n helpSourceLink,\n helpSourceText,\n isDisabled: propIsDisabled,\n isReadonly: propIsReadonly,\n isRequired = false,\n label,\n labelEdge: propLabelEdge,\n labelStartWidth: propLabelStartWidth,\n messages,\n onCommit,\n userAssistanceDensity: propUserAssistanceDensity,\n value,\n children,\n testId\n }: Props,\n ref?: Ref<FocusableHandle>\n ) => {\n const hasValue = value !== undefined ? value.size > 0 : false;\n const baseId = useId();\n\n const {\n isDisabled: isFormDisabled,\n isReadonly: isFormReadonly,\n labelEdge: formLabelEdge,\n labelStartWidth: formLabelStartWidth,\n userAssistanceDensity: formUserAssistanceDensity\n } = useFormContext();\n\n // default to FormContext values if component properties are not specified\n const isDisabled = propIsDisabled ?? isFormDisabled;\n const isReadonly = propIsReadonly ?? isFormReadonly;\n const labelEdge = propLabelEdge ?? formLabelEdge;\n const labelStartWidth = propLabelStartWidth ?? formLabelStartWidth;\n const userAssistanceDensity = propUserAssistanceDensity ?? formUserAssistanceDensity;\n\n const formFieldContext = useFormFieldContextProps({\n hasValue,\n isDisabled,\n isReadonly\n });\n\n const checkboxSetContext = useMemo(\n () => ({\n name: baseId,\n value,\n onCommit\n }),\n [baseId, onCommit, value]\n );\n\n // wrap each CheckboxItem in an <li> tag and the entire set with <ul>\n const childrenArray = toChildArray(children).filter(Boolean);\n const wrappedChildren = childrenArray.map((item) => <li>{item}</li>);\n\n return (\n <FormFieldContext.Provider value={formFieldContext}>\n <CheckboxRadioField\n aria-describedby={ariaDescribedBy}\n assistiveText={assistiveText}\n baseId={baseId}\n columnSpan={columnSpan}\n direction={direction}\n helpSourceLink={helpSourceLink}\n helpSourceText={helpSourceText}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isRequired={isRequired}\n label={label}\n labelEdge={labelEdge}\n labelStartWidth={labelStartWidth}\n parentComponentVariant=\"checkboxSet\"\n messages={messages}\n userAssistanceDensity={userAssistanceDensity}\n hasValue={hasValue}\n role=\"group\"\n testId={testId}\n ref={ref}>\n <CheckboxSetContext.Provider value={checkboxSetContext}>\n <ul className={styles.ul}>{wrappedChildren}</ul>\n </CheckboxSetContext.Provider>\n </CheckboxRadioField>\n </FormFieldContext.Provider>\n );\n }\n);\n"],"names":["createContext","useContext","forwardRef","useId","useFormContext","useFormFieldContextProps","useMemo","toChildArray","_jsx","FormFieldContext","CheckboxRadioField"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxSet-28953b25.js","sources":["../../src/UNSAFE_CheckboxSet/CheckboxSetContext.ts","../../src/UNSAFE_CheckboxSet/CheckboxSet.tsx"],"sourcesContent":["import { createContext } from 'preact';\nimport { useContext } from 'preact/hooks';\n\nimport { ValueUpdateDetail } from '../utils/UNSAFE_valueUpdateDetail';\n\ntype CheckboxSetContextValue = {\n name: string;\n value?: Set<string | number>;\n onCommit?: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n};\n\nconst CheckboxSetContext = createContext<CheckboxSetContextValue>({} as CheckboxSetContextValue);\nconst useCheckboxSetContext = () => useContext(CheckboxSetContext);\n\nexport { CheckboxSetContext, useCheckboxSetContext };\n","import { ComponentChildren, ComponentProps, Ref, toChildArray } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { CheckboxSetContext } from './CheckboxSetContext';\nimport { CheckboxRadioField } from '#PRIVATE_CheckboxRadioField';\nimport { InlineUserAssistance, UserAssistanceDensityType } from '#UNSAFE_UserAssistance';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { FormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useFormFieldContextProps } from '#hooks/UNSAFE_useFormFieldContextProps';\nimport { FlexboxProps } from '#utils/UNSAFE_interpolations/flexbox';\nimport { Size } from '#utils/UNSAFE_size';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { FocusableHandle } from '#hooks/UNSAFE_useFocusableTextField';\nimport { styles } from './CheckboxSetStyles.css';\nimport { AriaAttributesSignalExcluded } from '#utils/UNSAFE_attributeUtils';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { LayoutColumnSpan } from '#utils/UNSAFE_styles/Layout';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\n\ntype InlineUserAssistanceProps = ComponentProps<typeof InlineUserAssistance>;\n\ntype Props = {\n /**\n * The ID of an element (or space separated IDs of multiple elements) that\n * describes the input.\n */\n 'aria-describedby'?: AriaAttributesSignalExcluded['aria-describedby'];\n /**\n * Text to provide guidance to help the user understand what data to enter.\n */\n assistiveText?: InlineUserAssistanceProps['assistiveText'];\n /**\n * set of CheckboxItems\n */\n children: ComponentChildren;\n /**\n * Specifies how many columns to span in a FormLayout with direction === 'row'\n */\n columnSpan?: LayoutColumnSpan;\n /**\n * layout direction of the children elements\n */\n direction?: FlexboxProps['direction'];\n /**\n * Help source URL associated with the component.\n */\n helpSourceLink?: InlineUserAssistanceProps['helpSourceLink'];\n /**\n * Custom text to be rendered for the <code>helpSourceLink</code>.\n */\n helpSourceText?: InlineUserAssistanceProps['helpSourceText'];\n /**\n * Specifies whether the checkbox set requires a selection to be made.\n */\n isRequired?: boolean;\n /**\n * Specifies if the checkbox set is read-only.\n */\n isReadonly?: boolean;\n /**\n * Specifies if the checkbox set is disabled.\n */\n isDisabled?: boolean;\n /**\n * Label text for the group of checkbox items.\n */\n label: string;\n /**\n * Specifies where the label is positioned relative to the field.\n */\n labelEdge?: 'none' | 'top' | 'start' | 'inside';\n /**\n * Specifies the width of the label when <code>labelEdge</code> is <code>\"start\"</code>.\n */\n labelStartWidth?: Size;\n /**\n * Messages to show on screen that are associated with the component.\n */\n messages?: InlineUserAssistanceProps['messages'];\n /**\n * Callback invoked each time the user changes selected option.\n */\n onCommit: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n /**\n * Specifies the density of the user assistance presentation. It can be set to:\n * <ul>\n * <li><code>'reflow'</code>: Show inline. Layout will reflow when text is displayed.</li>\n * <li><code>'efficient'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * <li><code>'compact'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * </ul>\n */\n userAssistanceDensity?: UserAssistanceDensityType;\n /**\n * Value of the selected checkbox option.\n */\n value?: Set<string | number>;\n} & TestIdProps;\n/**\n * A CheckboxSet allows the user to select one or more options from a set.\n */\nexport const CheckboxSet = forwardRef(\n (\n {\n 'aria-describedby': ariaDescribedBy,\n assistiveText,\n columnSpan,\n direction = 'column',\n helpSourceLink,\n helpSourceText,\n isDisabled: propIsDisabled,\n isReadonly: propIsReadonly,\n isRequired = false,\n label,\n labelEdge: propLabelEdge,\n labelStartWidth: propLabelStartWidth,\n messages,\n onCommit,\n userAssistanceDensity: propUserAssistanceDensity,\n value,\n children,\n testId\n }: Props,\n ref?: Ref<FocusableHandle>\n ) => {\n const hasValue = value !== undefined ? value.size > 0 : false;\n const baseId = useId();\n\n const {\n isDisabled: isFormDisabled,\n isReadonly: isFormReadonly,\n labelEdge: formLabelEdge,\n labelStartWidth: formLabelStartWidth,\n userAssistanceDensity: formUserAssistanceDensity\n } = useFormContext();\n\n // default to FormContext values if component properties are not specified\n const isDisabled = propIsDisabled ?? isFormDisabled;\n const isReadonly = propIsReadonly ?? isFormReadonly;\n const labelEdge = propLabelEdge ?? formLabelEdge;\n const labelStartWidth = propLabelStartWidth ?? formLabelStartWidth;\n const userAssistanceDensity = propUserAssistanceDensity ?? formUserAssistanceDensity;\n\n const formFieldContext = useFormFieldContextProps({\n hasValue,\n isDisabled,\n isReadonly\n });\n\n const checkboxSetContext = useMemo(\n () => ({\n name: baseId,\n value,\n onCommit\n }),\n [baseId, onCommit, value]\n );\n\n // wrap each CheckboxItem in an <li> tag and the entire set with <ul>\n const childrenArray = toChildArray(children).filter(Boolean);\n const wrappedChildren = childrenArray.map((item) => <li>{item}</li>);\n\n return (\n <FormFieldContext.Provider value={formFieldContext}>\n <CheckboxRadioField\n aria-describedby={ariaDescribedBy}\n assistiveText={assistiveText}\n baseId={baseId}\n columnSpan={columnSpan}\n direction={direction}\n helpSourceLink={helpSourceLink}\n helpSourceText={helpSourceText}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isRequired={isRequired}\n label={label}\n labelEdge={labelEdge}\n labelStartWidth={labelStartWidth}\n parentComponentVariant=\"checkboxSet\"\n messages={messages}\n userAssistanceDensity={userAssistanceDensity}\n hasValue={hasValue}\n role=\"group\"\n testId={testId}\n ref={ref}>\n <CheckboxSetContext.Provider value={checkboxSetContext}>\n <ul className={styles.ul}>{wrappedChildren}</ul>\n </CheckboxSetContext.Provider>\n </CheckboxRadioField>\n </FormFieldContext.Provider>\n );\n }\n);\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;AAWA,MAAM,kBAAkB,GAAG,aAAa,CAA0B,EAA6B,EAAE;AAC3F,MAAA,qBAAqB,GAAG,MAAM,UAAU,CAAC,kBAAkB;;;;ACwFjE;;AAEG;AACI,MAAM,WAAW,GAAG,UAAU,CACnC,CACE,EACE,kBAAkB,EAAE,eAAe,EACnC,aAAa,EACb,UAAU,EACV,SAAS,GAAG,QAAQ,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,UAAU,GAAG,KAAK,EAClB,KAAK,EACL,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,mBAAmB,EACpC,QAAQ,EACR,QAAQ,EACR,qBAAqB,EAAE,yBAAyB,EAChD,KAAK,EACL,QAAQ,EACR,MAAM,EACA,EACR,GAA0B,KACxB;AACF,IAAA,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9D,IAAA,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IAEvB,MAAM,EACJ,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,mBAAmB,EACpC,qBAAqB,EAAE,yBAAyB,EACjD,GAAG,cAAc,EAAE,CAAC;;AAGrB,IAAA,MAAM,UAAU,GAAG,cAAc,IAAI,cAAc,CAAC;AACpD,IAAA,MAAM,UAAU,GAAG,cAAc,IAAI,cAAc,CAAC;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,IAAI,aAAa,CAAC;AACjD,IAAA,MAAM,eAAe,GAAG,mBAAmB,IAAI,mBAAmB,CAAC;AACnE,IAAA,MAAM,qBAAqB,GAAG,yBAAyB,IAAI,yBAAyB,CAAC;IAErF,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;QAChD,QAAQ;QACR,UAAU;QACV,UAAU;AACX,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,kBAAkB,GAAG,OAAO,CAChC,OAAO;AACL,QAAA,IAAI,EAAE,MAAM;QACZ,KAAK;QACL,QAAQ;KACT,CAAC,EACF,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAC1B,CAAC;;IAGF,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAA,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,IAAI,EAAA,CAAM,CAAC,CAAC;IAErE,QACEA,GAAC,CAAA,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,EAAA,QAAA,EAChDA,GAAC,CAAA,kBAAkB,wBACC,eAAe,EACjC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAC,aAAa,EACpC,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC5C,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,QAAA,EAAAA,GAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,kBAAkB,EAAA,QAAA,EACpDA,YAAI,SAAS,EAAE,MAAM,CAAC,EAAE,EAAA,QAAA,EAAG,eAAe,EAAA,CAAM,EACpB,CAAA,EAAA,CACX,EACK,CAAA,EAC5B;AACJ,CAAC;;;;"}
@@ -46,7 +46,7 @@ import { b as beforeVNode } from './componentUtils-4681ea5c.js';
46
46
  import { C as ClearIcon } from './ClearIcon-29781882.js';
47
47
  import { u as useCurrentValueReducer } from './useCurrentValueReducer-bdf796fa.js';
48
48
  import { u as useSelectableTextField } from './useSelectableTextField-949184a5.js';
49
- import { R as RevealToggleIcon } from './RevealToggleIcon-2f49fd19.js';
49
+ import { R as RevealToggleIcon } from './RevealToggleIcon-35baaadf.js';
50
50
 
51
51
  // One way InputPassword differs from InputText is InputPassword's readonly
52
52
  // is implemented with an <input> and not a <div>.
@@ -195,7 +195,7 @@ function _getPreferredSize(_width, _height, items, resolvedVars, orientation, le
195
195
  */
196
196
  const Legend = forwardRef(({ orientation = 'horizontal', items, isReadOnly = true, onItemAction, onItemHover, onItemFocus, testId, contextMenuConfig, hideAndShowBehavior = 'off', hoverBehavior = 'none', halign = 'start', valign = 'top', ...props }, ref = null) => {
197
197
  // Use the context
198
- const { isLegendReady, width, height } = useContext(LegendRenderedContext);
198
+ const { isGetPreferredSizeReady, width, height } = useContext(LegendRenderedContext);
199
199
  const { textMeasureContent, getTextDimensions } = useTextDimensions();
200
200
  const { resolvedVars, cssContent } = useCssVars(legendVars);
201
201
  const legendFontStylesObj = getLegendTextStyle({
@@ -221,7 +221,7 @@ const Legend = forwardRef(({ orientation = 'horizontal', items, isReadOnly = tru
221
221
  if (getTextDimensions &&
222
222
  resolvedVars['unit'] != undefined &&
223
223
  resolvedVars['fontSize'] != undefined) {
224
- isLegendReady?.(true);
224
+ isGetPreferredSizeReady?.(true);
225
225
  }
226
226
  const testIdProps = useTestId(testId);
227
227
  const isTestEnv = testIdProps['data-testid'] !== undefined;
@@ -270,7 +270,7 @@ const Legend = forwardRef(({ orientation = 'horizontal', items, isReadOnly = tru
270
270
  });
271
271
  const mergedProps = mergeProps(eventsProps, datatipProps, contextMenuProps, dndProps);
272
272
  const { legendStyle, renderedLegendStyle } = styles;
273
- return (jsxs(Fragment, { children: [!isLegendReady && (jsx(TrackResizeContainer, { width: width ? `${width}px` : '100%', height: height ? `${height}px` : '100%', class: classNames([
273
+ return (jsxs(Fragment, { children: [!isGetPreferredSizeReady && (jsx(TrackResizeContainer, { width: width ? `${width}px` : '100%', height: height ? `${height}px` : '100%', class: classNames([
274
274
  styles.flexStyle,
275
275
  styles[`${halign}HAlign`],
276
276
  styles[`${valign}VAlign`]
@@ -299,4 +299,4 @@ const Legend = forwardRef(({ orientation = 'horizontal', items, isReadOnly = tru
299
299
  });
300
300
 
301
301
  export { Legend as L };
302
- //# sourceMappingURL=Legend-a60126aa.js.map
302
+ //# sourceMappingURL=Legend-0e274097.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Legend-0e274097.js","sources":["../../src/UNSAFE_Legend/legendNavUtils.ts","../../src/UNSAFE_Legend/getLegendLayout.ts","../../src/UNSAFE_Legend/Legend.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport {\n ItemActionDetail,\n ItemFocusDetail,\n ItemHoverDetail,\n ItemInfo,\n LegendItemData\n} from '#utils/UNSAFE_visTypes/legend';\n\nfunction getItem<K, D extends LegendItemData<K>>(itemInfo: ItemInfo, items: D[]) {\n const { itemIdx } = itemInfo;\n\n if (itemIdx == -1) {\n return items[items.length - 1];\n }\n return items[itemIdx];\n}\n\nfunction getNextItemInfo<K>(itemInfo: ItemInfo, items: LegendItemData<K>[]) {\n let itemIdx = itemInfo.itemIdx;\n\n if (itemIdx == -1) {\n itemIdx = items.length - 1;\n }\n\n itemIdx = Math.min(items.length - 1, itemIdx + 1);\n if (items[itemIdx].actionable !== 'off') {\n return { sectionIdx: 0, itemIdx };\n } else if (itemIdx === items.length - 1) {\n itemIdx = itemIdx - 1;\n return { sectionIdx: 0, itemIdx };\n }\n\n return getNextItemInfo({ sectionIdx: 0, itemIdx }, items);\n}\n\nfunction getPrevItemInfo<K>(itemInfo: ItemInfo, items: LegendItemData<K>[]) {\n let itemIdx = itemInfo.itemIdx;\n\n if (itemIdx == -1) {\n itemIdx = items.length - 1;\n }\n\n itemIdx = Math.max(0, itemIdx - 1);\n if (items[itemIdx].actionable !== 'off') {\n return { sectionIdx: 0, itemIdx };\n }\n\n return getPrevItemInfo({ sectionIdx: 0, itemIdx }, items);\n}\n\n/**\n * Returns utils functions for navigation in simple legend.\n * @param items\n * @returns\n */\nexport function getLegendNavUtils<K extends string | number, D extends LegendItemData<K>>(\n items: D[]\n) {\n return {\n getItem: (itemInfo: ItemInfo) => {\n return getItem(itemInfo, items);\n },\n getDetailFromInfo: (\n itemInfo?: ItemInfo\n ): ItemFocusDetail<K, D> | ItemHoverDetail<K, D> | ItemActionDetail<K, D> => {\n if (!itemInfo || items.length === 0) {\n return { itemId: undefined, data: undefined };\n }\n const item = getItem(itemInfo, items);\n return { itemId: item.id, data: item };\n },\n getPrevItemInfo: (itemInfo: ItemInfo) => {\n return getPrevItemInfo(itemInfo, items);\n },\n getNextItemInfo: (itemInfo: ItemInfo) => {\n return getNextItemInfo(itemInfo, items);\n }\n };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { LegendItemData } from '#utils/UNSAFE_visTypes/legend';\nimport { Font, TextDimensions, useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { getGridNums } from '#utils/PRIVATE_legendUtils/legendUtils';\n\ntype Props<K> = {\n width: number;\n getTextDimensions?: ((textString: string, font?: Font | undefined) => TextDimensions) | undefined;\n resolvedVars: Record<string, any>;\n orientation?: 'vertical' | 'horizontal';\n legendFontStylesObj?: Font;\n symbolWidth?: number;\n symbolHeight?: number;\n items: LegendItemData<K>[];\n};\nexport type LayoutInfo = {\n totalWidth: number;\n maxItemWidth: number;\n maxItemHeight: number;\n itemsPerRow: number;\n isWrapped?: boolean;\n};\ntype getTextDimensionsType = NonNullable<\n NonNullable<ReturnType<typeof useTextDimensions>>['getTextDimensions']\n>;\n\nexport const getLinearLegendLayoutInfo = <K>({\n width,\n getTextDimensions,\n resolvedVars,\n orientation,\n legendFontStylesObj = {},\n symbolWidth,\n items\n}: Props<K>) => {\n let maxWidth = 0;\n let maxHeight = 0;\n let totalWidth = 0;\n let isWrapped = false;\n\n const containerWidth = width;\n\n if (!Object.keys(resolvedVars).length || !getTextDimensions) {\n return;\n }\n\n const unitLength = parseFloat(resolvedVars['unit']);\n\n const { maxItemWidth, maxItemHeight, horizontalSectionWidth } = getMaxWidth(\n items,\n unitLength,\n getTextDimensions,\n legendFontStylesObj,\n symbolWidth\n );\n totalWidth = horizontalSectionWidth;\n maxWidth = maxItemWidth;\n maxHeight = maxItemHeight;\n isWrapped = horizontalSectionWidth > containerWidth!;\n\n const legendLayoutInfo = {\n totalWidth,\n maxItemWidth: Math.min(maxWidth, containerWidth!),\n maxItemHeight: maxHeight,\n itemsPerRow:\n orientation === 'vertical' ? 1 : Math.max(1, Math.floor(containerWidth / maxWidth)),\n isWrapped\n };\n\n return legendLayoutInfo;\n};\n\n/**\n * Returns maximum of the width among the items in a section of legend also return the width of the entire section.\n * @param items Legend items array\n * @param unitLength Base element\n * @param getTextDimensions Text width measurement function\n * @param legendFontStylesObj Legend text font style properties object\n * @param symbolWidth Width of legend symbol\n *\n * @returns\n */\nconst getMaxWidth = <K>(\n items: LegendItemData<K>[],\n unitLength: number,\n getTextDimensions: getTextDimensionsType,\n legendFontStylesObj?: Font,\n symbolWidth?: number,\n symbolHeight?: number\n) => {\n let maxItemWidth = 0;\n let maxItemHeight = 0;\n let horizontalSectionWidth = 0;\n let itemSymbolWidth = 0;\n let itemSymbolHeight = 0;\n if (symbolWidth) {\n itemSymbolWidth = unitLength * 1.5 + symbolWidth;\n } else {\n //itemSymbolWidth = marginLeft + marginRight + width below expression is simplified\n itemSymbolWidth = 4 * unitLength;\n }\n\n if (symbolHeight) {\n // symbolHeight/defaultSymbolHeight + symbolPaddingTopBottom\n itemSymbolHeight = symbolHeight + unitLength * 1.7;\n } else {\n // symbolHeight/defaultSymbolHeight + symbolPaddingTopBottom\n itemSymbolHeight = 2.5 * unitLength + unitLength * 1.7;\n }\n\n items?.forEach((item) => {\n const legendItem = item as LegendItemData<K>;\n const { width, height } = getTextDimensions(legendItem.text, legendFontStylesObj);\n //itemTextWidth = paddingLeft + paddingRight + width\n const itemTextWidth = unitLength * 2.5 + width;\n //horizontalSectionWidth = total width of the section\n horizontalSectionWidth += itemSymbolWidth + itemTextWidth;\n maxItemWidth = Math.max(maxItemWidth, itemSymbolWidth + itemTextWidth);\n maxItemHeight = Math.max(maxItemHeight, height, itemSymbolHeight);\n });\n\n return { maxItemWidth, maxItemHeight, horizontalSectionWidth };\n};\n\nexport function _getPreferredSize<K>(\n _width: number,\n _height: number,\n items: LegendItemData<K>[],\n resolvedVars: Record<string, any>,\n orientation: 'vertical' | 'horizontal',\n legendFontStylesObj: Record<string, any>,\n symbolWidth?: number,\n symbolHeight?: number,\n getTextDimensions?: (textString: string, font?: Font | undefined) => TextDimensions\n) {\n if (!getTextDimensions) {\n return undefined;\n }\n const layoutInfo = getLinearLegendLayoutInfo({\n width: _width,\n getTextDimensions,\n resolvedVars,\n orientation,\n legendFontStylesObj,\n symbolWidth: symbolWidth,\n symbolHeight: symbolHeight,\n items\n });\n const { itemsPerCol, itemsPerRow } = getGridNums(items.length, layoutInfo, orientation);\n const unitLength = parseFloat(resolvedVars['unit']);\n const preferredWidth = Math.min(\n _width,\n itemsPerCol === 1\n ? layoutInfo!.totalWidth\n : itemsPerRow\n ? layoutInfo!.maxItemWidth * itemsPerRow!\n : layoutInfo!.totalWidth\n );\n const paddingLegendItems = 0.8 * unitLength;\n const paddingLegendTopBottom = 1.5 * unitLength;\n\n const legendHeight = itemsPerCol\n ? layoutInfo!.maxItemHeight * itemsPerCol! +\n (itemsPerCol! - 1) * paddingLegendItems +\n paddingLegendTopBottom\n : layoutInfo!.maxItemHeight + paddingLegendTopBottom;\n const preferredHeight = Math.min(_height, legendHeight);\n\n return { width: Math.ceil(preferredWidth), height: Math.ceil(preferredHeight) };\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { Ref, VNode } from 'preact';\nimport { useContext, useMemo, useRef, useState } from 'preact/hooks';\nimport { BaseLegend } from '#PRIVATE_BaseLegend/BaseLegend';\nimport { useVisEvent } from '#hooks/PRIVATE_useVisEvents/useVisEvents';\nimport { LegendProps, LegendDragStartDetail } from './legend.type';\nimport { getLegendNavUtils } from './legendNavUtils';\nimport {\n getAriaProps,\n getDatatipText,\n getGridNums,\n getIsLegendItemActionable,\n getItemInfo,\n getLegendTextStyle,\n isEqualItem\n} from '#utils/PRIVATE_legendUtils/legendUtils';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { useLegendDatatip } from './useLegendDatatip';\nimport { useItemFocus } from '#hooks/PRIVATE_useVisEvents';\nimport { styles } from '#PRIVATE_BaseLegend/themes/LegendStyles.css';\nimport { useCssVars } from '#hooks/PRIVATE_useCssVars';\nimport { legendVars, getKeyUpHandler } from '#utils/PRIVATE_legendUtils/legendUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { useLegendContextMenu } from '#PRIVATE_BaseLegend/useLegendContextMenu';\nimport {\n ItemFocusDetail,\n ItemActionDetail,\n ItemInfo,\n LegendItemData\n} from '#utils/UNSAFE_visTypes/legend';\nimport { useVisTouchResponse } from '#hooks/PRIVATE_useVisTouchResponse';\nimport { merge } from '#utils/UNSAFE_stringUtils';\nimport { forwardRef, useImperativeHandle } from 'preact/compat';\nimport { TrackResizeContainer } from '#UNSAFE_TrackResizeContainer';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { _getPreferredSize, getLinearLegendLayoutInfo } from './getLegendLayout';\nimport { useLegendDnd } from '#hooks/PRIVATE_useLegendDnD/useLegendDnd';\nimport { styles as VisDndStyles } from '#hooks/PRIVATE_useVisDnd/themes/VisDndStyles.css';\nimport { LegendRenderedContext } from '#hooks/UNSAFE_useLegendPreferredSize';\n\nexport type SizeHandle = {\n _getPreferredSize: (\n _width: number,\n _height: number\n ) => { width: number; height: number } | undefined;\n};\n\ntype ForwardRefLegend = <K extends string | number, D extends LegendItemData<K>>(\n props: LegendProps<K, D> & { ref?: Ref<SizeHandle> }\n) => VNode | null;\n\n/**\n * A legend displays an interactive description of symbols, colors, etc., used in graphical information representations.\n */\nexport const Legend = forwardRef(\n <K extends string | number, D extends LegendItemData<K>>(\n {\n orientation = 'horizontal',\n items,\n isReadOnly = true,\n onItemAction,\n onItemHover,\n onItemFocus,\n testId,\n contextMenuConfig,\n hideAndShowBehavior = 'off',\n hoverBehavior = 'none',\n halign = 'start',\n valign = 'top',\n ...props\n }: LegendProps<K, D>,\n ref: Ref<SizeHandle> = null\n ) => {\n // Use the context\n const { isGetPreferredSizeReady, width, height } = useContext(LegendRenderedContext);\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n const { resolvedVars, cssContent } = useCssVars(legendVars);\n\n const legendFontStylesObj = getLegendTextStyle(\n {\n fontStyle: props.textFontStyle,\n fontSize: props.textFontSize?.toString(),\n fontWeight: props.textFontWeight?.toString(),\n fontFamily: props.textFontFamily\n },\n resolvedVars\n );\n const rootRef = useRef<HTMLDivElement>(null);\n\n useImperativeHandle(\n ref!,\n () => ({\n _getPreferredSize: (_width: number, _height: number) => {\n return _getPreferredSize(\n _width,\n _height,\n items,\n resolvedVars,\n orientation,\n legendFontStylesObj,\n props.symbolWidth,\n props.symbolHeight,\n getTextDimensions\n );\n }\n }),\n [\n getTextDimensions,\n resolvedVars,\n orientation,\n legendFontStylesObj,\n props.symbolWidth,\n props.symbolHeight,\n items\n ]\n );\n\n if (\n getTextDimensions &&\n resolvedVars['unit'] != undefined &&\n resolvedVars['fontSize'] != undefined\n ) {\n isGetPreferredSizeReady?.(true);\n }\n\n const testIdProps = useTestId(testId);\n const isTestEnv = testIdProps['data-testid'] !== undefined;\n const rootDimsRef = useRef<DOMRect>();\n const { getItem, getDetailFromInfo, getPrevItemInfo, getNextItemInfo } = getLegendNavUtils<\n K,\n D\n >(items);\n\n const isLegendItemActionable = getIsLegendItemActionable(items, isReadOnly);\n const hasData = items.length > 0;\n\n const legendKeyUpHandler = (\n triggerOnAction: () => void,\n updatefocusedItemInfo: (itemInfo: ItemInfo) => void,\n focusedItemInfo: ItemInfo\n ) =>\n getKeyUpHandler(\n triggerOnAction,\n updatefocusedItemInfo,\n focusedItemInfo,\n props.hiddenIds != null\n );\n\n const { touchResponse, touchResponseStyle } = useVisTouchResponse({\n type: 'touchStart'\n });\n const { focusedItemInfo, hoveredItemInfo, onContextMenuDismissed, activeId, eventsProps } =\n useVisEvent<ItemInfo, ItemActionDetail<K, D>, ItemFocusDetail<K, D>, D>(\n touchResponse,\n !isReadOnly,\n isLegendItemActionable,\n legendKeyUpHandler,\n getDetailFromInfo,\n getPrevItemInfo,\n getNextItemInfo,\n onItemAction,\n onItemHover,\n onItemFocus,\n isEqualItem,\n getItemInfo,\n { itemIdx: 0, sectionIdx: 0 },\n props.hiddenIds != null\n );\n\n const { focusedItemRef } = useItemFocus(focusedItemInfo);\n const datatipText = getDatatipText(items, getItem, focusedItemInfo, hoveredItemInfo);\n const [datatipDisabled, setDatatipDisabled] = useState(false);\n const {\n datatipContent,\n datatipProps: { 'aria-describedby': datatipAriaDescribedby, ...datatipProps }\n } = useLegendDatatip({\n text: datatipText,\n rootDimsRef,\n focusedItemInfo,\n focusedItemRef,\n touchResponse,\n isDisabled: datatipDisabled\n });\n\n const ariaProps = getAriaProps<K>(\n isReadOnly,\n props['aria-label'],\n props.hiddenIds,\n merge([props['aria-describedby'], datatipAriaDescribedby]),\n props['aria-labelledby']\n );\n\n const { contextMenuContent, contextMenuProps } = useLegendContextMenu<D>({\n rootRef,\n contextMenuConfig: hasData ? contextMenuConfig : undefined,\n focusedItemInfo,\n items,\n isReadOnly,\n onContextMenuDismissed\n });\n\n const [dragOver, setDragOver] = useState<boolean>();\n\n const { draggable, dndProps, dndContent } = useLegendDnd<K, D, LegendDragStartDetail<D>>({\n onDrag: props.onDrag,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragEnter: props.onDragEnter,\n onDragLeave: props.onDragLeave,\n onDragOver: props.onDragOver,\n onDrop: props.onDrop,\n items,\n setDragOver,\n setDatatipDisabled,\n itemDraggable: props.itemDraggable\n });\n\n const mergedProps = mergeProps(eventsProps, datatipProps, contextMenuProps, dndProps);\n const { legendStyle, renderedLegendStyle } = styles;\n\n return (\n <>\n {!isGetPreferredSizeReady && (\n <TrackResizeContainer\n width={width ? `${width}px` : '100%'}\n height={height ? `${height}px` : '100%'}\n class={classNames([\n styles.flexStyle,\n styles[`${halign}HAlign`],\n styles[`${valign}VAlign`]\n ])}>\n {function _(width) {\n const layoutInfo = useMemo(\n () =>\n getLinearLegendLayoutInfo<K>({\n width,\n getTextDimensions,\n resolvedVars,\n orientation,\n legendFontStylesObj,\n symbolWidth: props.symbolWidth,\n symbolHeight: props.symbolHeight,\n items\n }),\n [width]\n );\n const { itemsPerCol, itemsPerRow } = getGridNums(items.length, layoutInfo);\n return (\n <>\n <div\n ref={rootRef}\n tabIndex={isReadOnly ? undefined : 0}\n role=\"application\"\n draggable={draggable}\n class={classNames([\n legendStyle,\n renderedLegendStyle,\n dragOver\n ? VisDndStyles.dndDragOverHTMLStyle\n : dragOver === false\n ? VisDndStyles.dndRejectedStyle\n : undefined\n ])}\n style={touchResponseStyle}\n {...testIdProps}\n {...ariaProps}\n {...mergedProps}\n aria-activedescendant={activeId}>\n <BaseLegend\n {...props}\n focusedItemRef={focusedItemRef}\n items={items}\n isReadOnly={isReadOnly}\n orientation={orientation}\n sectionIdx={0}\n itemsPerRow={itemsPerRow}\n itemsPerCol={itemsPerCol}\n itemWidth={layoutInfo?.isWrapped ? layoutInfo?.maxItemWidth : undefined}\n focusedItemInfo={focusedItemInfo}\n hoveredItemInfo={hoveredItemInfo}\n activeId={activeId}\n hideAndShowBehavior={hideAndShowBehavior}\n hoverBehavior={hoverBehavior}\n isTestEnv={isTestEnv}\n />\n </div>\n {datatipContent}\n {contextMenuContent}\n {dndContent}\n </>\n );\n }}\n </TrackResizeContainer>\n )}\n {textMeasureContent}\n {cssContent}\n </>\n );\n }\n) as ForwardRefLegend;\n"],"names":["_jsxs","_Fragment","_jsx","VisDndStyles"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegendRendered-65a3684e.js","sources":["../../src/hooks/UNSAFE_useLegendPreferredSize/LegendRendered.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext } from 'preact/compat';\n\ntype LegendRenderedContextType = {\n isLegendReady?: (isReady: boolean) => void;\n width?: number;\n height?: number;\n};\n\nexport const LegendRenderedContext = createContext<LegendRenderedContextType>({});\n"],"names":[],"mappings":";;;AAAA;;;;;;AAMG;MAUU,qBAAqB,GAAG,aAAa,CAA4B,EAAE;;;;"}
1
+ {"version":3,"file":"LegendRendered-65a3684e.js","sources":["../../src/hooks/UNSAFE_useLegendPreferredSize/LegendRendered.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext } from 'preact/compat';\n\ntype LegendRenderedContextType = {\n isGetPreferredSizeReady?: (isReady: boolean) => void;\n width?: number;\n height?: number;\n};\n\nexport const LegendRenderedContext = createContext<LegendRenderedContextType>({});\n"],"names":[],"mappings":";;;AAAA;;;;;;AAMG;MAUU,qBAAqB,GAAG,aAAa,CAA4B,EAAE;;;;"}
@@ -0,0 +1,25 @@
1
+ /* @oracle/oraclejet-preact: undefined */
2
+ import { jsx, jsxs } from 'preact/jsx-runtime';
3
+ import { useCallback } from 'preact/hooks';
4
+ import { c as classNames } from './classNames-4e12b00d.js';
5
+ import { u as usePress } from './usePress-051f5adb.js';
6
+ import './FormFieldContext-68eb5946.js';
7
+ import { u as useFormFieldContext } from './useFormFieldContext-626574fd.js';
8
+ import './MaxLengthCounterStyles.styles.css';
9
+
10
+ var hide = 'MaxLengthCounterStyles_hide__7dy9j71';
11
+ var maxLengthCounterBase = 'MaxLengthCounterStyles_maxLengthCounterBase__7dy9j70';
12
+ var spanStyles = 'MaxLengthCounterStyles_spanStyles__7dy9j72';
13
+
14
+ const noop = () => { };
15
+ function MaxLengthCounter({ maxLength, valueLength = 0, onClick }) {
16
+ const { isFocused } = useFormFieldContext();
17
+ // We don't want mousedown on this component to do anything, so prevent the default behavior.
18
+ const killEvent = useCallback((event) => event.preventDefault(), []);
19
+ const textClasses = classNames([!isFocused && hide]);
20
+ const { pressProps } = usePress(onClick ?? noop);
21
+ return (jsx("div", { class: maxLengthCounterBase, onMouseDown: killEvent, ...pressProps, children: jsxs("span", { class: textClasses, children: [jsx("span", { class: spanStyles, children: valueLength }), jsx("span", { class: spanStyles, children: "/" }), jsx("span", { class: spanStyles, children: maxLength })] }) }));
22
+ }
23
+
24
+ export { MaxLengthCounter as M };
25
+ //# sourceMappingURL=MaxLengthCounter-181b4fc9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaxLengthCounter-181b4fc9.js","sources":["../../src/UNSAFE_TextArea/MaxLengthCounter.tsx"],"sourcesContent":["import { useCallback } from 'preact/hooks';\n\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { useFormFieldContext } from '../hooks/UNSAFE_useFormFieldContext';\nimport { hide, maxLengthCounterBase, spanStyles } from './MaxLengthCounterStyles.css';\n\ntype Props = {\n maxLength: number;\n valueLength?: number;\n onClick?: () => void; // the calling component should focus on the appropriate element when clicked.\n};\n\nconst noop = () => {};\n\nexport function MaxLengthCounter({ maxLength, valueLength = 0, onClick }: Props) {\n const { isFocused } = useFormFieldContext();\n // We don't want mousedown on this component to do anything, so prevent the default behavior.\n const killEvent = useCallback((event: Event) => event.preventDefault(), []);\n const textClasses = classNames([!isFocused && hide]);\n const { pressProps } = usePress(onClick ?? noop);\n return (\n <div class={maxLengthCounterBase} onMouseDown={killEvent} {...pressProps}>\n <span class={textClasses}>\n <span class={spanStyles}>{valueLength}</span>\n <span class={spanStyles}>/</span>\n <span class={spanStyles}>{maxLength}</span>\n </span>\n </div>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,IAAI,GAAG,MAAK,GAAG,CAAC;AAEhB,SAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,OAAO,EAAS,EAAA;AAC7E,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,CAAC;;AAE5C,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;AACjD,IAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAM,GAAA,UAAU,YACtEC,IAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,WAAW,EAAA,QAAA,EAAA,CACtBD,cAAM,KAAK,EAAE,UAAU,EAAA,QAAA,EAAG,WAAW,EAAQ,CAAA,EAC7CA,cAAM,KAAK,EAAE,UAAU,EAAU,QAAA,EAAA,GAAA,EAAA,CAAA,EACjCA,cAAM,KAAK,EAAE,UAAU,EAAG,QAAA,EAAA,SAAS,GAAQ,CACtC,EAAA,CAAA,EAAA,CACH,EACN;AACJ;;;;"}
@@ -10,20 +10,7 @@ import { u as useCollectionFocusRing } from './useCollectionFocusRing-de20f4fc.j
10
10
  import { u as useCurrentKey } from './useCurrentKey-7287061f.js';
11
11
  import { forwardRef, useImperativeHandle } from 'preact/compat';
12
12
  import { u as useTestId } from './useTestId-9b504481.js';
13
- import './UNSAFE_Text/themes/TextStyles.css.js';
14
13
  import { N as NavigationListContext, B as BaseNavigationListItem } from './BaseNavigationListItem-af84a9ee.js';
15
- import './Flex-ce31b351.js';
16
- import './logger-c92f309c.js';
17
- import 'preact';
18
- import './LayerHost-e6402730.js';
19
- import './TooltipContentStyles.styles.css';
20
- import './hooks/UNSAFE_useTooltip/themes/redwood/TooltipContentBaseTheme.styles.css';
21
- import './hooks/UNSAFE_useTooltip/themes/redwood/TooltipContentVariants.css.js';
22
- import './tooltipUtils-768450a7.js';
23
- import './IconStyle.styles.css';
24
- import './UNSAFE_NavigationList/themes/NavigationListItemStyles.css.js';
25
- import './UNSAFE_NavigationList/themes/redwood/NavigationListItemBaseTheme.styles.css';
26
- import './UNSAFE_NavigationList/themes/redwood/NavigationListItemVariants.css.js';
27
14
 
28
15
  /*TODO: JET-58534. Create a hook to share some logic between navlist and tabbar. Hook will be used inside this one. */
29
16
  function useNavigationList({ containerRef, selection, onRemove, onSelectionChange, children }) {
@@ -160,4 +147,4 @@ function NavigationListItem({ itemKey, label, badge, metadata, severity }) {
160
147
  }
161
148
 
162
149
  export { NavigationList as N, NavigationListItem as a };
163
- //# sourceMappingURL=NavigationListItem-07f041e6.js.map
150
+ //# sourceMappingURL=NavigationListItem-37edc23b.js.map