@procore/core-react 12.47.1 → 12.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +9 -9
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/CheckboxGroup/CheckboxGroup.js +9 -3
  15. package/dist/CheckboxGroup/CheckboxGroup.js.map +1 -1
  16. package/dist/CheckboxGroup/checkboxGroupTileNavigation.d.ts +12 -0
  17. package/dist/CheckboxGroup/checkboxGroupTileNavigation.js +224 -0
  18. package/dist/CheckboxGroup/checkboxGroupTileNavigation.js.map +1 -0
  19. package/dist/ContactItem/ContactItem.styles.js +5 -5
  20. package/dist/Content/Content.styles.js +2 -2
  21. package/dist/DateInput/DateInput.styles.js +6 -6
  22. package/dist/DateSelect/DateSelect.js +5 -4
  23. package/dist/DateSelect/DateSelect.js.map +1 -1
  24. package/dist/DateSelect/DateSelect.types.d.ts +1 -1
  25. package/dist/DateSelect/DateSelect.types.js.map +1 -1
  26. package/dist/DetailPage/DetailPage.styles.js +7 -7
  27. package/dist/Dropdown/Dropdown.styles.js +3 -3
  28. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  29. package/dist/Dropzone/Dropzone.js +1 -1
  30. package/dist/Dropzone/Dropzone.styles.js +9 -9
  31. package/dist/EmptyState/EmptyState.styles.js +6 -6
  32. package/dist/Field/Field.styles.js +3 -3
  33. package/dist/FileList/FileList.styles.js +3 -3
  34. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  35. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  36. package/dist/FileSelect/FileSelect.styles.js +2 -2
  37. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  38. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  39. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  40. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  41. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  42. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  43. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  44. package/dist/FileToken/FileToken.styles.js +6 -6
  45. package/dist/FilterToken/FilterToken.styles.js +5 -5
  46. package/dist/FlexList/FlexList.styles.js +1 -1
  47. package/dist/Form/Form.styles.js +13 -13
  48. package/dist/Form/StyledFormikForm.styles.js +2 -2
  49. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  50. package/dist/Grid/Grid.styles.js +2 -2
  51. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  52. package/dist/Input/Input.styles.js +1 -1
  53. package/dist/Link/Link.styles.js +1 -1
  54. package/dist/ListPage/ListPage.styles.js +8 -8
  55. package/dist/Loader/Loader.styles.js +2 -2
  56. package/dist/MenuImperative/MenuImperative.styles.js +11 -11
  57. package/dist/Modal/Modal.styles.js +13 -13
  58. package/dist/MultiSelect/MultiSelect.styles.js +8 -8
  59. package/dist/NextMenu/NextMenu.styles.js +3 -3
  60. package/dist/NextTile/NextTile.d.ts +24 -0
  61. package/dist/NextTile/NextTile.js +275 -90
  62. package/dist/NextTile/NextTile.js.map +1 -1
  63. package/dist/NextTile/NextTile.styles.d.ts +16 -0
  64. package/dist/NextTile/NextTile.styles.js +136 -0
  65. package/dist/NextTile/NextTile.styles.js.map +1 -0
  66. package/dist/NextTile/NextTile.types.d.ts +14 -2
  67. package/dist/NextTile/NextTile.types.js.map +1 -1
  68. package/dist/Notation/Notation.js +1 -1
  69. package/dist/NumberInput/NumberInput.styles.js +7 -7
  70. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  71. package/dist/PageLayout/PageLayout.styles.js +16 -16
  72. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  73. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  74. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  75. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  76. package/dist/Pagination/Pagination.styles.js +5 -5
  77. package/dist/Panel/Panel.styles.js +11 -11
  78. package/dist/Pill/Pill.styles.js +3 -3
  79. package/dist/PillSelect/PillSelect.styles.js +4 -4
  80. package/dist/Popover/Popover.styles.js +2 -2
  81. package/dist/Portal/Portal.styles.js +1 -1
  82. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  83. package/dist/RadioButton/RadioButton.styles.js +3 -3
  84. package/dist/Required/Required.styles.js +3 -3
  85. package/dist/Search/Search.styles.js +5 -5
  86. package/dist/Section/Section.styles.js +7 -7
  87. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  88. package/dist/Select/Select.styles.js +8 -8
  89. package/dist/Semantic/Semantic.styles.js +9 -9
  90. package/dist/Slider/Slider.styles.js +5 -5
  91. package/dist/Spinner/Spinner.styles.js +7 -7
  92. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  93. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  94. package/dist/SuperSelect/SuperSelect.styles.js +40 -40
  95. package/dist/Switch/Switch.styles.js +4 -4
  96. package/dist/Table/Table.styles.js +29 -29
  97. package/dist/TableShelf/TableShelf.styles.js +5 -5
  98. package/dist/Tabs/Tabs.styles.js +16 -16
  99. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  100. package/dist/TextArea/TextArea.styles.js +1 -1
  101. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  102. package/dist/Thumbnail/Thumbnail.hooks.d.ts +13 -7
  103. package/dist/Thumbnail/Thumbnail.hooks.js +15 -5
  104. package/dist/Thumbnail/Thumbnail.hooks.js.map +1 -1
  105. package/dist/Thumbnail/Thumbnail.js +8 -4
  106. package/dist/Thumbnail/Thumbnail.js.map +1 -1
  107. package/dist/Thumbnail/Thumbnail.styles.d.ts +13 -5
  108. package/dist/Thumbnail/Thumbnail.styles.js +42 -24
  109. package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
  110. package/dist/Thumbnail/Thumbnail.types.d.ts +12 -10
  111. package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
  112. package/dist/Thumbnail/Thumbnail.utils.d.ts +1 -0
  113. package/dist/Thumbnail/Thumbnail.utils.js +7 -0
  114. package/dist/Thumbnail/Thumbnail.utils.js.map +1 -1
  115. package/dist/Thumbnail/ThumbnailCaption.js +85 -40
  116. package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
  117. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  118. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  119. package/dist/Tile/Tile.styles.js +10 -10
  120. package/dist/Tile/Tile.styles.js.map +1 -1
  121. package/dist/Title/Title.styles.js +7 -7
  122. package/dist/Toast/Toast.styles.js +3 -3
  123. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  124. package/dist/Token/Token.styles.js +5 -5
  125. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  126. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  127. package/dist/Tooltip/Tooltip.styles.js +3 -3
  128. package/dist/Tree/Tree.js +1 -1
  129. package/dist/Tree/Tree.styles.js +10 -10
  130. package/dist/Typeahead/Typeahead.styles.js +3 -3
  131. package/dist/Typography/Typography.styles.js +1 -1
  132. package/dist/Typography/Typography.table.story.js +2 -2
  133. package/dist/_hooks/ClickOutside.js +8 -3
  134. package/dist/_hooks/ClickOutside.js.map +1 -1
  135. package/dist/_hooks/I18n.d.ts +2 -0
  136. package/dist/_locales/en.json +1 -0
  137. package/dist/_locales/pseudo.json +1 -0
  138. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  139. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  140. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
  141. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  142. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
  143. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  144. package/dist/_typedoc/Banner/Banner.types.json +15 -15
  145. package/dist/_typedoc/Box/Box.types.json +68 -68
  146. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  147. package/dist/_typedoc/Button/Button.types.json +14 -14
  148. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  149. package/dist/_typedoc/Card/Card.types.json +6 -6
  150. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  151. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  152. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  153. package/dist/_typedoc/DateSelect/DateSelect.types.json +23 -13
  154. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  155. package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
  156. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
  157. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  158. package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
  159. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  160. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  161. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  162. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  163. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  164. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  165. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  166. package/dist/_typedoc/Form/Form.types.json +780 -760
  167. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  168. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  169. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
  170. package/dist/_typedoc/Input/Input.types.json +2 -2
  171. package/dist/_typedoc/Link/Link.types.json +1 -1
  172. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  173. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  174. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
  175. package/dist/_typedoc/Modal/Modal.types.json +48 -48
  176. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
  177. package/dist/_typedoc/NextTile/NextTile.types.json +42 -32
  178. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  179. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  180. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
  181. package/dist/_typedoc/PageLayout/PageLayout.types.json +28 -28
  182. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  183. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  184. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  185. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  186. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  187. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  188. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  189. package/dist/_typedoc/Required/Required.types.json +5 -5
  190. package/dist/_typedoc/Search/Search.types.json +18 -18
  191. package/dist/_typedoc/Section/Section.types.json +15 -15
  192. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  193. package/dist/_typedoc/Select/Select.types.json +67 -67
  194. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  195. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  196. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  197. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  198. package/dist/_typedoc/Table/Table.types.json +114 -104
  199. package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
  200. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  201. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  202. package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
  203. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  204. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +23 -23
  205. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
  206. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
  207. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  208. package/dist/_typedoc/Title/Title.types.json +1 -1
  209. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  210. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  211. package/dist/_typedoc/Token/Token.types.json +7 -7
  212. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  213. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  214. package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
  215. package/dist/_typedoc/Tree/Tree.types.json +88 -88
  216. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  217. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  218. package/dist/_typedoc/_utils/types.json +3 -3
  219. package/dist/_typedoc/a11y-tips.json +1 -1
  220. package/dist/index.d.ts +1 -0
  221. package/dist/index.js +1 -0
  222. package/dist/index.js.map +1 -1
  223. package/package.json +16 -16
@@ -3,11 +3,14 @@ var _excluded = ["children", "overlay", "onOverlayClick"],
3
3
  _excluded2 = ["children"],
4
4
  _excluded3 = ["children"],
5
5
  _excluded4 = ["children"],
6
- _excluded5 = ["orientation", "children"],
6
+ _excluded5 = ["orientation", "children", "disabled", "tabIndex"],
7
7
  _excluded6 = ["orientation", "children"],
8
8
  _excluded7 = ["disabled", "checked", "defaultChecked", "orientation", "style", "className"],
9
- _excluded8 = ["disabled", "checked", "defaultChecked", "orientation", "style", "className", "groupState"],
10
- _excluded9 = ["role"];
9
+ _excluded8 = ["disabled", "checked", "defaultChecked", "orientation", "style", "className"],
10
+ _excluded9 = ["disabled", "checked", "defaultChecked", "orientation", "style", "className"],
11
+ _excluded0 = ["disabled", "checked", "defaultChecked", "orientation", "style", "className", "groupState"],
12
+ _excluded1 = ["children"],
13
+ _excluded10 = ["role"];
11
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
16
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -23,20 +26,29 @@ import { VisuallyHidden } from '@react-aria/visually-hidden';
23
26
  import React from 'react';
24
27
  import { useToggleState } from 'react-stately';
25
28
  import { CheckboxGroupContext } from '../CheckboxGroup/CheckboxGroup';
29
+ import { CheckboxGroupTileNavContext, CheckboxGroupTileNavProvider } from '../CheckboxGroup/checkboxGroupTileNavigation';
26
30
  import { StyledActions } from '../Content/Content.styles';
27
- import { StyledFooter, StyledHeroMedia, StyledHeroOverlay, StyledHeroText, StyledInteractableTile, StyledLinkTile, StyledSelectableTile, StyledTileContent } from '../Tile/Tile.styles';
31
+ import { StyledFooter, StyledHeroMedia, StyledHeroOverlay, StyledHeroText, StyledTileContent } from '../Tile/Tile.styles';
28
32
  import { addSubcomponents } from '../_utils/addSubcomponents';
29
33
  import { mergeRefs } from '../_utils/mergeRefs';
34
+ import { StyledNextInteractableTile, StyledNextLinkTile, StyledNextSelectableTile, StyledNextTileFocusTarget, StyledNextTileInertContent } from './NextTile.styles';
30
35
  var heroTextGridTemplateColumns = 'auto 1fr';
36
+ function NextTileInertContent(_ref) {
37
+ var children = _ref.children;
38
+ return /*#__PURE__*/React.createElement(StyledNextTileInertContent, {
39
+ inert: true
40
+ }, children);
41
+ }
31
42
  var TileContext = /*#__PURE__*/React.createContext({
32
43
  orientation: 'portrait'
33
44
  });
34
- var HeroMedia = /*#__PURE__*/React.forwardRef(function HeroMedia(_ref, ref) {
35
- var children = _ref.children,
36
- _ref$overlay = _ref.overlay,
37
- overlay = _ref$overlay === void 0 ? false : _ref$overlay,
38
- onOverlayClick = _ref.onOverlayClick,
39
- props = _objectWithoutProperties(_ref, _excluded);
45
+ var NextTileRadioGroupInputContext = /*#__PURE__*/React.createContext(null);
46
+ var HeroMedia = /*#__PURE__*/React.forwardRef(function HeroMedia(_ref2, ref) {
47
+ var children = _ref2.children,
48
+ _ref2$overlay = _ref2.overlay,
49
+ overlay = _ref2$overlay === void 0 ? false : _ref2$overlay,
50
+ onOverlayClick = _ref2.onOverlayClick,
51
+ props = _objectWithoutProperties(_ref2, _excluded);
40
52
  var _React$useContext = React.useContext(TileContext),
41
53
  orientation = _React$useContext.orientation;
42
54
  var heroRef = React.useRef(null);
@@ -53,9 +65,9 @@ var HeroMedia = /*#__PURE__*/React.forwardRef(function HeroMedia(_ref, ref) {
53
65
  onClick: onOverlayClick
54
66
  }), children);
55
67
  });
56
- var HeroText = /*#__PURE__*/React.forwardRef(function HeroText(_ref2, ref) {
57
- var children = _ref2.children,
58
- props = _objectWithoutProperties(_ref2, _excluded2);
68
+ var HeroText = /*#__PURE__*/React.forwardRef(function HeroText(_ref3, ref) {
69
+ var children = _ref3.children,
70
+ props = _objectWithoutProperties(_ref3, _excluded2);
59
71
  var _React$useContext2 = React.useContext(TileContext),
60
72
  orientation = _React$useContext2.orientation;
61
73
  var heroRef = React.useRef(null);
@@ -75,38 +87,44 @@ var Content = /*#__PURE__*/React.forwardRef(function Content(props, ref) {
75
87
  ref: ref
76
88
  }, props));
77
89
  });
78
- var Footer = /*#__PURE__*/React.forwardRef(function Footer(_ref3, ref) {
79
- var children = _ref3.children,
80
- props = _objectWithoutProperties(_ref3, _excluded3);
90
+ var Footer = /*#__PURE__*/React.forwardRef(function Footer(_ref4, ref) {
91
+ var children = _ref4.children,
92
+ props = _objectWithoutProperties(_ref4, _excluded3);
81
93
  return /*#__PURE__*/React.createElement(StyledFooter, _extends({
82
94
  ref: ref
83
95
  }, props), children);
84
96
  });
85
- var Actions = /*#__PURE__*/React.forwardRef(function Actions(_ref4, ref) {
86
- var children = _ref4.children,
87
- props = _objectWithoutProperties(_ref4, _excluded4);
97
+ var Actions = /*#__PURE__*/React.forwardRef(function Actions(_ref5, ref) {
98
+ var children = _ref5.children,
99
+ props = _objectWithoutProperties(_ref5, _excluded4);
88
100
  return /*#__PURE__*/React.createElement(StyledActions, _extends({
89
101
  ref: ref
90
102
  }, props), children);
91
103
  });
92
- export var InteractableTile = /*#__PURE__*/React.forwardRef(function InteractableTile(_ref5, ref) {
93
- var orientation = _ref5.orientation,
94
- children = _ref5.children,
95
- props = _objectWithoutProperties(_ref5, _excluded5);
96
- return /*#__PURE__*/React.createElement(StyledInteractableTile, _extends({
104
+ export var InteractableTile = /*#__PURE__*/React.forwardRef(function InteractableTile(_ref6, ref) {
105
+ var orientation = _ref6.orientation,
106
+ children = _ref6.children,
107
+ _ref6$disabled = _ref6.disabled,
108
+ disabled = _ref6$disabled === void 0 ? false : _ref6$disabled,
109
+ tabIndex = _ref6.tabIndex,
110
+ props = _objectWithoutProperties(_ref6, _excluded5);
111
+ return /*#__PURE__*/React.createElement(StyledNextInteractableTile, _extends({}, props, {
97
112
  ref: ref,
98
- $orientation: orientation
99
- }, props), /*#__PURE__*/React.createElement(TileContext.Provider, {
113
+ $disabled: disabled,
114
+ $orientation: orientation,
115
+ "aria-disabled": disabled || undefined,
116
+ tabIndex: disabled ? -1 : tabIndex
117
+ }), /*#__PURE__*/React.createElement(TileContext.Provider, {
100
118
  value: {
101
119
  orientation: orientation
102
120
  }
103
- }, children));
121
+ }, disabled ? /*#__PURE__*/React.createElement(NextTileInertContent, null, children) : children));
104
122
  });
105
- export var LinkTile = /*#__PURE__*/React.forwardRef(function LinkTile(_ref6, ref) {
106
- var orientation = _ref6.orientation,
107
- children = _ref6.children,
108
- props = _objectWithoutProperties(_ref6, _excluded6);
109
- return /*#__PURE__*/React.createElement(StyledLinkTile, _extends({
123
+ export var LinkTile = /*#__PURE__*/React.forwardRef(function LinkTile(_ref7, ref) {
124
+ var orientation = _ref7.orientation,
125
+ children = _ref7.children,
126
+ props = _objectWithoutProperties(_ref7, _excluded6);
127
+ return /*#__PURE__*/React.createElement(StyledNextLinkTile, _extends({
110
128
  ref: ref,
111
129
  $orientation: orientation
112
130
  }, props), /*#__PURE__*/React.createElement(TileContext.Provider, {
@@ -117,42 +135,70 @@ export var LinkTile = /*#__PURE__*/React.forwardRef(function LinkTile(_ref6, ref
117
135
  });
118
136
 
119
137
  // Shared render component
120
- var CheckboxTileRender = function CheckboxTileRender(_ref7) {
121
- var inputProps = _ref7.inputProps,
122
- focusProps = _ref7.focusProps,
123
- inputRef = _ref7.inputRef,
124
- forwardedRef = _ref7.forwardedRef,
125
- isDisabled = _ref7.isDisabled,
126
- isSelected = _ref7.isSelected,
127
- isFocusVisible = _ref7.isFocusVisible,
128
- orientation = _ref7.orientation,
129
- className = _ref7.className,
130
- style = _ref7.style,
131
- role = _ref7.role,
132
- ariaLabelledby = _ref7['aria-labelledby'],
133
- children = _ref7.children;
138
+ var CheckboxTileRender = function CheckboxTileRender(_ref8) {
139
+ var inputProps = _ref8.inputProps,
140
+ focusProps = _ref8.focusProps,
141
+ inputRef = _ref8.inputRef,
142
+ forwardedRef = _ref8.forwardedRef,
143
+ isDisabled = _ref8.isDisabled,
144
+ isSelected = _ref8.isSelected,
145
+ orientation = _ref8.orientation,
146
+ className = _ref8.className,
147
+ style = _ref8.style,
148
+ tileSelectableRole = _ref8.tileSelectableRole,
149
+ ariaLabelledby = _ref8['aria-labelledby'],
150
+ children = _ref8.children,
151
+ checkboxGroupTileNav = _ref8.checkboxGroupTileNav,
152
+ tileValue = _ref8.tileValue;
134
153
  var fallbackId = useId();
135
- return /*#__PURE__*/React.createElement(StyledSelectableTile, {
154
+ var ariaRole = tileSelectableRole === 'radiobutton' ? 'radio' : tileSelectableRole !== null && tileSelectableRole !== void 0 ? tileSelectableRole : 'checkbox';
155
+ var tabIndexForFocusTarget;
156
+ if (isDisabled) {
157
+ tabIndexForFocusTarget = -1;
158
+ } else if (checkboxGroupTileNav != null && tileValue != null) {
159
+ tabIndexForFocusTarget = checkboxGroupTileNav.getTabIndex(tileValue);
160
+ } else {
161
+ tabIndexForFocusTarget = 0;
162
+ }
163
+ var registerTileRefFromGroup = checkboxGroupTileNav === null || checkboxGroupTileNav === void 0 ? void 0 : checkboxGroupTileNav.registerTileRef;
164
+ var focusTargetRef = React.useCallback(function (element) {
165
+ if (registerTileRefFromGroup && tileValue != null) {
166
+ registerTileRefFromGroup(tileValue, element);
167
+ }
168
+ }, [registerTileRefFromGroup, tileValue]);
169
+ return /*#__PURE__*/React.createElement(StyledNextSelectableTile, {
136
170
  $disabled: isDisabled,
137
171
  $selected: isSelected,
138
- $focused: isFocusVisible,
172
+ $role: tileSelectableRole === 'radiobutton' ? 'radiobutton' : 'checkbox',
139
173
  $orientation: orientation !== null && orientation !== void 0 ? orientation : 'portrait',
140
174
  $layoutless: true,
141
175
  className: className,
142
176
  style: style
143
- }, /*#__PURE__*/React.createElement("div", {
144
- role: role !== null && role !== void 0 ? role : 'checkbox',
177
+ }, /*#__PURE__*/React.createElement(StyledNextTileFocusTarget, {
178
+ role: ariaRole,
145
179
  "aria-labelledby": ariaLabelledby !== null && ariaLabelledby !== void 0 ? ariaLabelledby : fallbackId,
146
180
  "aria-checked": isSelected,
147
181
  "aria-disabled": isDisabled,
148
- tabIndex: isDisabled ? -1 : 0,
182
+ tabIndex: tabIndexForFocusTarget,
183
+ ref: registerTileRefFromGroup != null && tileValue != null ? focusTargetRef : undefined,
149
184
  onClick: function onClick() {
150
185
  if (!isDisabled) {
151
186
  var _inputRef$current;
152
187
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
153
188
  }
154
189
  },
190
+ onFocus: function onFocus() {
191
+ if (checkboxGroupTileNav && tileValue != null) {
192
+ checkboxGroupTileNav.onTileFocus(tileValue);
193
+ }
194
+ },
155
195
  onKeyDown: function onKeyDown(e) {
196
+ if (checkboxGroupTileNav && tileValue != null && !isDisabled) {
197
+ checkboxGroupTileNav.onTileKeyDown(tileValue, e);
198
+ if (e.defaultPrevented) {
199
+ return;
200
+ }
201
+ }
156
202
  if (e.code === 'Space' || e.code === 'Enter') {
157
203
  e.preventDefault();
158
204
  if (!isDisabled) {
@@ -161,26 +207,83 @@ var CheckboxTileRender = function CheckboxTileRender(_ref7) {
161
207
  }
162
208
  }
163
209
  }
164
- }, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement("input", _extends({}, mergeProps(inputProps, focusProps), {
210
+ }, /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement("input", _extends({}, mergeProps(inputProps, focusProps, {
211
+ 'aria-hidden': true
212
+ }), {
165
213
  ref: mergeRefs(inputRef, forwardedRef),
166
214
  tabIndex: -1
167
215
  }))), /*#__PURE__*/React.createElement(TileContext.Provider, {
168
216
  value: {
169
217
  orientation: orientation !== null && orientation !== void 0 ? orientation : 'portrait'
170
218
  }
171
- }, children)));
219
+ }, /*#__PURE__*/React.createElement("div", {
220
+ id: fallbackId,
221
+ style: {
222
+ display: 'contents'
223
+ }
224
+ }, isDisabled ? /*#__PURE__*/React.createElement(NextTileInertContent, null, children) : children))));
172
225
  };
226
+ var SingleRadioButtonTile = /*#__PURE__*/React.forwardRef(function SingleRadioButtonTile(_ref9, ref) {
227
+ var _radioGroupInput$name;
228
+ var _ref9$disabled = _ref9.disabled,
229
+ disabled = _ref9$disabled === void 0 ? false : _ref9$disabled,
230
+ checked = _ref9.checked,
231
+ defaultChecked = _ref9.defaultChecked,
232
+ orientation = _ref9.orientation,
233
+ style = _ref9.style,
234
+ className = _ref9.className,
235
+ props_ = _objectWithoutProperties(_ref9, _excluded7);
236
+ var props = _objectSpread(_objectSpread({}, props_), {}, {
237
+ isDisabled: disabled,
238
+ isSelected: checked,
239
+ defaultSelected: defaultChecked
240
+ });
241
+ var inputRef = React.useRef(null);
242
+ var state = useToggleState(props);
243
+ var _useFocusRing = useFocusRing(),
244
+ focusProps = _useFocusRing.focusProps;
245
+ var radioTileNavContext = React.useContext(CheckboxGroupTileNavContext);
246
+ var radioGroupInput = React.useContext(NextTileRadioGroupInputContext);
247
+ var fallbackRadioName = useId();
248
+ var radioName = (_radioGroupInput$name = radioGroupInput === null || radioGroupInput === void 0 ? void 0 : radioGroupInput.name) !== null && _radioGroupInput$name !== void 0 ? _radioGroupInput$name : fallbackRadioName;
249
+ var inputProps = {
250
+ type: 'radio',
251
+ name: radioName,
252
+ value: props.value,
253
+ checked: state.isSelected,
254
+ onChange: function onChange(e) {
255
+ if (e.target.checked) {
256
+ state.setSelected(true);
257
+ }
258
+ }
259
+ };
260
+ return /*#__PURE__*/React.createElement(CheckboxTileRender, {
261
+ inputProps: inputProps,
262
+ focusProps: focusProps,
263
+ inputRef: inputRef,
264
+ forwardedRef: ref,
265
+ isDisabled: disabled,
266
+ isSelected: state.isSelected,
267
+ orientation: orientation,
268
+ className: className,
269
+ style: style,
270
+ tileSelectableRole: "radiobutton",
271
+ "aria-labelledby": props['aria-labelledby'],
272
+ checkboxGroupTileNav: radioTileNavContext,
273
+ tileValue: props.value
274
+ }, props.children);
275
+ });
173
276
 
174
- // Single checkbox implementation
175
- var SingleCheckboxTile = /*#__PURE__*/React.forwardRef(function SingleCheckboxTile(_ref8, ref) {
176
- var _ref8$disabled = _ref8.disabled,
177
- disabled = _ref8$disabled === void 0 ? false : _ref8$disabled,
178
- checked = _ref8.checked,
179
- defaultChecked = _ref8.defaultChecked,
180
- orientation = _ref8.orientation,
181
- style = _ref8.style,
182
- className = _ref8.className,
183
- props_ = _objectWithoutProperties(_ref8, _excluded7);
277
+ // Single checkbox implementation (hooks live here; not used for `role="radiobutton"`)
278
+ var SingleCheckboxTileInner = /*#__PURE__*/React.forwardRef(function SingleCheckboxTileInner(_ref0, ref) {
279
+ var _ref0$disabled = _ref0.disabled,
280
+ disabled = _ref0$disabled === void 0 ? false : _ref0$disabled,
281
+ checked = _ref0.checked,
282
+ defaultChecked = _ref0.defaultChecked,
283
+ orientation = _ref0.orientation,
284
+ style = _ref0.style,
285
+ className = _ref0.className,
286
+ props_ = _objectWithoutProperties(_ref0, _excluded8);
184
287
  var props = _objectSpread(_objectSpread({}, props_), {}, {
185
288
  isDisabled: disabled,
186
289
  isSelected: checked,
@@ -190,9 +293,9 @@ var SingleCheckboxTile = /*#__PURE__*/React.forwardRef(function SingleCheckboxTi
190
293
  var state = useToggleState(props);
191
294
  var _useCheckbox = useCheckbox(props, state, inputRef),
192
295
  inputProps = _useCheckbox.inputProps;
193
- var _useFocusRing = useFocusRing(),
194
- focusProps = _useFocusRing.focusProps,
195
- isFocusVisible = _useFocusRing.isFocusVisible;
296
+ var _useFocusRing2 = useFocusRing(),
297
+ focusProps = _useFocusRing2.focusProps;
298
+ var tileNav = React.useContext(CheckboxGroupTileNavContext);
196
299
  return /*#__PURE__*/React.createElement(CheckboxTileRender, {
197
300
  inputProps: inputProps,
198
301
  focusProps: focusProps,
@@ -200,26 +303,58 @@ var SingleCheckboxTile = /*#__PURE__*/React.forwardRef(function SingleCheckboxTi
200
303
  forwardedRef: ref,
201
304
  isDisabled: disabled,
202
305
  isSelected: state.isSelected,
203
- isFocusVisible: isFocusVisible,
204
306
  orientation: orientation,
205
307
  className: className,
206
308
  style: style,
207
- role: props.role,
208
- "aria-labelledby": props['aria-labelledby']
309
+ tileSelectableRole: props.role,
310
+ "aria-labelledby": props['aria-labelledby'],
311
+ checkboxGroupTileNav: tileNav,
312
+ tileValue: props.value
209
313
  }, props.children);
210
314
  });
315
+ var SingleCheckboxTile = /*#__PURE__*/React.forwardRef(function SingleCheckboxTile(_ref1, ref) {
316
+ var _ref1$disabled = _ref1.disabled,
317
+ disabled = _ref1$disabled === void 0 ? false : _ref1$disabled,
318
+ checked = _ref1.checked,
319
+ defaultChecked = _ref1.defaultChecked,
320
+ orientation = _ref1.orientation,
321
+ style = _ref1.style,
322
+ className = _ref1.className,
323
+ props_ = _objectWithoutProperties(_ref1, _excluded9);
324
+ if (props_.role === 'radiobutton') {
325
+ return /*#__PURE__*/React.createElement(SingleRadioButtonTile, _extends({
326
+ ref: ref
327
+ }, props_, {
328
+ disabled: disabled,
329
+ checked: checked,
330
+ defaultChecked: defaultChecked,
331
+ orientation: orientation,
332
+ style: style,
333
+ className: className
334
+ }));
335
+ }
336
+ return /*#__PURE__*/React.createElement(SingleCheckboxTileInner, _extends({
337
+ ref: ref,
338
+ disabled: disabled,
339
+ checked: checked,
340
+ defaultChecked: defaultChecked,
341
+ orientation: orientation,
342
+ style: style,
343
+ className: className
344
+ }, props_));
345
+ });
211
346
 
212
347
  // Group checkbox implementation
213
- var GroupCheckboxTile = /*#__PURE__*/React.forwardRef(function GroupCheckboxTile(_ref9, ref) {
214
- var _ref9$disabled = _ref9.disabled,
215
- disabled = _ref9$disabled === void 0 ? false : _ref9$disabled,
216
- checked = _ref9.checked,
217
- defaultChecked = _ref9.defaultChecked,
218
- orientation = _ref9.orientation,
219
- style = _ref9.style,
220
- className = _ref9.className,
221
- groupState = _ref9.groupState,
222
- props_ = _objectWithoutProperties(_ref9, _excluded8);
348
+ var GroupCheckboxTile = /*#__PURE__*/React.forwardRef(function GroupCheckboxTile(_ref10, ref) {
349
+ var _ref10$disabled = _ref10.disabled,
350
+ disabled = _ref10$disabled === void 0 ? false : _ref10$disabled,
351
+ checked = _ref10.checked,
352
+ defaultChecked = _ref10.defaultChecked,
353
+ orientation = _ref10.orientation,
354
+ style = _ref10.style,
355
+ className = _ref10.className,
356
+ groupState = _ref10.groupState,
357
+ props_ = _objectWithoutProperties(_ref10, _excluded0);
223
358
  var props = _objectSpread(_objectSpread({}, props_), {}, {
224
359
  isDisabled: disabled,
225
360
  isSelected: checked,
@@ -228,11 +363,11 @@ var GroupCheckboxTile = /*#__PURE__*/React.forwardRef(function GroupCheckboxTile
228
363
  var inputRef = React.useRef(null);
229
364
  var _useCheckboxGroupItem = useCheckboxGroupItem(props, groupState, inputRef),
230
365
  inputProps = _useCheckboxGroupItem.inputProps;
231
- var _useFocusRing2 = useFocusRing(),
232
- focusProps = _useFocusRing2.focusProps,
233
- isFocusVisible = _useFocusRing2.isFocusVisible;
366
+ var _useFocusRing3 = useFocusRing(),
367
+ focusProps = _useFocusRing3.focusProps;
234
368
  var isDisabled = groupState.isDisabled || disabled;
235
369
  var isSelected = groupState.isSelected(props.value);
370
+ var tileNav = React.useContext(CheckboxGroupTileNavContext);
236
371
  return /*#__PURE__*/React.createElement(CheckboxTileRender, {
237
372
  inputProps: inputProps,
238
373
  focusProps: focusProps,
@@ -240,12 +375,13 @@ var GroupCheckboxTile = /*#__PURE__*/React.forwardRef(function GroupCheckboxTile
240
375
  forwardedRef: ref,
241
376
  isDisabled: isDisabled,
242
377
  isSelected: isSelected,
243
- isFocusVisible: isFocusVisible,
244
378
  orientation: orientation,
245
379
  className: className,
246
380
  style: style,
247
- role: props.role,
248
- "aria-labelledby": props['aria-labelledby']
381
+ tileSelectableRole: props.role,
382
+ "aria-labelledby": props['aria-labelledby'],
383
+ checkboxGroupTileNav: tileNav,
384
+ tileValue: props.value
249
385
  }, props.children);
250
386
  });
251
387
 
@@ -262,10 +398,46 @@ var CheckboxTile_ = /*#__PURE__*/React.forwardRef(function CheckboxTile(props, r
262
398
  ref: ref
263
399
  }));
264
400
  });
265
- function TileInner(_ref0, ref) {
266
- var _ref0$role = _ref0.role,
267
- role = _ref0$role === void 0 ? 'none' : _ref0$role,
268
- props = _objectWithoutProperties(_ref0, _excluded9);
401
+ var RadioButtonTile_ = /*#__PURE__*/React.forwardRef(function RadioButtonTile(props, ref) {
402
+ // `role` is NextTile’s API discriminant; the focus target uses ARIA `radio`.
403
+ // eslint-disable-next-line jsx-a11y/aria-role -- not a DOM role string; see CheckboxTileRender
404
+ return /*#__PURE__*/React.createElement(CheckboxTile_, _extends({}, props, {
405
+ ref: ref,
406
+ role: "radiobutton"
407
+ }));
408
+ });
409
+
410
+ /**
411
+ * Wrap sibling {@link NextTile} `role="radiobutton"` tiles to enable the same
412
+ * roving focus and arrow / Tab keyboard navigation as {@link CheckboxGroup}
413
+ * (without checkbox-group selection state). Use with a single shared `value` in
414
+ * the parent for a proper radio pattern. Arrow-key navigation follows a grid
415
+ * derived from the radiogroup width and tile layout (same approach as
416
+ * `ThumbnailGrid`).
417
+ *
418
+ * @since 12.42.0
419
+ */
420
+ export var NextTileRadioGroup = /*#__PURE__*/React.forwardRef(function NextTileRadioGroup(_ref11, ref) {
421
+ var children = _ref11.children,
422
+ htmlProps = _objectWithoutProperties(_ref11, _excluded1);
423
+ var name = useId();
424
+ var tileNavContainerRef = React.useRef(null);
425
+ return /*#__PURE__*/React.createElement(CheckboxGroupTileNavProvider, {
426
+ containerRef: tileNavContainerRef
427
+ }, /*#__PURE__*/React.createElement(NextTileRadioGroupInputContext.Provider, {
428
+ value: {
429
+ name: name
430
+ }
431
+ }, /*#__PURE__*/React.createElement("div", _extends({
432
+ ref: mergeRefs(ref, tileNavContainerRef)
433
+ }, htmlProps, {
434
+ role: "radiogroup"
435
+ }), children)));
436
+ });
437
+ function TileInner(_ref12, ref) {
438
+ var _ref12$role = _ref12.role,
439
+ role = _ref12$role === void 0 ? 'none' : _ref12$role,
440
+ props = _objectWithoutProperties(_ref12, _excluded10);
269
441
  switch (role) {
270
442
  case 'none':
271
443
  return /*#__PURE__*/React.createElement(InteractableTile, _extends({
@@ -279,6 +451,10 @@ function TileInner(_ref0, ref) {
279
451
  return /*#__PURE__*/React.createElement(CheckboxTile_, _extends({
280
452
  ref: ref
281
453
  }, props));
454
+ case 'radiobutton':
455
+ return /*#__PURE__*/React.createElement(RadioButtonTile_, _extends({
456
+ ref: ref
457
+ }, props));
282
458
  default:
283
459
  return null;
284
460
  }
@@ -302,6 +478,14 @@ var Tile_ = /*#__PURE__*/React.forwardRef(TileInner);
302
478
  * </CheckboxGroup>
303
479
  * ```
304
480
  *
481
+ * Standalone radio tiles (same keyboard navigation as checkbox group):
482
+ * ```
483
+ * <NextTile.RadioGroup>
484
+ * <NextTile role="radiobutton" value="a" checked={v === 'a'} onChange={...} />
485
+ * <NextTile role="radiobutton" value="b" checked={v === 'b'} onChange={...} />
486
+ * </NextTile.RadioGroup>
487
+ * ```
488
+ *
305
489
  * @since 11.6.0
306
490
  */
307
491
  export var NextTile = addSubcomponents({
@@ -309,6 +493,7 @@ export var NextTile = addSubcomponents({
309
493
  Content: Content,
310
494
  Footer: Footer,
311
495
  HeroText: HeroText,
312
- HeroMedia: HeroMedia
496
+ HeroMedia: HeroMedia,
497
+ RadioGroup: NextTileRadioGroup
313
498
  }, Tile_);
314
499
  //# sourceMappingURL=NextTile.js.map