@mdk/foundation
Domain-specific components, hooks, and constants for mining applications
The foundation package provides domain-specific components, hooks, and constants
built on top of @mdk/core. These are higher-level building blocks designed for common Bitcoin mining
application use cases.
Prerequisites
- React 18+
- Node.js 20+
- pnpm 10+
Installation
# Clone the repository
git clone https://github.com/tetherto/miningos-ui-kit.git
cd miningos-ui-kit
# Install dependencies
pnpm install
# Build all packages
pnpm buildThen add to your app's package.json:
{
"dependencies": {
"@mdk/foundation": "workspace:*"
}
}What's included
Settings components
Pre-built settings UI for common administrative tasks:
SettingsDashboard: main settings container with accordion sectionsFeatureFlagsSettings: toggle feature flags on/offHeaderControlsSettings: configure header display optionsImportExportSettings: import/export configuration dataRBACControlSettings: role-based access control settings- User management modals: add, manage, and confirm user changes
Hooks
Reusable React hooks:
Monitoring hooks: equipment monitoring, alerts, and device management
useBeepSound: audible alerts for critical conditionsuseChartDataCheck: check if chart data is empty or available
UI hooks: application state, permissions, and UI patterns
useNotification: toast notificationsuseHasPerms/useCheckPerm: permission checkinguseHeaderControls: header visibility preferencesuseLocalStorage: type-safe localStorage with cross-tab syncusePagination: pagination state with API query argsuseIsFeatureEditingEnabled: feature flag permission check
Constants
Shared constants for consistency across your application:
- Permission definitions
- Role configurations
- Settings defaults
- Error codes
Import examples
// Import components
import { SettingsDashboard, FeatureFlagsSettings } from '@mdk/foundation'
// Import from specific subpath
import { SettingsDashboard } from '@mdk/foundation/domain'
