| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This directory contains complete, production-ready sample tools demonstrating how to build tools for Power Platform Tool Box using different modern web frameworks.
Technology: HTML, CSS, TypeScript
A vanilla TypeScript implementation demonstrating tool development without any framework dependencies.
Key Features:
Best For: Lightweight tools, simple utilities, learning the API basics
→ View HTML Sample Documentation
Technology: React 18, TypeScript, Vite
A modern React application using hooks and functional components.
Key Features:
Best For: Complex interactive tools, data visualization, tools requiring rich UI
→ View React Sample Documentation
Technology: Vue 3, Composition API, TypeScript, Vite
A Vue 3 application using the Composition API and Single File Components.
Key Features:
Best For: Progressive web apps, form-heavy tools, tools requiring two-way data binding
→ View Vue Sample Documentation
Technology: Svelte 5, TypeScript, Vite
A Svelte application leveraging Svelte's compiler-based reactivity.
Key Features:
Best For: Performance-critical tools, embedded tools, tools with limited screen space
→ View Svelte Sample Documentation
All samples include comprehensive examples of:
✅ Connection management with real-time updates
✅ Notification system (success, info, warning, error)
✅ Clipboard operations
✅ File save/load dialogs
✅ Theme detection (light/dark)
✅ Terminal creation and command execution
✅ Event subscription and handling
✅ FetchXML query execution
✅ CRUD operations (Create, Read, Update, Delete)
✅ Entity metadata retrieval
✅ Error handling and validation
✅ TypeScript with full type safety (@pptb/types)
✅ Modern build tooling (Vite)
✅ Component-based architecture
✅ State management patterns
✅ Event-driven architecture
✅ Responsive UI design
✅ Production-ready builds
Framework samples (React, Vue, Svelte) use Vite with special configuration for PPTB:
✅ IIFE Format: Builds use Immediately Invoked Function Expression instead of ES modules for compatibility with PPTB's iframe loading mechanism
✅ Single Bundle: All code and CSS bundled into one file to avoid module loading issues
✅ HTML Optimization: Custom plugin that:
Navigate to sample directory:
cd sample/[html|react|vue|svelte]-sampleInstall dependencies:
npm installBuild the sample:
npm run buildInstall in Power Platform Tool Box:
| Feature | HTML | React | Vue | Svelte |
|---|---|---|---|---|
| Bundle Size | ~50KB | ~158KB | ~77KB | ~45KB |
| Runtime Overhead | Minimal | Medium | Medium | Minimal |
| Learning Curve | Easy | Moderate | Easy | Easy |
| TypeScript Support | Excellent | Excellent | Excellent | Excellent |
| Build Time | Fast | Fast | Fast | Fast |
| HMR Support | No | Yes | Yes | Yes |
| Ecosystem | Standard Web | Large | Large | Growing |
Bundle sizes for HTML sample include compiled TypeScript; framework samples are IIFE bundles with all features included
npm run devStarts development server with hot module replacement. Note: ToolBox APIs are only available when loaded within the application.
npm run buildCreates optimized production build in dist/ directory.
All samples include TypeScript for type safety:
# React/Vue/Svelte
npm run check # or tsc for HTML
# Shows type errors without buildingEach sample follows a consistent structure:
[framework]-sample/ ├── src/ # Source code │ ├── components/ # UI components (React/Vue/Svelte) │ ├── hooks/ # Custom hooks (React) │ ├── composables/ # Composables (Vue) │ ├── lib/ # Utilities and stores (Svelte) │ └── ... ├── package.json # Dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── vite.config.[ts|js] # Vite configuration (React/Vue/Svelte) ├── index.html # Entry point └── README.md # Sample-specific documentation
Problem: TypeScript errors during build
Solution: Ensure all dependencies are installed with npm install
Problem: window.toolboxAPI is undefined
Solution: The tool must be loaded within Power Platform Tool Box, not a standalone browser
Problem: Connection is always null
Solution: Create a connection in Power Platform Tool Box first
Problem: Changes don't reflect immediately
Solution: Restart dev server with npm run dev
Found an issue or want to improve the samples?
See CONTRIBUTING.md for guidelines.
All samples are licensed under GPL-3.0. See LICENSE for details.
Happy coding! 🚀
| Back | FazBrowse Home | New Git URL |