Releases: nextcloud-libraries/nextcloud-vue
v8.25.1
v8.25.0
📝 Notes
NcDateTimePicker
In version 8 the NcDateTimePicker
was a transparent wrapper around the vue2 datepicker library.
With version 9 and beyond we will no longer transparently wrap external libraries,
thus only documented props, events, and slots of Nextcloud components are guaranteed to work.
This will allow use to change the underlying library while keeping a stable API for the component users.
For this we deprecated the range
property in favor of three new types for the NcDateTimePicker
.
date-range
time-range
datetime-range
Also the formatter
property is deprecated, instead you can now provide a function to the format
property,
which will receive a Date
object and should return the formatted date as a string.
Tooltip
directive
The Tooltip
directive has been deprecated and will be removed in the future.
In most cases you want to use the native browser tooltips instead by using the native HTML title
attribute.
In some rare cases where you really need a formatted tooltip NcPopover
could be used.
<NcButton
- v-tooltip="title"
+ :title="title"
🚀 Enhancements
- [stable8] feat(NcDateTimePicker): add new types as alternative for
range
property by @susnux in #6738 - [stable8] Adjust all styles for RTL support and add
directional
prop to NcIconSvgWrapper by @backportbot in #6766 - [stable8] feat: provide
NcSelectUsers
as replacement ofuser-select
prop forNcSelect
by @backportbot in #6791
🐛 Fixed bugs
- [stable8] fix(NcRichContenteditable): add correct tooltip by @backportbot in #6782
- [stable8] fix(NcRichContenteditable): bring back error style on overflow by @backportbot in #6789
Other Changes
- Updates for project Nextcloud vue library by @transifex-integration in #6690
- [stable8] refactor: deprecate
Tooltip
directive for accessibility by @backportbot in #6765 - [stable8] fix(NcAvatar): skip user status request if
hideStatus
prop was provided by @Antreesy in #6780 - chore: prepare release of v8.25.0 by @susnux in #6793
Full Changelog: v8.24.0...v8.25.0
v9.0.0-alpha.8
What's Changed
🚀 Enhancements
- [next] refactor: replace boolean properties with
default: true
withdefault: false
by @susnux in #6653 - [next] feat(NcAppContent): Allow to set the page title by @backportbot in #6596
- [next] feat: Add consistent
variant
prop for design variant of buttons / chips by @backportbot in #6595 - [next] feat(NcActions): add
opened
andclosed
events to handle closing/opening end | fix(NcPopover): correctly wait for animation end inafter-show
/after-hide
events by @backportbot in #6685
🐛 Fixed bugs
- [next] fix(NcAppSidebar, NcHeaderMenu): correctly focus trigger/close buggon when no focusable elements inside by @backportbot in #6637
- [next] fix(NcInputField): Only show error state border if user interacted with the input by @backportbot in #6641
- [next] fix(NcEmojiPicker): return focus steals actual focus by @backportbot in #6655
- [next] fix(styles): RTL support by @backportbot in #6193
- [next] fix(NcAvatar): keep line-height only for 'initials' avatars by @backportbot in #6680
- fix(NcActions): trigger forgotten closed event and correctly handle open by @ShGKme in #6706
Other Changes
- [next] refactor(utils): Replace
GenRandomId
withgetRandomId
by @susnux in #6425 - [next] refactor: drop
md5
dependency forusernameToColor
and migrate to TS by @susnux in #6657 - [next] refactor: migrate logger to Typescript by @susnux in #6660
- [next] refactor(useIsFullscreen): migrate to Typescript by @susnux in #6659
- [next] refactor: migrate
findRanges
to Typescript by @susnux in #6662 - [next] refactor(NcDateTime): migrate to Typescript and script-setup by @susnux in #6654
- [next] refactor!: migrate
useIsMobile
to TS and removeisMobileState
by @susnux in #6658 - [next] refactor(NcDateTimePicker): migrate to
@vuepick
library by @susnux in #6651 - [next] chore: Make CHANGELOG.md content consistent styling by @backportbot in #6678
- [next] refactor: consistent export style for
isSlotPopulated
by @susnux in #6681 - [next] refactor: migrate color utils to Typescript by @susnux in #6684
- [next] fix(NcPopover): add
passive: true
totransitionend
event listener by @skjnldsv in #6688 - chore: default branch is
main
and Vue 2 branch isstable8
by @susnux in #6697 - chore: remove unused
GetChildren
util by @susnux in #6701 - chore: migrate
GetParent
to Typescript by @susnux in #6702 - Updates for project Nextcloud vue library by @transifex-integration in #6710
- refactor(NcActions): use provide/inject instead of $parent search by @ShGKme in #6705
- docs: improve examples and documentation for
NcDateTimePicker
by @susnux in #6704 - Updates for project Nextcloud vue library by @transifex-integration in #6711
- refactor: migrate linkify util and directive to Typescript by @susnux in #6703
- Updates for project Nextcloud vue library by @transifex-integration in #6713
- Updates for project Nextcloud vue library by @transifex-integration in #6718
- chore: prepare release of v9.0.0-alpha.8 by @susnux in #6712
Full Changelog: v9.0.0-alpha.7...v9.0.0-alpha.8
v8.24.0
📝 Notes
Boolean properties
Some boolean props have been deprecated in favor of alternatives with default value false
.
This allows using shorthand notation on the template, as a prop with a default value of false
will be set to true
if it is set (without any value) in the template,
similar to native HTML boolean attributes.
The following components have been adjusted:
Component | Deprecated prop | New alternative |
---|---|---|
NcAvatar |
showUserStatus |
hideStatus |
NcAvatar |
showUserStatusCompact |
verboseStatus |
NcModal |
canClose |
noClose |
NcDialog |
canClose |
noClose |
NcButton
color variant and native type
NcButton
(and NcDialogButton
) now provides a variant
prop to set the color variant to use (e.g. 'primary'
) and allows set the native button type using the type
prop.
The legacy behavior, type
for the color variant and nativeType
for the button type, still works but will be removed in the next major version.
To make a later migration to version 9 easier you can already migrate your NcButton
usage like this:
<!-- Before: -->
<NcButton type="primary" native-type="submit">Submit</NcButton>
<!-- After: -->
<NcButton variant="primary" type="submit">Submit</NcButton>
🚀 Enhancements
- feat(NcActions): add
opened
andclosed
events to handle closing/opening end #6683 (@skjnldsv) - feat(NcBlurHash): Add a blur hash component #6396 (susnux)
- feat(NcDialog): Allow to catch
reset
event #6006 (susnux) - feat: Add consistent
variant
prop for design variant of buttons / chips #6472 (susnux) - feat(NcAppContent): Allow to set the page title #5269 (susnux)
- feat: add boolean prop alternatives with false as default value #6656 (susnux)
🐛 Fixed bugs
- fix(NcPopover): correctly wait for animation end in
after-show
/after-hide
events #6683 (skjnldsv) - fix(NcEmojiPicker): not focusable when used in another focus trap #6558 (ShGKme)
- fix(RTL): initialize language direction check once in utils #6523 (Antreesy)
- fix(NcColorPicker): remove unused invalid styles #6565 (susnux)
- fix(NcAppSidebar, NcHeaderMenu): correctly focus trigger/close button when no focusable elements inside #6636 (Antreesy)
- fix(NcInputField): Only show error state border if user interacted with the input #6640 (susnux)
- fix(NcEmojiPicker): return focus steals actual focus #6652 (ShGKme)
Other Changes
- refactor(NcCheckboxRadioSwitch): Do not use HTML attribute name
id
as property name #5516 (susnux) - docs: adjust version number for
variant
props #6623 (susnux) - Updated workflows and dependencies
- Updated translations
New Contributors
Full Changelog: v8.23.1...v8.24.0
v9.0.0-alpha.7
What's Changed
🚀 Enhancements
- [next]feat(NcBlurHash): Add a blur hash component by @susnux in #6560
- [next] feat(NcDialog): Allow to catch
reset
event by @backportbot in #6564
🐛 Fixed bugs
- [next] fix(NcDateTimePickerNative): do not set invalid value by @backportbot in #6410
- [next] fix(NcTeamResources): Do not make extraneous requests for resources by @backportbot in #6427
- [next] fix(NcSelect): increase avatar size to show subname by @backportbot in #6459
- [next] fix(NcSelect):
required
doesn't work by @ShGKme in #6458 - [next] fix(NcDateTimePickerNative): visual fixes by @backportbot in #6473
- [next] fix(NcActions): Remove on
mousemove
listener for auto focus elements by @backportbot in #6479 - [next] fix(NcRich*): style fixes and RTL support by @backportbot in #6481
- [next] fix(NcAppNavigation + NcUserBubble + NcRichContenteditable): RTL support by @backportbot in #6480
- [next] fix(NcDateTimePicker): selected and hover time is not readable by @backportbot in #6493
- [next] fix: extract un-escaping of text/code nodes with XML-like content by @backportbot in #6500
- [next] revert: import remark-gfm library in NcRichText as module, not async by @backportbot in #6508
- [next] fix(NcPopover): emit
after-show
afterfocus-trap
init to correctly return focus when content set focus initially (e.g.NcEmojiPicker
) by @backportbot in #6511 - [next] fix(NcPopover): blurry content on scaled page in Chromium by @backportbot in #6519
- [next] fix(NcAction*): complete BiDi support by @backportbot in #6520
- [next] fix(NcRichContenteditable): remove value linkify by @backportbot in #6516
- [next] fix(NcEmojiPicker): arrow navigation by @backportbot in #6563
- [next] fix(NcEmojiPicker): not focusable when used in another focus trap by @backportbot in #6561
- [next] fix(NcColorPicker): remove unused invalid styles by @backportbot in #6580
- [next] fix(NcActionRadio): change modelValue to behave like NcCheckboxRadioSwitch by @backportbot in #6464
Other Changes
- [next] chore: restructure
package.json
by @susnux in #6405 - [next] fix(bidi): NcAvatar status and interactivity toggle button by @backportbot in #6409
- [next] doc: Do not override assets while building the styleguide by @backportbot in #6411
- [next] ci: block unconventional commits by @backportbot in #6439
- [next] chore: Enable dependabot for the
next
branch by @backportbot in #6440 - refactor(useHotKey): migrate code to Typescript by @susnux in #6430
- chore: Refactor changelog to make breaking changes better readable by @susnux in #6428
- [next] fix(NcEmojiPicker): adjust styles to correctly fit emojis by @backportbot in #6471
- [next] chore(stylelint): fix scripts to be unix-compatible by @backportbot in #6420
- [next] chore(docs): update documentation by @backportbot in #6482
- [next] refactor: Use boolean props with default value false by @backportbot in #6509
- [next] chore(stylelint):
csstools/use-logical
by @backportbot in #6421 - refactor!: Drop
clickOutsideOptions
mixin and refactor using components by @susnux in #6429 - [next] fix(RTL): initialize language direction check once in utils by @backportbot in #6562
- [next] refactor(NcCheckboxRadioSwitch): Do not use HTML attribute name
id
as property name by @backportbot in #6559 - chore: prepare v9.0.0-alpha.7 by @susnux in #6537
Full Changelog: v9.0.0-alpha.6...v9.0.0-alpha.7
v8.23.1
v8.23.0
v8.23.0 (2025-02-13)
📝 Notes
-
The individual import path of components, composables, directives, and functions was changed.
The type of import is (e.g.components
) is now lowercase and thedist
will be omitted.
For example to import theNcButton
component the path has changed:// Old import import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' // New way to import import NcButton from '@nextcloud/vue/components/NcButton'
The old import paths are still valid, but deprecated and will be removed in version 9.
-
#default
slot for leading icon is now deprecated in componentsNcInputField
,NcTextField
,NcPasswordField
. Use#icon
slot instead. -
NcActionRadio
is now expecting String|Number inv-model
directive (to compare with passedvalue
) instead of Boolean. Consider it for migration. -
Some boolean props have been deprecated in favor of alternatives with default value
false
.
This allows to use shorthand notation on the template, as a prop with a default value offalse
will be set totrue
if it is set (without any value) in the template,
similar to native HTML boolean attributes.
Following components have been adjusted:Component Deprecated prop New alternative NcModal
enableSwipe
disableSwipe
NcAppContent
allowSwipeNavigation
disabledSwipe
🚀 Enhancements
- feat: Allow to import without
dist
#6385 (susnux) - feat: Use boolean props with default value false #6452 (susnux)
- feat(Nc*Field): add
#icon
slot for forward compatibility with v9,#default
slot is deprecated #6399 (ShGKme) - fix(NcActionRadio): change
modelValue
to behave like NcCheckboxRadioSwitch #6264 #6470 (Antreesy)
🐛 Fixed bugs
- fix(NcAction*): Fix RTL support for component #6507 (Antreesy)
- fix(NcActions): Remove on
mousemove
listener for auto focus elements #6475 (susnux) - fix(NcActionCheckbox): Fix padding in RTL mode #6354 (falghamdi125)
- fix(NcAppNavigation + NcUserBubble + NcRichContenteditable): RTL support #6455 (DorraJaouad)
- fix(NcAvatar): title not shown when component used without menu #6297 (Koc)
- fix(NcAvatar): user status and interactivity toggle button Bidi support #6407 (DorraJaouad)
- fix(NcColorPicker): close popover on submit event #6336 (Antreesy)
- fix(NcCounterBubble): show original count in title when shortened #6395 (ShGKme)
- fix(NcDateTimePicker): selected and hover time is not readable #6492 (ShGKme)
- fix(NcDateTimePickerNative): do not set invalid value on clear event #6387 (Antreesy)
- fix(NcDateTimePickerNative): style alignment with other input components #6454 (Antreesy)
- fix(NcEmojiPicker): add arrow navigation #6466 (ShGKme)
- fix(NcEmojiPicker): adjust styles to correctly fit emojis #6465 (ShGKme)
- fix(NcListItem): Fix padding in RTL mode #6359 (falghamdi125)
- fix(NcModal): Enforce opaque backdrop if needed #6434 (susnux)
- fix(NcPopover): emit
after-show
afterfocus-trap
init to correctly return focus #6342 (ShGKme) - fix(NcPopover): blurry content on scaled page in Chromium #6512 (ShGKme)
- fix(NcRich*): style fixes and RTL support #6474 (Antreesy)
- fix(NcRichContenteditable): remove value linkify #6372 (ShGKme)
- fix(NcRichText): adjust conditions for highlight syntax #6259 (Antreesy)
- fix(NcRichText): extract un-escaping of text/code nodes with XML-like content #6499 #6501 (Antreesy)
- fix(NcTeamResources): Do not make extraneous requests for resources #6379 (Pytal)
Changed
- chore(stylelint):
csstools/use-logical
#6419 (ShGKme) - chore(stylelint): fix scripts to be unix-compatible #6418 (ShGKme)
- chore(docs): Do not override assets while building the styleguide #6408 (susnux)
- chore(docs): update documentation #6460 (ShGKme)
- Updated workflows and dependencies
- Updated translations
New Contributors
v9.0.0-alpha.6
💥 Breaking Changes
- The package now uses Vue 3 instead of Vue 2.7
- The package is now a native ESM package and the CommonJS entry points were dropped!
- The old import paths like
@nextcloud/vue/dist/Components/NcComponent.js
were removed, please use the new ones (@nextcloud/vue/components/NcComponent
) instead. - The plugin registering all the components and directives globally is removed.
Use local registration instead. Useunplugin-vue-components
if you need an alternative. - The
limitWidth
prop ofNcSettingsSection
was removed (the content is now always limited width) #5605 NcCounterBubble
: remove default slot and makecount
prop required #5997x- The
closing
andopening
events ofNcAppSidebar
were removed as they are directly emitted when the sidebar was opened when usingv-if
and also just duplicated the state of theopen
prop #5606 - The
checked
prop was renamed tomodelValue
, theupdate:checked
event was renamed toupdate:modelValue
. This affects the following components:NcActionCheckbox
NcActionRadio
NcCheckboxRadioSwitch
- The
value
prop was renamed tomodelValue
, theupdate:value
orinput
events were renamed toupdate:modelValue
. This affects the following components:NcActionInput
NcActionTextEditable
NcColorPicker
NcDateTimePicker
NcDateTimePickerNative
NcInputField
NcPasswordField
NcRichContenteditable
NcSelect
NcSelectTags
NcSettingsInputText
NcSettingsSelectGroup
NcTextArea
NcTextField
NcTimezonePicker
- The leading icon slot was changed from
#default
to#icon
inNc*Field
components:NcInputField
NcTextField
NcPasswordField
- The
exact
prop was removed. This affects the following components:NcActionRouter
NcAppNavigationItem
NcBreadcrumb
NcListItem
- The
isFullscreen
andisMobile
mixins were removed. Use the according composables instead. - The
box-sizing: border-box
is now default for following components and its content. This is done to match behaviour ofNcContent
(as they can be mounted directly tobody
):NcModal
NcPopover
What's Changed compared to last pre-release
💥 Breaking Changes
- [next] feat(NcCounterBubble)!: remove default slot and make
count
prop required by @ShGKme in #5997 - [next] feat!: remove plugin by @ShGKme in #6349
🚀 Enhancements
- [next] feat(NcNoteCard): Add
text
prop to pass the content of the note card by @backportbot in #5901 - [next] feat(NcPasswordField): add as-text prop to remove autocomplete by @backportbot in #5902
- [next] feat(NcListItem): provide additional slots for NcActions / extra actions customization by @backportbot in #5903
- [next] feat(NcUserBubble): add RouterLink support by @backportbot in #5912
- [next] feat(NcListItem): allow to control the display of a three dot menu by @backportbot in #5983
- [next] feat(useHotKey): add composable for keyboard shortcuts by @backportbot in #5996
- [next] feat(NcCounterBubble): add count prop for humanized count display by @backportbot in #5990
- [next] feat(NcDialog): Allow to make the dialog a form by @backportbot in #5945
- [next] feat(NcButton): Allow to specify
target
attribute for buttons with href by @backportbot in #5939 - [next] feat(NcHeaderButton): Add a button only alternative for the header menu by @backportbot in #6070
- [next] feat(NcModal): make dark header configurable by @backportbot in #6088
- [next] [NcRichText] Add style to mount point for custom picker and custom widget elements by @backportbot in #6140
- [next] feat(NcRicFull Changelog: v9.0.0-alpha.5...v9.0.0-alpha.6hText): make interactive widgets opt-in by @backportbot in #6153
- [next] fix(NcTextArea): remove non-existing prop 'type' for textarea by @backportbot in #6173
- [next] feat: add isDarkTheme functions and composables by @backportbot in #6196
- [next] feat: Add
spawnDialog
function by @backportbot in #6207 - [next] feat(NcRichText): highlight code syntax if language provided by @backportbot in #6247
- [next] feat(NcAppNavigation): Provide consistent in-app search by @backportbot in #5848
- [next] feat(NcDialogButton): Allow to return
false
from callback to keep dialog open by @backportbot in #6035
🐛 Fixed bugs
- [next] style(NcAppNavigationCaption): remove margin-bottom by @backportbot in #5826
- [next] fix(NcInputField): Make helper text aligned and maxcontrast color by @backportbot in #5827
- [next] docs: Fix
NcAppNavigationCaption
examples by @backportbot in #5825 - [next] fix(NcListItem): Anchor height was set not to content but random area by @backportbot in #5835
- [next] fix(NcListItem): do not render counter on falsy values by @backportbot in #5836
- [next] fix(NcAppSidebar): manage focus only after transition has finished by @backportbot in #5840
- [next] fix(NcAppContent): splitpane splitter styles with dark theme by @backportbot in #5846
- [next] fix(NcColorPicker): Make the color circle size depend on clickable area by @backportbot in #5845
- [next] fix: alignement of listitem name for one line layout by @backportbot in #5854
- [next] fix(NcModal): temporary deactivate focus-traps on modal open by @backportbot in #5852
- [next] NcActionCheckbox: align with NcActionText by @backportbot in #5858
- [next] NcAppSettingsSection: make titles normal h3 size by @backportbot in #5838
- [next] NcSelect: make same height and color as NcTextField by @backportbot in #5864
- [next] fix: Migrate SCSS
$clickable-area
to CSS--default-clickable-area
by @backportbot in #5752 - [next] fix(style): adjust elements styles to unit-less line-height by @backportbot in #5891
- [next] fix(NcSettingsSection): remove default h2 margin-top by @backportbot in #5900
- [next] fix(NcAppNavigationItem): Fix popper boundary element by @backportbot in #5789
- [next] fix(NcListItem): Make paddings smaller again on Nextcloud 30 by @backportbot in #5904
- [next] fix(NcAppNavigationCaption): properly align with NcAppNavigationItem by @backportbot in #5805
- [next] fix(NcCounterButton): adjust min-width to make it a right circle by @backportbot in #5911
- [next] fix(NcInputField): Make focus visible on trailing button look better by @backportbot in #5828
- [next] fix(NcUserBubble): fix tag assignment if no url but to provided by @backportbot in #5918
- [next] fix(NcNoteCard): Adjust padding and margin by @backportbot in #5920
- [next] fix: Fix alignment of dashboard list items by @backportbot in #5919
- [next] NcListItem: remove max width by @backportbot in #5880
- [next] fix(NcListItem): Adjust icon color when the list item is active by @backportbot in #5944
- [next] fix(NcUserBubble): make it perfectly aligned circle by @backportbot in #5949
- [next] fix(NcAvatar): extend variable size of status icons...
v8.22.0
v8.22.0 (2024-12-23)
🚀 Enhancements
- feat(NcAvatar): implement custom javascript hook action for the contacts menu #6238 (st3iny)
- feat(NcAppNavigation): add
n
hotkey to toggle navigation #6311 (skjnldsv)
🐛 Fixed bugs
- fix(NcAppNavigationItem): TypeError: this.$refs.actions.$refs.menuButton is undefined #6226 (wofferl)
- fix(NcListItem): Don't require name prop by @artonge in #6128 (artonge)
- style(NcCheckboxRadioSwitch): fix styles in disabled state #6265 (Antreesy)
- fix(NcModal): make 'Close' button the last element for the focus-trap #6266 (Antreesy)
- fix(NcAppNavigation): Fix sidebar position in RTL and mobile mode.#6260 (falghamdi125)
- fix(NcAppContent): add RTL support #6303 (hamza221)
- fix(NcCheckboxRadioSwitch): RTL support #6302 (hamza221)
- fix(NcDateTimePicker): popup position #6312 (hamza221)
- Fix(NcSettingsSection): Add RTL support to NcSettingsSection info icon. #6290 (falghamdi125)
- Fix(NcDashboardWidgetItem): Add RTL support to NcDashboardWidgetItem #6292 (falghamdi125)
- fix(useHotKey): allow hotkeys with implicit
SHIFT
and addcaseSensitive
, custom event filter options #6301 (Antreesy) - fix(NcRichContenteditable): prevent content from overflowing #6316 (Antreesy)
- fix(NcActionButton): RTL support #6200 (falghamdi125)
Changed
- docs(NcDateTimePickerNative): add time picker example #6188 (GVodyanov)
- chore(NcAppSidebarTabs): remove internal component from docs #6253 (ShGKme)
- Updated workflows and dependencies
- Updated translations
New Contributors
- @falghamdi125 made their first contribution in #6260
v8.21.0
v8.21.0 (2024-11-21)
🚀 Enhancements
🐛 Fixed bugs
- fix(NcInputField): correct position of trailing icon in RTL #6202 (alsulami1)
- fix(NcChip): wrong color-primary-text variable used #6218 (skjnldsv)
- fix: make sure model event in
v-model
happens first to avoid regression #6234 (ShGKme) - fix(NcTextField): don't fire value-updating events twice #6235 (ShGKme)
- fix(NcRichContenteditable): support mentions of email/* guests #6233 (Antreesy)
- fix(NcAppContent): correct splitter color in dark mode when using split-horizontal mode #6227 (wofferl)
- fix(NcRichContenteditable): do not break adjacent user mentions #6223 (Antreesy)
- fix(NcRichContenteditable): fix pasting of the content to an empty field #6241 (DorraJaouad)
New Contributors
- @alsulami1 made their first contribution in #6202
- @wofferl made their first contribution in #6227