mirror of
https://github.com/MAKS-IT-COM/maksit-webui.git
synced 2026-08-15 09:58:09 +02:00
13 KiB
13 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.4.5] - 2026-08-12
Changed
- Breaking:
Breadcrumbnow renders links with react-routerLinkdirectly. Dropped injectablelinkComponent,href, andlinkProps— usetoon trail items only. Default link/current/separator colors use slate tones.
Removed
BreadcrumbLinkComponentexport (no longer needed).
[0.4.4] - 2026-08-12
Fixed
Breadcrumb/CookieConsentlinkComponenttyping:tois required on the injected link props (and always passed when rendering links), so react-routerLinkis assignable without a host adapter. Exports:BreadcrumbLinkComponent,CookieConsentLinkComponent.
[0.4.3] - 2026-08-06
Added
Breadcrumb— presentational page trail (nav+ol); injectablelinkComponent(e.g. react-routerLink); last item is current page (aria-current). Export:Breadcrumb,BreadcrumbProps,BreadcrumbItem. Storybook coverage included.
Changed
- RepoUtils: removed
Update-RepoUtilstool (local-copy sync only); engine/plugin/module refinements; addedutils/templates/CI Docker/build helpers.
[0.4.2] - 2026-07-28
Added
clearToasts— dismisses all active toasts (exported from@maks-it.com/webui; useful after recovery from transient auth/network errors).
Changed
- Toast auto-dismiss: when
durationis omitted, toasts now dismiss after 8s by default (duration > 0still required to auto-dismiss; pass0to keep sticky). - RepoUtils refreshed to the Community-only layout: single
utils\Invoke-ReleasePackage.batentry point; removed HA/Single release wrappers, Helm uninstall engine, and Docker/Podman/Helm deploy plugins not used by this library repo. .gitignore: ignore generatedtest-results/andutils/tests/results/.
[0.4.1] - 2026-07-24
Added
FileBrowser— full-featured generic storage browser (roots sidebar, breadcrumbs, sort/filter, multi-select delete, optional create folder / upload / download hooks, text/JSON preview). No product-specific OCI/catalog logic. Export:FileBrowser,FileBrowserItem,FileBrowserProps,FileBrowserRoot.Modal/ConfirmDialog— centered dialog shell (Escape + backdrop close, title/body/footer) and confirm variant with primary/cancel actions.Loader/Spinner— full-screen overlay loader with optional controlledvisible, plus event helpersshowLoader/hideLoader/enableLoader/disableLoader(ref-counted, matching host HTTP auth wiring). InlineSpinnerfor local loading UI.Masonry— responsive column masonry layout (breakpoints).LightBox— masonry gallery + fullscreen viewer (Escape / arrow keys, captions, thumbnails).CookieConsent— consent bar with injectablelinkComponent(no hard-coded react-router), plusgetCookie/setCookiehelpers.WhatsAppButton/FacebookMessengerButton— click-to-chat links (wa.me/m.me); optional floating corner placement. Intentionally not the deprecated Facebook Customer Chat SDK.Ratings— star rating widget (fractional fill, optional interactiveonChange, sizes).- Core hooks:
usePrevious,useInterval,useOnScreen,useLocalStorage,useSessionStorage,useLongPress,useDebounce,useOnClickOutside,useMedia,useHover(typed, SSR-safe where relevant; storage hooks sync viastorageevents). - Jest coverage for new hooks and component helpers (
FileBrowserformat/prefs, cookie helpers, loader events, social href builders); Storybook interaction plays for new components and acore/hooksdemo.
Changed
FileUploadComponent— drag-and-drop (droppable, default true),acceptfilter, drop-active highlight; drop replaces the current selection.- Dev dependencies refreshed within current majors (Storybook 10.5, React 19.2.8, Vitest 4.1.10, axios 1.18, lucide-react 1.26, etc.). Held majors: SignalR 8, TypeScript 6, Vite 6.
- Coverage badges:
CoverageBadgesusesbadgeFormat: shields(updatesREADME.mdimg.shields.io URLs) instead of writing SVG files underassets/badges/.
Removed
ResponseModelBaseSchema— empty Zod marker; keep theResponseModelBaseTypeScript type only (matches Core).assets/badges/— local SVG coverage badges (replaced by shields.io).
Fixed
LightBox: fullscreen viewer footer uses a fixed-height horizontal filmstrip instead of a second Masonry grid (which crushed the main image).DataTable: resync column widths whencolumns.lengthchanges;columnWidthfalls back to default so react-virtualized never receivesundefined.
[0.4.0] - 2026-07-07
Changed
- Breaking: merged
@maks-it.com/webui-contracts,@maks-it.com/webui-core, and@maks-it.com/webui-componentsinto a single published package@maks-it.com/webui. Host apps install one package and import everything from@maks-it.com/webui(seeassets/docs/NPM_CONSUMPTION.mdmigration notes). - Breaking:
src/is now the npm package root —src/package.jsonpublishes as@maks-it.com/webui; npm workspaces andsrc/packages/*nesting removed. - Source layout:
contracts/,core/, andcomponents/live directly undersrc/(internal organization only; no subpath exports). - Release pipeline (
utils/engines/release/scriptSettings.json) publishes one package;NpmReleaseVersion.syncWorkspaceVersionsdisabled. - Jest, Vitest, and Storybook configs updated for the flat
src/layout (@webui/*aliases point atsrc/{contracts,core,components}). - VS Code/Cursor: TypeScript SDK and integrated terminal default to
src/. src/coverage/explicitly gitignored; generated coverage is no longer tracked.
Removed
@maks-it.com/webui-contracts,@maks-it.com/webui-core, and@maks-it.com/webui-componentsas separate npm packages (superseded by@maks-it.com/webui).src/packages/workspace layout and per-packagepackage.jsonfiles.- Repo-root
tsconfig.jsonand straynode_modules/(tooling and dependencies live undersrc/only).
[0.3.5] - 2026-07-06
Fixed
ENTITY_SCOPES_ARRAY_POLICY: synthetic identity is now{entityId}-{entityType}(not includingscope), so adding an application scope alongside an existing organization scope produces a correctAddToCollectiondelta, and permission changes on id-less rows update in place via_deltaId.
[0.3.4] - 2026-07-06
Added
- OAuth / external identity providers (extracted from FiPlan.Anywhere):
@maks-it.com/webui-contracts:LoginProviderExternal,EmailProtocol,ServerAuthenticationMethod,MsalViewModel,IdpRedeemLoginResponse,MailboxOAuthPending, and mailbox OAuth session/query constants.@maks-it.com/webui-core:startIdpRedirect,shouldSkipIdpLoginCallback,useIdpLoginCallback, mailbox OAuth redirect helpers (collectMailboxOAuthProtocols,startMailboxOAuthRedirect,useMailboxOAuthReturn), andremoveParamFromUrl/removeParamsFromUrl.@maks-it.com/webui-components:ExternalLoginButtons,IdpLoginCallbackHandler,MailboxOAuthReturnHandler.
@maks-it.com/webui-core:HOSTNAMES_ARRAY_POLICYfor Certs UI account hostname PATCH collections (identityKey/idFieldKey:hostname).deepDeltaregression tests for Certs/Vault consumer forms —HOSTNAMES_ARRAY_POLICY,ENTITY_SCOPES_ARRAY_POLICY,VERSIONS_ARRAY_POLICY, advancedArrayPolicyoptions (rootKey,childArrayKeys,deleteItemWhenRoleRemoved).
Changed
- All
@maks-it.com/webui-*packages versioned at 0.3.4 with aligned workspace dependency ranges. - RepoUtils entry points and docs:
utils/src/→utils/(Invoke-TestEngine.bat,Invoke-ReleasePackage-Single.bat,Update-RepoUtils.bat; README andassets/docs/NPM_PUBLISH.mdupdated). - Release secret env vars documented as logical names
NpmandGitHub(seeutils/engines/release/scriptSettings.json). - Package READMEs document OAuth exports and PATCH collection policies.
Fixed
deepDeltaidentifiable-array diff: role-null removals emit the correct identity field (idvs_deltaId); item deltas are omitted when onlyoperationschanged (no spurious id-only placeholders).
[0.3.3] - 2026-05-31
Changed
- Migrated
utils/to maksit-repoutils 1.0.14 layout underutils/src/(Invoke-ReleasePackage,Invoke-TestEngine,Update-RepoUtils). ProductscriptSettings.jsonpaths updated for the deeper engine folders.
Added
@maks-it.com/webui-core:useWebUiHubReact hook for JWT-authenticated SignalR hubs — connection state (idle/connecting/connected/reconnecting/disconnected), optional automatic reconnect, and typed hub event handlers.resolveHubUrlhelper (absolute URLs unchanged; relative paths resolve againstwindow.location.origin).@microsoft/signalrpeer dependency on@maks-it.com/webui-core.
Changed
- All
@maks-it.com/webui-*packages published at0.3.3with aligned workspace dependency ranges. - Jest tests for core and contracts moved from co-located
src/**/*.test.tstopackages/*/test/; rootjest.config.cjsroots updated accordingly. @maks-it.com/webui-coreREADME documents SignalR install anduseWebUiHubusage.
[0.3.2] - 2026-05-30
Fixed
- Disabled and read-only editors now show consistent muted styling:
CheckBoxComponentusesopacity-50when disabled;FieldContainergrays field labels when inactive; checkbox, radio, text, select, date, and secret fields sharegetInactiveControlClasses(). - Added
tsupto workspace rootdevDependenciessonpm ci+npm run buildresolve the CLI on Windows (subpackage-only hoisting was not always onPATHfor nested workspace scripts).
Added
- Storybook Disabled story for
CheckBoxComponent.
[0.3.1] - 2026-05-30
Fixed
- Toast IDs no longer use
crypto.randomUUID()(requires HTTPS/localhost). IDs are generated with a counter + timestamp viacreateToastId()so toasts work over HTTP in Docker and other non-secure contexts.
Changed
@maks-it.com/webui-components: shared helpers (debounce,colSpanClass,GridColSpan) are imported from thefunctionsbarrel instead of subpaths.@maks-it.com/webui-core: re-exportsdate-fnsprimitives (parseISO,formatISO,format,getDaysInMonth,addMonths,subMonths) for consumers.@maks-it.com/webui-componentsDateTimePickerComponentimports date helpers from@maks-it.com/webui-coreinstead ofdate-fnsdirectly.
Removed
lodashand@types/lodashfrom@maks-it.com/webui-components; filter debouncing uses a localdebounce()helper.- Duplicate
date-fnsdependency from@maks-it.com/webui-components(date-fnsremains on@maks-it.com/webui-coreonly).
[0.3.0] - 2026-05-25
Added
- Storybook 10 catalog for
@maks-it.com/webui-components: Tailwind v4, React Router decorator, autodocs, a11y addon, stories for all editors, DataTable (with ClientSideInteractive filters/pagination demo), Layout, and FormLayout (FormContainer,FormHeader,FormContent,FormFooter). npm run storybookandnpm run build-storybookfromsrc/.
Changed
- Storybook stories under
src/stories/components/mirrorpackages/components/src/components/folder names (editors,Toast, …); sidebar titles usecomponents/<folder>/…;@webui/*Vite aliases import package source without a build.
Removed
- Unused
VaultStyleListSection,VaultStyleDataTable, andVaultStyleListFooter(components/list/) — not consumed by vault or certs-ui; list screens useDataTableinstead.
Fixed
- Editor
colspanuses static Tailwindcol-span-*classes viafunctions/tailwind/gridColSpan.tsso Storybook and Vite builds apply the 12-column grid correctly. - Storybook 10 preview: Vite
esbuildJSX set toautomaticso decorators and stories no longer throwReact is not defined.
[0.2.0] - 2026-05-24
Added
- Jest test suite (50 tests) covering
@maks-it.com/webui-coreutilities and@maks-it.com/webui-contractsschemas. - Root
npm testscript and per-package build tsconfigs (tsconfig.build.json) for TypeScript 6 declaration emit.
Changed
- Updated dependencies to current majors: TypeScript 6, Jest 30, Zod 4.4, lucide-react 1.x, axios 1.16, and React 19.2.
- Migrated Zod schemas to v4 APIs:
intersection()replaces.and(), custom refinements use'custom'issue codes. @maks-it.com/webui-componentsToast IDs now usecrypto.randomUUID(); lodash imports uselodash/debouncesubpaths.- Peer dependency ranges:
zod^4.4,axios^1.16,lucide-react^1.0.
Removed
uuidruntime dependency from@maks-it.com/webui-components.
[0.1.0] - 2026-05-24
Added
- Initial
@maks-it.com/webui-contracts,@maks-it.com/webui-core, and@maks-it.com/webui-componentspackages extracted from Certs UI and Vault WebUI. - npm publish under the
@maks-it.comorg scope on registry.npmjs.org.