Appearance
Dolphin Components - Changelog
List of all dolphin component v3 changelogs
[3.1.18] - 2026-07-10
New Components
Tab Component (docs)
- Lightweight, accessible horizontal tab navigation component with
v-modelsupport. - Renders tab buttons with active-state styling and optional vertical separators.
- Supports dynamic named slots per tab for fully custom tab button content (icons, badges, etc.).
- Emits
update:modelValuefor v-model binding andchangeevent for side-effect handlers. - TypeScript interfaces exported:
TabOption,TabProps.
- Lightweight, accessible horizontal tab navigation component with
ReportPrintOption Component (docs)
- Two-panel settings component with Report and Print tabs (powered by the Tab component).
- Report tab: Date type presets (year-to-date, quarter-to-date, today, custom, etc.), dual-calendar (AD/BS) date pickers with automatic conversion, date range selection.
- Print tab: Paper size selector (A3/A4/A5/Letter), page orientation (Portrait/Landscape), toggle switches for header visibility, report overview, page count, and print date.
- Provides extensive named slots (
before-date-type,after-to-date,after-paper-size, etc.) for inserting custom settings rows. - TypeScript interfaces exported:
ReportPrintOptionProps.
ReportPrintOptionLayout Component (docs)
- Layout wrapper component for creating consistent settings rows inside ReportPrintOption.
- Renders a labeled row with header, description, and a slot for the control element.
- TypeScript interfaces exported:
ReportPrintOptionLayoutProps.
Modal Enhancement
- Dynamic Z-Index Calculation for Modal Stacking
- Modals now automatically calculate their z-index based on the number of currently open modal panels.
- Supports proper stacking when multiple modals are open simultaneously (nested modals).
- Base z-index starts at
11, each subsequent modal increments by10. - Backdrop z-index is always one less than its parent modal.
- No code changes required — improvement is automatic for all Modal usages.
Tabulator Refactor
- Centralized Debounce Service for AJAX Calls
- Replaced custom
setTimeout/clearTimeoutlogic with the centralizedCreateDebounceservice. - Improved reliability and memory management for debounced AJAX requests in remote pagination mode.
- Added
ajaxDelayprop to configure the debounce delay (default inherited from component). - No code changes required — improvement is automatic.
- Replaced custom
Dependency & Framework Upgrades
- Upgraded dependencies:
@lucide/vueto^1.24.0,axiosto^1.18.1,sweetalert2to^11.26.25,vueto^3.5.39,nepali-datepicker-vueto^2.0.0. - Upgraded devDependencies:
@eslint/jsto^10.0.1,@types/nodeto^26.1.1,prettierto3.9.5,typescriptto~6.0.3,typescript-eslintto^8.63.0,viteto^8.1.4,vue-tscto^3.3.7.
[3.1.17] - 2026-07-01
Tabulator Component Enhancements
- Added
maxSelectableRowsprop to support setting selection limits (acceptsnumber | boolean, defaulttrue). - Added
enableRangeSelectprop to enable selecting ranges of rows using standard table interaction (Shift+Click / Ctrl+Click, defaultfalse). - Added
selectionOverflowModeprop to control overflow behavior (accepts"block" | "rolling", default"block"). - Implemented programmatically managed custom checkboxes for row selection (
createRowSelectionFormatter) and column header select-all (createSelectAllFormatter), ensuring checkboxes correctly reflect indeterminate/checked state in sync with Tabulator. - Added
@onSelectionChangeevent emitting{ data, rows }on selection updates. - Added
@onSelectionLimitReachedevent emitting the max limit when row selection capacity is reached. - Implemented watch handlers for dynamic updates of selection properties (
enableSelectable,maxSelectableRows,enableRangeSelect,selectionOverflowMode).
Dependency & Framework Upgrades
- Upgraded dependencies:
@lucide/vueto^1.22.0,@tailwindcss/viteto^4.3.2,@types/tabulator-tablesto^6.3.5,axiosto^1.18.1,tabulator-tablesto^6.5.2,tailwindcssto^4.3.2,vueto^3.5.39. - Upgraded devDependencies:
@types/nodeto^26.1.0,globalsto^17.7.0,prettierto3.9.4,typescript-eslintto^8.62.1,unplugin-dtsto^1.0.3,viteto^8.1.2,vite-plugin-vue-devtoolsto^8.1.5,vue-tscto^3.3.6.
[3.1.16-beta-2] - 2026-07-01
Maintenance & Refactoring
- Updated Node engine requirement in package configuration to Node
26.3.1. - Bumped dependencies to their latest compatible versions (including
tabulator-tablesto^6.5.1). - Refreshed VS Code recommendations configuration (
.vscode/extensions.json).
[3.1.16-beta.1] - 2026-06-10
New Components & Refactoring
- Added a custom local Multiselect component to replace the external
vue-multiselectdependency. - Removed
vue-multiselectpackage dependency to keep the package payload clean and self-contained. - Updated all related components (like
DateRange) to import the new localMultiselectcomponent. - Bumped package version to
3.1.16-beta.1in package.json. - Merged
masterinto thev3.1.17branch (combining newMultiselectandTextEditorcomponents with master changes).
[3.1.16] - 2026-06-20
New Components
- Added a custom local Multiselect component to replace the external
vue-multiselectdependency. - Removed
vue-multiselectpackage dependency to keep the package payload clean and self-contained. - Updated all related components (like
DateRange) to import the new localMultiselectcomponent. - Introduced search debouncing support via new
debounceSearchanddebounceSecondprops.
[3.1.15] - 2026-06-18
New Components
- Added a reusable TextEditor component powered by TinyMCE.
- Integrated TinyMCE dependencies, local oxide skins, and supporting configurations.
Tabulator Enhancements
- Enhanced Tabulator component with:
- API-driven action handling (dynamically generated actions via backend endpoints)
- Improved pagination support
- Better action processing and table interactions
- Improved code density and action handling behavior across data tables.
- Fixed Tabulator reinitialization issues.
- Improved overall table performance and stability.
Component & UI Improvements
- Updated InputError directive to support Multiselect components (targeting the
.multiselect__tagsclass wrapper). - Removed unnecessary height constraints from Multiselect content rendering.
- Refined component layouts and styling consistency.
- Improved input styling and initialization logic.
Build System & Tooling Modernization
- Migrated build tooling from
vite-plugin-dtstounplugin-dts. - Added API Extractor support for declaration bundling.
- Updated TypeScript configuration and declaration generation workflow.
- Improved build reliability and package generation process.
- Added PNPM workspace configuration support.
Dependency & Framework Updates
- Migrated icon system to
@lucide/vue. - Updated project dependencies across the component library.
- Improved TypeScript, linting, and development tooling configuration.
- Enhanced ESLint path resolution behavior.
Maintenance & Refactoring
- Optimized Toast instance initialization using a single mixin config instead of recreating instances.
- Improved variable initialization patterns.
- Refactored internal component logic for better maintainability.
- Applied general cleanup, dependency updates, and stability improvements.
[3.1.14] - 2026-06-10
WebSocket Improvements
- Implemented initialization promise handling for WebSocket connections.
- Added improved connection error handling and lifecycle management.
- Increased reliability of real-time communication features.
[3.1.13] - 2026-03-22
Changed
- Tabulator Row Selection Update Queuing
- Refactored
updateSelectedRowto use task queue system - Prevents race conditions when selection is updated before table initialization
- Ensures selection updates are applied in correct order
- Improves reliability when calling
updateSelectedRowin rapid succession - No code changes required - improvement is automatic
- Refactored
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.12] - 2026-03-19
⚠️ Breaking Changes
- Tabulator Row Selection API Change
Removed
selectedRowsprop in favor of programmatic controlAdded
updateSelectedRowmethod for controlling row selection stateMigration required for projects using row selection with external state management
Migration:
vue<!-- Before (v3.1.11 and earlier) --> <Tabulator :enable-selectable="true" :selected-rows="selectedIds" /> <!-- After (v3.1.12+) --> <Tabulator ref="tableRef" :enable-selectable="true" /> <script setup> import { onMounted } from "vue"; const tableRef = ref(null); const selectedIds = ref(arrayObject); onMounted(() => { // Programmatically set selected rows tableRef.value.updateSelectedRow(selectedIds.value); }); </script>
Added
updateSelectedRowMethodNew exposed method for programmatically selecting/deselecting rows
Accepts array of row IDs or single row ID
Provides full control over selection state
Example usage:
javascript// Select single row tableRef.value.updateSelectedRow(arrayObject); // Clear selection tableRef.value.updateSelectedRow([]);
Migration Note
⚠️ Breaking Changes - Action Required
If you were using the selectedRows prop to control selection state externally, update your code:
Before (v3.1.11 and earlier)
vue
<template>
<Tabulator
:enable-selectable="true"
:selected-rows="externallySelected"
:data="tableData"
:columns="columns"
/>
</template>
<script setup>
const externallySelected = ref(arrayObject);
watch(externallySelectedIds, (newIds) => {});
</script>After (v3.1.12+)
vue
<template>
<Tabulator
ref="tableRef"
:enable-selectable="true"
:data="tableData"
:columns="columns"
/>
</template>
<script setup>
const tableRef = ref(null);
const externallySelectedIds = ref(arrayObject);
onMounted(() => {
tableRef.value.updateSelectedRow(externallySelectedIds.value);
});
watch(externallySelectedIds, (newIds) => {
tableRef.value.updateSelectedRow(newIds);
});
</script>Why This Change?
The selectedRows prop created a two-way binding pattern that conflicted with Vue's unidirectional data flow principles. The new approach:
✅ More Vue-idiomatic - Uses ref and methods instead of prop binding ✅ Better performance - Eliminates unnecessary reactivity overhead ✅ More flexible - Programmatic control allows complex selection logic ✅ Clearer API - Explicit method calls make code more readable
[3.1.11] - 2026-03-16
Added
- DateSelector
disabledProp- New
disabledprop to prevent user interaction with the date selector - Applies disabled styling to match form field standards
- Example usage:vue
<DateSelector v-model="date" :disabled="isReadOnly" />
- New
Changed
- Dependency Updates
- Updated package dependencies to latest compatible versions
- Improved security and performance
- Better compatibility with modern build tools
Fixed
- Tabulator Row Selection Implementation
- Completed row selection feature implementation from v3.1.6
- Fixed edge cases in selection state management
- Improved selection persistence across pagination
- Better handling of select all/deselect all functionality
Migration Guide
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.10] - 2026-02-11
Fixed
- Tabulator Crash on Disabled Footer
- Fixed tabulator crashing when
disableFooterprop is set totrue - Refined pagination mode logic to handle non-paginated state correctly
- Corrected data return logic when footer/pagination is disabled
- Introduced in v3.1.7 — update immediately if using
disableFooter
- Fixed tabulator crashing when
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.9] - 2026-02-11
⚠️ WARNING: This version has a critical tabulator build issue. Please use v3.1.9 instead.
Fixed
- ESLint Module Export
- Changed module export from
export =toexport defaultfor correct ES module compatibility - Resolves import issues when using the ESLint plugin in modern ES module projects
- Migration: No code changes required — existing imports continue to work correctly
- Changed module export from
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.8] - 2026-02-11
⚠️ WARNING: This version has a critical eslint types build issue. Please use v3.1.9 instead.
Added
- TypeScript Declaration Export for ESLint
- Added
d.tstype declaration file for the custom ESLint plugin - Improves TypeScript support when using the ESLint configuration in TypeScript projects
- Better IDE autocomplete and type checking for ESLint rule configurations
- Added
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.7] - 2026-02-11
Added
- Tabulator
disableFooterProp- New
disableFooterprop to hide the tabulator footer/pagination bar - Useful for compact tables or non-paginated data displays
- Example usage:vue
<Tabulator :disable-footer="true" :data="tableData" :columns="columns" />
- New
Fixed
- DateSelector Empty v-model Value
- Fixed
v-modelnot being set when an empty value is passed to the DateSelector - Component now correctly handles and reflects empty/null initial values
- Prevents inconsistent state when clearing or resetting date fields
- Fixed
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.6] - 2026-02-03
Added
- Tabulator Row Selection Functionality
New
enableSelectableprop enables multi-row selection with checkboxesExposed
getSelectedData()function to retrieve selected rows programmaticallySelect all/deselect all functionality in header checkbox
Individual row selection with checkboxes in first column
Selected rows maintain state during pagination and filtering
- vue
<Tabulator ref="tableRef" :enableSelectable="true" :data="tableData" :columns="columns" /> <button @click="handleGetSelected">Get Selected</button> <script setup> const tableRef = ref(null); const handleGetSelected = () => { const selected = tableRef.value.getSelectedData(); console.log("Selected rows:", selected); }; </script>
Changed
- Dependency Updates
- Updated package dependencies to latest compatible versions
- Improved security and performance
- Better compatibility with modern build tools
- Tabulator Row Styling Refinements
- Enhanced row hover states for better visual feedback
- Improved selected row highlighting
- Better distinction between active, hover, and selected states
- Smoother transitions between states
- Tabulator Resize Handle Styling
- Refined column resize handle appearance
- Better visibility during hover
- Improved cursor indication for resizable columns
- More intuitive resize interaction
Fixed
- Removed Debug Console Logs
- Cleaned up debug
console.logstatements from Modal component - Removed debugging logs from Tabulator component
- Cleaner browser console output in production
- Improved performance by reducing unnecessary logging
- Cleaned up debug
Migration Note
✅ No Breaking Changes
This release is 100% backward compatible. All existing implementations will continue to work without modifications.
[3.1.5] - 2026-01-26
Added
- Multiselect Dropdown Height Limit
- Implemented maximum height cap for multiselect dropdown menus
- Dropdown becomes scrollable when options exceed viewport space
- Prevents dropdown from extending beyond screen boundaries
- Improves usability on pages with many selectable options
Changed
- Modal Component Positioning Logic
- Refactored modal positioning system for better viewport handling
- Improved centering logic across different screen sizes
- Better handling of dynamic content height changes
- Modal now repositions when content size changes dynamically
- Modal Dynamic Sizing
- Enhanced modal width calculation for responsive behavior
- Better handling of min/max width constraints
- Improved content overflow handling
- Smoother transitions when modal content changes
Fixed
- DateSelector BS Date Handling
- Fixed default Bikram Sambat (BS) date not being set correctly on component mount
- BS date now properly converts and displays on initial render
- Corrected date conversion logic between BS and AD formats
- Prevents invalid date states when toggling between BS/AD modes
- Multiselect Dropdown Overflow
- Fixed dropdown extending beyond viewport bottom on small screens
- Dropdown now automatically scrolls when content exceeds available space
- Better positioning when multiselect is near page bottom
[3.1.4] - 2026-01-21
Fixed
- Critical Build Issue
- Fixed broken build from v3.1.3 where CSS files were not properly included
- All component styles now correctly bundled in distribution
- Resolved missing styles causing components to render incorrectly
- Migration: Update to v3.1.4 immediately if you installed v3.1.3
- Note: v3.1.3 should not be used - please upgrade to v3.1.4
[3.1.3] - 2026-01-21
⚠️ WARNING: This version has a critical build issue. Please use v3.1.4 instead.
Added
- Tabulator Task Queuing System
- Implemented task queue to handle prop updates before tabulator initialization
- Ensures data, columns, and configuration updates are processed in correct order
- Prevents race conditions when multiple props change simultaneously
- Fixes issues where data updates were ignored during initialization
- Date Range Filtering for Tabulator
- Fixes issues where date type wise date was not being set in initialization
- ESLint Custom Rule for Pinia Stores
- Eslint is a peer dependency for the plugin
- New custom ESLint rule prevents duplicate Pinia store IDs
- Catches duplicate store definitions at development time
- For installation guide use this refrence
Fixed
- Textarea Component
- Fixed default
max-heightnot being applied correctly - Textarea now properly constrains height with scrollbar when content exceeds maximum
- Improved visual consistency across different content sizes
- Fixed default
- Tabulator Action Button Issues
- Fixed action buttons breaking when action name has more than 3 words
- Action names like "Mark as Complete Task" now work correctly
- Example:
"Export to PDF"now generates proper action and emits instead of breaking
- Tabulator Action Persistence Issues
- Fixed action dropdowns still showing after hot module reload (HMR) in development
- Fixed action menus persisting when navigating away from page
- Properly cleanup action event listeners on component unmount
- Prevents memory leaks in development environment
Changed
- Build Script Updates
- Updated build scripts for better compatibility
- Improved TypeScript compilation process
- Enhanced development server configuration
- TypeScript Configuration
- Updated
tsconfig.jsonfor better type checking - Improved module resolution
- Better compatibility with modern Vue and Vite
- Updated
- Dependency Updates
- Updated ESLint and related plugins to latest versions
- Updated TypeScript and type definitions
- Updated build tools for improved performance
Migration Notes
- Required: Eslint package is now a peer dependency to run dolphin-package
[3.1.2] - 2026-01-14
Fixed
- Component Export Issue
- Fixed
FileUploadandFilePreviewcomponents not being properly exported from package - Components are now accessible via standard importjavascript
// Now works correctly import { FileUpload, FilePreview } from "dolphin-components";
- Fixed
[3.1.1] - 2026-01-14
Added
- File Preview Component (docs)
- Component for previewing uploaded files (images, PDFs, documents)
- Support for multiple file formats
- Responsive preview interface
- TypeScript interface exported:
FilePreview
- File Upload Component (docs)
- Drag-and-drop file upload functionality
- Multiple file selection support
- File size and type validation
- TypeScript interface exported:
FileUpload
- Exported TypeScript Interfaces
FilePreviewinterface exported for type safetyFileUploadinterface exported for type safety
Fixed
- Critical Import Issue
- Fixed
nextTickbeing incorrectly imported fromprocesspackage instead ofvue - Prevents runtime errors and build issues
- Migration: No action needed - fix is automatic
- Fixed
- DateSelector UI Improvements
- Fixed visual inconsistencies in date picker interface
- Better alignment of date input elements
- FocusNext Function
- Fixed focus function not working due to misconfig
- Changes in the Usage of focusnext in setup script (here)
- Button UI Fixes
- Fixed button ui inconsistencies across variants
- Fixed button heights
- Better icon alignment in icon buttons
- Input UI Fixes
- Fixed input and input type color heights
- Form UI Fixes
- Fixed input field label design
Migration Notes
The following issues are automatically resolved with this update:
nextTickimport error (no code changes required)- Button, Input, and Form UI improvements (automatic styling updates)
[v3.1.0] - 2025-12-16
⚠️ Breaking Changes
- Node.js version requirement updated to Node 24
- Previous versions of Node.js below 22 are no longer supported
- Migration: Upgrade your Node.js installation to version 24 or higher
- Column attribute
isNotMandatoryis removed from tabulator- Replaced with
isMandatoryfor better clarity isMandatorydetermines whether a visible column toggle field is disabled in settings- Migration: Replace
isNotMandatory: truewithisMandatory: falseand vice versa
- Replaced with
Added
- Right-click context menu support for action dropdowns
- Action dropdowns can now be opened by right-clicking anywhere on a table row
- Context menu intelligently positions at mouse cursor location
- Automatically selects the row when right-clicked
- Icon button styles with
.btn-iconclass- Optimized padding and dimensions for icon-only buttons
- Applied to all toolbar buttons (Settings, Print, Export)
Changed
- Enhanced action dropdown positioning system
- Dropdowns now render as fixed position overlays with
z-index: 9999 - Intelligent viewport detection prevents dropdowns from being cut off at edges
- Separate positioning strategies for button clicks vs right-clicks
- Uses portal-like pattern for better rendering performance
- Dropdowns now render as fixed position overlays with
- Button styling improvements
- All buttons now have consistent height (36px)
- Action buttons include active state with border styling
- Replaced text "..." ellipsis with professional SVG icon for better scaling
- Footer visual enhancements
- Added border to tabulator footer for clearer visual hierarchy
- Better distinction between table content and pagination controls
- Improved accessibility
- Removed hidden paginator labels from DOM
- Cleaner markup for screen readers
- Better keyboard navigation support for dropdown interactions
Performance
- Event handler optimization
- Action dropdown event listeners now properly created and destroyed
- Uses ref-based handler storage to prevent memory leaks
- Proper cleanup in
onBeforeUnmountlifecycle hook - Single event handler for all dropdown interactions instead of multiple listeners
- Render performance improvements
- Dropdown rendering moved to document body (portal-like behavior)
- Prevents layout recalculation when dropdown opens
- Uses placeholder element to track original position
Fixed
- Dropdown interaction issues
- Fixed dropdowns remaining open when clicking outside table
- Fixed multiple dropdowns being open simultaneously
- Dropdown now properly closes when scrolling the table
- Right-click on action button no longer opens browser context menu
- Row selection behavior
- Fixed row selection state not updating correctly with right-click
- Previous selected row now properly deselected when right-clicking new row
- Selection state persists correctly when dropdown is open
- Minimum height calculation
- Tabulator now enforces minimum height of 250px
- Prevents table from becoming unusable on small screens
- Better handling of dynamic viewport changes
- Type safety improvements
TabulatorHeaderinterface now properly extendsColumnDefinition- Improved TypeScript inference for column configurations
- Better autocomplete support in IDEs
Migration Notes
- Optional: Update custom toolbar buttons to use
.btn-iconclass for consistent styling - Optional: Remove any custom CSS workarounds for dropdown positioning - now handled automatically