Releases: nextcloud-libraries/nextcloud-vue
v8.29.0
v8.29.0 (2025-08-18)
π Notes
NcColorPicker
The update:open event was undeprecated, instead proper open state handling of the component was added.
This means it is now possible to pass the open prop directly to the component,
it is implemented as two-way binding with the corresponding update:open event.
It is now discouraged to use the previous solution of relying on the shown prop of the underlying component.
Additionally for consistent event naming the close event was deprecated in favor of the closed event.
The closed event will be emitted after update:open (with payload false) was emitted and all transitions have finished.
π Enhancements
- feat(NcThemeProvider): allow to override the current theme for parts of the UI #7152
- feat(dialogs/spawnDialog): separate spawning options from dialog props and allow Element as a container #6768
- feat(NcColorPicker): add proper open-state handling #7214
- feat(NcAppNavigationItem): add
activeas slot property to the "icon"-slot #7274 - feat: add visual border for buttons on Nextcloud 32+ #7291
- feat(NcUserStatusIcon): update status icons #7223
- feat(NcHeaderMenu): apply alpha mask to icon slot #7243
π Fixed bugs
- perf(NcAvatar): ensure avatar does not add mutation observer #7168
- perf(utils): ensure only 64px or 512px avatars are loaded #7153
- fix(NcButton): force cursor pointer #7158 (ShGKme)
- fix(NcInputField): remove browser injected clear button #7169
- fix(NcModal): use
--border-radius-container#7178 - fix(useIsDarkTheme): provide default value to silence runtime warnings #7189
- fix(NcAppSidebar): remove slot styling for buttons in the description #7190
- fix(NcActionInput): register used NcColorPicker component #7198
- fix(NcActionInput): lazy load large children #7197
- fix(NcContent): flip skip action image in rtl mode #7205
- fix(NcColorPicker): use proper directional arrow icon for submit #7219
- fix(NcAvatar): orbital best-fit adaptive status icon #7260
- fix(NcLoadingIcon): prevent height change from rotate transformation #7276
- fix(NcInputField, NcTextareaField): remove placeholder on Nextcloud 32+ #7286 (susnux)
- fix: migrate from _oc_config to initial state #7235 (Antreesy)
- fix: auto-resolve focus trap stack, if was changed outside of controller #7304 (Antreesy)
Other Changes
- refactor(functions): Make sure only named exports are used (usernameToColor) #7170 (susnux)
- refactor: use secondary colors for buttons on Nextcloud 32+ #7301 (susnux)
- chore: copy diff from stable8 changelog #7159
- chore: align sorting of package.json #7162 (susnux)
- docs: clarify application containers and especially NcGuestContent #7216
- ci: update workflows from organization #7166 (susnux)
v9.0.0-rc.5
What's Changed
π₯ Breaking Changes
- The
usernameToColorfunction is named exported instead of a default export.
This was done to have consistent export types.
Useimport { usernameToColor } from '@nextcloud/vue/functions/usernameToColor'instead
π Fixed bugs
- perf(NcAvatar): ensure avatar does not add mutation observer by @ShGKme in #7157
- refactor(NcButton): remove redundant style by @skjnldsv in #7154
- fix(NcInputField): remove browser injected clear button by @susnux in #7167
- fix(NcModal): use
--border-radius-containerby @susnux in #7176 - fix(useIsDarkTheme): provide default value to silence runtime warnings by @susnux in #7185
- fix(NcAppSidebar): remove slot styling for buttons in the description by @susnux in #7182
Other Changes
- chore: copy diff from stable8 changelog by @Antreesy in #7156
- chore(NcAppSidebar): correctly define and document exposed CSS variables by @ShGKme in #5861
- chore: add current Node (upcoming) LTS 24.0.0 to supported engines by @susnux in #7163
- refactor(functions): Make sure only named exports are used (
usernameToColor) by @susnux in #7161 - ci: update workflows from organization by @susnux in #7165
- ci: also update sever styles for styleguide on
stable8by @susnux in #7164 - chore(NcRichText): remove unused remark plugin by @susnux in #7172
- refactor(NcRichText): migrate helpers to Typescript by @susnux in #7173
- refactor(NcRichText): use
debounceinstead of custom delay function by @susnux in #7174 - Updates for project Nextcloud vue library by @transifex-integration[bot] in #7179
- refactor: replace deprecated CSS variables and legacy fallbacks by @susnux in #7177
- refactor: use Typescript for l10n dummy import by @susnux in #7171
Full Changelog: v9.0.0-rc.4...v9.0.0-rc.5
v9.0.0-rc.4
What's Changed
π Enhancements
- feat: add
useFormatRelativeTimecomposable by @susnux in #7067 - feat(NcPasswordField): allow to set visibility state by @susnux in #7135
- feat(NcThemeProvider): allow to override the current theme for parts of the UI by @susnux in #6764
π Fixed bugs
- fix(NcActions + NcEmojiPicker): no focus-trap when needed, extra focus-trap when not by @ShGKme in #7096
- fix(NcDateTimePicker): make clearable work by @raimund-schluessler in #7103
- fix(NcRichText): adjust markdown styles after migration by @Antreesy in #7106
- fix(NcActionText): remove br between action name and action long text by @GretaD in #7116
- fix(NcNoteCard): too large icon padding by @raimund-schluessler in #7118
- [main] fix(NcAppNavigationItem): TypeError: this.$refs.actions.$refs.menuButton is undefined by @backportbot[bot] in #7143
- fix(useHotKey): try to derive latin keys from key codes of non-latin characters by @Antreesy in #7110
- style(NcRichText): consider reference widgets in markdown styles by @Antreesy in #7142
- fix(NcDateTimePicker): correctly import library CSS by @raimund-schluessler in #7051
- fix(NcListItem): correctly handle unmounting by @Antreesy in #7151
- perf(utils): ensure only 64px or 512px avatars are loaded by @susnux in #6749
Other Changes
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7098
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7101
- refactor: migrate reference widget related function to Typescript by @susnux in #6969
- chore(NcActions): fix type annotation of
NodeListby @susnux in #7060 - Updates for project Nextcloud vue library by @transifex-integration[bot] in #7104
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7108
- refactor(NcSettingsSection): migrate to Typescript and script-setup by @susnux in #7111
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7109
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7112
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7113
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7114
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7115
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7125
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7126
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7127
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7130
- refactor!: remove
useFormatDateTimeby @susnux in #7129 - Updates for project Nextcloud vue library by @transifex-integration[bot] in #7132
- Updates for project Nextcloud vue library by @transifex-integration[bot] in #7134
- refactor!: make all events camelcase and drop deprecated events by @susnux in #7059
- chore(NcAppContent): rename NcAppDetailsContent to remove from docs by @susnux in #7137
- refactor(NcAppContent): clarify props documentation and use capabilities over initial state by @susnux in #7057
- chore: prepare v9.0.0-rc.4 by @susnux in #7155
Full Changelog: v9.0.0-rc.3...v9.0.0-rc.4
v8.28.0
What's Changed
π Enhancements
- [stable8] feat: add
useFormatRelativeTimecomposable by @backportbot[bot] in #7128 - [stable8] feat(NcPasswordField): allow to set visibility state by @backportbot[bot] in #7148
π Fixed bugs
- [stable8] fix(NcAppNavigationItem): multi level padding by @backportbot[bot] in #6919
- [stable8] fix(NcTextField): make trailing button icon for confirmation also work on RTL by @backportbot[bot] in #7002
- [stable8] fix(NcAppContent): incorrect page title from a different core.apps format in Nextcloud 30 by @julien-nc in #7011
- [stable8] fix(NcDialog): deprecated nativeType usage check by @skjnldsv in #7031
- [stable8] fix(NcSelectUsers): fix using of v-model in Vue 2 by @Antreesy in #7032
- [stable8] fix(NcAvatar): update 'hasStatus' flag if changed by @backportbot[bot] in #7037
- [stable8] fix(NcCheckboxRadioSwitch): align icons with the first row of label by @backportbot[bot] in #7047
- [stable8] fix(actions): use pointer cursor for action button text by @backportbot[bot] in #7049
- [stable8] fix(NcRichText): always render code blocks in LTR direction by @Antreesy in #7061
- [stable8] fix(NcListItem): let
activeprop take higher priority by @backportbot[bot] in #7089 - [stable8] fix(NcActionText): remove br between action name and action long text by @backportbot[bot] in #7119
- [stable8] fix(useHotKey): try to derive latin keys from key codes of non-latin characters by @backportbot[bot] in #7147
- [stable8] fix(l10n): adjust for
@nextcloud/l10n3.4.0 by @susnux in #7150
Other Changes
- [stable8] refactor: deprecate events not comply with Vue event naming rules by @backportbot[bot] in #7078
- [stable8] chore(NcColorPicker): deprecate duplicated
update:openevent by @backportbot[bot] in #7095 - [stable8] chore(NcActions): fix type annotation of
NodeListby @backportbot[bot] in #7105 - [stable8] chore(NcAppContent): rename NcAppDetailsContent to remove from docs by @backportbot[bot] in #7139
- [stable8] refactor(NcAppContent): clarify props documentation and use capabilities over initial state by @backportbot[bot] in #7141
- chore: prepare v8.28.0 by @susnux in #7149
Full Changelog: v8.27.0...v8.28.0
v9.0.0-rc.3
What's Changed
π Notes
NcColorPicker- The
update:openevent is removed in favor of the already availablecloseevent.
- The
NcTextField:- The value
'arrowRight'for thetrailingButtonIconproperty was deprecated is now removed in favor ofarrowEnd.
- The value
π Fixed bugs
- fix(NcAppNavigationToggle): restore button design and remove wrong attribute #6984 (susnux)
- fix(NcInputField): unresolved component and state color #6994 (susnux)
- fix(NcAppNavigationItem): multi level padding #6861 (GretaD)
- fix(NcTextField)!: make trailing button icon for confirmation also work on RTL #6993 (susnux)
- fix(NcAppContent): incorrect page title from a different
core.appsformat in Nextcloud 30 #7010 (julien-nc) - fix(NcButton): correctly apply reverse padding #7029 (raimund-schluessler)
- fix(NcAvatar): update 'hasStatus' flag if changed #7033 (Antreesy)
- fix(NcCheckboxRadioSwitch): align icons with the first row of label #7043 (Antreesy)
- fix(actions): use pointer cursor for action button text #7042 (ChristophWurst)
- fix(NcAvatar): migrate from deprecated
showUserStatusprop #7053 (Antreesy) - fix(NcAppNavigationSettings): adjust style and padding of button #7018 (raimund-schluessler)
- fix(NcRichText): always render code blocks in LTR direction #7056 (Antreesy)
- fix(NcHeaderMenu): bring caret back #7071 (ShGKme)
- fix(NcChip): adjust default prop declaration #7074 (Antreesy)
- fix(NcPopover): component crash when unmounted shown #7077 (Antreesy)
- fix(NcListItem): let
activeprop take higher priority #7086 (DorraJaouad)
Other Changes
- refactor(NcTextArea): migrate component to Typescript and script-setup #6986 (susnux)
- refactor(NcNoteCard): migrate component to Typescript and script-setup #6985 (susnux)
- refactor(NcDialog): migrate to script-setup and use Typescript for module #6968 (susnux)
- refactor: migrate Nc*Field to Typescript #6951 (susnux)
- refactor(NcUserBubble): migrate components to Typescript #6946 (susnux)
- refactor(NcHeaderMenu): export as Typescript module and reorder script tags #7000 (susnux)
- fix(NcAppNavigationSettings): button left full width #6999 (raimund-schluessler)
- refactor: migrate NcAppNavigationToggle / NcAppNavigationSpacer to Typescript #7004 (susnux)
- refactor(NcContent): migrate to Typescript and script-setup #7003 (susnux)
- chore: adjust vitest config to be consistent on CI and locally #7065 (susnux)
- refactor(NcLoadingIcon): migrate component to Typescript and script-setup #7076 (susnux)
- refactor(NcDateTimePickerNative): migrate component to Typescript and script-setup #7075 (susnux)
- refactor: deprecate events not comply with Vue event naming rules #7058 (susnux)
- fix(NcModal): correctly handle when trying to activate non-existing focus-trap #7084 (Antreesy)
- refactor(NcHighlight): migrate component to Typescript #7073 (susnux)
- refactor(NcColorPicker): migrate component to Typescript #7080 (susnux)
Full Changelog: v9.0.0-rc.2...v9.0.0-rc.3
v9.0.0-rc.2
What's Changed
π Enhancements
- feat(NcChip): allow to define the actions container by @susnux in #6813
- feat(NcActionButton): introduce
descriptionprop by @Antreesy in #6932
π Fixed bugs
- fix(NcEmptyContent): description styling for mobile by @Plesin in #6936
- style(NcAppSidebar): remove custom styles from close button by @Antreesy in #6944
- fix: add missing
NcSelectUsersexport by @susnux in #6947 - fix(NcAppContent): adapt to new emitted event object with splitpanes ^4.0.0 by @wofferl in #6950
- fix(NcActionInput): register used NcColorPicker component by @susnux in #6956
- fix(NcRichText): filter links based on protocol by @max-nextcloud in #6966
- fix(NcActions): allow to close popover on click outside by @susnux in #6959
- fix(NcSelectUsers): use correct type for model and add tests for model-value handling by @susnux in #6957
Other Changes
- refactor(NcUserStatusIcon): migrate component to Typescript by @susnux in #6820
- refactor(NcAppDetailsToggle): migrate to Typescript by @susnux in #6909
- fix(NcAppSidebar): make buttons pixel perfect by @Antreesy in #6938
- fix(docs): NcContent with skip-actions crashes styleguidist by @ShGKme in #6923
- refactor(NcAppContentDetails): migrate component to Typescript by @susnux in #6910
- refactor(NcGuestContent): migrate component to Typescript by @susnux in #6948
- chore(dev-deps): bump @nextcloud/stylelint-config from 3.0.1 to 3.1.0 and fix errors by @ShGKme in #6955
- test: drop useless console output by @susnux in #6958
- chore: remove
todofrom NcSelect by @susnux in #6963 - chore: remove deprecated
aria-hiddenprop fromNcAction*by @susnux in #6961 - chore(NcRichContenteditable)!: remove
titleprop in favor oflabelby @susnux in #6962 - refactor(NcCounterBubble): migrate component to Typescript and script-setup by @susnux in #6970
- refactor: remove
ScopeComponentthe scope is not used and already added by Vue by @susnux in #6965 - refactor(NcIconSvgWrapper): migrate component to Typescript and script-setup by @susnux in #6967
- refactor: use
NcIconSvgWrapperwithdirectionalproperty where needed by @susnux in #6767 - chore: prepare v9.0.0-rc.2 by @susnux in #6960
New Contributors
Full Changelog: v9.0.0-rc.1...v9.0.0-rc.2
v8.27.0
What's Changed
π Enhancements
- [stable8] feat(NcChip): allow to define the actions container by @backportbot in #6964
- [stable8] feat(NcActionButton): introduce
descriptionprop by @backportbot in #6975
π Fixed bugs
- [stable8] fix(NcEmptyContent): description styling for mobile by @backportbot in #6943
- [stable8] style(NcAppSidebar): remove custom styles from close button by @backportbot in #6945
Other Changes
- [stable8] refactor(useIsFullscreen): migrate to Typescript by @ShGKme in #6912
- [stable8] refactor(useHotKey): migrate code to Typescript by @backportbot in #6911
- [stable8] refactor(Focus): migrate directive to Typescript by @backportbot in #6914
- [stable8] refactor: use
NcIconSvgWrapperwithdirectionalproperty where needed by @backportbot in #6976 - [stable8] feat(NcRichText): filter links based on protocol by @max-nextcloud in #6977
Full Changelog: v8.26.1...v8.27.0
v9.0.0-rc.1
What's Changed
π Enhancements
π Fixed bugs
- fix(NcIconSvgWrapper): center svg span wrapper by @skjnldsv in #6869
- fix(NcChip): do not rerender slots to check if they are available by @susnux in #6903
- fix(dialog/spawnDialog): incorrect return type for optional result by @ShGKme in #6905
- [next] add fallBackFocus to NcPopover by @backportbot in #6679
Other Changes
- Updates for project Nextcloud vue library by @transifex-integration in #6844
- chore: update workflows from organization by @susnux in #6841
- Updates for project Nextcloud vue library by @transifex-integration in #6862
- refactor(NcChip): properly document and type slots and emits by @susnux in #6812
- chore: move from
dev:watchtowatchby @skjnldsv in #6888 - Updates for project Nextcloud vue library by @transifex-integration in #6895
- refactor(NcVNodes): migrate component to Typescript by @susnux in #6822
- refactor(Focus): migrate directive to Typescript by @susnux in #6786
- refactor(NcEmptyContent): migrate component to Typescript by @susnux in #6904
- Updates for project Nextcloud vue library by @transifex-integration in #6908
- chore: prepare v9.0.0-rc.1 by @susnux in #6906
Full Changelog: v9.0.0-rc.0...v9.0.0-rc.1
v8.26.1
v9.0.0-rc.0
What's Changed
π Enhancements
- feat(NcDateTimePicker): add time range picker and align naming by @susnux in #6728
- feat(dialogs/spawnDialog): separate spawning options from dialog props and allow Element as a container by @ShGKme in #6756
- feat(dialogs/spawnDialogs)!: do not toRaw the result by @ShGKme in #6760
- Adjust all styles for RTL support and add
directionalprop to NcIconSvgWrapper by @susnux in #6733 - feat(dialogs/spawnDialog): return promise with the result by @ShGKme in #6758
- feat(dialogs/spawnDialog)!: replace onClose callback with Promise by @ShGKme in #6759
- [next] feat(NcAvatar): implement custom javascript hook action for the contacts menu by @backportbot in #6306
- feat!: split
NcSelectsuper component intoNcSelectandNcSelectUsersby @susnux in #6732 - feat(NcPopover): document all properties and remove transparent
floating-vuewrapper by @susnux in #6802
π Fixed bugs
- fix(NcDateTimePicker): adjust padding to prevent horizontal scrolling by @susnux in #6722
- fix(dialogs/spawnDialog): dialog cannot be closed by @ShGKme in #6729
- fix(NcDateTimePicker): prevent emitting
[Date, null]by @susnux in #6726 - fix(dialogs/spawnDialog)!: support vue-devtool but lose appContext by @ShGKme in #6752
- fix(dialogs/spawnDialog): do not teleport dialog from root by @ShGKme in #6757
- fix(dialogs/spawnDialog): enhance
spawnDialogtypes by @mattersj in #6781 - fix(NcRichContenteditable): add correct tooltip by @susnux in #6778
- fix(NcRichContenteditable): bring back error style on overflow by @susnux in #6785
- fix(NcPopover): regression with incorrect size on RTL by @Antreesy in #6796
- fix(NcRichText):
referencesprop type by @julien-nc in #6799 - fix(NcAppContent): don't remove list when showing details in mobile or no-split mode by @backportbot in #6801
- fix(NcAvatar): do not load avatar from server, if iconClass was provided by @Antreesy in #6831
- fix(NcMentionBubble): position selectable text aligned with the component by @Antreesy in #6835
- fix(NcSelectUsers): add missing
searchevent by @susnux in #6811
Other Changes
- Updates for project Nextcloud vue library by @transifex-integration in #6721
- Updates for project Nextcloud vue library by @transifex-integration in #6724
- docs(NcDateTimePicker): add prop documentation for all props by @susnux in #6727
- Updates for project Nextcloud vue library by @transifex-integration in #6739
- chore: drop remaining cypress files by @susnux in #6735
- chore: adjust package engines versions by @susnux in #6725
- chore: update pull_request_template.md by @ShGKme in #6736
- Updates for project Nextcloud vue library by @transifex-integration in #6762
- refactor: deprecate
Tooltipdirective for accessibility by @susnux in #6761 - refactor!(NcModal): adjust to boolean props with default
falseby @susnux in #6719 - refactor: drop
string-lengthdependency and replace with native solution by @susnux in #6779 - chore: type check project on CI by @susnux in #6737
- refactor: adjust code to fix all SASS deprecations by @susnux in #6734
- refactor: Migrate
NcButtonfrom render function to template by @susnux in #6033 - Updates for project Nextcloud vue library by @transifex-integration in #6783
- Updates for project Nextcloud vue library by @transifex-integration in #6784
- chore!: do not export mixins anymore by @susnux in #6790
- chore!: drop tooltip directive by @susnux in #6787
- Updates for project Nextcloud vue library by @transifex-integration in #6795
- Updates for project Nextcloud vue library by @transifex-integration in #6803
- feat(NcPopover): add new
noFocusTrapprop by @susnux in #6807 - Updates for project Nextcloud vue library by @transifex-integration in #6809
- ci: use conventional commits in
/*-updatecommands by @susnux in #6810 - Updates for project Nextcloud vue library by @transifex-integration in #6828
- refactor(NcSavingIndicatorIcon): migrate component to vue by @susnux in #6823
- chore: adjust vite plugin for vue
<docs>by @susnux in #6824 - refactor(NcTimezonePicker): migrate component to Typescript by @susnux in #6821
- chore: prepare release of v9.0.0-rc.0 by @susnux in #6788
New Contributors
Full Changelog: v9.0.0-alpha.8...v9.0.0-rc.0