UNPKG

@trimble-oss/moduswebcomponents

Version:

Modus Web Components is a modern, accessible UI library built with Stencil JS that provides reusable web components following Trimble's Modus design system. This updated version focuses on improved flexibility, enhanced theming options, comprehensive cust

421 lines (420 loc) 13.5 kB
{ "name": "@trimble-oss/moduswebcomponents", "version": "1.10.0", "description": "Modus Web Components is a modern, accessible UI library built with Stencil JS that provides reusable web components following Trimble's Modus design system. This updated version focuses on improved flexibility, enhanced theming options, comprehensive customization capabilities, and WCAG 2.2 compliance. The library offers a collection of enterprise-ready components that can be used in any web framework or vanilla JavaScript application. Separate SPA framework integrations are published for Angular and React.", "keywords": [ "trimble", "modus" ], "homepage": "https://modus-web-components-v2.trimble.com", "license": "MIT", "author": "Trimble Inc.", "contributors": [ { "name": "gabriel-piltzer-trimble", "url": "https://github.com/gabriel-piltzer-trimble" }, { "name": "stuart-rimel", "url": "https://github.com/stuart-rimel" }, { "name": "Kai-Richardson", "url": "https://github.com/Kai-Richardson" } ], "publishConfig": { "access": "public" }, "bugs": { "url": "https://github.com/trimble-oss/modus-wc-2.0/issues/" }, "repository": { "type": "git", "url": "git+https://github.com/trimble-oss/modus-wc-2.0.git" }, "type": "module", "main": "index.cjs.js", "module": "index.js", "es2017": "esm/index.js", "esnext": "esm/index.js", "collection": "collection/collection-manifest.json", "collection:main": "collection/index.js", "unpkg": "modus-wc/modus-wc.esm.js", "jsdelivr": "modus-wc/modus-wc.js", "types": "types/components.d.ts", "exports": { ".": { "types": "./types/components.d.ts", "import": "./index.js", "require": "./index.cjs.js", "default": "./index.js" }, "./hydrate": { "types": "./hydrate/index.d.ts", "import": "./hydrate/index.mjs", "require": "./hydrate/index.js", "default": "./hydrate/index.js" }, "./loader": { "types": "./loader/index.d.ts", "import": "./loader/index.js", "require": "./loader/index.cjs.js", "default": "./loader/index.js" }, "./components/*.js": { "types": "./components/*.d.ts", "import": "./components/*.js", "require": null, "default": "./components/*.js" }, "./components/*": { "types": "./components/*.d.ts", "import": "./components/*.js", "require": null, "default": "./components/*.js" }, "./components": { "types": "./components/index.d.ts", "import": "./components/index.js", "require": null, "default": "./components/index.js" }, "./modus-wc-styles.css": "./modus-wc-styles.css", "./modus-wc-variables.css": "./modus-wc-variables.css", "./modus-icons.css": "./modus-icons.css" }, "scripts": { "build": "wireit", "build:ci": "wireit", "clean": "npx rimraf .wireit .stencil .storybook-static dist", "lint": "wireit", "lint:eslint": "wireit", "lint:prettier": "wireit", "lint:stylelint": "wireit", "format": "wireit", "prettier": "prettier --write \"src/**/*.*\"", "start": "wireit", "test": "stencil test --spec", "test:coverage": "stencil test --spec --coverage", "test:update-snapshot": "stencil test --spec --update-snapshot", "test:watch": "stencil test --spec --watchAll", "test:vue": "npm -C integrations/vue/v-latest run dev", "setup:auth": "bash scripts/setup-npm-auth.sh", "generate:blazor-stories": "node scripts/generate-blazor-stories.js", "prebuild:blazor": "node -e \"const fs=require('fs'); if(!fs.existsSync('integrations/blazor/stencil-generated/ModusWebComponents.Blazor/ModusWebComponents.Blazor.csproj')){console.error('ERROR: Generated .csproj not found. Run npm run build first to generate the Blazor RCL.');process.exit(1)}\"", "build:blazor": "dotnet build integrations/blazor/blazing-story/BlazingStoryApp.csproj -c Release", "prestart:blazor": "node -e \"const fs=require('fs'); if(!fs.existsSync('integrations/blazor/stencil-generated/ModusWebComponents.Blazor/ModusWebComponents.Blazor.csproj')){console.error('ERROR: Generated .csproj not found. Run npm run build first to generate the Blazor RCL.');process.exit(1)}\"", "start:blazor": "dotnet run --project integrations/blazor/blazing-story/BlazingStoryApp.csproj", "build:maui-android": "dotnet build integrations/blazor/maui-app/MauiBlazorApp.csproj -c Release -f net10.0-android", "publish:maui-android": "dotnet publish integrations/blazor/maui-app/MauiBlazorApp.csproj -c Release -f net10.0-android", "pack:nuget": "dotnet build integrations/blazor/stencil-generated/ModusWebComponents.Blazor/ModusWebComponents.Blazor.csproj -c Release && dotnet pack integrations/blazor/stencil-generated/ModusWebComponents.Blazor/ModusWebComponents.Blazor.csproj -c Release --no-build -o nuget-output" }, "dependencies": { "@floating-ui/dom": "^1.7.6", "@popperjs/core": "^2.11.8", "@tanstack/table-core": "^8.21.3" }, "devDependencies": { "@eslint/js": "^9.26.0", "@stencil/angular-output-target": "^1.3.2", "@stencil/core": "^4.35.3", "@stencil/react-output-target": "1.2.0", "@stencil/sass": "^3.2.3", "@stencil/ssr": "^0.3.1", "@stencil/store": "^2.2.2", "@stencil/vue-output-target": "^0.13.2", "@storybook/addon-a11y": "^8.6.12", "@storybook/addon-essentials": "^8.6.14", "@storybook/addon-links": "^8.6.12", "@storybook/addon-themes": "^8.6.12", "@storybook/blocks": "^8.6.12", "@storybook/test": "^8.6.15", "@storybook/web-components": "^8.6.12", "@storybook/web-components-vite": "^8.6.12", "@tailwindcss/typography": "^0.5.20", "@trimble-oss/modus-stencil-razor-output-target": "^1.0.39", "@types/jest": "^29.5.13", "@typescript-eslint/eslint-plugin": "^8.61.1", "@typescript-eslint/parser": "^8.61.1", "concurrently": "^9.2.1", "daisyui": "^4.12.13", "eslint": "^9.31.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-prettier": "^5.5.6", "globals": "^16.2.0", "jest": "^29.7.0", "jest-cli": "^29.7.0", "lit": "^3.3.3", "marked": "^15.0.11", "prettier": "3.8.4", "puppeteer": "^23.5.3", "stencil-tailwind-plugin": "^1.8.0", "stylelint": "16.26.1", "stylelint-config-standard-scss": "16.0.0", "stylelint-order": "8.1.1", "tailwindcss": "^3.4.14", "ts-loader": "^9.6.1", "typescript": "^5.6.2", "vite": "^7.1.7", "wireit": "^0.14.12", "@trimble-agentic-external-npm-local/agentic-platform-sdk-iframe-typescript": "^1.0.1-rc.3" }, "overrides": { "ts-morph": { "@ts-morph/common": { "minimatch": "9.0.9" } }, "@stencil/ssr": { "vite": "^7.1.7" }, "socks": "^2.8.8", "postcss": "^8.5.14", "shell-quote": "1.8.4" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.60.1", "@trimble-oss/custom-elements-manifest-analyzer": "^0.0.4" }, "wireit": { "build": { "dependencies": [ "stencil:build", "storybook:build" ] }, "build:cem-json": { "command": "custom-elements-manifest analyze --stencil --globs \"src/components/**/*.tsx\" --outdir src && node .github/fixup-cem-json.cjs", "files": [ "src/components/**/*.tsx" ], "output": [ "src/custom-elements.json" ] }, "build:ci": { "dependencies": [ "stencil:build" ] }, "format": { "dependencies": [ "format:prettier", "format:eslint", "format:stylelint" ] }, "format:eslint": { "command": "eslint --color --fix ." }, "format:prettier": { "command": "prettier --write .", "files": [ "*.{ts,tsx,js,jsx,css,scss,json,md,mdx,html}", "!src/components.d.ts" ] }, "format:stylelint": { "command": "stylelint \"src/**/*.scss\" --fix", "clean": false, "files": [ "src/**/*.scss" ], "output": [ "src/**/*.scss" ] }, "lint": { "dependencies": [ "lint:eslint", "lint:prettier", "lint:stylelint" ] }, "lint:eslint": { "command": "eslint --color ." }, "lint:prettier": { "command": "prettier --check .", "clean": false, "files": [ "*.{ts,tsx,js,jsx,css,scss,json,md,mdx,html}", "!src/components.d.ts" ], "output": [ "*.{ts,tsx,js,jsx,css,scss,json,md,mdx,html}", "!src/components.d.ts" ] }, "lint:stylelint": { "command": "stylelint \"src/**/*.scss\"", "clean": false, "files": [ "src/**/*.scss" ], "output": [ "src/**/*.scss" ] }, "start": { "dependencies": [ "storybook:start", "lint" ] }, "stencil:build": { "command": "stencil build --docs --prod", "dependencies": [ "build:cem-json", "tailwind:build", "embed:css", "embed:component-css", "generate:logo-data" ], "files": [ "src/**/*.{css,scss,ts,tsx}", "src/custom-elements.json", "!src/components.d.ts", "stencil.config.ts", "tsconfig.json", "package.json" ], "output": [ "src/components.d.ts", "dist/**", "integrations/react/stencil-generated/**", "integrations/angular/ng18/projects/trimble-oss/moduswebcomponents-angular/src/lib/stencil-generated/**", "integrations/angular/ng17/projects/trimble-oss/moduswebcomponents-angular/src/lib/stencil-generated/**", "integrations/angular/ng19/projects/trimble-oss/moduswebcomponents-angular/src/lib/stencil-generated/**", "integrations/angular/ng20/projects/trimble-oss/moduswebcomponents-angular/src/lib/stencil-generated/**", "integrations/angular/ng21/projects/trimble-oss/moduswebcomponents-angular/src/lib/stencil-generated/**", "integrations/blazor/stencil-generated/**" ] }, "stencil:watch": { "command": "stencil build --docs --dev --prod --watch", "service": { "readyWhen": { "lineMatches": "build finished, watching for changes..." } }, "dependencies": [ "build:cem-json", "tailwind:watch", "generate:logo-data" ], "files": [ "src/**/*.{css,scss,ts,tsx}", "src/custom-elements.json", "!src/components.d.ts", "stencil.config.ts", "tsconfig.json", "package.json" ] }, "storybook:build": { "command": "storybook build", "clean": false, "dependencies": [ "stencil:build", "lint" ], "files": [ "src/", ".storybook", "dist/", "stencil.config.ts" ], "output": [ "storybook-static/" ] }, "storybook:start": { "command": "storybook dev -p 6006", "dependencies": [ "stencil:watch" ] }, "tailwind:build": { "command": "tailwindcss -i src/styles/tailwind.css -o src/styles/output.css --minify", "files": [ "src/**/*.scss", "src/styles/fonts.css", "src/styles/global.css", "src/styles/tailwind.css", "src/styles/variables.css", "src/styles/assets/fonts/**", "tailwind.config.js" ], "output": [ "src/styles/output.css" ] }, "embed:css": { "command": "node scripts/embed-css.js && node scripts/generate-variables-css.js", "dependencies": [ "tailwind:build" ], "files": [ "src/styles/output.css", "src/styles/global.css", "src/styles/variables.css", "src/styles/fonts.css", "scripts/embed-css.js", "scripts/generate-variables-css.js" ], "output": [ "src/providers/theme/css-content.ts", "src/styles/modus-wc-variables.css" ] }, "embed:component-css": { "command": "node scripts/embed-component-css.js", "dependencies": [ "tailwind:build" ], "files": [ "src/components/**/*.scss", "src/styles/mixins.scss", "scripts/embed-component-css.js" ], "output": [ "src/providers/theme/component-css-content.ts" ] }, "generate:logo-data": { "command": "node scripts/generate-logo-data.js", "files": [ "src/components/modus-wc-logo/assets/logos/**/*.svg", "scripts/generate-logo-data.js" ], "output": [ "src/components/modus-wc-logo/logo-svg-data.ts" ] }, "tailwind:watch": { "command": "tailwindcss -i src/styles/tailwind.css -o src/styles/output.css --minify --watch", "service": true, "files": [ "src/**/*.scss", "src/styles/fonts.css", "src/styles/global.css", "src/styles/tailwind.css", "src/styles/variables.css", "src/styles/assets/fonts/**", "tailwind.config.js" ] } }, "engines": { "node": ">=20" }, "volta": { "node": "20.19.2" }, "customElements": "src/custom-elements.json" }