{"ref":"artifact:rdisomma-ui5x","page":"/artifacts/rdisomma-ui5x","json":"/artifacts/rdisomma-ui5x.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"rdisomma-ui5x","name":"UI5X","artifact_type":"package","ecosystem":"ui5","domain":"ui-and-frontend-bridge","origin_ring":"independent","use_as":"dependency","source_available":true,"description":{"one_line":"An OpenUI5 and SAPUI5 library of eight composite controls under the `ui5x` namespace: skeleton placeholders and a container that swaps them for content, loading wrappers for the responsive and the grid table, an accordion, a copy button, a segmented input and a chat feed.","short":"UI5 library of eight composite controls under the ui5x namespace","what_it_solves":"The standard UI5 libraries stop at the building blocks, so a composition such as a skeleton placeholder or a chat feed is rebuilt in each project; UI5X ships those compositions as controls, with the theme stylesheets and the accessibility behaviour already written and `loading` exposed as a property that binds to a model flag. Each one extends `sap.ui.core.Control` or the standard control it specialises, touches no private API, and is declared and bound from XML views, JavaScript or TypeScript. It enters an application through two `manifest.json` entries, `dependencies.libs` and a `resourceRoots` mapping to `./thirdparty/ui5x/`, a path chosen so that neither the SAP Fiori tools proxy nor the deployed route for `/resources` can intercept the library; TypeScript projects also name the package in the compiler's `types`, without which the controls come out bare. The package carries no npm dependencies and declares only `sap.ui.core`, with `sap.m` and `sap.ui.table` requested by the controls that need them. It was developed against OpenUI5 1.151.0 and tested with SAPUI5 1.151.0 in [SAP Business Application Studio](artifact:btp-business-application-studio), and the README states that older UI5 versions have not been validated yet.","when_not_to_use":"The README states that UI5X is in early development and that APIs may change before version 1.0. Styling covers the `sap_horizon` and `sap_fiori_3` families with their dark and high-contrast variants; any other theme falls back to the base theme.","to_build_on_it":"The controls are written in TypeScript under `src/ui5x/`, grouped by namespace, with the LESS sources in `src/ui5x/themes/` and the QUnit tests in `test/ui5x/`; `npm start` runs the interface generator in watch mode and serves one manual demo page per control, each with a toolbar and a theme selector. After changing control metadata, `npm run interfaces` regenerates the `*.gen.d.ts` declarations, and the development setup needs Node.js 20.19+ or 22.12+ with npm 8+."},"links":{"repo":"https://github.com/rdisomma/ui5x","npm":"https://www.npmjs.com/package/@raffaeledisomma/ui5x","homepage":"https://rdisomma.github.io/ui5x/"},"provides":[{"capability":"capability:ui5-custom-controls","what_it_does":"Packages eight composite controls as an installable OpenUI5 and SAPUI5 library under the `ui5x` namespace, each extending `sap.ui.core.Control` or the standard control it specialises, declared and bound from XML views, JavaScript or TypeScript.","sources":[{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README","checked":"2026-10-18","quote":"An OpenUI5 and SAPUI5 library of composite controls, with theming, accessibility and state handling built in."},{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README","checked":"2026-10-18","quote":"Each one extends `sap.ui.core.Control` or the standard control it specialises. None of them touch\na private API. You declare and bind them from XML views, JavaScript or TypeScript."}]},{"capability":"capability:accessibility","what_it_does":"States `aria-busy` on its loading containers, keeps skeleton content out of the accessibility tree, stops the animations when the system requests reduced motion, and implements the UI5 focus and labelling contracts on the interactive controls.","sources":[{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, Features","checked":"2026-10-18","quote":"**Accessibility-aware** — loading containers expose `aria-busy`, skeleton content is kept out\n  of the accessibility tree, and animations respect `prefers-reduced-motion`."},{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, Features","checked":"2026-10-18","quote":"The interactive\n  controls implement the UI5 focus and labelling contracts (`getFocusDomRef`, `getIdForLabel`,\n  `getAccessibilityInfo`), so `focus()` and a `sap.m.Label` behave as they do on a standard\n  control."}]}],"requires":[{"ref":"artifact:openui5-core","for":"The framework whose `Control` the controls extend and whose loader resolves the `ui5x` namespace; it is the one UI5 library every control in the library needs.","requirement":"required","basis":"binding","role":"framework","sources":[{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, What installing adds","checked":"2026-10-18","quote":"UI5X declares `sap.ui.core` alone, because it is the only library every control needs"},{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, Compatibility","checked":"2026-10-18","quote":"Developed against OpenUI5 `1.151.0`, and tested with SAPUI5 `1.151.0` in SAP Business\n  Application Studio."}]},{"ref":"artifact:ui5-community-ui5-task-zipper","for":"Packaging the library into the deployment archive: the README's deployment configuration sets `includeDependencies` on this task, without which a Cloud Foundry archive contains no `thirdparty/ui5x`. Nothing is needed for local preview.","requirement":"conditional","condition":"the application is packaged as an archive for Cloud Foundry","basis":"binding","role":"packaging","sources":[{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, Deploying an application that uses UI5X","checked":"2026-10-18","quote":"For a deployment, add both of the following."},{"url":"https://github.com/rdisomma/ui5x","title":"rdisomma/ui5x — README, Deploying an application that uses UI5X","checked":"2026-10-18","quote":"| `includeDependencies` | Cloud Foundry | the archive contains no `thirdparty/ui5x` |"}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-18"},"drafted_with_ai":true,"maintainers":["actor:rdisomma"],"contributors":["actor:rdisomma"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":"CI green, 2026-09-01"}],"practice":[{"label":"Tests","tier":"good","evidence":"50 test files"},{"label":"Docs","tier":"good","evidence":"README 39 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":3,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":3,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-09-01","license_spdx":"Apache-2.0","org_owned":false,"default_branch":"main","created_at":"2026-08-19T15:14:56Z","open_prs":0,"tree_truncated":false,"test_files":50,"workflows":3,"other_ci":false,"readme_bytes":39832,"docs_files":0,"changelog":false,"license_file":true,"dts_files":10,"first_commit":"2026-08-19","last_commit":"2026-09-01","commits":143,"contributors":1,"ci_status":"success","ci_run_at":"2026-09-01","ci_workflow":"CI","ci_event":"push","readme_path":"README.md","readme_sha":"f8486b2acaeb0e8e5ad1ac67d28e6d56945ab8f8","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:rdisomma","name":"Raffaele Di Somma","json":"/actors/rdisomma.json"}],"contributors":[{"ref":"actor:rdisomma","name":"Raffaele Di Somma","json":"/actors/rdisomma.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_on_to":{"ref":"artifact:openui5-core","name":"@openui5/sap.ui.core","json":"/artifacts/openui5-core.json"},"add_ons":[],"answered_through_parts":[]}}