# 2.3.1 (07.12.2023)

# Bug fixes

  • Improved behavior of maximized mode
    Fixed issue where it would be possible to scroll the content underneath the maximized window.
    Fixed page elements sometimes being rendered on top of the maximized window.

# 2.3.0 (06.12.2023)

# Features

  • Allow editing external images in the standalone image editor.
    Recently introduced standalone image editor that is available as a separate component, mounted using mountImageEditor method via ckbox package can now handle external images. This expands the editor’s capabilities to edit images from external online sources. The image will be previously downloaded and uploaded to CKBox. After editing, the result will be available in CKBox storage.
    Note: CORS restrictions apply.
  • Introduced a maximized mode.
    CKBox’s user interface will be expandable to fullscreen mode using a dedicated Maximize/Minimize button on the top-bar.
  • Allow to easily open images/pdf files in a new tab.
    Images and PDF files will be easily openable in a new tab using the dedicated “Open in a new tab” button on the asset preview.

# Bug fixes

  • Improved error handling.
    Improved displaying traceId details in public errors displayed in the case of potential problems with the application.
  • Improved JWT validation.
    JWT auth.ckbox.workspaces empty array validation was added.

# 2.2.0 (14.11.2023)

# Features

  • Introduced a feature that enables to globally manage environment allowed extensions.
    Users with the superadmin role will now be allowed to control the allowed extensions globally in CKBox throughout all workspaces. SuperAdmins can restrict which files can be uploaded to the environment, and which cannot. If global limitation of extensions is enabled, administrators managing categories will be able to limit extensions in a category only to the selected set of file extensions.
  • Introduced the Workspace Templates feature.
    Workspace Templates let superadmin users streamline workspace initialization. With this feature, superadmin users gain the ability to control the default set of categories for newly created workspaces. This feature empowers administrators with greater control and flexibility of workspace configuration.
  • Upgraded the tokenUrl configuration option.
    The tokenUrl configuration option can, in addition to the standard approach with passing the URL to the token endpoint, also be a callback that provides a promisified token.
  • Introduced the standalone image editor.
    CKBox package now exposes a standalone component for image editing only.
    CKBox’s internal image editor can be started via the mountImageEditor method, allowing for the edition of a given image asset.
  • Introduced a basic mobile devices support.
    CKBox is now adapted to lower screen resolution devices on some limited scope.

# Bug fixes

  • Corrected an error related to loss of workspace access during CKBox runtime.
    If a user lost access to the current workspace, CKBox will attempt to redirect them to a new initial workspace. User workspace access is determined based on the info from the token.
  • Fixed the cache invalidation problem during Workspace management.
    Fixed refreshing issues of workspaces list while superadmin manages workspaces, e.g. deletes or adds workspace.
  • Resolved the drawer overflow issues.
    Fixed the problem of unscrollable content if drawer content exceeds available viewport.
  • Disabled the auto-scrolling on focus.
    Fixed the problem of CKBox autoscrolling issues while focusing on particular elements of CKBox interface.

# 2.1.0 (31.08.2023)

# Features

  • Introduced UI for Workspaces feature.
    Users with the superadmin role can manage workspaces in a dedicated view within Settings. The UI allows to add, remove, and rename workspaces.
  • Improve UI for navigation through workspaces.
    The active workspace is now displayed even if the navigation bar is collapsed. Each workspace is additionally represented by an avatar.
  • Save user preferences per workspace.
    The following properties will be remembered per workspace: Last used view, last search query, and search history.
  • Introduced configuration options for minimizing upload dialog and hiding upload components.
    Option upload.dialogMinimizeTimeout can be used to configure timeout for minimizing upload dialog after completed upload.
    Option upload.componentsHideTimeout can be used to configure timeout for hiding all upload components after completed upload.
  • Remember the last used workspace.
    The last used workspace is saved and CKBox will try to use it the next time it is initialized. If a workspace is removed by then, the first workspace defined in the token will be initialized instead.
  • Remember the opened / closed state of the properties drawer.
    The opened / closed state of the properties drawer is saved and CKBox will use it the next time it is initialized.
  • Display the modification date in the properties drawer.
    The properties drawer contains the modification date of the selected asset. Hovering over either a modification or upload date displays the exact modification / upload time.
  • Loader is displayed in image editing as long as the image is being fetched.
    Until an image is fully loaded any interaction with the feature is disabled.
  • Focus CKBox dialog on mount.
    CKBox dialog will receive focus once it is opened. This is a two-step process: First, the main dialog div will receive focus followed by an active navigation item (if there is one). The mechanism will work only if CKBox is in dialog mode.
  • Introduced lark theme.
    The new theme is styled after the default theme of CKEditor 5.

# Bug fixes

  • Fixes issues related to copying / pasting assets with the clipboard.
    Assets pasting from the clipboard did not work correctly in Safari. The issue has been fixed.
    In Firefox the feature will not work at all unless the user enables the flag in the about:config settings in their browser.
  • Remove UTF-8 space separators from the stylesheet.
    Until now CKBox used a few of such characters. They could be misinterpreted by the browser if the host application was not configured to use UTF-8.
  • Image resize fields are now part of the form in the save dialog.
    Image editing changes can be now submitted with keyboard if one of the image resize fields is focused.
  • Validate image resize fields in the save dialog.
    Image resize fields are now properly validated. The maximum allowed value for a single dimension is 16383 px. In addition, the new size cannot exceed the maximum image resolution for the used CKBox plan.
  • Ignore the auth.ckbox.workspaces field in the token if the user is a superadmin.
    Since users with the superadmin role have access to all workspaces, setting the field in the token won’t have any effect.
  • Add missing translations.
    Several messages were missing proper translations, e.g. predefined dates in the search dialog.

# 2.0.0 (28.07.2023)

# Features

  • Introduced the PDF preview feature.
    PDF documents can be now opened directly in CKBox after clicking the View button in the toolbar.
  • Added the view.onChange configuration option.
    These options allow to define a callback triggered each time the user view changes, i.e. user changes the folder, moves to search results, or to recently used files.
  • Introduced the url and imageUrls attributes in the asset model of the CKBox REST API.
    The URLs to assets and to the responsive versions of images are now returned in the CKBox REST API responses.

# Bug fixes

  • Fixed an issue related to applying crop, rotate, and flip to the edited image.
    When a crop, rotate and flip operations were applied together on the edited image, after saving changes the server returned an error and the changes were not applied. The issue has been fixed and all the operations can be now applied at once.
  • Fixed editing BMP images.
    After editing a BMP image and saving changes, the produced images were broken which made them unusable. The issue has been fixed and BPM images are now saved properly.
  • Improved the behavior of the image save modal on lower screen resolutions.
    The modal displayed when saving the edited image was not responsive which made parts of its content not accessible. A scrollbar has been introduced to make it possible to navigate if the viewport height is limited.
  • Improved the validation of tags defined for assets.
    If a long tag has been defined for an asset, it resulted in an error response returned from the server. From now on, the length of tags is validated on the frontend side.
  • Fixed asset selection issues on Safari.
    When clicking and holding the left mouse button to select multiple files, the selection box acted unexpectedly at a certain point.
  • Fixed issues related to using multiple CKBox instances on one web page.
    In some cases, multiple CKBox instances on a web page interfered with each other due to the CKBox internal cache not being properly separated. Additional cache separation has been introduced to ensure that instances with different id don’t affect each other.
  • Fixed text overflow issues in the filename conflict resolution modal displayed for copy or move operation.
  • Fixed styling of the dark theme.

# Breaking changes

  • Removed the assetsOrigin option.
    Previously, CKBox used the assetOrigin option to assemble the URLs to asset files served through the CDN. This configuration option became obsolete after introducing the url and imageUrls attributes in the asset model of the CKBox REST API. From now all the required URLs can be obtained from the REST API responses.
  • Removed navy and aqua themes.
    The set of built-in themes has been reduced and CKBox currently provides only the default and the dark themes.
  • Removed getUrl() and getResponsiveImageUrl() methods from the asset objects passed to the assets.onChoose callback.
    Both methods become obsolete after introducing the url and imageUrls attributes in the asset model of the CKBox REST API. URLs to different image formats for the purpose of image conversion can be assembled manually using the CKBox REST API.
  • Simplified language configuration option.
    Previously it was possible to enter debugging mode for translations by passing an undocumented object with following shape: { ui: string; debug?: boolean }. This possibility has been removed and from now on it’s only possible to pass a language code.
  • Deprecated top-level openLastView, startupCategoryId, and startupFolderId configuration options.
    From now on they are available on view config option, e.g. view.openLastView. Their top-level counterparts will continue to work until the next major version of CKBox.

# 1.6.0 (12.07.2023)

# Features

  • Introduced Image Editing feature.
    A newly added image editing feature enables users to perform basic operations on the image files. These operations include:

    • Cropping: Users can select a specific portion of an image, helping them focus on a particular subject.
    • Rotating: Users can rotate an image by 90 degrees clockwise or counterclockwise.
    • Flipping: Users can mirror an image horizontally or vertically.
    • Resizing: Users can change the dimensions of an image (width and height) by specifying custom dimensions.

    After editing an image, users have the option to save it as a new asset or overwrite the edited image file.

  • Introduced Workspaces feature
    Workspaces provide a convenient solution for achieving data isolation and user segregation within CKBox. They allow to easily separate storage and data spaces, giving a precise control over assigning specific users, user groups, or tenants to each workspace. This allows to maintain distinct data and storage spaces, ensuring data separation and seamless integration into multi-tenant applications.

  • Introduced a mechanism allowing to quickly locate the uploaded file.
    Implemented a mechanism to improve the process of finding newly uploaded files within the asset list. It was sometimes difficult to find the files after upload. A Go to file button has been added next to the uploaded file’s name in the upload modal. The button becomes visible when hovering over the file entry, allowing users to quickly locate the file within CKBox. By clicking the Go to file button, the corresponding file is highlighted and the focus automatically moves to it.

  • Unified display of location identifiers.
    Categories and folders identifiers visible to the administrators are now displayed in a more consistent way. The new identifier label now enables administrators to copy its value to the clipboard by simply clicking on it.

  • Added text wrapping in file descriptions.
    Previously, file descriptions were restricted to a single line, making it difficult to view the entire content when a long file description was defined for an asset. Now, file descriptions are presented in a multiline input that wraps the text, enabling the full description to be immediately visible.

# Bug fixes

  • Improved loading of image thumbnails.
    The frontend is now aware of the image processing state, enabling the automatic refreshing of thumbnails when necessary. This ensures that users always have up-to-date and accurate representations of their images. Additionally, thumbnails for broken images are not unnecessarily refetched.
  • UI improvements.
    CKBox user interface is constantly improved, and this release brings some fixes to the UI, such as: removing unnecessary animations for slider component, improving the loading placeholders inside the admin section, and more.

# 1.5.1 (25.05.2023)

# Bug fixes

  • Fixed behavior of asset properties drawer in Recent category.
    In the previous version, when navigating between assets in Recent category with open properties drawer, some asset properties were not being updated properly.

# 1.5.0 (09.05.2023)

# Features

  • Introduced keyboard support for the Move and Copy operations.
    It is now possible to use well-known keyboard shortcuts to copy and move files between locations:
    • To copy files, use Ctrl+C - Ctrl+V (or Cmd+C - Cmd+V on Mac).
    • To move files, use Ctrl+X - Ctrl+V (or Cmd+X - Cmd+V on Mac).
  • Introduced the openLastView option.
    Added a configuration option that allows users to control whether the browser remembers the last opened folder and automatically reopens it after refreshing the page. This option is enabled by default so the last location is remembered.
  • Introduced the startupCategoryId and startupFolderId options.
    Added two new options, startupCategoryId and startupFolderId, allowing to control which location is opened immediately after CKBox starts. When used in combination with the openLastView option set to false, so that the last user location is not remembered, CKBox can now always start in the predefined location.
  • The properties panel now shows the ID of the folder or category.
    This allows admin users to conveniently check the ID of the folder or category, which is required by some CKBox configuration options passed through JavaScript.
  • Added a loader indicating the loading state in the conflict resolution dialog.
    When a file with the same name exists in the target directory, a dialog appears, allowing the user to choose an operation: override, skip, or change the name of the copied or moved file. This operation may not be instanteous, so a loader is displayed in the modal to provide visual feedback to the user about the ongoing operation.
  • Improved the consistency of paddings in the gallery component.
  • Updated third-party dependencies.
    Upgraded the versions of the third-party libraries to ensure the security and stability of all the dependencies used by CKBox.

# Bug fixes

  • File uploads no longer stop if the browser tab is moved to the background.
    In the previous versions of CKBox, if a user started uploading a large number of files and moved the browser tab to the background the upload process unexpectedly stopped until the tab was active again at which point it resumed. This issue has been resolved and the upload queue is now processed without any delays even if the tab remains in the background.
  • Fixed category allowed extensions validation after changes to admin settings.
    Previously, extensions validated at the frontend did not immediately recognize changes made in the administration panel. This sometimes caused file extensions to be falsely marked as disallowed during attempts to move or copy files.

# 1.4.0 (12.04.2023)

# Features

  • Introduced ability to copy and move assets.
    CKBox users can now copy and move assets between folders and asset categories. A new workflow improvement has been added for cases where a file with the same name already exists in the target location. Users will be prompted to choose between overriding, renaming, or skipping the file.
  • Added folder upload feature.
    CKBox now allows users to upload folders with subfolders and files directly using the dedicated Folder upload button or by dragging and dropping the folder into the CKBox workspace area. Empty folders will be ignored during the upload process.
  • Introduced a new icon set.
    CKBox has been updated with a new set of icons based on, or inspired by, the Material Icons set.
  • Introduced new modal dialogs.
    A consistent visual style has been implemented for modal dialogs throughout the application.
  • Introduced loading state for opened folders.
    Folders with expanding content now show a loader next to the folder name, indicating that the folder contents are loading, even on slower connections. A consistent skeleton loader has been added for folder content loading, providing a better user experience on slower connections.
  • Introduced transitions and animations of the user interface.
    New animations and transitions have been added to various parts of the user interface, improving its fluidity and visual feedback.
  • User interface improvements.
    • Popup menus will now close upon pressing the Esc key.
    • Default focus outlines have been removed.
    • Navigation buttons padding has been adjusted.
    • The look of icons in file view mode for non-image files has been changed.

# Bug fixes

  • Improved specificity of CKBox’s CSS rules.
    The fixed style reset ensures that the internal CKBox styling is not unintentionally overridden by the styles of the embedding application.
  • Fixed issue with saving asset metadata in preview mode.
    Previously, changes made to file metadata in preview mode were not saved if the properties panel had been opened in the main CKBox view. This issue has been resolved.

# 1.3.2 (21.02.2023)

# Bug fixes

  • Changed breakpoint for fixed components.
    Breakpoint for fixed components was adjusted to use a boundary value of 900px. That will allow some components to use overlay mode on lower CKBox window widths. That should improve the overall UX.

# 1.3.1 (15.02.2023)

# Bug fixes

  • Fixed notifications on missing resources.
    The notification system was improved to stop spawning notifications on a missing resource (category or folder). The notification did not provide any valuable information and only distracted the user.

# 1.3.0 (06.02.2023)

# Features

  • Introduced folders feature.
    It is now possible to organize assets into folders under each of the asset categories. All the existing user assets remained in the top-level categories.
  • Introduced new default light theme.
    Light is the new default theme of CKBox. The previous theme is still available under the name navy.
  • Improvements in search.
    Clicking on the recent search entry now immediately applies the search. Keyboard support in the search form has been improved too, so it is now possible to submit the search form using Enter.
  • Added file properties drawer in the asset preview mode.
    File properties in the preview mode are currently displayed the same way as in the assets view, using the collapsible drawer on the right side of the screen.
  • Improvements to the properties drawer.
    Properties drawer can now be closed using the Esc key. Additionally, the asset preview inside the drawer now respects the Keep aspect ratio option set in the Display options menu.
  • The user can now easily access the location of the asset from the search result view. Asset properties now display the location of the file as an active link directing to the folder or category to which the asset belongs.
  • Added keyboard navigation support in the categories and folder tree.
  • The asset preview mode can now be closed by clicking on the overlay.
  • Added a default border around CKBox element.
    When CKBox in the inline mode is embedded on a web page, it has a default border to make to component boundaries visible.

# Bug fixes

  • Fixed issue that sometimes caused the asset disappear from the search results after its properties have been edited.
  • Fixed focus issues in modals.
    In some cases, after closing the modal, focus has been not returned properly to the required element. Now focus is properly returned to the element that invoked the action that displayed the modal.

# 1.2.1 (28.11.2022)

# Features

  • Introduced keyboard support for the Search feature.
    It is now possible to open the search window using standard keyboard shortcuts: Ctrl+F or Cmd+F.
  • Search results are now remembered between web page reloads until intentionally closed by the user.
  • Introduced sorting of the assets in the search results view.

# Bug fixes

  • Fixed an issue that caused duplicated upload file requests.
    In some circumstances, CKBox sent double HTTP requests with uploaded files. Usually, these unnecessary requests were canceled, but sometimes it resulted in files being uploaded twice into CKBox.
  • Upload progress is no longer visible if the image resolution exceeds the limits.
    The progress bar of the image was unnecessarily visible if the image resolution exceeded the allowed limits.
  • Fixed stacking of the file preview.
    In some cases, file preview might have been overlapped by elements on the host application. CSS rules of the file preview container have been changed to minimize this possibility.
  • Fixed duplicated entries on the list of recent searches.
  • Removed misleading placeholder in the Tags field in the advanced search mode.
    The placeholder displayed in the tag input component is no longer visible if there are any elements present in the input.
  • Fixed issue with saving file properties when all tags were removed.
    In case the file had any tags defined, it was impossible to remove all the tags and save the file properties. This action resulted in an unexpected server error.
  • The Save button in file properties section is no longer active if there are no changes to save.
  • Improved formatting of the tooltip displaying the details of search entries on the list of recent searches.
  • Fixed styling of the slider in the images configuration inside the administration panel.
  • Introduced ellipsis for long search queries that did not fit in the list element on the list of recent searches.
  • Introduced ellipsis for long category names that did not fit inside the container on the list of categories in the administration panel.

# 1.2.0 (16.11.2022)

# Features

  • Introduced the Search feature.
    CKBox will now allow searching the assets by phrase, and / or by custom filters such as: tags, categories, extensions, upload date and last modification date
  • Introduced the assets tagging feature.
    Assets can now be tagged for a better user-personalization. Tags can be used for searching the assets by tag name.
  • Introduced the assets preview feature.
    CKBox introduces the full-screen preview of the asset image. This will allow for inspecting the asset in more detail.
  • Introduced the drawer component.
    The drawer component will now display asset properties in a more contextual form. The drawer will expand from the right side of the interface giving the user quick insight into the asset’s metadata.
  • Introduced the checkbox assets selection mechanism.
    The assets can now be selected using a checkbox button on the asset tile.
  • Added plan limits validation before uploading the file.
    CKBox now validates the plan limits applied to a given subscription to prevent uploading too large files. The upload doesn’t start if the file exceeds the size, or megapixels limit. The user is notified with the right context message.
  • Added the loading state to the button component.
    The button component now has a new loading state. That is used in various interface places to give the best visual feedback for async actions.
  • Added the upload dialog animation on minimize / maximize.
    The upload dialog is now animated while minimizing or maximizing.
  • Improved the accessibility of dialogs.
  • Introduced active state to the buttons.
    Buttons can now hold an active state that allows creating a toggle button.
  • Introduced the “Powered by CKBox” credit link.
    The free plan subscription will now have a “Powered by CKBox” credit link visible at the bottom of the navigation panel. That is only a thing of the personal plan, and neither the Starter, Premium, or Pro plans have this link.

# Bug fixes

  • Fixed bugs related to file selection.
    Asset checkboxes now use different stacking contexts to prevent issues and conflicts with the mouse and keyboard selection.
  • Introduced minor fixes for navigation panel.
    Some layout fixes regarding the navigation panel have been introduced. Those include preventing the resized handle from slipping and adjusting the styling.
  • Fixed the behaviour of the toolbar.
    These fixes include adjusting the padding of the action items, disabling label wrapping for buttons, and fixing the behavior of the elements during navigation bar resize.
  • Fixed minor issues in the upload dialog.
    Previous upload dialog size could cause problems in different language versions. The dimensions of the upload dialog are now larger, and the overall UX of that component has been improved.
  • Fixed issue related to thumbnails alignement.
  • Improved asset selection mechanism using mouse area selection, and keyboard selection.
    The mouse and keyboard events handling has been improved and integrated with the new checkbox selection feature.
  • Fixed stacking context of resize handles.
  • Fixed rendering issues in React SSR sample.
    The React SSR (Next.js) integration sample now uses different Webpack configuration to prevent the splitting of @ckbox packages into separate cache groups.
  • Fixed broken links in end-user docs.

# 1.1.0 (13.07.2022)

# Features

  • Users of commercial plans now have access to the REST API.

  • CKBox now displays a more verbose error when the token validation fails on the backend side.

  • Assets can now be quickly chosen by double-clicking on the asset thumbnail.

  • CKBox now supports keyboard shortcut mapping for deleting assets compatible with macOS. It’s possible to delete assets using Delete or + Backspace.

  • CKBox version is now available from the global CKBox object via CKBox.version.

  • Added JWT token lifespan calculation based on the exp field.

    If the exp field is present in the JWT token obtained from the tokenUrl, CKBox will refresh the token only if it’s about to expire.

  • CKBox now validates application configuration and fails fast if serviceOrigin is provided in a wrong format.

# Bug fixes

  • Fixed style cascading from the host application.

    The fixed style reset now prevents a situation when the host app may influence internal CKBox styling by unintentional CSS overrides.

  • Fixed limits in Personal plan.

    After exceeding the storage limit of the Personal plan, it is no longer possible to upload any new files. After exceeding the bandwidth limit, files will no longer be served from the CDN.

  • Fixed counting the bandwidth.

    The used service bandwidth was not counted properly and in some cases, it remained at 0.

  • Fixed initial dialog dimensions if they become invalid in the current viewport.

    Previously, CKBox didn’t check if the dialog became unusable due to viewport changes. This could lead to situations when the lastly saved display settings (size, position) of the CKBox dialog become invalid due to incompatibility with the current viewport e.g. dialog outside the visible viewport.

  • Fixed the default navigation when opening the CKBox.

    Previously when the CKBox was opened for the first time, the first category on top was the Recent category. Now CKBox is opened with the first user-defined category.

  • Fixed dialog header styling issue.

    Only the upload dialog uses a thicker header now.

  • Using icons instead of text in translation-sensitive UI parts.

    In order to make the upload dialog look better in languages where “Abort upload” translates to a long string, we now use icon instead of text.

  • Fixed missing default categories in 30-day trials.

    Website environments created for 30-day trials did not have the default categories (Files, Documents, Images) created at the start.

  • col-resize cursor is displayed all the time while resizing the navigation bar.

  • Fixed missing translation key warning for asset deletion dialog.