Skip to content

Releases: learningequality/kolibri-design-system

v2.0.0

22 Jan 04:50
13e5395
Compare
Choose a tag to compare

What's Changed

Utils

  • 🚩BREAKING🚩 Removes lib/utils/i18n.js, lib/utils/pluginMediator.js, and lib/utils/scriptLoader.js
    • Guidance: Even though these were meant as internal, some of our products may import them. If you see Error: Can't resolve 'kolibri-design-system/lib/utils/i18n' in...., it is likely caused by this removal. You could find the files content in 924774e08dc35d99c495c454923a3eca8ea02263 from where you could copy them to a product.

KContentRenderer

KDropdownMenu + KButton/KIconButton

  • 🚩BREAKING🚩 KDropdownMenu no longer contains a button. All props related to buttons were removed from KDropdownMenu, namely text, appearance, and disabled. Instead, KButton and KIconButton have a new #menu slot in which KDropdownMenu should be placed.
    • Guidance: Place KDropdownMenu into KButton's or KIconButton's menu slot and move text, appearance, and disabled props from KDropdownMenu to KButton/KIconButton. See the example in the documentation. Visit "Props" and "Slots" sections of these components' documentation pages for more details.

KButton

  • 🚩BREAKING🚩 The default slot doesn't take precedence over the text prop anymore. The slot's content will be rendered above text when both are provided.
    • Guidance: If you use the default slot simultaneously with the text prop, the button most likely won't render as expected. You might need to add some kind of a custom condition to resolve that.

KRadioButton

  • 🚩BREAKING🚩 Wraps radio button label instead of truncating it. Adds a new prop, truncateLabel, that turns on truncating rather than wrapping.
    • Guidance: Examine places where KRadioButton is used and see whether the new default behavior (wrapping) is problematic. If needed, you can set truncateLabel to true to retain the previous default behavior (truncating).
  • Adds showLabel prop which determines whether a label should be displayed and makes label prop optional.
  • New event, 'blur', is emitted on blur

KCheckbox

  • Accessibility icon 🚩BREAKING🚩 Wrap KCheckbox default slot's content in <label>
    • Guidance: Even though this will fix all places where we forgot to wrap the default's slot content in <label>, it will cause problems in places we didn't forget to do so as there will now be two <label>s wrapping the label content. Therefore, check all places where KCheckbox is used and if you see <label> in its default slot, remove it.

KTextbox

  • Accessibility icon Fixes textbox being unexpectedly focused after background reactive updates

KCircularLoader

  • Adds new props, minVisibleTime and shouldShow, to allow a loader being displayed for a desired minimum amount of time
  • Adds a new prop, disableDefaultTransition, to prevent from glitches when using the loader in tandem with another component, both of them wrapped in a transition

KDropdownMenu

  • Fixes KDropdownMenu causing the window to scroll to the top on the menu button click
  • Adds a new prop, hasIcons, which controls whether or not its options display an icon

KSelect + KModal

  • Allows KSelect to extend outside of KModal
    • Guidance: Some core calculations were tweaked so it would be wise to preview KModal and KSelect for regressions

KSelect

  • Fixes partially hidden dropdown menu when there is not enough space below the button. The menu will now show above the button in such a scenario.

KIcon + KIconButton + KLabeledIcon

  • Fixes color property not being applied to the following icons: computerScienceResource, currentEventsResource, diversityResource, entrepreneurshipResource, environmentResource, financialLiteracyResource, historyResource, learningSkillsResource, literacyResource, logicCriticalThinkingResource, mathematicsResource, mentalHealthResource, readingAndWritingResource, sciencesResource, skillsResource
  • Throw a warning about color prop not being applied for icons that are supposed to have fixed colors

KBreadcrumbs

  • Links to intermediary items can be optionally disabled by omitting the link attribute, or making it falsey
  • Accessibility icon Bind all attributes to navigation element within KBreadcrumbs
    • Guidance: Even though this is a general update that allows all KBreadcrumbs attributes to be passed right to its <nav>, the primary goal is to support adding aria-label easily. Whenever you use KBreadcrumbs, consider improving accessibility by adding ariaLabel attribute to KBreadcrumbs.

KResponsiveWindowMixin

  • Shows a deprecation warning
    • Guidance: useKResponsiveWindow composable (see below) should be used instead

Icons

  • Adds new icons: pinned, notPinned, cloud, wifi, laptop

Miscellaneous

  • Accessibility icon Fixes randomly missing focus ring

New composables

  • useKResponsiveWindow - To be used instead of KResponsiveWindowMixin
  • useKShow - Offers show reactive function which guarantees that something will be displayed at least for a specified duration after an initial trigger. For example, it can be used to ensure that a loader remains visible for a certain amount of time, even when the related data has already been loaded.

New components

  • KSelect - Not a completely new component, it was just moved from Kolibri to KDS. See above for included KSelect's bugfixes.
  • KDateRange - A modal component that contains two inputs and a calendar that allow for a start and end date selection
  • Accessibility icon KTabs, KTabsList, KTabsPanel - Components for implementing tabbed interfaces. The primary motivation for adding them is to encapsulate complex a11y logic. Consider replacing custom tabs with them to improve a11y.
  • KOptionalText - Displays text or the empty placeholder, dash, when text is not available
  • KImg - For displaying images
  • KTransition - Exposes predefined set of transitions built on top of Vue's <transition>
  • KLogo - Shows Kolibri logo
  • KTextTruncator - Truncates content to a given number of lines

Documentation

  • Improvements of the developer documentation
  • New contributing guidelines

New Contributors

Full Changelog: v1.4.1...v2.0.0

2.0.0-beta1

23 Oct 15:44
13e5395
Compare
Choose a tag to compare
2.0.0-beta1 Pre-release
Pre-release

What's Changed

KResponsiveWindowMixin

  • Adds deprecation warning
    • Guidance: useKResponsiveWindow composable should be used instead

useKResponsiveWindow

  • Adds throttling for the resize event listener to improve performance
  • Fixes window.matchMedia not found error in Jest
  • Fixes a bug when media query listeners weren't unbound properly

useKShow

  • Fixes a bug when the minimum visible timer wasn't started in some scenarios

New components

  • [KLogo](https://main--kolibri-design-system.netlify.app/klogo/) - Shows Kolibri logo
  • [KTextTruncator](https://main--kolibri-design-system.netlify.app/ktexttruncator/) - Truncates content to a given number of lines

2.0.0-beta0

12 Oct 14:58
f990471
Compare
Choose a tag to compare
2.0.0-beta0 Pre-release
Pre-release

What's Changed

KDropdownMenu + KButton/KIconButton

  • 🚩BREAKING🚩 KDropdownMenu no longer contains a button. All props related to buttons were removed from KDropdownMenu, namely text, appearance, and disabled. Instead, KButton and KIconButton have a new #menu slot in which KDropdownMenu should be placed.
    • Guidance: Place KDropdownMenu into KButton's or KIconButton's menu slot and move text, appearance, and disabled props from KDropdownMenu to KButton/KIconButton. See an example in the documentation. Visit "Props" and "Slots" sections of these components' documentation pages for more details.

KButton

  • 🚩BREAKING🚩 The default slot doesn't take precedence over the text prop anymore. The slot's content will be rendered above text when both are provided.
    • Guidance: If you use the default slot simultaneously with the text prop, the button most likely won't render as expected. You might need to add some kind of a custom condition to resolve that.

KRadioButton

  • 🚩BREAKING🚩 Wraps radio button label instead of truncating it. Adds a new prop, truncateLabel, that turns on truncating rather than wrapping.
    • Guidance: Examine places where KRadioButton is used and see whether the new default behavior (wrapping) is problematic. If needed, you can set truncateLabel to true to retain the previous default behavior (truncating).
  • Adds showLabel prop which determines whether a label should be displayed and makes label prop optional.
  • New event, 'blur', is emitted on blur

KCheckbox

  • Accessibility icon 🚩BREAKING🚩 Wrap KCheckbox default slot's content in <label>
    • Guidance: Even though this will fix all places where we forgot to wrap the default's slot content in <label>, it will cause problems in places we didn't forget to do so as there will now be two <label>s wrapping the label content. Therefore, check all places where KCheckbox is used and if you see <label> in its default slot, remove it.

KContentRenderer

KTextbox

  • Accessibility icon Fixes textbox being unexpectedly focused after background reactive updates

KCircularLoader

  • Adds new props, minVisibleTime and shouldShow, to allow a loader being displayed for a desired minimum amount of time
  • Adds a new prop, disableDefaultTransition, to prevent from glitches when using the loader in tandem with another component, both of them wrapped in a transition

KDropdownMenu

  • Fixes KDropdownMenu causing the window to scroll to the top on the menu button click
  • Adds a new prop, hasIcons, which controls whether or not its options display an icon

KSelect + KModal

  • Allows KSelect to extend outside of KModal
    • Guidance: Some core calculations were tweaked so it would be wise to preview KModal and KSelect for regressions

KSelect

  • Fixes partially hidden dropdown menu when there is not enough space below the button. The menu will now show above the button in such a scenario.

KIcon + KIconButton + KLabeledIcon

  • Fixes color property not being applied to the following icons: computerScienceResource, currentEventsResource, diversityResource, entrepreneurshipResource, environmentResource, financialLiteracyResource, historyResource, learningSkillsResource, literacyResource, logicCriticalThinkingResource, mathematicsResource, mentalHealthResource, readingAndWritingResource, sciencesResource, skillsResource
  • Throw a warning about color prop not being applied for icons that are supposed to have fixed colors

KBreadcrumbs

  • Links to intermediary items can be optionally disabled by omitting the link attribute, or making it falsey
  • Accessibility icon Bind all attributes to navigation element within KBreadcrumbs
    • Guidance: Even though this is a general update that allows all KBreadcrumbs attributes to be passed right to its <nav>, the primary goal is to support adding aria-label easily. Whenever you use KBreadcrumbs, consider improving accessibility by adding ariaLabel attribute to KBreadcrumbs.

Icons

  • Adds new icons: pinned, notPinned, cloud, wifi, laptop

Miscellaneous

  • Accessibility icon Fixes randomly missing focus ring

New composables

  • useKResponsiveWindow - To be used instead of KResponsiveWindowMixin
  • useKShow - Offers show reactive function which guarantees that something will be displayed at least for a specified duration after an initial trigger. For example, it can be used to ensure that a loader remains visible for a certain amount of time, even when the related data has already been loaded.

New components

  • KSelect - Not a completely new component, it was just moved from Kolibri to KDS. See above for included KSelect's bugfixes.
  • KDateRange - A modal component that contains two inputs and a calendar that allow for a start and end date selection
  • Accessibility icon KTabs, KTabsList, KTabsPanel - Components for implementing tabbed interfaces. The primary motivation for adding them is to encapsulate complex a11y logic. Consider replacing custom tabs with them to improve a11y.
  • KOptionalText - Displays text or the empty placeholder, dash, when text is not available
  • KImg - For displaying images
  • KTransition - Exposes predefined set of transitions built on top of Vue's <transition>

Documentation

  • Improvements of the developer documentation
  • New contributing guidelines

v1.5.0-beta0

14 Mar 20:15
388f870
Compare
Choose a tag to compare
v1.5.0-beta0 Pre-release
Pre-release

What's Changed

Component updates

New components

Components: breaking changes

Components: non-breaking changes and small fixes

  • KBreadcrumbs: Allow intermediary breadcrumbs to not be links. by @rtibbles in #401
  • KBreadcrumbs: add attrs/aria-label to navigation element within KBreadcrumbs by @marcellamaki in #357
  • KCheckbox: Wrap default's slot content in by @MisRob in #351
  • KDropdownMenu: fix window scrolling to top on first click by @LianaHarris360 in #387
  • KRadioButton: wrap label text by @akolson in #380
  • KSelect: Expose select event by @AlexVelezLl in #399
  • KSelect: Adds method that calculates space underneath before displaying by @LianaHarris360 in #402
  • useKWindowDimension: fix add event type in removeEventListener in by @pkspyder007 in #400

Documentation changes

Icons

  • Add custom icons needed for remote content browsing by @AllanOXDi in #424
  • Adds 'pinned' and 'unpinned' icons. Updates 'cloud' icon to outline by @akolson in #425

Dependency changes

New Contributors

Full Changelog: v1.4.1...v1.5.0-beta0

v1.4.1

28 Nov 23:50
94babf2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.4.0...v1.4.1

v1.4.0

22 Nov 21:24
b82120f
Compare
Choose a tag to compare

What's Changed

Highlights of the new release include improvements to focus online on form fields and two updated documentation pages. We also have two new contributors!

Added

  • Add focus outline to password type inputs when navigating using keyboard by @andersan in #364
  • add search input to default elements by @thanksameeelian in #381
  • Add explicit frame-throttle dependency. by @rtibbles in #337
  • Allow for new 'nav' slot inline in the toolbar by @marcellamaki in #338
  • Add documentation pages for KResponsiveWindow and KResponsiveElement by @MisRob in #362
  • Backport "updates to DocsShowCode component #358" to the release branch by @MisRob in #365

Fixed

Changed

New Contributors

Full Changelog: v1.3.1-beta0...v1.4.0-beta0

v1.4.0-beta0

07 Nov 19:59
b82120f
Compare
Choose a tag to compare
v1.4.0-beta0 Pre-release
Pre-release

What's Changed

Highlights of the new release include improvements to focus online on form fields and two updated documentation pages. We also have two new contributors!

Added

  • Add focus outline to password type inputs when navigating using keyboard by @andersan in #364
  • add search input to default elements by @thanksameeelian in #381
  • Add explicit frame-throttle dependency. by @rtibbles in #337
  • Allow for new 'nav' slot inline in the toolbar by @marcellamaki in #338
  • Add documentation pages for KResponsiveWindow and KResponsiveElement by @MisRob in #362
  • Backport "updates to DocsShowCode component #358" to the release branch by @MisRob in #365

Fixed

Changed

New Contributors

Full Changelog: v1.3.1-beta0...v1.4.0-beta0

v1.3.1-beta0

24 May 21:57
26c0c30
Compare
Choose a tag to compare
v1.3.1-beta0 Pre-release
Pre-release

What's Changed

Fixed

Added: Tests

Details: Complete list of PRs and link to full changelog

Complete list of PRs * Add navigateTo listener in KContentRenderer mixin for HTML5 hashi work by @marcellamaki in https://github.com//pull/239 * Add test suite/environment to KDS by @sairina in https://github.com//pull/309 * Add `KRouterLink` tests by @sairina in https://github.com//pull/311 * Add `KCheckbox` tests by @sairina in https://github.com//pull/315 * Exercise icon flipped in rtl by @nucleogenesis in https://github.com//pull/310 * KButton Tests by @nucleogenesis in https://github.com//pull/313 * #295: fixed the issue with Ktextbox error by @d0sadata in https://github.com//pull/319 * Add tests for `KModal` by @sairina in https://github.com//pull/320 * Bump url-parse from 1.5.3 to 1.5.10 by @dependabot in https://github.com//pull/318 * Bump nanoid from 3.1.25 to 3.2.0 by @dependabot in https://github.com//pull/298 * Bump node-fetch from 2.6.2 to 2.6.7 by @dependabot in https://github.com//pull/300 * Bump prismjs from 1.25.0 to 1.27.0 by @dependabot in https://github.com//pull/317 * Add tests for `KTextbox` by @sairina in https://github.com//pull/322 * Kdropdown keyboard navigation by @marcellamaki in https://github.com//pull/185

New Contributors

Full Changelog: v1.3.0...v1.3.1-beta0

v1.3.0

25 Jan 12:06
c2acc3f
Compare
Choose a tag to compare
  • #291 - When tracking input modality with trackInputModality, modality is set to keyboard only when the TAB key is pressed
  • #292 - Add KBreadcrumbs page to the components documentation
  • #292 - Optimize KBreadcrumbs to use all space available
  • #292 - Fix KBreadcrumbs items vertical alignment
  • #292 - Fix KBreadcrumbs items not collapsing when there are more instances on a page

v1.2.1

30 Nov 11:58
fe3ab26
Compare
Choose a tag to compare
  • #279 - Fix vertical shifting of KTextbox