# Change Log

## 12.44.0

### Minor Changes

- 3ace1da: Page AnchorNavigation move focus to section heading when anchor navigation link is activated

### Patch Changes

- 708b0a9: Spinner aria hide `progressbar` and `StyledSpinnerOverlayLabel` from Screen Reader when `!loading`
- 35d9064: Add visually hidden labels in Multi SuperSelect for ScreenReaders to announce selected items
- 5760de9: `Table` Update arrows of basic table to more closely resemble datatable arrow pattern that is accessible

## 12.43.0

### Minor Changes

- ca101fc: Export type AsLinkProps and update to accept all link props
- 2cd5b75: Add `aria-invalid` attribute to `Checkbox` component for improved accessibility

### Patch Changes

- e1d693b: Improve `SuperSelect` accessibility

  - Single-select: `role="combobox"` -> `role="button"`, added `aria-describedby` pointing to selected value
  - Multi-select: `role="combobox"` removed from outer container, inner input gets `role="combobox"` with `aria-activedescendant` for token navigation
  - Removed `role="dialog"` from overlay
  - Search input in overlay: added `role="combobox"`, `aria-haspopup="listbox"`, `aria-expanded`, `aria-activedescendant`
  - Tokens wrapped in semantic `<ul role="list">`/`<li>` markup, removed from tab order (`tabIndex={-1}`)
  - `aria-selected` fixed to reflect actual selection state
  - `aria-disabled` added to disabled options

- ca101fc: Fix Tabs roleless variant keyboard firing onclick twice
- 818727f: Fix double pixel width with Selects. Continue to allow container to set/override widths
- 5a33cc0: Fixed invalid `aria-controls` attributes in `SuperSelect` and `MultiSelect` that referenced non-existent DOM element IDs when the dropdown is closed.
- 6a06559: Add keyboard support (Enter, Space) to open DateSelect calendar
- ce03cf7: Updated `aria-labelledby` logic in Select (PillSelect) to properly integrate with external labels for combobox
- d4652e3: **AnchorNavigation:** improve accessibility for in-page section navigation.

  **`@procore/core-react`**

  - Wrap the list in a `<nav>` landmark with a default accessible name from the new translation key `core.anchorNavigation.landmarkLabel` (English: “On this page”). Only `en.json` is updated for now; other locales can be added by localization.
  - Add optional `aria-label` to override the default landmark name when multiple navigations need distinct names.
  - Use `aria-current="page"` on the active section link and omit `aria-current` on inactive links.

  **`@procore/core-docs`**

  - Document the navigation landmark, translation key, `aria-label`, and `aria-current` behavior on the AnchorNavigation page.

- 9122889: Token and FileToken: Prevent unnecessary tab stop
- d49f826: ConfirmModal fix allow additional close methods
- 19853ef: Typeahead component:

  - Allow the Clear button to receive focus by removing `tabIndex={-1}` for better keyboard accessibility.
  - Replace the hardcoded `aria-label` with a value from the i18n context.
  - Update focus behavior so that focus returns to the input after pressing the Clear button via keyboard.

- Updated dependencies [bf0532b]
  - @procore/core-icons@12.15.0

## 12.42.0

### Minor Changes

- 1b008b9: Update `Modal` documentation for accessibility. `Modal onClose howToClose` should be used to centralize close management, adding Esc Key support, and dialog role. Continue to use `Modal.Heading` to link the dialog to the semantic heading.

  - Deprecate `onClickOverlay` prop on `Modal`. Use `Modal onClose howToClose={['scrim']}` instead.
  - Deprecate `onClose` prop on `Modal.Header`. Use `Modal onClose howToClose={['x']}` instead.
  - Update `ConfirmModal` to support `role="dialog"` or `"alertdialog"` and `aria-modal`. You should opt-in to one of the roles.
  - `ConfirmModal` add support for both `ModalOnClose` and the legacy `MouseEvent<HTMLButtonElement>` callback
  - Export `ModalOnClose` type from `core-react`
  - Fix, removed duplicate id from `Modal.Header` and `Modal.Heading`

  - bcd3b67: Enhance MenuImperative drag and drop accessibility to support keyboard navigation experience. Space Key picks up the item to drag.

### Patch Changes

- 88b6bd2: SuperSeclect change aria-haspopup for trigger and overlay role to listbox
- b1578df: removing color experiment, not being used
- 1e79569: Updating ContactItem screenreader context by removing need to read avatar which is copied info of text next to it
- 91c1198: [ProgressBar] adding in border to progress bar styles for accessibility, using first color to pass 3.5:1 contrast ratio

## 12.41.0

### Minor Changes

- 9bdd705: Show overflow tooltips on keyboard focus for `Select` and `PillSelect` components
- 0e6fc2f: `Thumbnail`: keyboard-accessible caption tooltip and focusable non-checkbox variants
  - **Caption tooltip:** The overflow tooltip for the caption now opens when the user hovers or focuses the whole Thumbnail (not only the caption). The tooltip is still shown only when the caption is overflowing. Tooltip logic is lifted to the Thumbnail level and wrapped in a shared `ThumbnailCaptionTooltip` component.
  - **Focusability:** Base and Figure Thumbnails (and their Placeholder variants) are now focusable (`tabIndex={0}`) with `role="group"` and `aria-label` (from label + caption) so keyboard users can tab to them and trigger the caption tooltip on focus. Checkbox Thumbnails are unchanged (focus remains on the hidden input).

### Patch Changes

- 8747be1: Add `&&` specificity boost to `StyledUploadButton` in `Dropzone` to prevent cross-MFE styled-components cascade conflicts
- 4de4e0c: Remove unneeded tabstop from `Section` component
- ee7d85a: `AvatarStack`: Prevent popover from opening when an avatar is dimmed(disabled).
  Restore focus to the view-more ("+N") trigger when the View All modal is closed (e.g. via Escape) for keyboard accessibility.
- 80bb8c8: Deprecate `FileSelect` and `FileTokenList`. Migrate to the connected version.
- 453bce7: Deprecate the `shelf` prop on `Table.Container`. This pattern is not accessible and we do not have a migration path.

## 12.40.0

### Minor Changes

- 79d9a1d: Update Tab attributes and more overflow for keyboard and fix aria attributes. May cause friction with existing tests.
  - `Tabs.Tab` now defaults to buttons if provided a click handler. Allows them to be in keyboard TAB order by default. It is preferred that consumers explicitly opt-in to button or link role.
  - `Tabs.Tab role = link` now renders `a role = link` instead of `a role = button`. May break tests, to resolve update tests to target link rather than button.
  - `Tabs` no longer renders a `nav` element. May break tests, to resolve update tests to target individual tabs, the group, or add data-qa attributes.
  - Resolve "no nested controls" for overflow. The Tabs "More" overflow menu no longer is role = menu and menuitems with nested interactions, now renders `role = dialog` and relies on the children to be focusable for regular keyboard TAB navigation.
- 28c4df6: New design pattern- `Panel.Title` and `SplitViewCard.PanelTitle` remove truncation and tooltip, allowing the text to wrap mutliple lines. Content text and left/right buttons align at the top.
- fd506f5: Show `FileToken` error message inline instead of in a tooltip

## 12.39.0

### Minor Changes

- 916989e: Improve date input accessibility by adding an `aria-label` prop
- 3a1321e: Make `AvatarStack` avatar popovers keyboard accessible

  - Changed avatar triggers from img/link roles to button role

- 4ed0299: - Introduced a new hierarchical model for rendering grouped options across `Select`, `MultiSelect`, `GroupSelect`, and `Form` components which improves semantic HTML structure. Backward compatibility is maintained.
  - The `groupHeaderRenderer` prop in `MultiSelect`, `Form.Select`, and `GroupSelect` is deprecated. Use `groupRenderer` instead, which now receives the group object and its `children` (the options).
  - Passing group label as the `children` to `MenuImperative.Group` and `Select.OptGroup` is deprecated. Use the `label` prop for the group title and pass the options as `children`.
- 82146ce: Improve `MultiSelect` accessibility:

  - Add `aria-invalid` and `aria-describedby` support for error state
  - Fix selected tokens announcing "selectable" by removing them from tab order
  - Fix combobox input nested inside `role="list"` by separating structure from visual layout
  - Add Delete key support for removing tokens
  - Close dropdown when navigating tokens with arrow keys
  - Add "None selected" announcement when no items are selected

- d36f2ec: Make Tooltips announced by screen readers. User should still supply a focusable element like `Button`.

  - `Tooltip` update default `trigger` to hover _and focus_
  - `Tooltip` supports `trackAriaExpanded` prop to pass aria open state to children. Recommendation set to `true`, valid on elements like `button`. Currently false, possible future default it to true
  - `Tooltip.Content` uses `aria-live` ~possible future: renders empty container, then inner content~
  - `Tooltip` apply `role tooltip` to the overlay to handle `aria-describedby` and `id`. Allow for manual `aria-describedby` and `id`
  - Update tooltips in `Checkbox`, `SegmentedController`, and `SourceItem`

- 4bbe568: Added `onTransitionEnd` handler to Panel to unmount it from the DOM after the closing animation finishes

### Patch Changes

- 374386b: Demo and Coverage stories now wrap `DateSelect` with a visible `Label` ("Date") and `aria-labelledby`. Applies to Basic, Locales, and all variants (empty, with value, error, disabled)
- f9ed3e9: In `Page.Aside` added optional focus management (`focusOnOpen`, `restoreFocusOnClose`) to move focus into the aside on open and restore it on close, without affecting existing behavior by default.
- 578560c: Removing the tooltip on non-preview FileList item re: a11y
- f9ed3e9: Remove scroll area from shifting on focus. Section and Tearsheet use outline instead of border for visible focus
- b0da9a8: Enhance a11y for `CheckboxOutput` component by moving existing `aria-label` from the `span` wrapper to the `svg` icon.
- 40ce870: remove intersection observer
- fd6f808: Disable onClear when Select, TieredSelect, or PillSelect is disabled.

## 12.38.0

### Minor Changes

- 5c9765e: Revert SuperSelect accessibility changes
- ec26b8f: Updated Select to apply correct ARIA roles and states by using a `combobox` pattern for listbox-only panels and a `button` (disclosure) pattern when additional panel content is present.
- 09ee67d: `Popover` added optional `trackAriaExpanded` to apply the `aria-expanded` attribute, recommended use with `Button` triggers. Enabled in `AvatarStack`.
- a8bbf59: Banner: Add `Banner.ExpandActionButton` to toggle expandable content; handles aria-expanded and default "Expand" / "Collapse" label (i18n). Supports children for a custom label.

### Patch Changes

- dfdba61: `SuperSelect`: Added a minimum height check to `size()` so that if the computed `availableHeight` for the dropdown is less than 248px, `maxHeight` is not set to that value, causing the menu to flip open upwards instead of shrinking to fit below.
- d786d24: `Spinner`: Add appropriate ARIA role and labeling for accessibility.
  - Add `role="progressbar"` to the spinner container so screen readers recognize the loading state.
  - Add `aria-labelledby` linking the progressbar to its label (default "Loading" or custom `label`).
  - Use stable `id` from `useId()` for label association; when a visible label is shown with children, associate it via `aria-labelledby` and set `aria-hidden` on the SVG to avoid duplicate announcements.
- e26caf8: Improve `FileSelect` source list accessibility:
  - `FileExplorerSidebar` - Add `role="listbox"` to the navigation container for the list of sources
  - `SourceItem` - Add `role="option"` with `aria-selected` and `aria-disabled` for proper listbox semantics; set `tabIndex={-1}` when disabled so keyboard users skip disabled items
- e519f21: `Select` applies className and style always to the outermost element (like before when buttons were nested)

## 12.37.0

**DO NOT USE 12.37.0** This release changed SuperSelect UI UX which caused issues. It has been reverted, please use `12.38.0` instead.

### Minor Changes

- 26ca426: _Changes internal HTML structure_ Fix Delete control accessibility in Select components:
  - `Select`, `TieredSelect` - Clear button is now keyboard accessible and positioned outside the main button element. This will affect tests that query by button role. To fix this, specify accessible name: `getByRole('button', { name: 'label' })`
  - `DateSelect`, `GroupSelect`, `MultiSelect`, `SuperSelect` - Clear button has correct tabIndex (0 when visible, -1 when hidden)
- 00af70b: Improved `Dropdown` and `TieredSelect` search dropdown focus handling. Removed auto-highlight side effects on open and ensured predictable first keyboard navigation from the search input, improving screen reader behavior. Added keyboard activation support (Enter/Space) for TieredSelect trigger.
- b3cf4bb: `OverlayTrigger` change event `blur` to `focusout` and `focus` to `focusin`
- 629b6a8: SuperSelect:
  - add `defaultOnUnselectAll` to help aid with unselecting options when there's a search value. Previously, all options were unselected when a user clicked `Select All`. **This only happens when all options are selected, and the user clicks on `Select All`**
  - add `onUnselectAll` prop to allow custom implementation for unselecting options
  - reworked `previousSelectableOptionsRef` and how auto-selection determines if there are new options to add
- 147ecb7: Improved SuperSelect accessibility, added `role="group"` and `aria-labelledby` to MultiTrigger, added an `id` to Label, and updated ARIA attributes in useSuperSelect (`trigger`, `search`, `multi-input`, `options`).
- 1c5981d: Removed `aria-busy` attribute from `Button` when `loading` because this is an incorrect usage of this attribute.
- 26ca426: `DateSelect` - Enter key on target no longer closes the picker. This change allows to use Enter key for the Clear button.

### Patch Changes

- befa53e: Added `aria-live="polite"` attribute to `StyledEmptyState` in `FileSelect` to automatically announce content when it's updated.
- b3cf4bb: Add `aria-describedby` to `FileSelect` SourceItem tooltips for screen readers
- 53a9004: Indicate expanded state using `aria-expanded` for `DropdownFlyout` component
- f54c157: Fix `DateInput` place holder for pl-PL locale
- d452cdb: Modified color support for experimental purposes

## 12.36.0

### Minor Changes

- 66c5e53: Improve Tree component accessibility:
  - Add `role="tree"` to container with `aria-multiselectable`
  - Add `role="treeitem"` to each node with `aria-level`, `aria-setsize`, `aria-posinset`
  - Add `aria-expanded` for expandable nodes and `aria-selected` for selectable nodes
  - Add `role="presentation"` to react-window container divs to preserve accessibility tree
  - Add `aria-activedescendant` to track focused item for VoiceOver compatibility
  - Add unique `id` to each treeitem for aria-activedescendant reference
  - Use Button component for expand/collapse chevron
  - Add left/right arrow and Tab/Shift+Tab keyboard navigation within tree
- 47d9bbe: Improved accessibility by allowing hover tooltips to be dismissed with Escape key

### Patch Changes

- 90e1293: Update border colors in `Input`, `Select`, `SuperSelect`, `DateInput`, `NumberInput` and other input components for better contrast. Default border color changed from `gray70` to `gray50` and hover border color changed from `gray45` to `gray20`.
- 33b7133: Add `aria-disabled` to `Select.Button`
- 795d8eb: adding `aria-hidden='true'` to numeric Labels in `Slider`
- e88fca5: `SuperSelect`
  - Fix visual bug with Select All being selected when there are 0 options
  - Fix issue with auto-selection not turn on/off due to incorrect comparisons of selectable options
- dab23b7: Updated radio button border color from `gray70` to `gray50` to have sufficient contrast
- 270e9f1: Updated `tableSortFontColor` from `gray70` to `gray50` and `tableSortFontColorHover` from `gray45` to `gray40` to have sufficient contrast between the icon and the background.
- 983fea3: Fixed `Pagination` dropdown being cut off at insufficient viewport height.

## 12.35.0

### Minor Changes

- b78032a: `Calendar.Day` component is now a button element
- ea3dac5: Improve `Table.Carat` accessibility:
  - _Notice:_ Change ref type from `SVGElement` to `HTMLButtonElement`: The Carat component now correctly types its ref as `HTMLButtonElement` instead of `SVGElement` to accurately reflect that it renders a Button component. Consumers using refs on Table.Carat should update their ref types accordingly.
  - Add dynamic internationalized aria-labels that change based on expanded state (Expand/Collapse) and support custom aria-label prop override for consumers who need more specific labels
- 44c7e06: Implements a `PortalProvider` and hook for consumers to provide an optional global portal container
- 9d002eb: Add `TextEditor` accessibility props for screen reader support
  - Add `aria-label` prop to provide an accessible name for the editor
  - Add `aria-description` prop to provide additional context for screen reader users
- e7c8431: Add internal `mainSectionRef` prop to SplitViewCardContext that is used to return focus to Main section when Panel closes. Change tabIndex of the Main section to -1

### Patch Changes

- 80693ba: Deprecated the `clickable` prop on the ContactItem component.
- 551cb80: Improve `DateSelect` error state accessibility
  - Add `aria-invalid` attribute that reflects the `error` prop
- 0c0c82f: `Table` Associate error messages with their related fields using `aria-describedby` and add `aria-invalid`.
- 4d677d3: Add `aria-invalid` attribute to text editor container in error state
- f4dcc0b: Improve `TextArea` error state accessibility add `aria-invalid` attribute that reflects the `error` prop
- eff2231: Adding role='img' and aria-label to `Thumbnails` placeholder icons
- 1f33e8c: Improve `Panel.Header` back button accessibility when inactive:
  - Make the Button inaccessible when `onClickBack` is undefined: set `aria-hidden`, `tabIndex={-1}`, and `disabled` on the Button so screen readers and keyboard users do not focus or announce it.

## 12.34.1

### Patch Changes

- 2eb552f: Improve MultiSelect accessibility:

  - Add `role="combobox"` to the search input with `aria-expanded` and `aria-controls`
  - Add `role="list"` to the selected tokens container with `aria-label="Selected items"`
  - Add `role="listitem"` to each selected token with `aria-label="<label>, selected"`
  - Add `aria-activedescendant` to track focused token during keyboard navigation
  - Add new locale keys: `multiSelect.selectedToken` and `multiSelect.selectedItems`

## 12.34.0

### Minor Changes

- 81dee8f: `TierSelect` Fix empty message not showing when there are no options
  - Add support for dynamic placeholder value in Search field
  - Add possibility for controlled search value

### Patch Changes

- 6df3579: Add warning to add ARIA labels for icon-only buttons
- 769b37e: Add role (img) and aria-label (Folder/File) to Tree icons
- 64384c4: Default `tabAsNavigation` was changed to true to fix keyboard navigation in RichText and TextEditor
- Updated dependencies [fd00049]
  - @procore/core-icons@12.11.1

## 12.33.0

### Minor Changes

- 9481875: Adding in aria invalid logic to Input

## 12.32.0

### Minor Changes

- 9a1d3c4: Add settingsLink prop to ToolLandingPage.Title for client-side routing support while deprecating settingsHref
- c8dad86: Basic Form.RichText textEditorComponent for migration. Will be required in v13.

### Patch Changes

- Updated dependencies [cbc7f68]
- Updated dependencies [8112072]
  - @procore/core-i18n-js@10.30.0
  - @procore/core-icons@12.11.0

## 12.31.0

### Minor Changes

- 129f3d0: Add support for new locales: Italian, Portuguese, Traditional Chinese (Taiwan) and Norwegian (Norway)
- bcd2d3c: Adding in exports for internal template components as `UNSAFE_PageTemplate`
- 83eeb39: Exposed `MenuImperative` as the export, deprecated `UNSAFE_MENU`

### Patch Changes

- c68e49f: Click `DropdownFlyout` when it's open, close it
- 70ca908: Layout Cards like DetailPage.Card refreshes the anchor nav label on navigationLabel prop change
- f95beb2: Add unsafe internal temporary helper exports to support migration to separate TextEditor package.

## 12.30.0

### Minor Changes

- 3f27bb5: SuperSelect fix for "Select All" - auto-selection

### Patch Changes

- ce99170: Avatar size sm and AvatarStack size sm undeprecated
- Updated dependencies [1a41336]
  - @procore/core-icons@12.10.1

## 12.29.0

### Minor Changes

- 5139e79: TextEditor rollback, revert CKEditor (as-if 12.25.2). Keep coreReactJestConfig (optional). **Important Note Do Not Use Core React v12.26.0 - 12.28.1**, multiple loads may break pages.

## 12.28.1

### Patch Changes

- 1050273: SuperSelect move deselect all logic
- Fix selecting list type in Text Editor

## 12.28.0

### Minor Changes

- 819e783: Adds "Select All" as an option in SuperSelect

## 12.27.1

### Patch Changes

- af60183: Add TinyMCE-specific props as no-ops to TextEditor to avoid creating a breaking change.

## 12.27.0

### Minor Changes

- TextEditor is CKEditor only

## 12.26.6

### Patch Changes

- 4d27a6: fix rich text editor list cursor position
- ae8238: fix new line in form rich text
- 67e065: fix/feat NumberInput chains aria-labelledby for prefix and suffix
- add types for coreReactJestConfig

## 12.26.5

### Patch Changes

- Improve performance of multiple TextEditorOutput instances
- Remove empty space under Slider when not using labelled steps

## 12.26.4

### Patch Changes

- 07a97f2: Upgrades `axios` dependency to `^1.12.1`.
- 1379493: Add `prefers-reduced-motion` media query to disable `Loader` animations if needed
- Updated dependencies [07a97f2]
  - @procore/core-icons@12.9.1

## 12.26.3

### Patch Changes

- 4e22eaf: Fix TieredSelect clearing
- 613adb2: Remove TextEditorOutput border
- dbb07ad: Add `type="search"` to the `Search` component

## 12.26.2

### Patch Changes

- be6f23f: Make TextEditorOutput consistent with TextEditor
- 962a686: Fix incorrect disabled attribute usage on Thumbnail
- fb45d1a: Table Checkbox select row aria label
- 13fdc00: Disabled Token disables remove token button

## 12.26.1

### Patch Changes

- 2813b0a: [TextEditor] using prod license key for editor instead of dev key

## 12.26.0

### Minor Changes

- b341ca9: Migration of the TextEditor component from TinyMCE to CKEditor, while providing backward compatibility with the old editor API with tinyMCE prop. See coreReactJestConfig for test setup compatibility.

### Patch Changes

- 7407d2a: Fix Dropdown loading Spinner being clipped
- 8243b84: Fix focus styles for scroll areas

## 12.25.2

### Patch Changes

- 69492f6: Added an appropriate role for Remove buttons in pill component
- 16e7f49: Fix `Modal.Heading` IDs automatically linking to the dialog and scroll region without duplicating `id`
- ecba76f: Fixes closing DropdownFlyout on click outside
- 50649d7: Convert `Token.Remove` component into the button with improved accessibility
- 9e3d226: Use React.HTMLElement helpers directly rather than an internal alias. Remove previous patch exports
- 202fb05: Fix border radius in Popover
- 63ac8fa: Added an accessible role and label to the scrollable regions of the components (Modal, Panel, SplitViewCard, Tearsheet)

## 12.25.1

### Patch Changes

- 0f0f442: Fix Token disabled and focus styles (dont use, bad a11y)
- 6cce20a: Added role and aria-label to GhostPlaceholder
- 0f0f442: Textarea resize prop fix
- 65185fa: Fix isSelected state for batched options and add in isPartiallySelected for checkboxes
- afa6740: Added additional type exports to resolve downstream build errors.
- 0f0f442: fix NumberInput incrementor dom errors. rollback input type

## 12.25.0

### Minor Changes

- f8cae7a: Updated NextTile with accessibility changes and added documentation. Updated styles for Tile to better work as "checkbox" Tiles

### Patch Changes

- 09b7763: Add the `combobox` role to the combobox for selecting a page inside the `Pagination` component
- e92ba95: Fix: SegmentController selected state for initially selected Segments
- d996121: Bump cdn-translations version

## 12.24.0

### Minor Changes

- dd0bc0e: Added `role="menu"` to Menu and `role="menuitem"` to MenuItems
  - Adding ability to track aria-expanded to OverlayTrigger onto target element for a11y concerns
  - Using trackAriaExpanded and role for Panel action overflow

### Patch Changes

- ee3d968: Improved accessibility for `NumberInput` with incrementor role spinbutton
- bf08560: Improved accessibility for `Spinner` with adding aria-label
- Fix missing footer on UNSAFE_SuperSelect

## 12.23.0

### Minor Changes

- 5848cca: Update I18nProviders to have the option to pull translations from the CDN package cdn-translations with `enableCDN` prop or context inheritance

### Patch Changes

- e14e204: There is a fix for inconvenient disappears after releasing the mouse outside of the popover component
- dfaab43: Added some aria to Contact Item and updated documentation
- Updated dependencies [fac7a44]
- Updated dependencies [b091686]
  - @procore/core-icons@12.8.0

## 12.22.0

### Minor Changes

- 76650bc: Support Styled Components v6. Prefixed styled-component props with `$` to resolve warnings on transient props.

## 12.21.2

### Patch Changes

- 632ce8a: Title to subheading spacing increased by 4, toggle button has consistent spacing in page header
- a9ac0ff: Yarn 4 migration
- Updated dependencies [a9ac0ff]
  - @procore/core-icons@12.6.1

## 12.21.1

### Patch Changes

- a923d1b: Un-deprecate `disabled` prop for the Search component
- 2cb1890: fix `NumberInput` typing issue

## 12.21.0

### Minor Changes

- ee16a7f: RadioButton error adds aria-invalid

### Patch Changes

- ce06a5b: Add description of `useSplitViewCard` hook in `SplitViewCard`
  Export `useSplitViewCard` to control opening/closing `SplitViewCard`

## 12.20.4

### Patch Changes

- Updated dependencies [1172b23]
  - @procore/core-icons@12.6.0

## 12.20.3

### Patch Changes

- 28a8cec: Added type overload to useI18nContext for non generic cases
- Updated dependencies [8ca5a1d]
  - @procore/core-icons@12.5.0

## 12.20.2

### Patch Changes

- dcf6db1: Fix `TieredDropdown` search state now clears on blur
- 39489bf: Fix for the second argument of `translate()` and `t()` to be optional when the string is not pluralized or interpolated
- Updated dependencies [ac240cb]
  - @procore/core-icons@12.4.0

## 12.20.1

### Patch Changes

- 3b03f2c: non-selectable items in the `Tree` are now styled to appear visually disabled
- 6b4152c: Update `ToolLandingPage` settings link colors to be a secondary button
- 6b4152c: Fixed typed `useI18nContext` to properly handle pluralized translations.

## 12.20.0

### Minor Changes

- 12df818: Added generic type parameter for `useI18nContext` to enable strong typing of translation parameters

### Non SemVer Changes

- Unsafe limited release alpha PageHeaderTemplate

## 12.19.0

### Minor Changes

- a7648b2: `Dropzone` component deprecates `tooltip` property, add `tokens` and `onClear` props for displaying files

### Patch Changes

- Updated dependencies [4fccfec]
  - @procore/core-i18n-js@10.29.3

## 12.18.1

### Patch Changes

- a34bc6a: Upgrades `@tinymce/tinymce-react`, removes `tinymce` as a dependency
- 789f671: Fix typo in translation key name.

## 12.18.0

### Minor Changes

- d167d90: [UXI-1088] Remove `react-beautiful-dnd` peerDependency requirement. Migration to and internalizes `@atlaskit/pragmatic-drag-and-drop`
- abb108e: Introduce `TextInput`component instead to replace `Input`, planning to deprecate `Input` component

### Patch Changes

- cb84286: Fixed `Spinner` to disable animations when `loading` is false.
- c447ddc: Tinymce to 6.8.5

## 12.17.8

### Patch Changes

- 53110d4: Deprecate `compact` property, add `isHorizontal` and `size` properties to EmptyState component

## 12.17.7

### Patch Changes

- 5cadbc9: Add default icon to Banner componet depending on variant
- 98780c8: Deprecate `iconRight` property and `tertiaryContrast` variant for Button. Decouple FilterToken component from Button

## 12.17.6

### Patch Changes

- 864ac9d: Update dependency package versions

## 12.17.5

### Patch Changes

- b19e0a0f42: Fix `isTierDisabled` in `TieredSelect` component with selectable tiers
- c33b95d3b0: `SegmentedController.Segment` `selected` instead of `active`, deprecate `active`
- c861e39b23: Deprecate `active` prop in `Tabs` component, replaced by the `selected` prop
- b6784bf2bc: `Spinner` `variant` instead of `color`, add new variants
  - Hide label on small sizes (`xs`, `sm`).
  - Deprecate `color` property.
  - Un-deprecate `variant` property, add `default`, `button` and `focus` variants
- caacaa17b5: Deprecate `traditional` `variant` for `Form` field layouts

## 12.17.4

### Patch Changes

- 3f23de248: Deprecate `gray` variant from Link component
- cce0b1f41: Axios package bump for security

## 12.17.3

### Patch Changes

- fe7e10cbe: Deprecate `sm` size in Avatar component
- 1d8188268: Tearsheet deprecate `placement` and `stretch`, add `block` property as a drop-in replacement for `stretch`
- 340e07485: Deprecate `size` `sm` in AvatarStack component
- 72cca9636: Popover deprecate `fluid` property, add `block` property as a drop-in replacement

## 12.17.2

### Patch Changes

- 844a38816d: Updated the file upload error messages to display the file's relative path.
- 144ef26610: Deprecate `disabled` and `error` props for the Search component
- d6f8cdd9cd: Fix some accessibility a11y warnings
- 33607f479c: Update Dropzone error messaging.

## 12.17.1

### Patch Changes

- 59ce2207fa: Improve messaging for blocking zero byte uploads in Dropzone component.
- Updated dependencies [fd00589dce]
- Updated dependencies
  - @procore/core-icons@12.3.0

## 12.17.0

### Minor Changes

- bbaaa149de: Removed text transform from the Spinner label

### Patch Changes

- e6cff39e8e: Fix invalid html attributes for Typography and Tabs, use styled-components transient prefix $
- fe5abed75a: Added animationFrame: true to autoUpdate to prevent ResizeObserver bug in @floating-ui

## 12.16.2

### Patch Changes

- 221c980472: Removed unnecessary re-renders for TextEditor by memoize the focusScope for the useEffect to avoid over-triggering.
- 758409d4d0: Add data-core-react attribute for tracking NextGen Layouts utilization

## 12.16.1

### Patch Changes

- 09eb576e78: Focus can leave a Modal or Tearsheet when the TinyMCE TextEditor has a plugin enabled that opens its own TinyMCE modal

## 12.16.0

### Minor Changes

- cb9ef0cf13: disable buttons during the closing transitions of the modal and tearsheets components.

### Patch Changes

- 5633033fec: Dropped core-css and scss in GroupBySelect
- d50705608f: [UXI-885] Updating colors for the animated progress bar

## 12.15.0

### Minor Changes

- 4e51fffd2: Add header prop to Select component

## 12.14.0

### Minor Changes

- e660ed1ce: Adding option renderer props to the Form.Select and MultiSelect types so they can be used without error by the consumer
- 85403fc79: Updating dependencies

### Patch Changes

- 081ac7922: fix React warning with Spinner and EmptyState for invalid attributes from styled-components
- d1e891702: EmptyState's description using `body` instead of `h3`

## 12.13.0

### Minor Changes

- 23cdefdd1a: Updating ToggleButton styles, adding loading prop
- 2718e17f50: Added size sm to Avatar and AvatarStack

## 12.12.1

### Patch Changes

- d6e90a75c: Fix placeholder for de-DE in DateInput component
- aeac00464: Fix issue with resetting ungrouped/grouped columns (UISP-215)[UISP-215 https://procoretech.atlassian.net/browse/UISP-215]

## 12.12.0

### Minor Changes

- ce4c89f36: Add onClickViewAll prop to AvatarStack
- b973bf06d: Thumbnail Placeholder variant file
- 2a9c4441d: Improve accessibility to dropdownflyout component which is used in data-table component
- 36ae9f382: update required label capitalization

### Patch Changes

- ba1a46661: Panel Footer show shadow only while scrolling

## 12.11.1

### Patch Changes

- 14551f2c3: Fixed passing a deprecated locale and its translations to I18nProvider was resulting in showing no translations

## 12.11.0

### Minor Changes

- b034c8b7e7: Introducing GhostPlaceholder
- 977a03d2e3: Allow to change the strategy for restoring focus in OverlayTrigger. This fixes closing Select by Tab button.

### Patch Changes

- Updated dependencies [9e378e94cf]
  - @procore/core-icons@12.2.0

## 12.10.0

### Minor Changes

- 6df512a30: - Add Polish support
  - Mark Locale type as deprecated
  - Mark getI18nProviderLocale as deprecated
- 6c2153dea: Changes have been made in the translation for Page keyword in pagination to include the colon along with the translation.
- 76a28038d: Panel Header Action improve screen reader and keyboard support with aria-label and focus trigger

### Patch Changes

- ae429cddb: SplitViewCard no outer spacing on mobile
- Updated dependencies [8c613f543]
  - @procore/core-i18n-js@10.29.0

## 12.9.0

### Minor Changes

- f4bba2564d: Add ToolLandingPage layout and deprecate the ListPage layout
- 2385ee3dc2: Add SplitViewCard component
- e72d0229e4: Add unsafe button variant for helix header

### Patch Changes

- c82363b770: Detail Page Body and Detail Page Card reduce leading space between

## 12.8.1

### Patch Changes

- f238516964: fix internal tab styles for helix header

## 12.8.0

### Minor Changes

- 77ab117fd4: Added `StyledFormFieldMain` export related to Form
- b9bbcf6427: Added internal prop to Modal parts to enable mobile breakpoint responsiveness for Helix Header use. Not intended for widespread use. (`compact`)
- a7bb749cf8: Added internal prop for Tab styles to be used for global navigation. Not intended for widespread use. (`UNSAFE_helixHeader`)

## 12.7.0

### Minor Changes

- d62b76bd8: tinymce strikethrough text formatting

### Patch Changes

- 2ab36a650: Add max_height property to TextEditorOutput component
- 55fed6084: Added `SpanAttributes` type export to fix `styled-components` type error.
- a5daf2815: Add export for Tier
- Updated dependencies [716e98717]
  - @procore/core-icons@12.1.0

## 12.6.0

### Minor Changes

- 77396f11c: Add TinyMCE advlist plugin to default plugins for more bullet and counter styles

## 12.5.0

### Minor Changes

- 898ad719e: Add support for multiple fallbacks on the i18nProvider

### Patch Changes

- 58d7677bf: Add export for DivAttributes

## 12.4.2

### Patch Changes

- 74dc723988: Extend MenuItemProps with AnchorItemProps

## 12.4.1

### Patch Changes

- ecc17b836: Added missing exports that were excluded after removing dist imports

## 12.4.0

### Minor Changes

- c3b8bc91c0: Add anchor navigation to DetailPage and SettingsPage layouts

### Patch Changes

- b832463cbe: TextArea allows rows for larger than min-height default sizes (removes fixed height)
- 6c63b2cf22: Added `UNSAFE_EmptyStateSvg` export from `EmptyState`.
- 6c63b2cf22: Added `UNSAFE_ThumbnailDocumentIcon` export from `Thumbnail`.
- 1ba4e0af1c: Add exports for celi-select package dependencies
- 004a11a69c: Added `UNSAFE_TreeChevron`, `UNSAFE_TreeChevronContainer`, `UNSAFE_TreeFilenameCaption`, `UNSAFE_TreeIconContainer`, `UNSAFE_TreeRowContainer`, and `UNSAFE_TreeRowContent` export from the `Tree` component.

## 12.3.0

### Minor Changes

- 9f36515057: Add SettingsPage layout
- d378956ad7: Adds exports for TinyMCE

## 12.2.0

### Minor Changes

- 952834a3c0: Add exports intended for json-formulator v12 support

### Patch Changes

- 2614939306: Update label typography font weight from 700 to 600

## 12.1.0

### Minor Changes

- d159f925da: Add missed exports of Dropzone for file-select library internal development

## 12.0.0 (2024-05-28)

### Major Changes

See [v12 migration guide](https://core.procore.com/latest/web/releases/migration-guides/core-react/v11-to-v12/) for the full list of changes and migration guides.

General changes:

- Imports from `dist` folder do not work anymore.
- `@procore/globalization-toolkit` is moved from dependencies to required peerDependencies.
- `react-beautiful-dnd` is moved from dependencies to required peerDependencies.
- `formik` peerDependency is now optional. Necessary when using `Form` components and hooks.
- resize observer polyfill remove

Other changes:

- `NumberInput` no longer uses the `locale` as prop from the component.
- `Page` and `DetailPage` subcomponent padding refactor.
- Removed deprecated components, hooks, and contexts:
  - `SuccessBanner`
  - `Sidebar`, `Sidebar.*`
  - `Analytics`, `AnalyticsContext`, `AnalyticsProvider`, etc
  - `AnchorContext`, `AnchorProvider`, `useAnchorContext`, etc
  - `Autofocus`, `useAutofocus`
  - `BoundingRectContext`, `useBoundingRectContext`, `useBoundingRect`, etc
  - `BufferContext`, `useBufferContext`, etc
  - `Event`, `EventProvider`, `useEvent`, `useEventContext` etc
  - `InjectedScriptContext`, `InjectedScriptProvider`, `useInjectedScriptContext`, etc
  - `ListNavigationContext`, `ListNavigationProvider`, `useListNavigationContext`, etc
  - `ResizeObserver`
  - `TextEntryContext`, `TextEntryProvider`, `useTextEntryContext`, etc
  - `TimerContext`, `TimerProvider`, `useTimerContext`, etc
  - `TriggerContext`, `TriggerProvider`, `useTriggerContext`, etc
  - `VisibilityContext`, `VisibilityProvider`, `useVisibilityContext`, etc
