What's Changed
Environment 💻
- 🚩BREAKING🚩 Upgrades Node.js to v18 and Vue to 2.7. By @bjester and @rtibbles in #645.
- Guidance: Make sure your system supports Node.js v18 and Vue 2.7 before upgrading.
- Integrates visual testing setup to KDS. By @KshitijThareja in #901.
New components
- KCard: An accessible card component offering the most frequently used card content and thumbnail layouts, as well as other customization options. By @AllanOXDi, @MisRob and @Spoorthy1423 in #625, #709, #707, #688, #706, #705, #754, #752, #774, #785, #796, #825, #838, #851.
- KCardGrid: An accesible component that displays a grid of cards
KCard
. By @MisRob in #785, #820. - KTable: An accessible and customizable table component designed to handle a variety of data presentation needs, suitable for both simple and complex data tables. By @BabyElias, @Sahil-Sinha-11, @EshaanAgg, @karankoder and @shivam-daksh in #727, #780, #803, #824, #854, #887 and #804.
KRadioButtonGroup: New component to fix keyboard navigation in radio button groups in Firefox. By @muditchoudhary in #650.
- Guidance: Make sure that all
KRadioButton
s are wrapped inKRadioButtonGroup
.
- Guidance: Make sure that all
- KOverlay: Use
KOverlay
to move an element from its original place in the DOM to the overlay container element#k-overlay
. This is often useful for modals, tooltips, dropdowns, or other elements that should appear on top of other content. By @MisRob in #722. - KFocusTrap: Ensures that keyboard focus is trapped within a specific region of the page. By @lokesh-sagi125 in #799.
- KToolbar: Creates initial KToolbar component as a port of UiToolbar. By @rtibbles in #831.
New composables
useKLiveRegion: composable with public methods for updating the live regions with assertive and polite messages. By @MisRob in #687.
- Guidance: Find all polite and live regions (or roles) in an application. Remove them and instead use
useKLiveRegion.sendPoliteMessage
anduseKLiveRegion.sendAssertiveMessage
to update the live regions that KDS inserted to document body during installation.
- Guidance: Find all polite and live regions (or roles) in an application. Remove them and instead use
- useKResponsiveElement: Provides the following reactive element's size information:
elementHeight
andelementWidth
. By @AlexVelezLl in #783.
KImg
- 🚩BREAKING🚩 Removes KImg props related to dimensions:
height
,width
,maxHeight
,minHeight
,maxWidth
,minWidth
. By @MisRob in #615.- Guidance: Use native style, for example replace
<KImg width="100%" maxWidth="500px" />
by<KImg :style="{ width: '100%', maxWidth: '500px' }" />
.
- Guidance: Use native style, for example replace
- Updates
KImg
's placeholder and letterbox area background color to a lighter shade of grey,v_50
. By @MisRob in #666.
KTextTruncator
- 🚩BREAKING🚩 Removes
lineHeightIE
prop and drops Internet Explorer 11 support. By @Nivas7 in #652.- Guidance: To be used in newer versions of products that don't need to support IE11.
KResponsiveWindow
- 🚩BREAKING🚩 Removes KResponsiveWindowMixin. By @AlexVelezLl in #719.
- Guidance: Replace any use of
KResponsiveWindowMixin
with the new composableuseKResponsiveWindow
.
- Guidance: Replace any use of
KResponsiveElementMixin
- 🚩BREAKING🚩 Removes KResponsiveElementMixin. By @AlexVelezLl in #783.
- Guidance: Replace any use of
KResponsiveElementMixin
with the new composableuseKResponsiveElement
.
- Guidance: Replace any use of
UiToolbar
- 🚩BREAKING🚩 Removes
/lib/keen/UiToolbar
. By @rtibbles in #831.- Guidance: Use the new
KToolbar
component instead.
- Guidance: Use the new
KModal
- 🚩BREAKING🚩 Renames KModal's
appendToRoot
prop toappendToOverlay
. By @MisRob in #722- Guidance: Rename KModal's appendToRoot prop to appendToOverlay
Updates KModal to trap keyboard focus. By @lokesh-sagi125 in #799.
- Fixes KModal content height calculation, and now it shrinks when the content has a smaller height. By @galovdev in #590.
- Guidance: Double check that the height of the modals continues to work correctly.
- Fixes infinite recursive error when KModal request the focus. By @AlexVelezLl in #903.
KDS General Styling
- 🚩BREAKING🚩 Removes deprecated dropshadows. By @lokesh-sagi125 in #815.
- Guidance: Update any
%dropshadow-Xdp
usage different than 1dp, 2dp and 6dp to the latest drop shadows guidelines.
- Guidance: Update any
KImg, KTabs, KTabsList
- 🚩BREAKING🚩 Component error handling now use
@error
listener to avoid polluting test output, nor suppressingconsole.*
in tests. By @bjester in #645.- Guidance: The
KImg
component may now emit anError
object in its@error
listener when incorrectly configured, in addition to anUiEvent|Event
when an image fails to load. Consumers should type check the value.
- Guidance: The
KSelect
- Internal refactor of
KSelect
as part of moving away from Keen UI. By @Jaspreet-singh-1032 in #549.- Guidance: Thorough QA of places that use
KSelect
is recommended due to the large scope of refactor.
- Guidance: Thorough QA of places that use
- Adds new events:
@dropdown-open
,@dropdown-close
,@query-change
,@input
,@touch
,@focus
. By @Jaspreet-singh-1032 in #549. - Adds new slots:
#default
,#display
,#option
,#no-results
,#error
,#help
. By @Jaspreet-singh-1032 in #549. - Adds new public method
reset
to reset the state of the KSelect to default values. By @Jaspreet-singh-1032 in #549. - Fixes KSelect not being reactive to
value
prop changes. By @rtibbles in #843. - 🗒️ Improves KSelect documentation by documenting undocumented slots and props. By @yeshwanth235 in #821.
- Teleport KSelect dropdown to the Overlay layer to fix positioning errors. By @AlexVelezLl in #877.
KIconButton
- Adds
tooltip
prop as fallback whenariaLabel
is missing in KIconButton. By @shivam-daksh in #798.
KDateRange
- Changes KDateRange behavior when opening the calendar, it now shows the month of the
lastAllowedDate
prop instead of the current month. By @LianaHarris360 in #718.
KDropdownMenu
Fixes keyboard navigation flow that prevented focusing the next option when a divider was present. By @Sahil-Sinha-11 in #818.
Fixes an issue where focus is not correctly restored to the last focused element after the dropdown is closed. By @Sahil-Sinha-11 in #818.
- Adds
maxWidth
prop to KDropdownMenu to override dropdown max width. By @lokesh-sagi125 in #870.
KSwitch
- Adds
ariaLabelledBy
prop to KSwitch. By @Sahil-Sinha-11 in #808.
KTooltip
- Adds new prop,
appendToOverlay
, to KTooltip. By @MisRob in #722 - 🗒️ Adds documentation for KTooltip component. By @shruti862 in #859.
KIcon
- Adds new icons:
previewUnavailable
,brokenImage
,autoReplace
,basicSkillsResource
,circleCheckmark
,optionsCircle
,dailyLifeResource
,forTeachersResource
andschoolResource
. By @MisRob, @rtibbles and @marcellamaki in #678, #391 and #919. - Adds
brokenImage
icon as fallback if the providedicon
is invalid. By @rtibbles in #391. - Makes the sidebar icon flip in RTL languages. By @MisRob in #722
KRadioButton
- Adds warning in KRadioButton if it is not nested inside a KradioButtonGroup. By @lokesh-sagi125 in #781.
KBreadcrumbs
Adds the global title attribute to
KBreadcrumbs
so that the truncated text can be seen fully when a breadcrumb item is hovered. By @RONAK-AI647 in #872.
KThemePlugin
- Adds
$darken1
,$darken2
and$darken3
global utility functions for darkening palette colors. By @shivam-daksh in #728. - Updates dropshadows to the latest design guidelines. By @lokesh-sagi125 in #762
KDS Instalation
Adds logic that inserts ARIA live assertive and polite regions to an application's document body during KDS initialization. By @MisRob in #687.
- Inserts the overlay container element
#k-overlay
to an application's document body during KDS initialization. By @MisRob in #722
User experience
- Updates
$core-time
value from 0.25s to 0.15s to get faster transitions inKButton
,KExternalLink
,KRouterLink
,KModal
,KCard
,KIcon
,KTabsList
,KTabs
, and places in consumers that imports$core-time
. By @MisRob in #723.
Docs 🗒️
- Adds new
Installation
page to inform the KDS installation steps, and note the changes it makes to the DOM, and the properties, helpers and components it provided. By @MisRob in #687. - Updates drop shadows documentation to the latest guidance from the design team. By @MisRob in #723.
- Updates KDS Docs favicon to the new branding. By @RONAK-AI647 in #809.
- Improves visibility of focus-ring in Firefox. By @RONAK-AI647 in #827.
- Reorganizes elevation diagram in styling docs to be under the z-index section for better clarity. By @RONAK-AI647 in #819.
- Adds search text to route query for better browser history management. By @RONAK-AI647 in #847.
- Improves docs mobile responsiveness by adding a menu hamburguer to open docs sidenav on mobile devices. By @FidalMathew in #862.
- Adds toggle functionality for switching between an example and its code snippet in the docs. By @chetan21122004 in #873.
New Contributors
- @galovdev made their first contribution in #590
- @Nivas7 made their first contribution in #652
- @shivam-daksh made their first contribution in #728
- @Spoorthy1423 made their first contribution in #754
- @lokesh-sagi125 made their first contribution in #762
- @Sahil-Sinha-11 made their first contribution in #803
- @RONAK-AI647 made their first contribution in #809
- @yeshwanth235 made their first contribution in #821
- @iamshobhraj made their first contribution in #846
- @rparadowski made their first contribution in #849
- @shruti862 made their first contribution in #859
- @karankoder made their first contribution in #887
- @chetan21122004 made their first contribution in #873
Full Changelog: v4.6.0...v5.0.0