@adaptavant/eds-core@1.52.0

Minor Changes​

  • 23a856c: Calendar: Adds an optional today prop that sets the date marked as today, which the today button and the initial month also use. Pass a date fixed on the server, or tzModifier, so server-rendered pages and the browser agree on today and avoid a hydration mismatch. Without it, today still comes from the current date.
  • 0773882: RadioGroup, CheckboxGroup: Adds a defaultValue prop and makes value and onChange optional, so the groups can be left uncontrolled. Pass defaultValue to set the initial selection and the group keeps track of it from there, submitting the selected values with the form under name. Passing value with onChange controls the group as before.
  • 12495d5: Select: Deprecated, along with SelectProps. Use SelectMenu instead. Select keeps working and will be removed in a future major release. The no-deprecated-components rule in @adaptavant/eslint-plugin-eds now warns on Select and SelectProps.

Patch Changes​

  • c0c6d63: AttachmentCard: file now accepts any object with a name, size and type, not only a browser File, so attachments described by server or API data can render the card. Passing a File works as before.
  • 4e1d2c9: Avatar: Fixes "Invalid DOM property" console errors from the status badge. The internal hasSymbol prop is no longer passed through to the <svg>, which affected every Avatar with a status (including in ConversationCard), and the onCall badge now uses clipRule / fillRule instead of clip-rule / fill-rule. Rendering is unchanged.
  • b6851f1: CropModal: When zoomInButtonLabel / zoomOutButtonLabel are not provided, the zoom buttons are now labelled "Zoom in" and "Zoom out" instead of falling back to an icon's displayName. This also fixes the zoom-out button in @adaptavant/crop-modal, which was labelled "AddOnIcon".
  • 1674d44: useDebounceFunction: Returns the same function across renders and always calls the latest fn, even when an inline function is passed. useIsViewportBelowOrEqual and the other hooks built on it no longer remove and re-add their resize listener on every render.
  • 9a1bd9a: getDayLabels: Can now be called from a React Server Component. It moved out of the 'use client' DaySelect module into a plain utility module, so the server gets the function rather than a client reference. The import path is unchanged.
  • 6f8ea8d: Moves postcss-cli from dependencies to devDependencies, since it is only used by the package's own build scripts, so consumers no longer install it. The README Tailwind setup now shows the real API, createPreset(tokens) with tokens from an @adaptavant/eds-brands brand, instead of the non-existent createTailwindPreset({ brand }).
  • 1d8fa34: SelectCard and AttachmentCard now switch their mobile layout with CSS breakpoints instead of reading the viewport in JavaScript. The server HTML already has the right layout for a phone, so these components no longer render at desktop size first and then resize after hydration. Desktop styles are unchanged. If you override these components' layout classes on mobile, add the max-md: prefix to your overrides.
  • 5b65a41: RichTextEditor: Marks the richTextEditor* feature factories as client modules so the build keeps them out of the shared chunk with Message, MessageHeader, Emoji and SystemTagline. Apps that render those components in client components no longer load the editor engine.
  • 68be3a9: SearchInput: Fixes the "A component is changing an uncontrolled input to be controlled" error when an uncontrolled SearchInput is typed into. Its internal value now starts from value, then defaultValue, then an empty string, so the native input stays controlled for its lifetime. defaultValue is now shown initially and cleared by the clear button and Escape. Controlled usage is unchanged.
  • c235ea8: Snackbar: Uses camelCase insetInlineStart / insetInlineEnd for the offset style, which removes the "Unsupported style property inset-inline-start. Did you mean insetInlineStart?" console error. Placement and offsets are unchanged.
  • 46cabde: TimeZonePicker: Builds the time zone list the first time useTimeZonePicker runs instead of when the module is imported, so pages that only import it no longer spend main-thread time on it at load. The list is cached and the picker behaves as before.
  • 0193391: ButtonLink, Checkbox, Chip, ColorSwatch, ColorSwatches, IconButton, IconLink, Radio, RadioPrimitive, TextInputPrimitive and the ShareModal widget: Adds the missing 'use client' directive, so these components can be rendered from a React Server Component (for example a Next.js App Router page) instead of throwing because they call client hooks on the server.
  • Updated dependencies [c21522b]
  • Updated dependencies [b6851f1]
    • @adaptavant/eds-icons@1.17.1