Fast.Element.Plus.Icons runtime contract
Runtime and package contract
- Runtime platforms: ES2022 modern browsers, WebViews and Vue 3 applications.
- Package format: one public named-export ESM entry for package managers and one separately minified IIFE entry for CDN use; CommonJS and UMD are not shipped.
- Framework boundary: Vue remains external to both builds and is a required peer in
^3.5.11. - Component behavior: every export renders one SVG root with its authored
viewBoxand accepts standard Vue fallthrough attributes on that root. - Source integrity:
icons/*.svgis the source of truth;pnpm generateupdates committed component sources andpnpm generate:checkdetects drift. - Publishing: the repository root is the only package,
dist/is the only build output andpackage.json#exportsis the complete public path whitelist.
Importing the package does not access the DOM, mutate application-global state or register components. The package does not polyfill DOM, SVG, Promise or other platform capabilities.
Public API policy
- The package root exposes one named Vue component for every repository SVG.
- Components define no package-specific Props, Emits, Slots or Expose methods.
- Applications own accessible labels, roles, dimensions, colors, classes, styles and event listeners.
- Explicit child fills in multicolor illustrations take precedence over inherited root fill and text color.
CDN contract
dist/index.global.min.js requires globalThis.Vue and exposes the component set as globalThis.FastElementPlusIconsVue. Applications are responsible for exact version selection, CSP, SRI and asset hosting.
Security boundary
The generator rejects script elements, foreign objects, inline event handlers and external or data URL references. This validation protects repository generation and is not a general-purpose SVG sanitizer. Only trusted, reviewed SVG files may be added.
Generator input boundary
The generator accepts a static, self-contained SVG subset from trusted repository assets. Text braces are escaped instead of becoming TSX expressions; CDATA, local-fragment references and viewBox retain their meaning. Scripts, events, external resources, dynamic properties and unsupported markup are rejected. This is not a general-purpose SVG sanitizer. Normalized output of the current 68 SVG inputs is unchanged.
