ds-smart-ui
v0.3.4
Published
Smart UI is a React component library that helps you build accessible and responsive web applications. It provides a set of reusable components that are designed to work well together and follow best practices for accessibility and performance.
Maintainers
Readme
Smart UI v0.3.4
A React component library built for PT Praisindo Teknologi — covering inputs, navigation, feedback, layout, and data display, all aligned to a unified design system.
Installation
npm install ds-smart-uiImport the stylesheet once at your app's entry point:
import "ds-smart-ui/dist/style.css";Usage
import { Button } from "ds-smart-ui";
export default function App() {
return (
<Button variant="contained" color="primary">
Click me
</Button>
);
}Icons
We recommend Lucide Icons as the icon library:
npm install lucide-reactimport { IconButton } from "ds-smart-ui";
import { X } from "lucide-react";
<IconButton iconStart={<X />} onClick={() => {}} />Changelog
v0.3.4 — 16 March 2026
Fixes
- ButtonGroup — fixed visual inconsistency when an item is both active (selected) and disabled. Item now displays a muted primary style (primary-50 background, primary-200 border, primary-300 icon, primary-400 label, 0.55 opacity) with
cursor: not-allowed, clearly distinguishing it from a non-selected disabled item.
v0.3.3 — 5 March 2026
New
- AdvancedToolbar — added
slotLeftprop in Row 2 to replacePendingStatusSelectwith any custom component (e.g.DateRangePicker). WhenslotLeftis provided,rowStatusOptionsis hidden. - DateRangePicker — added
customPresetsprop (PresetRange[] | null) to override the default quick-select preset list. Added Storybook story and Controls documentation forcustomPresets.
Fixes
- DateRangePicker — fixed double-calendar showing the same month on both panels after selecting a preset (e.g. "Today") and reopening the picker.
nextMonthis now explicitly synced insidehandleToggleto bypass React 18 batching.
v0.3.2 — 3 March 2026
New
- Divider — horizontal and vertical content separator, matching Material UI's Divider API (
orientation,variant,textAlign,flexItem,children,component).
Accessibility
- HelperText — wrapper
divwith stableid,role="alert"on error,aria-live="polite"on normal state,aria-atomic="true". - TextField / Select / Checkbox / Radio / NumberField — added
aria-invalid,aria-required, andaria-describedbypointing to the helper text element. - Checkbox — fixed
aria-labelto only apply when no visible label is present. - Select — added
aria-hidden="true"to the chevron icon. - TabButton — added
aria-selected. - Tabs — added
role="tablist",role="tab",aria-selected, rovingtabIndex, and keyboard navigation (Arrow keys, Home, End). - DropdownMenu — added
aria-haspopup,aria-expanded, andaria-controlsto trigger buttons. - Button / IconButton — added
aria-busywhenisLoadingis active. - Alert — added
role="alert",aria-live="assertive",aria-atomic="true", andaria-labelon the close button. - Badge — exposed
aria-labelprop for descriptive count labeling.
v0.3.1 — 26 February 2026
New
- DialogAction — added status icons (success, danger, warning, info).
- NumberField — added
showRequiredprop to display asterisk independently from HTMLrequired. - ButtonGroup — added
variant="tab"with horizontal scroll support.
Refactor
- Box — now accepts direct CSS property props (
width,height,display, etc.) for MUI-like inline styling.
v0.3.0 — 24 February 2026
New
- Dialog / DialogAction / DialogCheck — added
roundedprop for custom border radius. - DataTable — added custom drag handle for column reordering.
- Button — added
soft-outlinedvariant.
Fixes
- ButtonGroup — text color consistency update.
- Tabs — set Scrollable direction to horizontal.
v0.2.111 — 20 February 2026
New
- Box — MUI-like Box with
componentprop and event handler passthrough. - Grid — 12-column responsive grid with breakpoints (xs → xl) and spacing tokens.
- Stack — flexbox layout with spacing, divider, and alignment support.
- Container — centering wrapper with max-width presets and gutter control.
- Skeleton — loading placeholder with
pulse/waveanimations. - Select2 — debounced search input (configurable delay).
- TextArea — optional character counter via
showCharacterCount. - DialogCheck — per-button
variant,color, androundedprops.
Fixes
- DataTable — fixed
enablePaginationprop being ignored; removed prop validation for better MRT passthrough.
v0.2.110 — 12 February 2026
New
- DataTable — table footer with pagination and column pinning support.
- Select2 — pagination, infinite scroll, edit mode, and API-based search.
v0.2.108 — 11 February 2026
New
- validateProps utility — type, range, pattern, and custom validator support (dev-only warnings).
- Card — added
xlborder-radius option. - ButtonGroup — padding and label font size adjustments.
v0.2.107 — 10 February 2026
New
- UploadZone — drag-and-drop file upload with progress bar and cancel support.
- ButtonGroup — initial component release.
- DialogAction — added
childrenslot for custom content.
v0.2.106 — 26 January 2026
New
- Drawer — slide-in navigation drawer with full Storybook coverage.
- CardTabs / TabButton — visual "pressed" state and enhanced active styles.
- Upgraded Storybook to v10.2.0.
v0.2.102 — 16 December 2025
New
- ThemeProvider — runtime theming for 6 color types with auto-generated palettes (10 shades each).
- generateColorPalette() utility for single-color palette generation.
v0.2.101 — 2 December 2025
New
- Separated
required(HTML validation) andshowRequired(asterisk display) across all input components:TextField,Select,Select2,Radio,Checkbox,Textarea,DatePicker,DateRangePicker.
v0.2.92 — 18 November 2025
New
- Wizard — sticky header, scroll spy, multi-action steps, and
WizardSectionhelper.
v0.2.91 — 23 October 2025
New
- Smooth closing animations (fadeOut + slideDown) for
Dialog,DialogAction, andDialogCheck.
v0.2.85 — 15 October 2025
New
- DatePicker and DateRangePicker — localization, double-calendar mode, quick presets, min/max validation, and 8 color variants.
v0.2.65 — 2 September 2025
New
- SmartDatePicker — single/range date picker integrated with the Smart UI input system.
- AdvancedToolbar — active status switch, debounce search, number/date range filters.
v0.2.63 — 13 August 2025
Refactor
- DataTable — modular rebuild:
ActionDropdown,InlineActions,RowActions,EmptyState,DataTablePagination, and separated hooks (useTableColumns,useTableDefaults).
v0.2.43 — 7 June 2025
New
- HelperText — shared helper/error text component adopted across all input components.
v0.2.33 — 16 May 2025
New
- TextField — show/hide toggle for password fields; clickable
iconEnd. - IconPicker — SVG icon picker with search and dialog integration.
- SvgIcon — lightweight SVG icon renderer with size and color props.
v0.1.67 — 12 February 2025
New
- Design tokens — colors, font sizes, line-height, letter-spacing; standard badge color set.
